"use strict";
(() => {
  var tN = Object.create;
  var hm = Object.defineProperty;
  var nN = Object.getOwnPropertyDescriptor;
  var rN = Object.getOwnPropertyNames;
  var iN = Object.getPrototypeOf,
    oN = Object.prototype.hasOwnProperty;
  var J8 = (e, t) => () => (
      t || e((t = { exports: {} }).exports, t),
      t.exports
    ),
    ca = (e, t) => {
      for (var n in t) hm(e, n, { get: t[n], enumerable: !0 });
    },
    sN = (e, t, n, r) => {
      if ((t && typeof t == "object") || typeof t == "function")
        for (let i of rN(t))
          !oN.call(e, i) &&
            i !== n &&
            hm(e, i, {
              get: () => t[i],
              enumerable: !(r = nN(t, i)) || r.enumerable,
            });
      return e;
    };
  var uN = (e, t, n) => (
    (n = e != null ? tN(iN(e)) : {}),
    sN(
      t || !e || !e.__esModule
        ? hm(n, "default", { value: e, enumerable: !0 })
        : n,
      e,
    )
  );
  var xE = J8((Ac, w5) => {
    (function (t, n) {
      typeof Ac == "object" && typeof w5 == "object"
        ? (w5.exports = n())
        : typeof define == "function" && define.amd
          ? define([], n)
          : typeof Ac == "object"
            ? (Ac.katex = n())
            : (t.katex = n());
    })(typeof self < "u" ? self : Ac, function () {
      return (function () {
        "use strict";
        var e = {};
        ((function () {
          e.d = function (f, c) {
            for (var d in c)
              e.o(c, d) &&
                !e.o(f, d) &&
                Object.defineProperty(f, d, { enumerable: !0, get: c[d] });
          };
        })(),
          (function () {
            e.o = function (f, c) {
              return Object.prototype.hasOwnProperty.call(f, c);
            };
          })());
        var t = {};
        e.d(t, {
          default: function () {
            return JC;
          },
        });
        class n {
          constructor(c, d) {
            ((this.name = void 0),
              (this.position = void 0),
              (this.length = void 0),
              (this.rawMessage = void 0));
            let g = "KaTeX parse error: " + c,
              w,
              S,
              C = d && d.loc;
            if (C && C.start <= C.end) {
              let L = C.lexer.input;
              ((w = C.start),
                (S = C.end),
                w === L.length
                  ? (g += " at end of input: ")
                  : (g += " at position " + (w + 1) + ": "));
              let $ = L.slice(w, S).replace(/[^]/g, "$&\u0332"),
                W;
              w > 15
                ? (W = "\u2026" + L.slice(w - 15, w))
                : (W = L.slice(0, w));
              let K;
              (S + 15 < L.length
                ? (K = L.slice(S, S + 15) + "\u2026")
                : (K = L.slice(S)),
                (g += W + $ + K));
            }
            let F = new Error(g);
            return (
              (F.name = "ParseError"),
              (F.__proto__ = n.prototype),
              (F.position = w),
              w != null && S != null && (F.length = S - w),
              (F.rawMessage = c),
              F
            );
          }
        }
        n.prototype.__proto__ = Error.prototype;
        var r = n;
        let i = function (f, c) {
            return f === void 0 ? c : f;
          },
          o = /([A-Z])/g,
          s = function (f) {
            return f.replace(o, "-$1").toLowerCase();
          },
          u = {
            "&": "&amp;",
            ">": "&gt;",
            "<": "&lt;",
            '"': "&quot;",
            "'": "&#x27;",
          },
          a = /[&><"']/g;
        function l(f) {
          return String(f).replace(a, (c) => u[c]);
        }
        let h = function (f) {
            return f.type === "ordgroup" || f.type === "color"
              ? f.body.length === 1
                ? h(f.body[0])
                : f
              : f.type === "font"
                ? h(f.body)
                : f;
          },
          m = function (f) {
            let c = h(f);
            return (
              c.type === "mathord" || c.type === "textord" || c.type === "atom"
            );
          },
          p = function (f) {
            if (!f) throw new Error("Expected non-null, but got " + String(f));
            return f;
          };
        var x = {
          deflt: i,
          escape: l,
          hyphenate: s,
          getBaseElem: h,
          isCharacterBox: m,
          protocolFromUrl: function (f) {
            let c = /^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(
              f,
            );
            return c
              ? c[2] !== ":" || !/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(c[1])
                ? null
                : c[1].toLowerCase()
              : "_relative";
          },
        };
        let y = {
          displayMode: {
            type: "boolean",
            description:
              "Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",
            cli: "-d, --display-mode",
          },
          output: {
            type: { enum: ["htmlAndMathml", "html", "mathml"] },
            description: "Determines the markup language of the output.",
            cli: "-F, --format <type>",
          },
          leqno: {
            type: "boolean",
            description:
              "Render display math in leqno style (left-justified tags).",
          },
          fleqn: {
            type: "boolean",
            description: "Render display math flush left.",
          },
          throwOnError: {
            type: "boolean",
            default: !0,
            cli: "-t, --no-throw-on-error",
            cliDescription:
              "Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error.",
          },
          errorColor: {
            type: "string",
            default: "#cc0000",
            cli: "-c, --error-color <color>",
            cliDescription:
              "A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",
            cliProcessor: (f) => "#" + f,
          },
          macros: {
            type: "object",
            cli: "-m, --macro <def>",
            cliDescription:
              "Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",
            cliDefault: [],
            cliProcessor: (f, c) => (c.push(f), c),
          },
          minRuleThickness: {
            type: "number",
            description:
              "Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",
            processor: (f) => Math.max(0, f),
            cli: "--min-rule-thickness <size>",
            cliProcessor: parseFloat,
          },
          colorIsTextColor: {
            type: "boolean",
            description:
              "Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",
            cli: "-b, --color-is-text-color",
          },
          strict: {
            type: [
              { enum: ["warn", "ignore", "error"] },
              "boolean",
              "function",
            ],
            description:
              "Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",
            cli: "-S, --strict",
            cliDefault: !1,
          },
          trust: {
            type: ["boolean", "function"],
            description:
              "Trust the input, enabling all HTML features such as \\url.",
            cli: "-T, --trust",
          },
          maxSize: {
            type: "number",
            default: 1 / 0,
            description:
              "If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",
            processor: (f) => Math.max(0, f),
            cli: "-s, --max-size <n>",
            cliProcessor: parseInt,
          },
          maxExpand: {
            type: "number",
            default: 1e3,
            description:
              "Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",
            processor: (f) => Math.max(0, f),
            cli: "-e, --max-expand <n>",
            cliProcessor: (f) => (f === "Infinity" ? 1 / 0 : parseInt(f)),
          },
          globalGroup: { type: "boolean", cli: !1 },
        };
        function v(f) {
          if (f.default) return f.default;
          let c = f.type,
            d = Array.isArray(c) ? c[0] : c;
          if (typeof d != "string") return d.enum[0];
          switch (d) {
            case "boolean":
              return !1;
            case "string":
              return "";
            case "number":
              return 0;
            case "object":
              return {};
          }
        }
        class k {
          constructor(c) {
            ((this.displayMode = void 0),
              (this.output = void 0),
              (this.leqno = void 0),
              (this.fleqn = void 0),
              (this.throwOnError = void 0),
              (this.errorColor = void 0),
              (this.macros = void 0),
              (this.minRuleThickness = void 0),
              (this.colorIsTextColor = void 0),
              (this.strict = void 0),
              (this.trust = void 0),
              (this.maxSize = void 0),
              (this.maxExpand = void 0),
              (this.globalGroup = void 0),
              (c = c || {}));
            for (let d in y)
              if (y.hasOwnProperty(d)) {
                let g = y[d];
                this[d] =
                  c[d] !== void 0
                    ? g.processor
                      ? g.processor(c[d])
                      : c[d]
                    : v(g);
              }
          }
          reportNonstrict(c, d, g) {
            let w = this.strict;
            if (
              (typeof w == "function" && (w = w(c, d, g)),
              !(!w || w === "ignore"))
            ) {
              if (w === !0 || w === "error")
                throw new r(
                  "LaTeX-incompatible input and strict mode is set to 'error': " +
                    (d + " [" + c + "]"),
                  g,
                );
              w === "warn"
                ? typeof console < "u" &&
                  console.warn(
                    "LaTeX-incompatible input and strict mode is set to 'warn': " +
                      (d + " [" + c + "]"),
                  )
                : typeof console < "u" &&
                  console.warn(
                    "LaTeX-incompatible input and strict mode is set to " +
                      ("unrecognized '" + w + "': " + d + " [" + c + "]"),
                  );
            }
          }
          useStrictBehavior(c, d, g) {
            let w = this.strict;
            if (typeof w == "function")
              try {
                w = w(c, d, g);
              } catch {
                w = "error";
              }
            return !w || w === "ignore"
              ? !1
              : w === !0 || w === "error"
                ? !0
                : w === "warn"
                  ? (typeof console < "u" &&
                      console.warn(
                        "LaTeX-incompatible input and strict mode is set to 'warn': " +
                          (d + " [" + c + "]"),
                      ),
                    !1)
                  : (typeof console < "u" &&
                      console.warn(
                        "LaTeX-incompatible input and strict mode is set to " +
                          ("unrecognized '" + w + "': " + d + " [" + c + "]"),
                      ),
                    !1);
          }
          isTrusted(c) {
            if (c.url && !c.protocol) {
              let g = x.protocolFromUrl(c.url);
              if (g == null) return !1;
              c.protocol = g;
            }
            return !!(typeof this.trust == "function"
              ? this.trust(c)
              : this.trust);
          }
        }
        class T {
          constructor(c, d, g) {
            ((this.id = void 0),
              (this.size = void 0),
              (this.cramped = void 0),
              (this.id = c),
              (this.size = d),
              (this.cramped = g));
          }
          sup() {
            return j[Z[this.id]];
          }
          sub() {
            return j[Q[this.id]];
          }
          fracNum() {
            return j[B[this.id]];
          }
          fracDen() {
            return j[V[this.id]];
          }
          cramp() {
            return j[G[this.id]];
          }
          text() {
            return j[ne[this.id]];
          }
          isTight() {
            return this.size >= 2;
          }
        }
        let E = 0,
          M = 1,
          D = 2,
          I = 3,
          P = 4,
          O = 5,
          H = 6,
          U = 7,
          j = [
            new T(E, 0, !1),
            new T(M, 0, !0),
            new T(D, 1, !1),
            new T(I, 1, !0),
            new T(P, 2, !1),
            new T(O, 2, !0),
            new T(H, 3, !1),
            new T(U, 3, !0),
          ],
          Z = [P, O, P, O, H, U, H, U],
          Q = [O, O, O, O, U, U, U, U],
          B = [D, I, P, O, H, U, H, U],
          V = [I, I, O, O, U, U, U, U],
          G = [M, M, I, I, O, O, U, U],
          ne = [E, M, D, I, D, I, D, I];
        var te = {
          DISPLAY: j[E],
          TEXT: j[D],
          SCRIPT: j[P],
          SCRIPTSCRIPT: j[H],
        };
        let ie = [
          {
            name: "latin",
            blocks: [
              [256, 591],
              [768, 879],
            ],
          },
          { name: "cyrillic", blocks: [[1024, 1279]] },
          { name: "armenian", blocks: [[1328, 1423]] },
          { name: "brahmic", blocks: [[2304, 4255]] },
          { name: "georgian", blocks: [[4256, 4351]] },
          {
            name: "cjk",
            blocks: [
              [12288, 12543],
              [19968, 40879],
              [65280, 65376],
            ],
          },
          { name: "hangul", blocks: [[44032, 55215]] },
        ];
        function ce(f) {
          for (let c = 0; c < ie.length; c++) {
            let d = ie[c];
            for (let g = 0; g < d.blocks.length; g++) {
              let w = d.blocks[g];
              if (f >= w[0] && f <= w[1]) return d.name;
            }
          }
          return null;
        }
        let xe = [];
        ie.forEach((f) => f.blocks.forEach((c) => xe.push(...c)));
        function X(f) {
          for (let c = 0; c < xe.length; c += 2)
            if (f >= xe[c] && f <= xe[c + 1]) return !0;
          return !1;
        }
        let he = 80,
          Ae = function (f, c) {
            return (
              "M95," +
              (622 + f + c) +
              `
c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429
c69,-144,104.5,-217.7,106.5,-221
l` +
              f / 2.075 +
              " -" +
              f +
              `
c5.3,-9.3,12,-14,20,-14
H400000v` +
              (40 + f) +
              `H845.2724
s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7
c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z
M` +
              (834 + f) +
              " " +
              c +
              "h400000v" +
              (40 + f) +
              "h-400000z"
            );
          },
          Be = function (f, c) {
            return (
              "M263," +
              (601 + f + c) +
              `c0.7,0,18,39.7,52,119
c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120
c340,-704.7,510.7,-1060.3,512,-1067
l` +
              f / 2.084 +
              " -" +
              f +
              `
c4.7,-7.3,11,-11,19,-11
H40000v` +
              (40 + f) +
              `H1012.3
s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232
c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1
s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26
c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z
M` +
              (1001 + f) +
              " " +
              c +
              "h400000v" +
              (40 + f) +
              "h-400000z"
            );
          },
          kt = function (f, c) {
            return (
              "M983 " +
              (10 + f + c) +
              `
l` +
              f / 3.13 +
              " -" +
              f +
              `
c4,-6.7,10,-10,18,-10 H400000v` +
              (40 + f) +
              `
H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7
s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744
c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30
c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722
c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5
c53.7,-170.3,84.5,-266.8,92.5,-289.5z
M` +
              (1001 + f) +
              " " +
              c +
              "h400000v" +
              (40 + f) +
              "h-400000z"
            );
          },
          Ke = function (f, c) {
            return (
              "M424," +
              (2398 + f + c) +
              `
c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514
c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20
s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121
s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081
l` +
              f / 4.223 +
              " -" +
              f +
              `c4,-6.7,10,-10,18,-10 H400000
v` +
              (40 + f) +
              `H1014.6
s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185
c-2,6,-10,9,-24,9
c-8,0,-12,-0.7,-12,-2z M` +
              (1001 + f) +
              " " +
              c +
              `
h400000v` +
              (40 + f) +
              "h-400000z"
            );
          },
          Nt = function (f, c) {
            return (
              "M473," +
              (2713 + f + c) +
              `
c339.3,-1799.3,509.3,-2700,510,-2702 l` +
              f / 5.298 +
              " -" +
              f +
              `
c3.3,-7.3,9.3,-11,18,-11 H400000v` +
              (40 + f) +
              `H1017.7
s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9
c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200
c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26
s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,
606zM` +
              (1001 + f) +
              " " +
              c +
              "h400000v" +
              (40 + f) +
              "H1017.7z"
            );
          },
          ge = function (f) {
            let c = f / 2;
            return (
              "M400000 " +
              f +
              " H0 L" +
              c +
              " 0 l65 45 L145 " +
              (f - 80) +
              " H400000z"
            );
          },
          qe = function (f, c, d) {
            let g = d - 54 - c - f;
            return (
              "M702 " +
              (f + c) +
              "H400000" +
              (40 + f) +
              `
H742v` +
              g +
              `l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1
h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170
c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667
219 661 l218 661zM702 ` +
              c +
              "H400000v" +
              (40 + f) +
              "H742z"
            );
          },
          Pe = function (f, c, d) {
            c = 1e3 * c;
            let g = "";
            switch (f) {
              case "sqrtMain":
                g = Ae(c, he);
                break;
              case "sqrtSize1":
                g = Be(c, he);
                break;
              case "sqrtSize2":
                g = kt(c, he);
                break;
              case "sqrtSize3":
                g = Ke(c, he);
                break;
              case "sqrtSize4":
                g = Nt(c, he);
                break;
              case "sqrtTall":
                g = qe(c, he, d);
            }
            return g;
          },
          le = function (f, c) {
            switch (f) {
              case "\u239C":
                return (
                  "M291 0 H417 V" + c + " H291z M291 0 H417 V" + c + " H291z"
                );
              case "\u2223":
                return (
                  "M145 0 H188 V" + c + " H145z M145 0 H188 V" + c + " H145z"
                );
              case "\u2225":
                return (
                  "M145 0 H188 V" +
                  c +
                  " H145z M145 0 H188 V" +
                  c +
                  " H145z" +
                  ("M367 0 H410 V" + c + " H367z M367 0 H410 V" + c + " H367z")
                );
              case "\u239F":
                return (
                  "M457 0 H583 V" + c + " H457z M457 0 H583 V" + c + " H457z"
                );
              case "\u23A2":
                return (
                  "M319 0 H403 V" + c + " H319z M319 0 H403 V" + c + " H319z"
                );
              case "\u23A5":
                return (
                  "M263 0 H347 V" + c + " H263z M263 0 H347 V" + c + " H263z"
                );
              case "\u23AA":
                return (
                  "M384 0 H504 V" + c + " H384z M384 0 H504 V" + c + " H384z"
                );
              case "\u23D0":
                return (
                  "M312 0 H355 V" + c + " H312z M312 0 H355 V" + c + " H312z"
                );
              case "\u2016":
                return (
                  "M257 0 H300 V" +
                  c +
                  " H257z M257 0 H300 V" +
                  c +
                  " H257z" +
                  ("M478 0 H521 V" + c + " H478z M478 0 H521 V" + c + " H478z")
                );
              default:
                return "";
            }
          },
          yt = {
            doubleleftarrow: `M262 157
l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3
 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28
 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5
c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5
 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87
-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7
-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z
m8 0v40h399730v-40zm0 194v40h399730v-40z`,
            doublerightarrow: `M399738 392l
-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5
 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88
-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68
-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18
-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782
c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3
-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,
            leftarrow: `M400000 241H110l3-3c68.7-52.7 113.7-120
 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8
-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247
c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208
 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3
 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202
 l-3-3h399890zM100 241v40h399900v-40z`,
            leftbrace: `M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117
-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7
 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,
            leftbraceunder: `M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13
 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688
 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7
-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,
            leftgroup: `M400000 80
H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0
 435 0h399565z`,
            leftgroupunder: `M400000 262
H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219
 435 219h399565z`,
            leftharpoon: `M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3
-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5
-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7
-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,
            leftharpoonplus: `M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5
 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3
-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7
-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z
m0 0v40h400000v-40z`,
            leftharpoondown: `M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333
 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5
 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667
-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,
            leftharpoondownplus: `M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12
 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7
-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0
v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,
            lefthook: `M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5
-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3
-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21
 71.5 23h399859zM103 281v-40h399897v40z`,
            leftlinesegment: `M40 281 V428 H0 V94 H40 V241 H400000 v40z
M40 281 V428 H0 V94 H40 V241 H400000 v40z`,
            leftmapsto: `M40 281 V448H0V74H40V241H400000v40z
M40 281 V448H0V74H40V241H400000v40z`,
            leftToFrom: `M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23
-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8
c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3
 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,
            longequal: `M0 50 h400000 v40H0z m0 194h40000v40H0z
M0 50 h400000 v40H0z m0 194h40000v40H0z`,
            midbrace: `M200428 334
c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14
-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7
 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11
 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,
            midbraceunder: `M199572 214
c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14
 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3
 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0
-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,
            oiintSize1: `M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6
-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z
m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8
60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,
            oiintSize2: `M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8
-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z
m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2
c0 110 84 276 504 276s502.4-166 502.4-276z`,
            oiiintSize1: `M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6
-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z
m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0
85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,
            oiiintSize2: `M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8
-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z
m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1
c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,
            rightarrow: `M0 241v40h399891c-47.3 35.3-84 78-110 128
-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20
 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7
 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85
-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
 151.7 139 205zm0 0v40h399900v-40z`,
            rightbrace: `M400000 542l
-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5
s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1
c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,
            rightbraceunder: `M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3
 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237
-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,
            rightgroup: `M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0
 3-1 3-3v-38c-76-158-257-219-435-219H0z`,
            rightgroupunder: `M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18
 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,
            rightharpoon: `M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3
-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2
-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58
 69.2 92 94.5zm0 0v40h399900v-40z`,
            rightharpoonplus: `M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11
-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7
 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z
m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,
            rightharpoondown: `M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8
 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5
-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95
-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,
            rightharpoondownplus: `M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8
 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3
 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3
-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z
m0-194v40h400000v-40zm0 0v40h400000v-40z`,
            righthook: `M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3
 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0
-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21
 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,
            rightlinesegment: `M399960 241 V94 h40 V428 h-40 V281 H0 v-40z
M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,
            rightToFrom: `M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23
 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32
-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142
-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,
            twoheadleftarrow: `M0 167c68 40
 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69
-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3
-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19
-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101
 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,
            twoheadrightarrow: `M400000 167
c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3
 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42
 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333
-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70
 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,
            tilde1: `M200 55.538c-77 0-168 73.953-177 73.953-3 0-7
-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0
 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0
 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128
-68.267.847-113-73.952-191-73.952z`,
            tilde2: `M344 55.266c-142 0-300.638 81.316-311.5 86.418
-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9
 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114
c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751
 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,
            tilde3: `M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457
-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0
 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697
 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696
 -338 0-409-156.573-744-156.573z`,
            tilde4: `M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345
-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409
 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9
 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409
 -175.236-744-175.236z`,
            vec: `M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5
3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11
10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63
-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1
-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59
H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359
c-16-25.333-24-45-24-59z`,
            widehat1: `M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22
c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,
            widehat2: `M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10
-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,
            widehat3: `M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10
-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,
            widehat4: `M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10
-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,
            widecheck1: `M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,
-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,
            widecheck2: `M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,
            widecheck3: `M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,
            widecheck4: `M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,
-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,
            baraboveleftarrow: `M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202
c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5
c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130
s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47
121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6
s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11
c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z
M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,
            rightarrowabovebar: `M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32
-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0
13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39
-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5
-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5
-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67
151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,
            baraboveshortleftharpoon: `M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17
c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21
c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40
c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z
M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,
            rightharpoonaboveshortbar: `M0,241 l0,40c399126,0,399993,0,399993,0
c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,
            shortbaraboveleftharpoon: `M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11
c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,
1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,
-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z
M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,
            shortrightharpoonabovebar: `M53,241l0,40c398570,0,399437,0,399437,0
c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,
-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6
c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z
M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`,
          },
          ot = function (f, c) {
            switch (f) {
              case "lbrack":
                return (
                  "M403 1759 V84 H666 V0 H319 V1759 v" +
                  c +
                  ` v1759 h347 v-84
H403z M403 1759 V0 H319 V1759 v` +
                  c +
                  " v1759 h84z"
                );
              case "rbrack":
                return (
                  "M347 1759 V0 H0 V84 H263 V1759 v" +
                  c +
                  ` v1759 H0 v84 H347z
M347 1759 V0 H263 V1759 v` +
                  c +
                  " v1759 h84z"
                );
              case "vert":
                return (
                  "M145 15 v585 v" +
                  c +
                  ` v585 c2.667,10,9.667,15,21,15
c10,0,16.667,-5,20,-15 v-585 v` +
                  -c +
                  ` v-585 c-2.667,-10,-9.667,-15,-21,-15
c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` +
                  c +
                  " v585 h43z"
                );
              case "doublevert":
                return (
                  "M145 15 v585 v" +
                  c +
                  ` v585 c2.667,10,9.667,15,21,15
c10,0,16.667,-5,20,-15 v-585 v` +
                  -c +
                  ` v-585 c-2.667,-10,-9.667,-15,-21,-15
c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` +
                  c +
                  ` v585 h43z
M367 15 v585 v` +
                  c +
                  ` v585 c2.667,10,9.667,15,21,15
c10,0,16.667,-5,20,-15 v-585 v` +
                  -c +
                  ` v-585 c-2.667,-10,-9.667,-15,-21,-15
c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v` +
                  c +
                  " v585 h43z"
                );
              case "lfloor":
                return (
                  "M319 602 V0 H403 V602 v" +
                  c +
                  ` v1715 h263 v84 H319z
MM319 602 V0 H403 V602 v` +
                  c +
                  " v1715 H319z"
                );
              case "rfloor":
                return (
                  "M319 602 V0 H403 V602 v" +
                  c +
                  ` v1799 H0 v-84 H319z
MM319 602 V0 H403 V602 v` +
                  c +
                  " v1715 H319z"
                );
              case "lceil":
                return (
                  "M403 1759 V84 H666 V0 H319 V1759 v" +
                  c +
                  ` v602 h84z
M403 1759 V0 H319 V1759 v` +
                  c +
                  " v602 h84z"
                );
              case "rceil":
                return (
                  "M347 1759 V0 H0 V84 H263 V1759 v" +
                  c +
                  ` v602 h84z
M347 1759 V0 h-84 V1759 v` +
                  c +
                  " v602 h84z"
                );
              case "lparen":
                return (
                  `M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
-36,557 l0,` +
                  (c + 84) +
                  `c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
l0,-` +
                  (c + 92) +
                  `c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`
                );
              case "rparen":
                return (
                  `M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,` +
                  (c + 9) +
                  `
c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
l0,-` +
                  (c + 144) +
                  `c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`
                );
              default:
                throw new Error("Unknown stretchy delimiter.");
            }
          };
        var bt = {
          "AMS-Regular": {
            32: [0, 0, 0, 0, 0.25],
            65: [0, 0.68889, 0, 0, 0.72222],
            66: [0, 0.68889, 0, 0, 0.66667],
            67: [0, 0.68889, 0, 0, 0.72222],
            68: [0, 0.68889, 0, 0, 0.72222],
            69: [0, 0.68889, 0, 0, 0.66667],
            70: [0, 0.68889, 0, 0, 0.61111],
            71: [0, 0.68889, 0, 0, 0.77778],
            72: [0, 0.68889, 0, 0, 0.77778],
            73: [0, 0.68889, 0, 0, 0.38889],
            74: [0.16667, 0.68889, 0, 0, 0.5],
            75: [0, 0.68889, 0, 0, 0.77778],
            76: [0, 0.68889, 0, 0, 0.66667],
            77: [0, 0.68889, 0, 0, 0.94445],
            78: [0, 0.68889, 0, 0, 0.72222],
            79: [0.16667, 0.68889, 0, 0, 0.77778],
            80: [0, 0.68889, 0, 0, 0.61111],
            81: [0.16667, 0.68889, 0, 0, 0.77778],
            82: [0, 0.68889, 0, 0, 0.72222],
            83: [0, 0.68889, 0, 0, 0.55556],
            84: [0, 0.68889, 0, 0, 0.66667],
            85: [0, 0.68889, 0, 0, 0.72222],
            86: [0, 0.68889, 0, 0, 0.72222],
            87: [0, 0.68889, 0, 0, 1],
            88: [0, 0.68889, 0, 0, 0.72222],
            89: [0, 0.68889, 0, 0, 0.72222],
            90: [0, 0.68889, 0, 0, 0.66667],
            107: [0, 0.68889, 0, 0, 0.55556],
            160: [0, 0, 0, 0, 0.25],
            165: [0, 0.675, 0.025, 0, 0.75],
            174: [0.15559, 0.69224, 0, 0, 0.94666],
            240: [0, 0.68889, 0, 0, 0.55556],
            295: [0, 0.68889, 0, 0, 0.54028],
            710: [0, 0.825, 0, 0, 2.33334],
            732: [0, 0.9, 0, 0, 2.33334],
            770: [0, 0.825, 0, 0, 2.33334],
            771: [0, 0.9, 0, 0, 2.33334],
            989: [0.08167, 0.58167, 0, 0, 0.77778],
            1008: [0, 0.43056, 0.04028, 0, 0.66667],
            8245: [0, 0.54986, 0, 0, 0.275],
            8463: [0, 0.68889, 0, 0, 0.54028],
            8487: [0, 0.68889, 0, 0, 0.72222],
            8498: [0, 0.68889, 0, 0, 0.55556],
            8502: [0, 0.68889, 0, 0, 0.66667],
            8503: [0, 0.68889, 0, 0, 0.44445],
            8504: [0, 0.68889, 0, 0, 0.66667],
            8513: [0, 0.68889, 0, 0, 0.63889],
            8592: [-0.03598, 0.46402, 0, 0, 0.5],
            8594: [-0.03598, 0.46402, 0, 0, 0.5],
            8602: [-0.13313, 0.36687, 0, 0, 1],
            8603: [-0.13313, 0.36687, 0, 0, 1],
            8606: [0.01354, 0.52239, 0, 0, 1],
            8608: [0.01354, 0.52239, 0, 0, 1],
            8610: [0.01354, 0.52239, 0, 0, 1.11111],
            8611: [0.01354, 0.52239, 0, 0, 1.11111],
            8619: [0, 0.54986, 0, 0, 1],
            8620: [0, 0.54986, 0, 0, 1],
            8621: [-0.13313, 0.37788, 0, 0, 1.38889],
            8622: [-0.13313, 0.36687, 0, 0, 1],
            8624: [0, 0.69224, 0, 0, 0.5],
            8625: [0, 0.69224, 0, 0, 0.5],
            8630: [0, 0.43056, 0, 0, 1],
            8631: [0, 0.43056, 0, 0, 1],
            8634: [0.08198, 0.58198, 0, 0, 0.77778],
            8635: [0.08198, 0.58198, 0, 0, 0.77778],
            8638: [0.19444, 0.69224, 0, 0, 0.41667],
            8639: [0.19444, 0.69224, 0, 0, 0.41667],
            8642: [0.19444, 0.69224, 0, 0, 0.41667],
            8643: [0.19444, 0.69224, 0, 0, 0.41667],
            8644: [0.1808, 0.675, 0, 0, 1],
            8646: [0.1808, 0.675, 0, 0, 1],
            8647: [0.1808, 0.675, 0, 0, 1],
            8648: [0.19444, 0.69224, 0, 0, 0.83334],
            8649: [0.1808, 0.675, 0, 0, 1],
            8650: [0.19444, 0.69224, 0, 0, 0.83334],
            8651: [0.01354, 0.52239, 0, 0, 1],
            8652: [0.01354, 0.52239, 0, 0, 1],
            8653: [-0.13313, 0.36687, 0, 0, 1],
            8654: [-0.13313, 0.36687, 0, 0, 1],
            8655: [-0.13313, 0.36687, 0, 0, 1],
            8666: [0.13667, 0.63667, 0, 0, 1],
            8667: [0.13667, 0.63667, 0, 0, 1],
            8669: [-0.13313, 0.37788, 0, 0, 1],
            8672: [-0.064, 0.437, 0, 0, 1.334],
            8674: [-0.064, 0.437, 0, 0, 1.334],
            8705: [0, 0.825, 0, 0, 0.5],
            8708: [0, 0.68889, 0, 0, 0.55556],
            8709: [0.08167, 0.58167, 0, 0, 0.77778],
            8717: [0, 0.43056, 0, 0, 0.42917],
            8722: [-0.03598, 0.46402, 0, 0, 0.5],
            8724: [0.08198, 0.69224, 0, 0, 0.77778],
            8726: [0.08167, 0.58167, 0, 0, 0.77778],
            8733: [0, 0.69224, 0, 0, 0.77778],
            8736: [0, 0.69224, 0, 0, 0.72222],
            8737: [0, 0.69224, 0, 0, 0.72222],
            8738: [0.03517, 0.52239, 0, 0, 0.72222],
            8739: [0.08167, 0.58167, 0, 0, 0.22222],
            8740: [0.25142, 0.74111, 0, 0, 0.27778],
            8741: [0.08167, 0.58167, 0, 0, 0.38889],
            8742: [0.25142, 0.74111, 0, 0, 0.5],
            8756: [0, 0.69224, 0, 0, 0.66667],
            8757: [0, 0.69224, 0, 0, 0.66667],
            8764: [-0.13313, 0.36687, 0, 0, 0.77778],
            8765: [-0.13313, 0.37788, 0, 0, 0.77778],
            8769: [-0.13313, 0.36687, 0, 0, 0.77778],
            8770: [-0.03625, 0.46375, 0, 0, 0.77778],
            8774: [0.30274, 0.79383, 0, 0, 0.77778],
            8776: [-0.01688, 0.48312, 0, 0, 0.77778],
            8778: [0.08167, 0.58167, 0, 0, 0.77778],
            8782: [0.06062, 0.54986, 0, 0, 0.77778],
            8783: [0.06062, 0.54986, 0, 0, 0.77778],
            8785: [0.08198, 0.58198, 0, 0, 0.77778],
            8786: [0.08198, 0.58198, 0, 0, 0.77778],
            8787: [0.08198, 0.58198, 0, 0, 0.77778],
            8790: [0, 0.69224, 0, 0, 0.77778],
            8791: [0.22958, 0.72958, 0, 0, 0.77778],
            8796: [0.08198, 0.91667, 0, 0, 0.77778],
            8806: [0.25583, 0.75583, 0, 0, 0.77778],
            8807: [0.25583, 0.75583, 0, 0, 0.77778],
            8808: [0.25142, 0.75726, 0, 0, 0.77778],
            8809: [0.25142, 0.75726, 0, 0, 0.77778],
            8812: [0.25583, 0.75583, 0, 0, 0.5],
            8814: [0.20576, 0.70576, 0, 0, 0.77778],
            8815: [0.20576, 0.70576, 0, 0, 0.77778],
            8816: [0.30274, 0.79383, 0, 0, 0.77778],
            8817: [0.30274, 0.79383, 0, 0, 0.77778],
            8818: [0.22958, 0.72958, 0, 0, 0.77778],
            8819: [0.22958, 0.72958, 0, 0, 0.77778],
            8822: [0.1808, 0.675, 0, 0, 0.77778],
            8823: [0.1808, 0.675, 0, 0, 0.77778],
            8828: [0.13667, 0.63667, 0, 0, 0.77778],
            8829: [0.13667, 0.63667, 0, 0, 0.77778],
            8830: [0.22958, 0.72958, 0, 0, 0.77778],
            8831: [0.22958, 0.72958, 0, 0, 0.77778],
            8832: [0.20576, 0.70576, 0, 0, 0.77778],
            8833: [0.20576, 0.70576, 0, 0, 0.77778],
            8840: [0.30274, 0.79383, 0, 0, 0.77778],
            8841: [0.30274, 0.79383, 0, 0, 0.77778],
            8842: [0.13597, 0.63597, 0, 0, 0.77778],
            8843: [0.13597, 0.63597, 0, 0, 0.77778],
            8847: [0.03517, 0.54986, 0, 0, 0.77778],
            8848: [0.03517, 0.54986, 0, 0, 0.77778],
            8858: [0.08198, 0.58198, 0, 0, 0.77778],
            8859: [0.08198, 0.58198, 0, 0, 0.77778],
            8861: [0.08198, 0.58198, 0, 0, 0.77778],
            8862: [0, 0.675, 0, 0, 0.77778],
            8863: [0, 0.675, 0, 0, 0.77778],
            8864: [0, 0.675, 0, 0, 0.77778],
            8865: [0, 0.675, 0, 0, 0.77778],
            8872: [0, 0.69224, 0, 0, 0.61111],
            8873: [0, 0.69224, 0, 0, 0.72222],
            8874: [0, 0.69224, 0, 0, 0.88889],
            8876: [0, 0.68889, 0, 0, 0.61111],
            8877: [0, 0.68889, 0, 0, 0.61111],
            8878: [0, 0.68889, 0, 0, 0.72222],
            8879: [0, 0.68889, 0, 0, 0.72222],
            8882: [0.03517, 0.54986, 0, 0, 0.77778],
            8883: [0.03517, 0.54986, 0, 0, 0.77778],
            8884: [0.13667, 0.63667, 0, 0, 0.77778],
            8885: [0.13667, 0.63667, 0, 0, 0.77778],
            8888: [0, 0.54986, 0, 0, 1.11111],
            8890: [0.19444, 0.43056, 0, 0, 0.55556],
            8891: [0.19444, 0.69224, 0, 0, 0.61111],
            8892: [0.19444, 0.69224, 0, 0, 0.61111],
            8901: [0, 0.54986, 0, 0, 0.27778],
            8903: [0.08167, 0.58167, 0, 0, 0.77778],
            8905: [0.08167, 0.58167, 0, 0, 0.77778],
            8906: [0.08167, 0.58167, 0, 0, 0.77778],
            8907: [0, 0.69224, 0, 0, 0.77778],
            8908: [0, 0.69224, 0, 0, 0.77778],
            8909: [-0.03598, 0.46402, 0, 0, 0.77778],
            8910: [0, 0.54986, 0, 0, 0.76042],
            8911: [0, 0.54986, 0, 0, 0.76042],
            8912: [0.03517, 0.54986, 0, 0, 0.77778],
            8913: [0.03517, 0.54986, 0, 0, 0.77778],
            8914: [0, 0.54986, 0, 0, 0.66667],
            8915: [0, 0.54986, 0, 0, 0.66667],
            8916: [0, 0.69224, 0, 0, 0.66667],
            8918: [0.0391, 0.5391, 0, 0, 0.77778],
            8919: [0.0391, 0.5391, 0, 0, 0.77778],
            8920: [0.03517, 0.54986, 0, 0, 1.33334],
            8921: [0.03517, 0.54986, 0, 0, 1.33334],
            8922: [0.38569, 0.88569, 0, 0, 0.77778],
            8923: [0.38569, 0.88569, 0, 0, 0.77778],
            8926: [0.13667, 0.63667, 0, 0, 0.77778],
            8927: [0.13667, 0.63667, 0, 0, 0.77778],
            8928: [0.30274, 0.79383, 0, 0, 0.77778],
            8929: [0.30274, 0.79383, 0, 0, 0.77778],
            8934: [0.23222, 0.74111, 0, 0, 0.77778],
            8935: [0.23222, 0.74111, 0, 0, 0.77778],
            8936: [0.23222, 0.74111, 0, 0, 0.77778],
            8937: [0.23222, 0.74111, 0, 0, 0.77778],
            8938: [0.20576, 0.70576, 0, 0, 0.77778],
            8939: [0.20576, 0.70576, 0, 0, 0.77778],
            8940: [0.30274, 0.79383, 0, 0, 0.77778],
            8941: [0.30274, 0.79383, 0, 0, 0.77778],
            8994: [0.19444, 0.69224, 0, 0, 0.77778],
            8995: [0.19444, 0.69224, 0, 0, 0.77778],
            9416: [0.15559, 0.69224, 0, 0, 0.90222],
            9484: [0, 0.69224, 0, 0, 0.5],
            9488: [0, 0.69224, 0, 0, 0.5],
            9492: [0, 0.37788, 0, 0, 0.5],
            9496: [0, 0.37788, 0, 0, 0.5],
            9585: [0.19444, 0.68889, 0, 0, 0.88889],
            9586: [0.19444, 0.74111, 0, 0, 0.88889],
            9632: [0, 0.675, 0, 0, 0.77778],
            9633: [0, 0.675, 0, 0, 0.77778],
            9650: [0, 0.54986, 0, 0, 0.72222],
            9651: [0, 0.54986, 0, 0, 0.72222],
            9654: [0.03517, 0.54986, 0, 0, 0.77778],
            9660: [0, 0.54986, 0, 0, 0.72222],
            9661: [0, 0.54986, 0, 0, 0.72222],
            9664: [0.03517, 0.54986, 0, 0, 0.77778],
            9674: [0.11111, 0.69224, 0, 0, 0.66667],
            9733: [0.19444, 0.69224, 0, 0, 0.94445],
            10003: [0, 0.69224, 0, 0, 0.83334],
            10016: [0, 0.69224, 0, 0, 0.83334],
            10731: [0.11111, 0.69224, 0, 0, 0.66667],
            10846: [0.19444, 0.75583, 0, 0, 0.61111],
            10877: [0.13667, 0.63667, 0, 0, 0.77778],
            10878: [0.13667, 0.63667, 0, 0, 0.77778],
            10885: [0.25583, 0.75583, 0, 0, 0.77778],
            10886: [0.25583, 0.75583, 0, 0, 0.77778],
            10887: [0.13597, 0.63597, 0, 0, 0.77778],
            10888: [0.13597, 0.63597, 0, 0, 0.77778],
            10889: [0.26167, 0.75726, 0, 0, 0.77778],
            10890: [0.26167, 0.75726, 0, 0, 0.77778],
            10891: [0.48256, 0.98256, 0, 0, 0.77778],
            10892: [0.48256, 0.98256, 0, 0, 0.77778],
            10901: [0.13667, 0.63667, 0, 0, 0.77778],
            10902: [0.13667, 0.63667, 0, 0, 0.77778],
            10933: [0.25142, 0.75726, 0, 0, 0.77778],
            10934: [0.25142, 0.75726, 0, 0, 0.77778],
            10935: [0.26167, 0.75726, 0, 0, 0.77778],
            10936: [0.26167, 0.75726, 0, 0, 0.77778],
            10937: [0.26167, 0.75726, 0, 0, 0.77778],
            10938: [0.26167, 0.75726, 0, 0, 0.77778],
            10949: [0.25583, 0.75583, 0, 0, 0.77778],
            10950: [0.25583, 0.75583, 0, 0, 0.77778],
            10955: [0.28481, 0.79383, 0, 0, 0.77778],
            10956: [0.28481, 0.79383, 0, 0, 0.77778],
            57350: [0.08167, 0.58167, 0, 0, 0.22222],
            57351: [0.08167, 0.58167, 0, 0, 0.38889],
            57352: [0.08167, 0.58167, 0, 0, 0.77778],
            57353: [0, 0.43056, 0.04028, 0, 0.66667],
            57356: [0.25142, 0.75726, 0, 0, 0.77778],
            57357: [0.25142, 0.75726, 0, 0, 0.77778],
            57358: [0.41951, 0.91951, 0, 0, 0.77778],
            57359: [0.30274, 0.79383, 0, 0, 0.77778],
            57360: [0.30274, 0.79383, 0, 0, 0.77778],
            57361: [0.41951, 0.91951, 0, 0, 0.77778],
            57366: [0.25142, 0.75726, 0, 0, 0.77778],
            57367: [0.25142, 0.75726, 0, 0, 0.77778],
            57368: [0.25142, 0.75726, 0, 0, 0.77778],
            57369: [0.25142, 0.75726, 0, 0, 0.77778],
            57370: [0.13597, 0.63597, 0, 0, 0.77778],
            57371: [0.13597, 0.63597, 0, 0, 0.77778],
          },
          "Caligraphic-Regular": {
            32: [0, 0, 0, 0, 0.25],
            65: [0, 0.68333, 0, 0.19445, 0.79847],
            66: [0, 0.68333, 0.03041, 0.13889, 0.65681],
            67: [0, 0.68333, 0.05834, 0.13889, 0.52653],
            68: [0, 0.68333, 0.02778, 0.08334, 0.77139],
            69: [0, 0.68333, 0.08944, 0.11111, 0.52778],
            70: [0, 0.68333, 0.09931, 0.11111, 0.71875],
            71: [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],
            72: [0, 0.68333, 0.00965, 0.11111, 0.84452],
            73: [0, 0.68333, 0.07382, 0, 0.54452],
            74: [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],
            75: [0, 0.68333, 0.01445, 0.05556, 0.76195],
            76: [0, 0.68333, 0, 0.13889, 0.68972],
            77: [0, 0.68333, 0, 0.13889, 1.2009],
            78: [0, 0.68333, 0.14736, 0.08334, 0.82049],
            79: [0, 0.68333, 0.02778, 0.11111, 0.79611],
            80: [0, 0.68333, 0.08222, 0.08334, 0.69556],
            81: [0.09722, 0.68333, 0, 0.11111, 0.81667],
            82: [0, 0.68333, 0, 0.08334, 0.8475],
            83: [0, 0.68333, 0.075, 0.13889, 0.60556],
            84: [0, 0.68333, 0.25417, 0, 0.54464],
            85: [0, 0.68333, 0.09931, 0.08334, 0.62583],
            86: [0, 0.68333, 0.08222, 0, 0.61278],
            87: [0, 0.68333, 0.08222, 0.08334, 0.98778],
            88: [0, 0.68333, 0.14643, 0.13889, 0.7133],
            89: [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],
            90: [0, 0.68333, 0.07944, 0.13889, 0.72473],
            160: [0, 0, 0, 0, 0.25],
          },
          "Fraktur-Regular": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69141, 0, 0, 0.29574],
            34: [0, 0.69141, 0, 0, 0.21471],
            38: [0, 0.69141, 0, 0, 0.73786],
            39: [0, 0.69141, 0, 0, 0.21201],
            40: [0.24982, 0.74947, 0, 0, 0.38865],
            41: [0.24982, 0.74947, 0, 0, 0.38865],
            42: [0, 0.62119, 0, 0, 0.27764],
            43: [0.08319, 0.58283, 0, 0, 0.75623],
            44: [0, 0.10803, 0, 0, 0.27764],
            45: [0.08319, 0.58283, 0, 0, 0.75623],
            46: [0, 0.10803, 0, 0, 0.27764],
            47: [0.24982, 0.74947, 0, 0, 0.50181],
            48: [0, 0.47534, 0, 0, 0.50181],
            49: [0, 0.47534, 0, 0, 0.50181],
            50: [0, 0.47534, 0, 0, 0.50181],
            51: [0.18906, 0.47534, 0, 0, 0.50181],
            52: [0.18906, 0.47534, 0, 0, 0.50181],
            53: [0.18906, 0.47534, 0, 0, 0.50181],
            54: [0, 0.69141, 0, 0, 0.50181],
            55: [0.18906, 0.47534, 0, 0, 0.50181],
            56: [0, 0.69141, 0, 0, 0.50181],
            57: [0.18906, 0.47534, 0, 0, 0.50181],
            58: [0, 0.47534, 0, 0, 0.21606],
            59: [0.12604, 0.47534, 0, 0, 0.21606],
            61: [-0.13099, 0.36866, 0, 0, 0.75623],
            63: [0, 0.69141, 0, 0, 0.36245],
            65: [0, 0.69141, 0, 0, 0.7176],
            66: [0, 0.69141, 0, 0, 0.88397],
            67: [0, 0.69141, 0, 0, 0.61254],
            68: [0, 0.69141, 0, 0, 0.83158],
            69: [0, 0.69141, 0, 0, 0.66278],
            70: [0.12604, 0.69141, 0, 0, 0.61119],
            71: [0, 0.69141, 0, 0, 0.78539],
            72: [0.06302, 0.69141, 0, 0, 0.7203],
            73: [0, 0.69141, 0, 0, 0.55448],
            74: [0.12604, 0.69141, 0, 0, 0.55231],
            75: [0, 0.69141, 0, 0, 0.66845],
            76: [0, 0.69141, 0, 0, 0.66602],
            77: [0, 0.69141, 0, 0, 1.04953],
            78: [0, 0.69141, 0, 0, 0.83212],
            79: [0, 0.69141, 0, 0, 0.82699],
            80: [0.18906, 0.69141, 0, 0, 0.82753],
            81: [0.03781, 0.69141, 0, 0, 0.82699],
            82: [0, 0.69141, 0, 0, 0.82807],
            83: [0, 0.69141, 0, 0, 0.82861],
            84: [0, 0.69141, 0, 0, 0.66899],
            85: [0, 0.69141, 0, 0, 0.64576],
            86: [0, 0.69141, 0, 0, 0.83131],
            87: [0, 0.69141, 0, 0, 1.04602],
            88: [0, 0.69141, 0, 0, 0.71922],
            89: [0.18906, 0.69141, 0, 0, 0.83293],
            90: [0.12604, 0.69141, 0, 0, 0.60201],
            91: [0.24982, 0.74947, 0, 0, 0.27764],
            93: [0.24982, 0.74947, 0, 0, 0.27764],
            94: [0, 0.69141, 0, 0, 0.49965],
            97: [0, 0.47534, 0, 0, 0.50046],
            98: [0, 0.69141, 0, 0, 0.51315],
            99: [0, 0.47534, 0, 0, 0.38946],
            100: [0, 0.62119, 0, 0, 0.49857],
            101: [0, 0.47534, 0, 0, 0.40053],
            102: [0.18906, 0.69141, 0, 0, 0.32626],
            103: [0.18906, 0.47534, 0, 0, 0.5037],
            104: [0.18906, 0.69141, 0, 0, 0.52126],
            105: [0, 0.69141, 0, 0, 0.27899],
            106: [0, 0.69141, 0, 0, 0.28088],
            107: [0, 0.69141, 0, 0, 0.38946],
            108: [0, 0.69141, 0, 0, 0.27953],
            109: [0, 0.47534, 0, 0, 0.76676],
            110: [0, 0.47534, 0, 0, 0.52666],
            111: [0, 0.47534, 0, 0, 0.48885],
            112: [0.18906, 0.52396, 0, 0, 0.50046],
            113: [0.18906, 0.47534, 0, 0, 0.48912],
            114: [0, 0.47534, 0, 0, 0.38919],
            115: [0, 0.47534, 0, 0, 0.44266],
            116: [0, 0.62119, 0, 0, 0.33301],
            117: [0, 0.47534, 0, 0, 0.5172],
            118: [0, 0.52396, 0, 0, 0.5118],
            119: [0, 0.52396, 0, 0, 0.77351],
            120: [0.18906, 0.47534, 0, 0, 0.38865],
            121: [0.18906, 0.47534, 0, 0, 0.49884],
            122: [0.18906, 0.47534, 0, 0, 0.39054],
            160: [0, 0, 0, 0, 0.25],
            8216: [0, 0.69141, 0, 0, 0.21471],
            8217: [0, 0.69141, 0, 0, 0.21471],
            58112: [0, 0.62119, 0, 0, 0.49749],
            58113: [0, 0.62119, 0, 0, 0.4983],
            58114: [0.18906, 0.69141, 0, 0, 0.33328],
            58115: [0.18906, 0.69141, 0, 0, 0.32923],
            58116: [0.18906, 0.47534, 0, 0, 0.50343],
            58117: [0, 0.69141, 0, 0, 0.33301],
            58118: [0, 0.62119, 0, 0, 0.33409],
            58119: [0, 0.47534, 0, 0, 0.50073],
          },
          "Main-Bold": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0, 0, 0.35],
            34: [0, 0.69444, 0, 0, 0.60278],
            35: [0.19444, 0.69444, 0, 0, 0.95833],
            36: [0.05556, 0.75, 0, 0, 0.575],
            37: [0.05556, 0.75, 0, 0, 0.95833],
            38: [0, 0.69444, 0, 0, 0.89444],
            39: [0, 0.69444, 0, 0, 0.31944],
            40: [0.25, 0.75, 0, 0, 0.44722],
            41: [0.25, 0.75, 0, 0, 0.44722],
            42: [0, 0.75, 0, 0, 0.575],
            43: [0.13333, 0.63333, 0, 0, 0.89444],
            44: [0.19444, 0.15556, 0, 0, 0.31944],
            45: [0, 0.44444, 0, 0, 0.38333],
            46: [0, 0.15556, 0, 0, 0.31944],
            47: [0.25, 0.75, 0, 0, 0.575],
            48: [0, 0.64444, 0, 0, 0.575],
            49: [0, 0.64444, 0, 0, 0.575],
            50: [0, 0.64444, 0, 0, 0.575],
            51: [0, 0.64444, 0, 0, 0.575],
            52: [0, 0.64444, 0, 0, 0.575],
            53: [0, 0.64444, 0, 0, 0.575],
            54: [0, 0.64444, 0, 0, 0.575],
            55: [0, 0.64444, 0, 0, 0.575],
            56: [0, 0.64444, 0, 0, 0.575],
            57: [0, 0.64444, 0, 0, 0.575],
            58: [0, 0.44444, 0, 0, 0.31944],
            59: [0.19444, 0.44444, 0, 0, 0.31944],
            60: [0.08556, 0.58556, 0, 0, 0.89444],
            61: [-0.10889, 0.39111, 0, 0, 0.89444],
            62: [0.08556, 0.58556, 0, 0, 0.89444],
            63: [0, 0.69444, 0, 0, 0.54305],
            64: [0, 0.69444, 0, 0, 0.89444],
            65: [0, 0.68611, 0, 0, 0.86944],
            66: [0, 0.68611, 0, 0, 0.81805],
            67: [0, 0.68611, 0, 0, 0.83055],
            68: [0, 0.68611, 0, 0, 0.88194],
            69: [0, 0.68611, 0, 0, 0.75555],
            70: [0, 0.68611, 0, 0, 0.72361],
            71: [0, 0.68611, 0, 0, 0.90416],
            72: [0, 0.68611, 0, 0, 0.9],
            73: [0, 0.68611, 0, 0, 0.43611],
            74: [0, 0.68611, 0, 0, 0.59444],
            75: [0, 0.68611, 0, 0, 0.90138],
            76: [0, 0.68611, 0, 0, 0.69166],
            77: [0, 0.68611, 0, 0, 1.09166],
            78: [0, 0.68611, 0, 0, 0.9],
            79: [0, 0.68611, 0, 0, 0.86388],
            80: [0, 0.68611, 0, 0, 0.78611],
            81: [0.19444, 0.68611, 0, 0, 0.86388],
            82: [0, 0.68611, 0, 0, 0.8625],
            83: [0, 0.68611, 0, 0, 0.63889],
            84: [0, 0.68611, 0, 0, 0.8],
            85: [0, 0.68611, 0, 0, 0.88472],
            86: [0, 0.68611, 0.01597, 0, 0.86944],
            87: [0, 0.68611, 0.01597, 0, 1.18888],
            88: [0, 0.68611, 0, 0, 0.86944],
            89: [0, 0.68611, 0.02875, 0, 0.86944],
            90: [0, 0.68611, 0, 0, 0.70277],
            91: [0.25, 0.75, 0, 0, 0.31944],
            92: [0.25, 0.75, 0, 0, 0.575],
            93: [0.25, 0.75, 0, 0, 0.31944],
            94: [0, 0.69444, 0, 0, 0.575],
            95: [0.31, 0.13444, 0.03194, 0, 0.575],
            97: [0, 0.44444, 0, 0, 0.55902],
            98: [0, 0.69444, 0, 0, 0.63889],
            99: [0, 0.44444, 0, 0, 0.51111],
            100: [0, 0.69444, 0, 0, 0.63889],
            101: [0, 0.44444, 0, 0, 0.52708],
            102: [0, 0.69444, 0.10903, 0, 0.35139],
            103: [0.19444, 0.44444, 0.01597, 0, 0.575],
            104: [0, 0.69444, 0, 0, 0.63889],
            105: [0, 0.69444, 0, 0, 0.31944],
            106: [0.19444, 0.69444, 0, 0, 0.35139],
            107: [0, 0.69444, 0, 0, 0.60694],
            108: [0, 0.69444, 0, 0, 0.31944],
            109: [0, 0.44444, 0, 0, 0.95833],
            110: [0, 0.44444, 0, 0, 0.63889],
            111: [0, 0.44444, 0, 0, 0.575],
            112: [0.19444, 0.44444, 0, 0, 0.63889],
            113: [0.19444, 0.44444, 0, 0, 0.60694],
            114: [0, 0.44444, 0, 0, 0.47361],
            115: [0, 0.44444, 0, 0, 0.45361],
            116: [0, 0.63492, 0, 0, 0.44722],
            117: [0, 0.44444, 0, 0, 0.63889],
            118: [0, 0.44444, 0.01597, 0, 0.60694],
            119: [0, 0.44444, 0.01597, 0, 0.83055],
            120: [0, 0.44444, 0, 0, 0.60694],
            121: [0.19444, 0.44444, 0.01597, 0, 0.60694],
            122: [0, 0.44444, 0, 0, 0.51111],
            123: [0.25, 0.75, 0, 0, 0.575],
            124: [0.25, 0.75, 0, 0, 0.31944],
            125: [0.25, 0.75, 0, 0, 0.575],
            126: [0.35, 0.34444, 0, 0, 0.575],
            160: [0, 0, 0, 0, 0.25],
            163: [0, 0.69444, 0, 0, 0.86853],
            168: [0, 0.69444, 0, 0, 0.575],
            172: [0, 0.44444, 0, 0, 0.76666],
            176: [0, 0.69444, 0, 0, 0.86944],
            177: [0.13333, 0.63333, 0, 0, 0.89444],
            184: [0.17014, 0, 0, 0, 0.51111],
            198: [0, 0.68611, 0, 0, 1.04166],
            215: [0.13333, 0.63333, 0, 0, 0.89444],
            216: [0.04861, 0.73472, 0, 0, 0.89444],
            223: [0, 0.69444, 0, 0, 0.59722],
            230: [0, 0.44444, 0, 0, 0.83055],
            247: [0.13333, 0.63333, 0, 0, 0.89444],
            248: [0.09722, 0.54167, 0, 0, 0.575],
            305: [0, 0.44444, 0, 0, 0.31944],
            338: [0, 0.68611, 0, 0, 1.16944],
            339: [0, 0.44444, 0, 0, 0.89444],
            567: [0.19444, 0.44444, 0, 0, 0.35139],
            710: [0, 0.69444, 0, 0, 0.575],
            711: [0, 0.63194, 0, 0, 0.575],
            713: [0, 0.59611, 0, 0, 0.575],
            714: [0, 0.69444, 0, 0, 0.575],
            715: [0, 0.69444, 0, 0, 0.575],
            728: [0, 0.69444, 0, 0, 0.575],
            729: [0, 0.69444, 0, 0, 0.31944],
            730: [0, 0.69444, 0, 0, 0.86944],
            732: [0, 0.69444, 0, 0, 0.575],
            733: [0, 0.69444, 0, 0, 0.575],
            915: [0, 0.68611, 0, 0, 0.69166],
            916: [0, 0.68611, 0, 0, 0.95833],
            920: [0, 0.68611, 0, 0, 0.89444],
            923: [0, 0.68611, 0, 0, 0.80555],
            926: [0, 0.68611, 0, 0, 0.76666],
            928: [0, 0.68611, 0, 0, 0.9],
            931: [0, 0.68611, 0, 0, 0.83055],
            933: [0, 0.68611, 0, 0, 0.89444],
            934: [0, 0.68611, 0, 0, 0.83055],
            936: [0, 0.68611, 0, 0, 0.89444],
            937: [0, 0.68611, 0, 0, 0.83055],
            8211: [0, 0.44444, 0.03194, 0, 0.575],
            8212: [0, 0.44444, 0.03194, 0, 1.14999],
            8216: [0, 0.69444, 0, 0, 0.31944],
            8217: [0, 0.69444, 0, 0, 0.31944],
            8220: [0, 0.69444, 0, 0, 0.60278],
            8221: [0, 0.69444, 0, 0, 0.60278],
            8224: [0.19444, 0.69444, 0, 0, 0.51111],
            8225: [0.19444, 0.69444, 0, 0, 0.51111],
            8242: [0, 0.55556, 0, 0, 0.34444],
            8407: [0, 0.72444, 0.15486, 0, 0.575],
            8463: [0, 0.69444, 0, 0, 0.66759],
            8465: [0, 0.69444, 0, 0, 0.83055],
            8467: [0, 0.69444, 0, 0, 0.47361],
            8472: [0.19444, 0.44444, 0, 0, 0.74027],
            8476: [0, 0.69444, 0, 0, 0.83055],
            8501: [0, 0.69444, 0, 0, 0.70277],
            8592: [-0.10889, 0.39111, 0, 0, 1.14999],
            8593: [0.19444, 0.69444, 0, 0, 0.575],
            8594: [-0.10889, 0.39111, 0, 0, 1.14999],
            8595: [0.19444, 0.69444, 0, 0, 0.575],
            8596: [-0.10889, 0.39111, 0, 0, 1.14999],
            8597: [0.25, 0.75, 0, 0, 0.575],
            8598: [0.19444, 0.69444, 0, 0, 1.14999],
            8599: [0.19444, 0.69444, 0, 0, 1.14999],
            8600: [0.19444, 0.69444, 0, 0, 1.14999],
            8601: [0.19444, 0.69444, 0, 0, 1.14999],
            8636: [-0.10889, 0.39111, 0, 0, 1.14999],
            8637: [-0.10889, 0.39111, 0, 0, 1.14999],
            8640: [-0.10889, 0.39111, 0, 0, 1.14999],
            8641: [-0.10889, 0.39111, 0, 0, 1.14999],
            8656: [-0.10889, 0.39111, 0, 0, 1.14999],
            8657: [0.19444, 0.69444, 0, 0, 0.70277],
            8658: [-0.10889, 0.39111, 0, 0, 1.14999],
            8659: [0.19444, 0.69444, 0, 0, 0.70277],
            8660: [-0.10889, 0.39111, 0, 0, 1.14999],
            8661: [0.25, 0.75, 0, 0, 0.70277],
            8704: [0, 0.69444, 0, 0, 0.63889],
            8706: [0, 0.69444, 0.06389, 0, 0.62847],
            8707: [0, 0.69444, 0, 0, 0.63889],
            8709: [0.05556, 0.75, 0, 0, 0.575],
            8711: [0, 0.68611, 0, 0, 0.95833],
            8712: [0.08556, 0.58556, 0, 0, 0.76666],
            8715: [0.08556, 0.58556, 0, 0, 0.76666],
            8722: [0.13333, 0.63333, 0, 0, 0.89444],
            8723: [0.13333, 0.63333, 0, 0, 0.89444],
            8725: [0.25, 0.75, 0, 0, 0.575],
            8726: [0.25, 0.75, 0, 0, 0.575],
            8727: [-0.02778, 0.47222, 0, 0, 0.575],
            8728: [-0.02639, 0.47361, 0, 0, 0.575],
            8729: [-0.02639, 0.47361, 0, 0, 0.575],
            8730: [0.18, 0.82, 0, 0, 0.95833],
            8733: [0, 0.44444, 0, 0, 0.89444],
            8734: [0, 0.44444, 0, 0, 1.14999],
            8736: [0, 0.69224, 0, 0, 0.72222],
            8739: [0.25, 0.75, 0, 0, 0.31944],
            8741: [0.25, 0.75, 0, 0, 0.575],
            8743: [0, 0.55556, 0, 0, 0.76666],
            8744: [0, 0.55556, 0, 0, 0.76666],
            8745: [0, 0.55556, 0, 0, 0.76666],
            8746: [0, 0.55556, 0, 0, 0.76666],
            8747: [0.19444, 0.69444, 0.12778, 0, 0.56875],
            8764: [-0.10889, 0.39111, 0, 0, 0.89444],
            8768: [0.19444, 0.69444, 0, 0, 0.31944],
            8771: [0.00222, 0.50222, 0, 0, 0.89444],
            8773: [0.027, 0.638, 0, 0, 0.894],
            8776: [0.02444, 0.52444, 0, 0, 0.89444],
            8781: [0.00222, 0.50222, 0, 0, 0.89444],
            8801: [0.00222, 0.50222, 0, 0, 0.89444],
            8804: [0.19667, 0.69667, 0, 0, 0.89444],
            8805: [0.19667, 0.69667, 0, 0, 0.89444],
            8810: [0.08556, 0.58556, 0, 0, 1.14999],
            8811: [0.08556, 0.58556, 0, 0, 1.14999],
            8826: [0.08556, 0.58556, 0, 0, 0.89444],
            8827: [0.08556, 0.58556, 0, 0, 0.89444],
            8834: [0.08556, 0.58556, 0, 0, 0.89444],
            8835: [0.08556, 0.58556, 0, 0, 0.89444],
            8838: [0.19667, 0.69667, 0, 0, 0.89444],
            8839: [0.19667, 0.69667, 0, 0, 0.89444],
            8846: [0, 0.55556, 0, 0, 0.76666],
            8849: [0.19667, 0.69667, 0, 0, 0.89444],
            8850: [0.19667, 0.69667, 0, 0, 0.89444],
            8851: [0, 0.55556, 0, 0, 0.76666],
            8852: [0, 0.55556, 0, 0, 0.76666],
            8853: [0.13333, 0.63333, 0, 0, 0.89444],
            8854: [0.13333, 0.63333, 0, 0, 0.89444],
            8855: [0.13333, 0.63333, 0, 0, 0.89444],
            8856: [0.13333, 0.63333, 0, 0, 0.89444],
            8857: [0.13333, 0.63333, 0, 0, 0.89444],
            8866: [0, 0.69444, 0, 0, 0.70277],
            8867: [0, 0.69444, 0, 0, 0.70277],
            8868: [0, 0.69444, 0, 0, 0.89444],
            8869: [0, 0.69444, 0, 0, 0.89444],
            8900: [-0.02639, 0.47361, 0, 0, 0.575],
            8901: [-0.02639, 0.47361, 0, 0, 0.31944],
            8902: [-0.02778, 0.47222, 0, 0, 0.575],
            8968: [0.25, 0.75, 0, 0, 0.51111],
            8969: [0.25, 0.75, 0, 0, 0.51111],
            8970: [0.25, 0.75, 0, 0, 0.51111],
            8971: [0.25, 0.75, 0, 0, 0.51111],
            8994: [-0.13889, 0.36111, 0, 0, 1.14999],
            8995: [-0.13889, 0.36111, 0, 0, 1.14999],
            9651: [0.19444, 0.69444, 0, 0, 1.02222],
            9657: [-0.02778, 0.47222, 0, 0, 0.575],
            9661: [0.19444, 0.69444, 0, 0, 1.02222],
            9667: [-0.02778, 0.47222, 0, 0, 0.575],
            9711: [0.19444, 0.69444, 0, 0, 1.14999],
            9824: [0.12963, 0.69444, 0, 0, 0.89444],
            9825: [0.12963, 0.69444, 0, 0, 0.89444],
            9826: [0.12963, 0.69444, 0, 0, 0.89444],
            9827: [0.12963, 0.69444, 0, 0, 0.89444],
            9837: [0, 0.75, 0, 0, 0.44722],
            9838: [0.19444, 0.69444, 0, 0, 0.44722],
            9839: [0.19444, 0.69444, 0, 0, 0.44722],
            10216: [0.25, 0.75, 0, 0, 0.44722],
            10217: [0.25, 0.75, 0, 0, 0.44722],
            10815: [0, 0.68611, 0, 0, 0.9],
            10927: [0.19667, 0.69667, 0, 0, 0.89444],
            10928: [0.19667, 0.69667, 0, 0, 0.89444],
            57376: [0.19444, 0.69444, 0, 0, 0],
          },
          "Main-BoldItalic": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0.11417, 0, 0.38611],
            34: [0, 0.69444, 0.07939, 0, 0.62055],
            35: [0.19444, 0.69444, 0.06833, 0, 0.94444],
            37: [0.05556, 0.75, 0.12861, 0, 0.94444],
            38: [0, 0.69444, 0.08528, 0, 0.88555],
            39: [0, 0.69444, 0.12945, 0, 0.35555],
            40: [0.25, 0.75, 0.15806, 0, 0.47333],
            41: [0.25, 0.75, 0.03306, 0, 0.47333],
            42: [0, 0.75, 0.14333, 0, 0.59111],
            43: [0.10333, 0.60333, 0.03306, 0, 0.88555],
            44: [0.19444, 0.14722, 0, 0, 0.35555],
            45: [0, 0.44444, 0.02611, 0, 0.41444],
            46: [0, 0.14722, 0, 0, 0.35555],
            47: [0.25, 0.75, 0.15806, 0, 0.59111],
            48: [0, 0.64444, 0.13167, 0, 0.59111],
            49: [0, 0.64444, 0.13167, 0, 0.59111],
            50: [0, 0.64444, 0.13167, 0, 0.59111],
            51: [0, 0.64444, 0.13167, 0, 0.59111],
            52: [0.19444, 0.64444, 0.13167, 0, 0.59111],
            53: [0, 0.64444, 0.13167, 0, 0.59111],
            54: [0, 0.64444, 0.13167, 0, 0.59111],
            55: [0.19444, 0.64444, 0.13167, 0, 0.59111],
            56: [0, 0.64444, 0.13167, 0, 0.59111],
            57: [0, 0.64444, 0.13167, 0, 0.59111],
            58: [0, 0.44444, 0.06695, 0, 0.35555],
            59: [0.19444, 0.44444, 0.06695, 0, 0.35555],
            61: [-0.10889, 0.39111, 0.06833, 0, 0.88555],
            63: [0, 0.69444, 0.11472, 0, 0.59111],
            64: [0, 0.69444, 0.09208, 0, 0.88555],
            65: [0, 0.68611, 0, 0, 0.86555],
            66: [0, 0.68611, 0.0992, 0, 0.81666],
            67: [0, 0.68611, 0.14208, 0, 0.82666],
            68: [0, 0.68611, 0.09062, 0, 0.87555],
            69: [0, 0.68611, 0.11431, 0, 0.75666],
            70: [0, 0.68611, 0.12903, 0, 0.72722],
            71: [0, 0.68611, 0.07347, 0, 0.89527],
            72: [0, 0.68611, 0.17208, 0, 0.8961],
            73: [0, 0.68611, 0.15681, 0, 0.47166],
            74: [0, 0.68611, 0.145, 0, 0.61055],
            75: [0, 0.68611, 0.14208, 0, 0.89499],
            76: [0, 0.68611, 0, 0, 0.69777],
            77: [0, 0.68611, 0.17208, 0, 1.07277],
            78: [0, 0.68611, 0.17208, 0, 0.8961],
            79: [0, 0.68611, 0.09062, 0, 0.85499],
            80: [0, 0.68611, 0.0992, 0, 0.78721],
            81: [0.19444, 0.68611, 0.09062, 0, 0.85499],
            82: [0, 0.68611, 0.02559, 0, 0.85944],
            83: [0, 0.68611, 0.11264, 0, 0.64999],
            84: [0, 0.68611, 0.12903, 0, 0.7961],
            85: [0, 0.68611, 0.17208, 0, 0.88083],
            86: [0, 0.68611, 0.18625, 0, 0.86555],
            87: [0, 0.68611, 0.18625, 0, 1.15999],
            88: [0, 0.68611, 0.15681, 0, 0.86555],
            89: [0, 0.68611, 0.19803, 0, 0.86555],
            90: [0, 0.68611, 0.14208, 0, 0.70888],
            91: [0.25, 0.75, 0.1875, 0, 0.35611],
            93: [0.25, 0.75, 0.09972, 0, 0.35611],
            94: [0, 0.69444, 0.06709, 0, 0.59111],
            95: [0.31, 0.13444, 0.09811, 0, 0.59111],
            97: [0, 0.44444, 0.09426, 0, 0.59111],
            98: [0, 0.69444, 0.07861, 0, 0.53222],
            99: [0, 0.44444, 0.05222, 0, 0.53222],
            100: [0, 0.69444, 0.10861, 0, 0.59111],
            101: [0, 0.44444, 0.085, 0, 0.53222],
            102: [0.19444, 0.69444, 0.21778, 0, 0.4],
            103: [0.19444, 0.44444, 0.105, 0, 0.53222],
            104: [0, 0.69444, 0.09426, 0, 0.59111],
            105: [0, 0.69326, 0.11387, 0, 0.35555],
            106: [0.19444, 0.69326, 0.1672, 0, 0.35555],
            107: [0, 0.69444, 0.11111, 0, 0.53222],
            108: [0, 0.69444, 0.10861, 0, 0.29666],
            109: [0, 0.44444, 0.09426, 0, 0.94444],
            110: [0, 0.44444, 0.09426, 0, 0.64999],
            111: [0, 0.44444, 0.07861, 0, 0.59111],
            112: [0.19444, 0.44444, 0.07861, 0, 0.59111],
            113: [0.19444, 0.44444, 0.105, 0, 0.53222],
            114: [0, 0.44444, 0.11111, 0, 0.50167],
            115: [0, 0.44444, 0.08167, 0, 0.48694],
            116: [0, 0.63492, 0.09639, 0, 0.385],
            117: [0, 0.44444, 0.09426, 0, 0.62055],
            118: [0, 0.44444, 0.11111, 0, 0.53222],
            119: [0, 0.44444, 0.11111, 0, 0.76777],
            120: [0, 0.44444, 0.12583, 0, 0.56055],
            121: [0.19444, 0.44444, 0.105, 0, 0.56166],
            122: [0, 0.44444, 0.13889, 0, 0.49055],
            126: [0.35, 0.34444, 0.11472, 0, 0.59111],
            160: [0, 0, 0, 0, 0.25],
            168: [0, 0.69444, 0.11473, 0, 0.59111],
            176: [0, 0.69444, 0, 0, 0.94888],
            184: [0.17014, 0, 0, 0, 0.53222],
            198: [0, 0.68611, 0.11431, 0, 1.02277],
            216: [0.04861, 0.73472, 0.09062, 0, 0.88555],
            223: [0.19444, 0.69444, 0.09736, 0, 0.665],
            230: [0, 0.44444, 0.085, 0, 0.82666],
            248: [0.09722, 0.54167, 0.09458, 0, 0.59111],
            305: [0, 0.44444, 0.09426, 0, 0.35555],
            338: [0, 0.68611, 0.11431, 0, 1.14054],
            339: [0, 0.44444, 0.085, 0, 0.82666],
            567: [0.19444, 0.44444, 0.04611, 0, 0.385],
            710: [0, 0.69444, 0.06709, 0, 0.59111],
            711: [0, 0.63194, 0.08271, 0, 0.59111],
            713: [0, 0.59444, 0.10444, 0, 0.59111],
            714: [0, 0.69444, 0.08528, 0, 0.59111],
            715: [0, 0.69444, 0, 0, 0.59111],
            728: [0, 0.69444, 0.10333, 0, 0.59111],
            729: [0, 0.69444, 0.12945, 0, 0.35555],
            730: [0, 0.69444, 0, 0, 0.94888],
            732: [0, 0.69444, 0.11472, 0, 0.59111],
            733: [0, 0.69444, 0.11472, 0, 0.59111],
            915: [0, 0.68611, 0.12903, 0, 0.69777],
            916: [0, 0.68611, 0, 0, 0.94444],
            920: [0, 0.68611, 0.09062, 0, 0.88555],
            923: [0, 0.68611, 0, 0, 0.80666],
            926: [0, 0.68611, 0.15092, 0, 0.76777],
            928: [0, 0.68611, 0.17208, 0, 0.8961],
            931: [0, 0.68611, 0.11431, 0, 0.82666],
            933: [0, 0.68611, 0.10778, 0, 0.88555],
            934: [0, 0.68611, 0.05632, 0, 0.82666],
            936: [0, 0.68611, 0.10778, 0, 0.88555],
            937: [0, 0.68611, 0.0992, 0, 0.82666],
            8211: [0, 0.44444, 0.09811, 0, 0.59111],
            8212: [0, 0.44444, 0.09811, 0, 1.18221],
            8216: [0, 0.69444, 0.12945, 0, 0.35555],
            8217: [0, 0.69444, 0.12945, 0, 0.35555],
            8220: [0, 0.69444, 0.16772, 0, 0.62055],
            8221: [0, 0.69444, 0.07939, 0, 0.62055],
          },
          "Main-Italic": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0.12417, 0, 0.30667],
            34: [0, 0.69444, 0.06961, 0, 0.51444],
            35: [0.19444, 0.69444, 0.06616, 0, 0.81777],
            37: [0.05556, 0.75, 0.13639, 0, 0.81777],
            38: [0, 0.69444, 0.09694, 0, 0.76666],
            39: [0, 0.69444, 0.12417, 0, 0.30667],
            40: [0.25, 0.75, 0.16194, 0, 0.40889],
            41: [0.25, 0.75, 0.03694, 0, 0.40889],
            42: [0, 0.75, 0.14917, 0, 0.51111],
            43: [0.05667, 0.56167, 0.03694, 0, 0.76666],
            44: [0.19444, 0.10556, 0, 0, 0.30667],
            45: [0, 0.43056, 0.02826, 0, 0.35778],
            46: [0, 0.10556, 0, 0, 0.30667],
            47: [0.25, 0.75, 0.16194, 0, 0.51111],
            48: [0, 0.64444, 0.13556, 0, 0.51111],
            49: [0, 0.64444, 0.13556, 0, 0.51111],
            50: [0, 0.64444, 0.13556, 0, 0.51111],
            51: [0, 0.64444, 0.13556, 0, 0.51111],
            52: [0.19444, 0.64444, 0.13556, 0, 0.51111],
            53: [0, 0.64444, 0.13556, 0, 0.51111],
            54: [0, 0.64444, 0.13556, 0, 0.51111],
            55: [0.19444, 0.64444, 0.13556, 0, 0.51111],
            56: [0, 0.64444, 0.13556, 0, 0.51111],
            57: [0, 0.64444, 0.13556, 0, 0.51111],
            58: [0, 0.43056, 0.0582, 0, 0.30667],
            59: [0.19444, 0.43056, 0.0582, 0, 0.30667],
            61: [-0.13313, 0.36687, 0.06616, 0, 0.76666],
            63: [0, 0.69444, 0.1225, 0, 0.51111],
            64: [0, 0.69444, 0.09597, 0, 0.76666],
            65: [0, 0.68333, 0, 0, 0.74333],
            66: [0, 0.68333, 0.10257, 0, 0.70389],
            67: [0, 0.68333, 0.14528, 0, 0.71555],
            68: [0, 0.68333, 0.09403, 0, 0.755],
            69: [0, 0.68333, 0.12028, 0, 0.67833],
            70: [0, 0.68333, 0.13305, 0, 0.65277],
            71: [0, 0.68333, 0.08722, 0, 0.77361],
            72: [0, 0.68333, 0.16389, 0, 0.74333],
            73: [0, 0.68333, 0.15806, 0, 0.38555],
            74: [0, 0.68333, 0.14028, 0, 0.525],
            75: [0, 0.68333, 0.14528, 0, 0.76888],
            76: [0, 0.68333, 0, 0, 0.62722],
            77: [0, 0.68333, 0.16389, 0, 0.89666],
            78: [0, 0.68333, 0.16389, 0, 0.74333],
            79: [0, 0.68333, 0.09403, 0, 0.76666],
            80: [0, 0.68333, 0.10257, 0, 0.67833],
            81: [0.19444, 0.68333, 0.09403, 0, 0.76666],
            82: [0, 0.68333, 0.03868, 0, 0.72944],
            83: [0, 0.68333, 0.11972, 0, 0.56222],
            84: [0, 0.68333, 0.13305, 0, 0.71555],
            85: [0, 0.68333, 0.16389, 0, 0.74333],
            86: [0, 0.68333, 0.18361, 0, 0.74333],
            87: [0, 0.68333, 0.18361, 0, 0.99888],
            88: [0, 0.68333, 0.15806, 0, 0.74333],
            89: [0, 0.68333, 0.19383, 0, 0.74333],
            90: [0, 0.68333, 0.14528, 0, 0.61333],
            91: [0.25, 0.75, 0.1875, 0, 0.30667],
            93: [0.25, 0.75, 0.10528, 0, 0.30667],
            94: [0, 0.69444, 0.06646, 0, 0.51111],
            95: [0.31, 0.12056, 0.09208, 0, 0.51111],
            97: [0, 0.43056, 0.07671, 0, 0.51111],
            98: [0, 0.69444, 0.06312, 0, 0.46],
            99: [0, 0.43056, 0.05653, 0, 0.46],
            100: [0, 0.69444, 0.10333, 0, 0.51111],
            101: [0, 0.43056, 0.07514, 0, 0.46],
            102: [0.19444, 0.69444, 0.21194, 0, 0.30667],
            103: [0.19444, 0.43056, 0.08847, 0, 0.46],
            104: [0, 0.69444, 0.07671, 0, 0.51111],
            105: [0, 0.65536, 0.1019, 0, 0.30667],
            106: [0.19444, 0.65536, 0.14467, 0, 0.30667],
            107: [0, 0.69444, 0.10764, 0, 0.46],
            108: [0, 0.69444, 0.10333, 0, 0.25555],
            109: [0, 0.43056, 0.07671, 0, 0.81777],
            110: [0, 0.43056, 0.07671, 0, 0.56222],
            111: [0, 0.43056, 0.06312, 0, 0.51111],
            112: [0.19444, 0.43056, 0.06312, 0, 0.51111],
            113: [0.19444, 0.43056, 0.08847, 0, 0.46],
            114: [0, 0.43056, 0.10764, 0, 0.42166],
            115: [0, 0.43056, 0.08208, 0, 0.40889],
            116: [0, 0.61508, 0.09486, 0, 0.33222],
            117: [0, 0.43056, 0.07671, 0, 0.53666],
            118: [0, 0.43056, 0.10764, 0, 0.46],
            119: [0, 0.43056, 0.10764, 0, 0.66444],
            120: [0, 0.43056, 0.12042, 0, 0.46389],
            121: [0.19444, 0.43056, 0.08847, 0, 0.48555],
            122: [0, 0.43056, 0.12292, 0, 0.40889],
            126: [0.35, 0.31786, 0.11585, 0, 0.51111],
            160: [0, 0, 0, 0, 0.25],
            168: [0, 0.66786, 0.10474, 0, 0.51111],
            176: [0, 0.69444, 0, 0, 0.83129],
            184: [0.17014, 0, 0, 0, 0.46],
            198: [0, 0.68333, 0.12028, 0, 0.88277],
            216: [0.04861, 0.73194, 0.09403, 0, 0.76666],
            223: [0.19444, 0.69444, 0.10514, 0, 0.53666],
            230: [0, 0.43056, 0.07514, 0, 0.71555],
            248: [0.09722, 0.52778, 0.09194, 0, 0.51111],
            338: [0, 0.68333, 0.12028, 0, 0.98499],
            339: [0, 0.43056, 0.07514, 0, 0.71555],
            710: [0, 0.69444, 0.06646, 0, 0.51111],
            711: [0, 0.62847, 0.08295, 0, 0.51111],
            713: [0, 0.56167, 0.10333, 0, 0.51111],
            714: [0, 0.69444, 0.09694, 0, 0.51111],
            715: [0, 0.69444, 0, 0, 0.51111],
            728: [0, 0.69444, 0.10806, 0, 0.51111],
            729: [0, 0.66786, 0.11752, 0, 0.30667],
            730: [0, 0.69444, 0, 0, 0.83129],
            732: [0, 0.66786, 0.11585, 0, 0.51111],
            733: [0, 0.69444, 0.1225, 0, 0.51111],
            915: [0, 0.68333, 0.13305, 0, 0.62722],
            916: [0, 0.68333, 0, 0, 0.81777],
            920: [0, 0.68333, 0.09403, 0, 0.76666],
            923: [0, 0.68333, 0, 0, 0.69222],
            926: [0, 0.68333, 0.15294, 0, 0.66444],
            928: [0, 0.68333, 0.16389, 0, 0.74333],
            931: [0, 0.68333, 0.12028, 0, 0.71555],
            933: [0, 0.68333, 0.11111, 0, 0.76666],
            934: [0, 0.68333, 0.05986, 0, 0.71555],
            936: [0, 0.68333, 0.11111, 0, 0.76666],
            937: [0, 0.68333, 0.10257, 0, 0.71555],
            8211: [0, 0.43056, 0.09208, 0, 0.51111],
            8212: [0, 0.43056, 0.09208, 0, 1.02222],
            8216: [0, 0.69444, 0.12417, 0, 0.30667],
            8217: [0, 0.69444, 0.12417, 0, 0.30667],
            8220: [0, 0.69444, 0.1685, 0, 0.51444],
            8221: [0, 0.69444, 0.06961, 0, 0.51444],
            8463: [0, 0.68889, 0, 0, 0.54028],
          },
          "Main-Regular": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0, 0, 0.27778],
            34: [0, 0.69444, 0, 0, 0.5],
            35: [0.19444, 0.69444, 0, 0, 0.83334],
            36: [0.05556, 0.75, 0, 0, 0.5],
            37: [0.05556, 0.75, 0, 0, 0.83334],
            38: [0, 0.69444, 0, 0, 0.77778],
            39: [0, 0.69444, 0, 0, 0.27778],
            40: [0.25, 0.75, 0, 0, 0.38889],
            41: [0.25, 0.75, 0, 0, 0.38889],
            42: [0, 0.75, 0, 0, 0.5],
            43: [0.08333, 0.58333, 0, 0, 0.77778],
            44: [0.19444, 0.10556, 0, 0, 0.27778],
            45: [0, 0.43056, 0, 0, 0.33333],
            46: [0, 0.10556, 0, 0, 0.27778],
            47: [0.25, 0.75, 0, 0, 0.5],
            48: [0, 0.64444, 0, 0, 0.5],
            49: [0, 0.64444, 0, 0, 0.5],
            50: [0, 0.64444, 0, 0, 0.5],
            51: [0, 0.64444, 0, 0, 0.5],
            52: [0, 0.64444, 0, 0, 0.5],
            53: [0, 0.64444, 0, 0, 0.5],
            54: [0, 0.64444, 0, 0, 0.5],
            55: [0, 0.64444, 0, 0, 0.5],
            56: [0, 0.64444, 0, 0, 0.5],
            57: [0, 0.64444, 0, 0, 0.5],
            58: [0, 0.43056, 0, 0, 0.27778],
            59: [0.19444, 0.43056, 0, 0, 0.27778],
            60: [0.0391, 0.5391, 0, 0, 0.77778],
            61: [-0.13313, 0.36687, 0, 0, 0.77778],
            62: [0.0391, 0.5391, 0, 0, 0.77778],
            63: [0, 0.69444, 0, 0, 0.47222],
            64: [0, 0.69444, 0, 0, 0.77778],
            65: [0, 0.68333, 0, 0, 0.75],
            66: [0, 0.68333, 0, 0, 0.70834],
            67: [0, 0.68333, 0, 0, 0.72222],
            68: [0, 0.68333, 0, 0, 0.76389],
            69: [0, 0.68333, 0, 0, 0.68056],
            70: [0, 0.68333, 0, 0, 0.65278],
            71: [0, 0.68333, 0, 0, 0.78472],
            72: [0, 0.68333, 0, 0, 0.75],
            73: [0, 0.68333, 0, 0, 0.36111],
            74: [0, 0.68333, 0, 0, 0.51389],
            75: [0, 0.68333, 0, 0, 0.77778],
            76: [0, 0.68333, 0, 0, 0.625],
            77: [0, 0.68333, 0, 0, 0.91667],
            78: [0, 0.68333, 0, 0, 0.75],
            79: [0, 0.68333, 0, 0, 0.77778],
            80: [0, 0.68333, 0, 0, 0.68056],
            81: [0.19444, 0.68333, 0, 0, 0.77778],
            82: [0, 0.68333, 0, 0, 0.73611],
            83: [0, 0.68333, 0, 0, 0.55556],
            84: [0, 0.68333, 0, 0, 0.72222],
            85: [0, 0.68333, 0, 0, 0.75],
            86: [0, 0.68333, 0.01389, 0, 0.75],
            87: [0, 0.68333, 0.01389, 0, 1.02778],
            88: [0, 0.68333, 0, 0, 0.75],
            89: [0, 0.68333, 0.025, 0, 0.75],
            90: [0, 0.68333, 0, 0, 0.61111],
            91: [0.25, 0.75, 0, 0, 0.27778],
            92: [0.25, 0.75, 0, 0, 0.5],
            93: [0.25, 0.75, 0, 0, 0.27778],
            94: [0, 0.69444, 0, 0, 0.5],
            95: [0.31, 0.12056, 0.02778, 0, 0.5],
            97: [0, 0.43056, 0, 0, 0.5],
            98: [0, 0.69444, 0, 0, 0.55556],
            99: [0, 0.43056, 0, 0, 0.44445],
            100: [0, 0.69444, 0, 0, 0.55556],
            101: [0, 0.43056, 0, 0, 0.44445],
            102: [0, 0.69444, 0.07778, 0, 0.30556],
            103: [0.19444, 0.43056, 0.01389, 0, 0.5],
            104: [0, 0.69444, 0, 0, 0.55556],
            105: [0, 0.66786, 0, 0, 0.27778],
            106: [0.19444, 0.66786, 0, 0, 0.30556],
            107: [0, 0.69444, 0, 0, 0.52778],
            108: [0, 0.69444, 0, 0, 0.27778],
            109: [0, 0.43056, 0, 0, 0.83334],
            110: [0, 0.43056, 0, 0, 0.55556],
            111: [0, 0.43056, 0, 0, 0.5],
            112: [0.19444, 0.43056, 0, 0, 0.55556],
            113: [0.19444, 0.43056, 0, 0, 0.52778],
            114: [0, 0.43056, 0, 0, 0.39167],
            115: [0, 0.43056, 0, 0, 0.39445],
            116: [0, 0.61508, 0, 0, 0.38889],
            117: [0, 0.43056, 0, 0, 0.55556],
            118: [0, 0.43056, 0.01389, 0, 0.52778],
            119: [0, 0.43056, 0.01389, 0, 0.72222],
            120: [0, 0.43056, 0, 0, 0.52778],
            121: [0.19444, 0.43056, 0.01389, 0, 0.52778],
            122: [0, 0.43056, 0, 0, 0.44445],
            123: [0.25, 0.75, 0, 0, 0.5],
            124: [0.25, 0.75, 0, 0, 0.27778],
            125: [0.25, 0.75, 0, 0, 0.5],
            126: [0.35, 0.31786, 0, 0, 0.5],
            160: [0, 0, 0, 0, 0.25],
            163: [0, 0.69444, 0, 0, 0.76909],
            167: [0.19444, 0.69444, 0, 0, 0.44445],
            168: [0, 0.66786, 0, 0, 0.5],
            172: [0, 0.43056, 0, 0, 0.66667],
            176: [0, 0.69444, 0, 0, 0.75],
            177: [0.08333, 0.58333, 0, 0, 0.77778],
            182: [0.19444, 0.69444, 0, 0, 0.61111],
            184: [0.17014, 0, 0, 0, 0.44445],
            198: [0, 0.68333, 0, 0, 0.90278],
            215: [0.08333, 0.58333, 0, 0, 0.77778],
            216: [0.04861, 0.73194, 0, 0, 0.77778],
            223: [0, 0.69444, 0, 0, 0.5],
            230: [0, 0.43056, 0, 0, 0.72222],
            247: [0.08333, 0.58333, 0, 0, 0.77778],
            248: [0.09722, 0.52778, 0, 0, 0.5],
            305: [0, 0.43056, 0, 0, 0.27778],
            338: [0, 0.68333, 0, 0, 1.01389],
            339: [0, 0.43056, 0, 0, 0.77778],
            567: [0.19444, 0.43056, 0, 0, 0.30556],
            710: [0, 0.69444, 0, 0, 0.5],
            711: [0, 0.62847, 0, 0, 0.5],
            713: [0, 0.56778, 0, 0, 0.5],
            714: [0, 0.69444, 0, 0, 0.5],
            715: [0, 0.69444, 0, 0, 0.5],
            728: [0, 0.69444, 0, 0, 0.5],
            729: [0, 0.66786, 0, 0, 0.27778],
            730: [0, 0.69444, 0, 0, 0.75],
            732: [0, 0.66786, 0, 0, 0.5],
            733: [0, 0.69444, 0, 0, 0.5],
            915: [0, 0.68333, 0, 0, 0.625],
            916: [0, 0.68333, 0, 0, 0.83334],
            920: [0, 0.68333, 0, 0, 0.77778],
            923: [0, 0.68333, 0, 0, 0.69445],
            926: [0, 0.68333, 0, 0, 0.66667],
            928: [0, 0.68333, 0, 0, 0.75],
            931: [0, 0.68333, 0, 0, 0.72222],
            933: [0, 0.68333, 0, 0, 0.77778],
            934: [0, 0.68333, 0, 0, 0.72222],
            936: [0, 0.68333, 0, 0, 0.77778],
            937: [0, 0.68333, 0, 0, 0.72222],
            8211: [0, 0.43056, 0.02778, 0, 0.5],
            8212: [0, 0.43056, 0.02778, 0, 1],
            8216: [0, 0.69444, 0, 0, 0.27778],
            8217: [0, 0.69444, 0, 0, 0.27778],
            8220: [0, 0.69444, 0, 0, 0.5],
            8221: [0, 0.69444, 0, 0, 0.5],
            8224: [0.19444, 0.69444, 0, 0, 0.44445],
            8225: [0.19444, 0.69444, 0, 0, 0.44445],
            8230: [0, 0.123, 0, 0, 1.172],
            8242: [0, 0.55556, 0, 0, 0.275],
            8407: [0, 0.71444, 0.15382, 0, 0.5],
            8463: [0, 0.68889, 0, 0, 0.54028],
            8465: [0, 0.69444, 0, 0, 0.72222],
            8467: [0, 0.69444, 0, 0.11111, 0.41667],
            8472: [0.19444, 0.43056, 0, 0.11111, 0.63646],
            8476: [0, 0.69444, 0, 0, 0.72222],
            8501: [0, 0.69444, 0, 0, 0.61111],
            8592: [-0.13313, 0.36687, 0, 0, 1],
            8593: [0.19444, 0.69444, 0, 0, 0.5],
            8594: [-0.13313, 0.36687, 0, 0, 1],
            8595: [0.19444, 0.69444, 0, 0, 0.5],
            8596: [-0.13313, 0.36687, 0, 0, 1],
            8597: [0.25, 0.75, 0, 0, 0.5],
            8598: [0.19444, 0.69444, 0, 0, 1],
            8599: [0.19444, 0.69444, 0, 0, 1],
            8600: [0.19444, 0.69444, 0, 0, 1],
            8601: [0.19444, 0.69444, 0, 0, 1],
            8614: [0.011, 0.511, 0, 0, 1],
            8617: [0.011, 0.511, 0, 0, 1.126],
            8618: [0.011, 0.511, 0, 0, 1.126],
            8636: [-0.13313, 0.36687, 0, 0, 1],
            8637: [-0.13313, 0.36687, 0, 0, 1],
            8640: [-0.13313, 0.36687, 0, 0, 1],
            8641: [-0.13313, 0.36687, 0, 0, 1],
            8652: [0.011, 0.671, 0, 0, 1],
            8656: [-0.13313, 0.36687, 0, 0, 1],
            8657: [0.19444, 0.69444, 0, 0, 0.61111],
            8658: [-0.13313, 0.36687, 0, 0, 1],
            8659: [0.19444, 0.69444, 0, 0, 0.61111],
            8660: [-0.13313, 0.36687, 0, 0, 1],
            8661: [0.25, 0.75, 0, 0, 0.61111],
            8704: [0, 0.69444, 0, 0, 0.55556],
            8706: [0, 0.69444, 0.05556, 0.08334, 0.5309],
            8707: [0, 0.69444, 0, 0, 0.55556],
            8709: [0.05556, 0.75, 0, 0, 0.5],
            8711: [0, 0.68333, 0, 0, 0.83334],
            8712: [0.0391, 0.5391, 0, 0, 0.66667],
            8715: [0.0391, 0.5391, 0, 0, 0.66667],
            8722: [0.08333, 0.58333, 0, 0, 0.77778],
            8723: [0.08333, 0.58333, 0, 0, 0.77778],
            8725: [0.25, 0.75, 0, 0, 0.5],
            8726: [0.25, 0.75, 0, 0, 0.5],
            8727: [-0.03472, 0.46528, 0, 0, 0.5],
            8728: [-0.05555, 0.44445, 0, 0, 0.5],
            8729: [-0.05555, 0.44445, 0, 0, 0.5],
            8730: [0.2, 0.8, 0, 0, 0.83334],
            8733: [0, 0.43056, 0, 0, 0.77778],
            8734: [0, 0.43056, 0, 0, 1],
            8736: [0, 0.69224, 0, 0, 0.72222],
            8739: [0.25, 0.75, 0, 0, 0.27778],
            8741: [0.25, 0.75, 0, 0, 0.5],
            8743: [0, 0.55556, 0, 0, 0.66667],
            8744: [0, 0.55556, 0, 0, 0.66667],
            8745: [0, 0.55556, 0, 0, 0.66667],
            8746: [0, 0.55556, 0, 0, 0.66667],
            8747: [0.19444, 0.69444, 0.11111, 0, 0.41667],
            8764: [-0.13313, 0.36687, 0, 0, 0.77778],
            8768: [0.19444, 0.69444, 0, 0, 0.27778],
            8771: [-0.03625, 0.46375, 0, 0, 0.77778],
            8773: [-0.022, 0.589, 0, 0, 0.778],
            8776: [-0.01688, 0.48312, 0, 0, 0.77778],
            8781: [-0.03625, 0.46375, 0, 0, 0.77778],
            8784: [-0.133, 0.673, 0, 0, 0.778],
            8801: [-0.03625, 0.46375, 0, 0, 0.77778],
            8804: [0.13597, 0.63597, 0, 0, 0.77778],
            8805: [0.13597, 0.63597, 0, 0, 0.77778],
            8810: [0.0391, 0.5391, 0, 0, 1],
            8811: [0.0391, 0.5391, 0, 0, 1],
            8826: [0.0391, 0.5391, 0, 0, 0.77778],
            8827: [0.0391, 0.5391, 0, 0, 0.77778],
            8834: [0.0391, 0.5391, 0, 0, 0.77778],
            8835: [0.0391, 0.5391, 0, 0, 0.77778],
            8838: [0.13597, 0.63597, 0, 0, 0.77778],
            8839: [0.13597, 0.63597, 0, 0, 0.77778],
            8846: [0, 0.55556, 0, 0, 0.66667],
            8849: [0.13597, 0.63597, 0, 0, 0.77778],
            8850: [0.13597, 0.63597, 0, 0, 0.77778],
            8851: [0, 0.55556, 0, 0, 0.66667],
            8852: [0, 0.55556, 0, 0, 0.66667],
            8853: [0.08333, 0.58333, 0, 0, 0.77778],
            8854: [0.08333, 0.58333, 0, 0, 0.77778],
            8855: [0.08333, 0.58333, 0, 0, 0.77778],
            8856: [0.08333, 0.58333, 0, 0, 0.77778],
            8857: [0.08333, 0.58333, 0, 0, 0.77778],
            8866: [0, 0.69444, 0, 0, 0.61111],
            8867: [0, 0.69444, 0, 0, 0.61111],
            8868: [0, 0.69444, 0, 0, 0.77778],
            8869: [0, 0.69444, 0, 0, 0.77778],
            8872: [0.249, 0.75, 0, 0, 0.867],
            8900: [-0.05555, 0.44445, 0, 0, 0.5],
            8901: [-0.05555, 0.44445, 0, 0, 0.27778],
            8902: [-0.03472, 0.46528, 0, 0, 0.5],
            8904: [0.005, 0.505, 0, 0, 0.9],
            8942: [0.03, 0.903, 0, 0, 0.278],
            8943: [-0.19, 0.313, 0, 0, 1.172],
            8945: [-0.1, 0.823, 0, 0, 1.282],
            8968: [0.25, 0.75, 0, 0, 0.44445],
            8969: [0.25, 0.75, 0, 0, 0.44445],
            8970: [0.25, 0.75, 0, 0, 0.44445],
            8971: [0.25, 0.75, 0, 0, 0.44445],
            8994: [-0.14236, 0.35764, 0, 0, 1],
            8995: [-0.14236, 0.35764, 0, 0, 1],
            9136: [0.244, 0.744, 0, 0, 0.412],
            9137: [0.244, 0.745, 0, 0, 0.412],
            9651: [0.19444, 0.69444, 0, 0, 0.88889],
            9657: [-0.03472, 0.46528, 0, 0, 0.5],
            9661: [0.19444, 0.69444, 0, 0, 0.88889],
            9667: [-0.03472, 0.46528, 0, 0, 0.5],
            9711: [0.19444, 0.69444, 0, 0, 1],
            9824: [0.12963, 0.69444, 0, 0, 0.77778],
            9825: [0.12963, 0.69444, 0, 0, 0.77778],
            9826: [0.12963, 0.69444, 0, 0, 0.77778],
            9827: [0.12963, 0.69444, 0, 0, 0.77778],
            9837: [0, 0.75, 0, 0, 0.38889],
            9838: [0.19444, 0.69444, 0, 0, 0.38889],
            9839: [0.19444, 0.69444, 0, 0, 0.38889],
            10216: [0.25, 0.75, 0, 0, 0.38889],
            10217: [0.25, 0.75, 0, 0, 0.38889],
            10222: [0.244, 0.744, 0, 0, 0.412],
            10223: [0.244, 0.745, 0, 0, 0.412],
            10229: [0.011, 0.511, 0, 0, 1.609],
            10230: [0.011, 0.511, 0, 0, 1.638],
            10231: [0.011, 0.511, 0, 0, 1.859],
            10232: [0.024, 0.525, 0, 0, 1.609],
            10233: [0.024, 0.525, 0, 0, 1.638],
            10234: [0.024, 0.525, 0, 0, 1.858],
            10236: [0.011, 0.511, 0, 0, 1.638],
            10815: [0, 0.68333, 0, 0, 0.75],
            10927: [0.13597, 0.63597, 0, 0, 0.77778],
            10928: [0.13597, 0.63597, 0, 0, 0.77778],
            57376: [0.19444, 0.69444, 0, 0, 0],
          },
          "Math-BoldItalic": {
            32: [0, 0, 0, 0, 0.25],
            48: [0, 0.44444, 0, 0, 0.575],
            49: [0, 0.44444, 0, 0, 0.575],
            50: [0, 0.44444, 0, 0, 0.575],
            51: [0.19444, 0.44444, 0, 0, 0.575],
            52: [0.19444, 0.44444, 0, 0, 0.575],
            53: [0.19444, 0.44444, 0, 0, 0.575],
            54: [0, 0.64444, 0, 0, 0.575],
            55: [0.19444, 0.44444, 0, 0, 0.575],
            56: [0, 0.64444, 0, 0, 0.575],
            57: [0.19444, 0.44444, 0, 0, 0.575],
            65: [0, 0.68611, 0, 0, 0.86944],
            66: [0, 0.68611, 0.04835, 0, 0.8664],
            67: [0, 0.68611, 0.06979, 0, 0.81694],
            68: [0, 0.68611, 0.03194, 0, 0.93812],
            69: [0, 0.68611, 0.05451, 0, 0.81007],
            70: [0, 0.68611, 0.15972, 0, 0.68889],
            71: [0, 0.68611, 0, 0, 0.88673],
            72: [0, 0.68611, 0.08229, 0, 0.98229],
            73: [0, 0.68611, 0.07778, 0, 0.51111],
            74: [0, 0.68611, 0.10069, 0, 0.63125],
            75: [0, 0.68611, 0.06979, 0, 0.97118],
            76: [0, 0.68611, 0, 0, 0.75555],
            77: [0, 0.68611, 0.11424, 0, 1.14201],
            78: [0, 0.68611, 0.11424, 0, 0.95034],
            79: [0, 0.68611, 0.03194, 0, 0.83666],
            80: [0, 0.68611, 0.15972, 0, 0.72309],
            81: [0.19444, 0.68611, 0, 0, 0.86861],
            82: [0, 0.68611, 0.00421, 0, 0.87235],
            83: [0, 0.68611, 0.05382, 0, 0.69271],
            84: [0, 0.68611, 0.15972, 0, 0.63663],
            85: [0, 0.68611, 0.11424, 0, 0.80027],
            86: [0, 0.68611, 0.25555, 0, 0.67778],
            87: [0, 0.68611, 0.15972, 0, 1.09305],
            88: [0, 0.68611, 0.07778, 0, 0.94722],
            89: [0, 0.68611, 0.25555, 0, 0.67458],
            90: [0, 0.68611, 0.06979, 0, 0.77257],
            97: [0, 0.44444, 0, 0, 0.63287],
            98: [0, 0.69444, 0, 0, 0.52083],
            99: [0, 0.44444, 0, 0, 0.51342],
            100: [0, 0.69444, 0, 0, 0.60972],
            101: [0, 0.44444, 0, 0, 0.55361],
            102: [0.19444, 0.69444, 0.11042, 0, 0.56806],
            103: [0.19444, 0.44444, 0.03704, 0, 0.5449],
            104: [0, 0.69444, 0, 0, 0.66759],
            105: [0, 0.69326, 0, 0, 0.4048],
            106: [0.19444, 0.69326, 0.0622, 0, 0.47083],
            107: [0, 0.69444, 0.01852, 0, 0.6037],
            108: [0, 0.69444, 0.0088, 0, 0.34815],
            109: [0, 0.44444, 0, 0, 1.0324],
            110: [0, 0.44444, 0, 0, 0.71296],
            111: [0, 0.44444, 0, 0, 0.58472],
            112: [0.19444, 0.44444, 0, 0, 0.60092],
            113: [0.19444, 0.44444, 0.03704, 0, 0.54213],
            114: [0, 0.44444, 0.03194, 0, 0.5287],
            115: [0, 0.44444, 0, 0, 0.53125],
            116: [0, 0.63492, 0, 0, 0.41528],
            117: [0, 0.44444, 0, 0, 0.68102],
            118: [0, 0.44444, 0.03704, 0, 0.56666],
            119: [0, 0.44444, 0.02778, 0, 0.83148],
            120: [0, 0.44444, 0, 0, 0.65903],
            121: [0.19444, 0.44444, 0.03704, 0, 0.59028],
            122: [0, 0.44444, 0.04213, 0, 0.55509],
            160: [0, 0, 0, 0, 0.25],
            915: [0, 0.68611, 0.15972, 0, 0.65694],
            916: [0, 0.68611, 0, 0, 0.95833],
            920: [0, 0.68611, 0.03194, 0, 0.86722],
            923: [0, 0.68611, 0, 0, 0.80555],
            926: [0, 0.68611, 0.07458, 0, 0.84125],
            928: [0, 0.68611, 0.08229, 0, 0.98229],
            931: [0, 0.68611, 0.05451, 0, 0.88507],
            933: [0, 0.68611, 0.15972, 0, 0.67083],
            934: [0, 0.68611, 0, 0, 0.76666],
            936: [0, 0.68611, 0.11653, 0, 0.71402],
            937: [0, 0.68611, 0.04835, 0, 0.8789],
            945: [0, 0.44444, 0, 0, 0.76064],
            946: [0.19444, 0.69444, 0.03403, 0, 0.65972],
            947: [0.19444, 0.44444, 0.06389, 0, 0.59003],
            948: [0, 0.69444, 0.03819, 0, 0.52222],
            949: [0, 0.44444, 0, 0, 0.52882],
            950: [0.19444, 0.69444, 0.06215, 0, 0.50833],
            951: [0.19444, 0.44444, 0.03704, 0, 0.6],
            952: [0, 0.69444, 0.03194, 0, 0.5618],
            953: [0, 0.44444, 0, 0, 0.41204],
            954: [0, 0.44444, 0, 0, 0.66759],
            955: [0, 0.69444, 0, 0, 0.67083],
            956: [0.19444, 0.44444, 0, 0, 0.70787],
            957: [0, 0.44444, 0.06898, 0, 0.57685],
            958: [0.19444, 0.69444, 0.03021, 0, 0.50833],
            959: [0, 0.44444, 0, 0, 0.58472],
            960: [0, 0.44444, 0.03704, 0, 0.68241],
            961: [0.19444, 0.44444, 0, 0, 0.6118],
            962: [0.09722, 0.44444, 0.07917, 0, 0.42361],
            963: [0, 0.44444, 0.03704, 0, 0.68588],
            964: [0, 0.44444, 0.13472, 0, 0.52083],
            965: [0, 0.44444, 0.03704, 0, 0.63055],
            966: [0.19444, 0.44444, 0, 0, 0.74722],
            967: [0.19444, 0.44444, 0, 0, 0.71805],
            968: [0.19444, 0.69444, 0.03704, 0, 0.75833],
            969: [0, 0.44444, 0.03704, 0, 0.71782],
            977: [0, 0.69444, 0, 0, 0.69155],
            981: [0.19444, 0.69444, 0, 0, 0.7125],
            982: [0, 0.44444, 0.03194, 0, 0.975],
            1009: [0.19444, 0.44444, 0, 0, 0.6118],
            1013: [0, 0.44444, 0, 0, 0.48333],
            57649: [0, 0.44444, 0, 0, 0.39352],
            57911: [0.19444, 0.44444, 0, 0, 0.43889],
          },
          "Math-Italic": {
            32: [0, 0, 0, 0, 0.25],
            48: [0, 0.43056, 0, 0, 0.5],
            49: [0, 0.43056, 0, 0, 0.5],
            50: [0, 0.43056, 0, 0, 0.5],
            51: [0.19444, 0.43056, 0, 0, 0.5],
            52: [0.19444, 0.43056, 0, 0, 0.5],
            53: [0.19444, 0.43056, 0, 0, 0.5],
            54: [0, 0.64444, 0, 0, 0.5],
            55: [0.19444, 0.43056, 0, 0, 0.5],
            56: [0, 0.64444, 0, 0, 0.5],
            57: [0.19444, 0.43056, 0, 0, 0.5],
            65: [0, 0.68333, 0, 0.13889, 0.75],
            66: [0, 0.68333, 0.05017, 0.08334, 0.75851],
            67: [0, 0.68333, 0.07153, 0.08334, 0.71472],
            68: [0, 0.68333, 0.02778, 0.05556, 0.82792],
            69: [0, 0.68333, 0.05764, 0.08334, 0.7382],
            70: [0, 0.68333, 0.13889, 0.08334, 0.64306],
            71: [0, 0.68333, 0, 0.08334, 0.78625],
            72: [0, 0.68333, 0.08125, 0.05556, 0.83125],
            73: [0, 0.68333, 0.07847, 0.11111, 0.43958],
            74: [0, 0.68333, 0.09618, 0.16667, 0.55451],
            75: [0, 0.68333, 0.07153, 0.05556, 0.84931],
            76: [0, 0.68333, 0, 0.02778, 0.68056],
            77: [0, 0.68333, 0.10903, 0.08334, 0.97014],
            78: [0, 0.68333, 0.10903, 0.08334, 0.80347],
            79: [0, 0.68333, 0.02778, 0.08334, 0.76278],
            80: [0, 0.68333, 0.13889, 0.08334, 0.64201],
            81: [0.19444, 0.68333, 0, 0.08334, 0.79056],
            82: [0, 0.68333, 0.00773, 0.08334, 0.75929],
            83: [0, 0.68333, 0.05764, 0.08334, 0.6132],
            84: [0, 0.68333, 0.13889, 0.08334, 0.58438],
            85: [0, 0.68333, 0.10903, 0.02778, 0.68278],
            86: [0, 0.68333, 0.22222, 0, 0.58333],
            87: [0, 0.68333, 0.13889, 0, 0.94445],
            88: [0, 0.68333, 0.07847, 0.08334, 0.82847],
            89: [0, 0.68333, 0.22222, 0, 0.58056],
            90: [0, 0.68333, 0.07153, 0.08334, 0.68264],
            97: [0, 0.43056, 0, 0, 0.52859],
            98: [0, 0.69444, 0, 0, 0.42917],
            99: [0, 0.43056, 0, 0.05556, 0.43276],
            100: [0, 0.69444, 0, 0.16667, 0.52049],
            101: [0, 0.43056, 0, 0.05556, 0.46563],
            102: [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],
            103: [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],
            104: [0, 0.69444, 0, 0, 0.57616],
            105: [0, 0.65952, 0, 0, 0.34451],
            106: [0.19444, 0.65952, 0.05724, 0, 0.41181],
            107: [0, 0.69444, 0.03148, 0, 0.5206],
            108: [0, 0.69444, 0.01968, 0.08334, 0.29838],
            109: [0, 0.43056, 0, 0, 0.87801],
            110: [0, 0.43056, 0, 0, 0.60023],
            111: [0, 0.43056, 0, 0.05556, 0.48472],
            112: [0.19444, 0.43056, 0, 0.08334, 0.50313],
            113: [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],
            114: [0, 0.43056, 0.02778, 0.05556, 0.45116],
            115: [0, 0.43056, 0, 0.05556, 0.46875],
            116: [0, 0.61508, 0, 0.08334, 0.36111],
            117: [0, 0.43056, 0, 0.02778, 0.57246],
            118: [0, 0.43056, 0.03588, 0.02778, 0.48472],
            119: [0, 0.43056, 0.02691, 0.08334, 0.71592],
            120: [0, 0.43056, 0, 0.02778, 0.57153],
            121: [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],
            122: [0, 0.43056, 0.04398, 0.05556, 0.46505],
            160: [0, 0, 0, 0, 0.25],
            915: [0, 0.68333, 0.13889, 0.08334, 0.61528],
            916: [0, 0.68333, 0, 0.16667, 0.83334],
            920: [0, 0.68333, 0.02778, 0.08334, 0.76278],
            923: [0, 0.68333, 0, 0.16667, 0.69445],
            926: [0, 0.68333, 0.07569, 0.08334, 0.74236],
            928: [0, 0.68333, 0.08125, 0.05556, 0.83125],
            931: [0, 0.68333, 0.05764, 0.08334, 0.77986],
            933: [0, 0.68333, 0.13889, 0.05556, 0.58333],
            934: [0, 0.68333, 0, 0.08334, 0.66667],
            936: [0, 0.68333, 0.11, 0.05556, 0.61222],
            937: [0, 0.68333, 0.05017, 0.08334, 0.7724],
            945: [0, 0.43056, 0.0037, 0.02778, 0.6397],
            946: [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],
            947: [0.19444, 0.43056, 0.05556, 0, 0.51773],
            948: [0, 0.69444, 0.03785, 0.05556, 0.44444],
            949: [0, 0.43056, 0, 0.08334, 0.46632],
            950: [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],
            951: [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],
            952: [0, 0.69444, 0.02778, 0.08334, 0.46944],
            953: [0, 0.43056, 0, 0.05556, 0.35394],
            954: [0, 0.43056, 0, 0, 0.57616],
            955: [0, 0.69444, 0, 0, 0.58334],
            956: [0.19444, 0.43056, 0, 0.02778, 0.60255],
            957: [0, 0.43056, 0.06366, 0.02778, 0.49398],
            958: [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],
            959: [0, 0.43056, 0, 0.05556, 0.48472],
            960: [0, 0.43056, 0.03588, 0, 0.57003],
            961: [0.19444, 0.43056, 0, 0.08334, 0.51702],
            962: [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],
            963: [0, 0.43056, 0.03588, 0, 0.57141],
            964: [0, 0.43056, 0.1132, 0.02778, 0.43715],
            965: [0, 0.43056, 0.03588, 0.02778, 0.54028],
            966: [0.19444, 0.43056, 0, 0.08334, 0.65417],
            967: [0.19444, 0.43056, 0, 0.05556, 0.62569],
            968: [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],
            969: [0, 0.43056, 0.03588, 0, 0.62245],
            977: [0, 0.69444, 0, 0.08334, 0.59144],
            981: [0.19444, 0.69444, 0, 0.08334, 0.59583],
            982: [0, 0.43056, 0.02778, 0, 0.82813],
            1009: [0.19444, 0.43056, 0, 0.08334, 0.51702],
            1013: [0, 0.43056, 0, 0.05556, 0.4059],
            57649: [0, 0.43056, 0, 0.02778, 0.32246],
            57911: [0.19444, 0.43056, 0, 0.08334, 0.38403],
          },
          "SansSerif-Bold": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0, 0, 0.36667],
            34: [0, 0.69444, 0, 0, 0.55834],
            35: [0.19444, 0.69444, 0, 0, 0.91667],
            36: [0.05556, 0.75, 0, 0, 0.55],
            37: [0.05556, 0.75, 0, 0, 1.02912],
            38: [0, 0.69444, 0, 0, 0.83056],
            39: [0, 0.69444, 0, 0, 0.30556],
            40: [0.25, 0.75, 0, 0, 0.42778],
            41: [0.25, 0.75, 0, 0, 0.42778],
            42: [0, 0.75, 0, 0, 0.55],
            43: [0.11667, 0.61667, 0, 0, 0.85556],
            44: [0.10556, 0.13056, 0, 0, 0.30556],
            45: [0, 0.45833, 0, 0, 0.36667],
            46: [0, 0.13056, 0, 0, 0.30556],
            47: [0.25, 0.75, 0, 0, 0.55],
            48: [0, 0.69444, 0, 0, 0.55],
            49: [0, 0.69444, 0, 0, 0.55],
            50: [0, 0.69444, 0, 0, 0.55],
            51: [0, 0.69444, 0, 0, 0.55],
            52: [0, 0.69444, 0, 0, 0.55],
            53: [0, 0.69444, 0, 0, 0.55],
            54: [0, 0.69444, 0, 0, 0.55],
            55: [0, 0.69444, 0, 0, 0.55],
            56: [0, 0.69444, 0, 0, 0.55],
            57: [0, 0.69444, 0, 0, 0.55],
            58: [0, 0.45833, 0, 0, 0.30556],
            59: [0.10556, 0.45833, 0, 0, 0.30556],
            61: [-0.09375, 0.40625, 0, 0, 0.85556],
            63: [0, 0.69444, 0, 0, 0.51945],
            64: [0, 0.69444, 0, 0, 0.73334],
            65: [0, 0.69444, 0, 0, 0.73334],
            66: [0, 0.69444, 0, 0, 0.73334],
            67: [0, 0.69444, 0, 0, 0.70278],
            68: [0, 0.69444, 0, 0, 0.79445],
            69: [0, 0.69444, 0, 0, 0.64167],
            70: [0, 0.69444, 0, 0, 0.61111],
            71: [0, 0.69444, 0, 0, 0.73334],
            72: [0, 0.69444, 0, 0, 0.79445],
            73: [0, 0.69444, 0, 0, 0.33056],
            74: [0, 0.69444, 0, 0, 0.51945],
            75: [0, 0.69444, 0, 0, 0.76389],
            76: [0, 0.69444, 0, 0, 0.58056],
            77: [0, 0.69444, 0, 0, 0.97778],
            78: [0, 0.69444, 0, 0, 0.79445],
            79: [0, 0.69444, 0, 0, 0.79445],
            80: [0, 0.69444, 0, 0, 0.70278],
            81: [0.10556, 0.69444, 0, 0, 0.79445],
            82: [0, 0.69444, 0, 0, 0.70278],
            83: [0, 0.69444, 0, 0, 0.61111],
            84: [0, 0.69444, 0, 0, 0.73334],
            85: [0, 0.69444, 0, 0, 0.76389],
            86: [0, 0.69444, 0.01528, 0, 0.73334],
            87: [0, 0.69444, 0.01528, 0, 1.03889],
            88: [0, 0.69444, 0, 0, 0.73334],
            89: [0, 0.69444, 0.0275, 0, 0.73334],
            90: [0, 0.69444, 0, 0, 0.67223],
            91: [0.25, 0.75, 0, 0, 0.34306],
            93: [0.25, 0.75, 0, 0, 0.34306],
            94: [0, 0.69444, 0, 0, 0.55],
            95: [0.35, 0.10833, 0.03056, 0, 0.55],
            97: [0, 0.45833, 0, 0, 0.525],
            98: [0, 0.69444, 0, 0, 0.56111],
            99: [0, 0.45833, 0, 0, 0.48889],
            100: [0, 0.69444, 0, 0, 0.56111],
            101: [0, 0.45833, 0, 0, 0.51111],
            102: [0, 0.69444, 0.07639, 0, 0.33611],
            103: [0.19444, 0.45833, 0.01528, 0, 0.55],
            104: [0, 0.69444, 0, 0, 0.56111],
            105: [0, 0.69444, 0, 0, 0.25556],
            106: [0.19444, 0.69444, 0, 0, 0.28611],
            107: [0, 0.69444, 0, 0, 0.53056],
            108: [0, 0.69444, 0, 0, 0.25556],
            109: [0, 0.45833, 0, 0, 0.86667],
            110: [0, 0.45833, 0, 0, 0.56111],
            111: [0, 0.45833, 0, 0, 0.55],
            112: [0.19444, 0.45833, 0, 0, 0.56111],
            113: [0.19444, 0.45833, 0, 0, 0.56111],
            114: [0, 0.45833, 0.01528, 0, 0.37222],
            115: [0, 0.45833, 0, 0, 0.42167],
            116: [0, 0.58929, 0, 0, 0.40417],
            117: [0, 0.45833, 0, 0, 0.56111],
            118: [0, 0.45833, 0.01528, 0, 0.5],
            119: [0, 0.45833, 0.01528, 0, 0.74445],
            120: [0, 0.45833, 0, 0, 0.5],
            121: [0.19444, 0.45833, 0.01528, 0, 0.5],
            122: [0, 0.45833, 0, 0, 0.47639],
            126: [0.35, 0.34444, 0, 0, 0.55],
            160: [0, 0, 0, 0, 0.25],
            168: [0, 0.69444, 0, 0, 0.55],
            176: [0, 0.69444, 0, 0, 0.73334],
            180: [0, 0.69444, 0, 0, 0.55],
            184: [0.17014, 0, 0, 0, 0.48889],
            305: [0, 0.45833, 0, 0, 0.25556],
            567: [0.19444, 0.45833, 0, 0, 0.28611],
            710: [0, 0.69444, 0, 0, 0.55],
            711: [0, 0.63542, 0, 0, 0.55],
            713: [0, 0.63778, 0, 0, 0.55],
            728: [0, 0.69444, 0, 0, 0.55],
            729: [0, 0.69444, 0, 0, 0.30556],
            730: [0, 0.69444, 0, 0, 0.73334],
            732: [0, 0.69444, 0, 0, 0.55],
            733: [0, 0.69444, 0, 0, 0.55],
            915: [0, 0.69444, 0, 0, 0.58056],
            916: [0, 0.69444, 0, 0, 0.91667],
            920: [0, 0.69444, 0, 0, 0.85556],
            923: [0, 0.69444, 0, 0, 0.67223],
            926: [0, 0.69444, 0, 0, 0.73334],
            928: [0, 0.69444, 0, 0, 0.79445],
            931: [0, 0.69444, 0, 0, 0.79445],
            933: [0, 0.69444, 0, 0, 0.85556],
            934: [0, 0.69444, 0, 0, 0.79445],
            936: [0, 0.69444, 0, 0, 0.85556],
            937: [0, 0.69444, 0, 0, 0.79445],
            8211: [0, 0.45833, 0.03056, 0, 0.55],
            8212: [0, 0.45833, 0.03056, 0, 1.10001],
            8216: [0, 0.69444, 0, 0, 0.30556],
            8217: [0, 0.69444, 0, 0, 0.30556],
            8220: [0, 0.69444, 0, 0, 0.55834],
            8221: [0, 0.69444, 0, 0, 0.55834],
          },
          "SansSerif-Italic": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0.05733, 0, 0.31945],
            34: [0, 0.69444, 0.00316, 0, 0.5],
            35: [0.19444, 0.69444, 0.05087, 0, 0.83334],
            36: [0.05556, 0.75, 0.11156, 0, 0.5],
            37: [0.05556, 0.75, 0.03126, 0, 0.83334],
            38: [0, 0.69444, 0.03058, 0, 0.75834],
            39: [0, 0.69444, 0.07816, 0, 0.27778],
            40: [0.25, 0.75, 0.13164, 0, 0.38889],
            41: [0.25, 0.75, 0.02536, 0, 0.38889],
            42: [0, 0.75, 0.11775, 0, 0.5],
            43: [0.08333, 0.58333, 0.02536, 0, 0.77778],
            44: [0.125, 0.08333, 0, 0, 0.27778],
            45: [0, 0.44444, 0.01946, 0, 0.33333],
            46: [0, 0.08333, 0, 0, 0.27778],
            47: [0.25, 0.75, 0.13164, 0, 0.5],
            48: [0, 0.65556, 0.11156, 0, 0.5],
            49: [0, 0.65556, 0.11156, 0, 0.5],
            50: [0, 0.65556, 0.11156, 0, 0.5],
            51: [0, 0.65556, 0.11156, 0, 0.5],
            52: [0, 0.65556, 0.11156, 0, 0.5],
            53: [0, 0.65556, 0.11156, 0, 0.5],
            54: [0, 0.65556, 0.11156, 0, 0.5],
            55: [0, 0.65556, 0.11156, 0, 0.5],
            56: [0, 0.65556, 0.11156, 0, 0.5],
            57: [0, 0.65556, 0.11156, 0, 0.5],
            58: [0, 0.44444, 0.02502, 0, 0.27778],
            59: [0.125, 0.44444, 0.02502, 0, 0.27778],
            61: [-0.13, 0.37, 0.05087, 0, 0.77778],
            63: [0, 0.69444, 0.11809, 0, 0.47222],
            64: [0, 0.69444, 0.07555, 0, 0.66667],
            65: [0, 0.69444, 0, 0, 0.66667],
            66: [0, 0.69444, 0.08293, 0, 0.66667],
            67: [0, 0.69444, 0.11983, 0, 0.63889],
            68: [0, 0.69444, 0.07555, 0, 0.72223],
            69: [0, 0.69444, 0.11983, 0, 0.59722],
            70: [0, 0.69444, 0.13372, 0, 0.56945],
            71: [0, 0.69444, 0.11983, 0, 0.66667],
            72: [0, 0.69444, 0.08094, 0, 0.70834],
            73: [0, 0.69444, 0.13372, 0, 0.27778],
            74: [0, 0.69444, 0.08094, 0, 0.47222],
            75: [0, 0.69444, 0.11983, 0, 0.69445],
            76: [0, 0.69444, 0, 0, 0.54167],
            77: [0, 0.69444, 0.08094, 0, 0.875],
            78: [0, 0.69444, 0.08094, 0, 0.70834],
            79: [0, 0.69444, 0.07555, 0, 0.73611],
            80: [0, 0.69444, 0.08293, 0, 0.63889],
            81: [0.125, 0.69444, 0.07555, 0, 0.73611],
            82: [0, 0.69444, 0.08293, 0, 0.64584],
            83: [0, 0.69444, 0.09205, 0, 0.55556],
            84: [0, 0.69444, 0.13372, 0, 0.68056],
            85: [0, 0.69444, 0.08094, 0, 0.6875],
            86: [0, 0.69444, 0.1615, 0, 0.66667],
            87: [0, 0.69444, 0.1615, 0, 0.94445],
            88: [0, 0.69444, 0.13372, 0, 0.66667],
            89: [0, 0.69444, 0.17261, 0, 0.66667],
            90: [0, 0.69444, 0.11983, 0, 0.61111],
            91: [0.25, 0.75, 0.15942, 0, 0.28889],
            93: [0.25, 0.75, 0.08719, 0, 0.28889],
            94: [0, 0.69444, 0.0799, 0, 0.5],
            95: [0.35, 0.09444, 0.08616, 0, 0.5],
            97: [0, 0.44444, 0.00981, 0, 0.48056],
            98: [0, 0.69444, 0.03057, 0, 0.51667],
            99: [0, 0.44444, 0.08336, 0, 0.44445],
            100: [0, 0.69444, 0.09483, 0, 0.51667],
            101: [0, 0.44444, 0.06778, 0, 0.44445],
            102: [0, 0.69444, 0.21705, 0, 0.30556],
            103: [0.19444, 0.44444, 0.10836, 0, 0.5],
            104: [0, 0.69444, 0.01778, 0, 0.51667],
            105: [0, 0.67937, 0.09718, 0, 0.23889],
            106: [0.19444, 0.67937, 0.09162, 0, 0.26667],
            107: [0, 0.69444, 0.08336, 0, 0.48889],
            108: [0, 0.69444, 0.09483, 0, 0.23889],
            109: [0, 0.44444, 0.01778, 0, 0.79445],
            110: [0, 0.44444, 0.01778, 0, 0.51667],
            111: [0, 0.44444, 0.06613, 0, 0.5],
            112: [0.19444, 0.44444, 0.0389, 0, 0.51667],
            113: [0.19444, 0.44444, 0.04169, 0, 0.51667],
            114: [0, 0.44444, 0.10836, 0, 0.34167],
            115: [0, 0.44444, 0.0778, 0, 0.38333],
            116: [0, 0.57143, 0.07225, 0, 0.36111],
            117: [0, 0.44444, 0.04169, 0, 0.51667],
            118: [0, 0.44444, 0.10836, 0, 0.46111],
            119: [0, 0.44444, 0.10836, 0, 0.68334],
            120: [0, 0.44444, 0.09169, 0, 0.46111],
            121: [0.19444, 0.44444, 0.10836, 0, 0.46111],
            122: [0, 0.44444, 0.08752, 0, 0.43472],
            126: [0.35, 0.32659, 0.08826, 0, 0.5],
            160: [0, 0, 0, 0, 0.25],
            168: [0, 0.67937, 0.06385, 0, 0.5],
            176: [0, 0.69444, 0, 0, 0.73752],
            184: [0.17014, 0, 0, 0, 0.44445],
            305: [0, 0.44444, 0.04169, 0, 0.23889],
            567: [0.19444, 0.44444, 0.04169, 0, 0.26667],
            710: [0, 0.69444, 0.0799, 0, 0.5],
            711: [0, 0.63194, 0.08432, 0, 0.5],
            713: [0, 0.60889, 0.08776, 0, 0.5],
            714: [0, 0.69444, 0.09205, 0, 0.5],
            715: [0, 0.69444, 0, 0, 0.5],
            728: [0, 0.69444, 0.09483, 0, 0.5],
            729: [0, 0.67937, 0.07774, 0, 0.27778],
            730: [0, 0.69444, 0, 0, 0.73752],
            732: [0, 0.67659, 0.08826, 0, 0.5],
            733: [0, 0.69444, 0.09205, 0, 0.5],
            915: [0, 0.69444, 0.13372, 0, 0.54167],
            916: [0, 0.69444, 0, 0, 0.83334],
            920: [0, 0.69444, 0.07555, 0, 0.77778],
            923: [0, 0.69444, 0, 0, 0.61111],
            926: [0, 0.69444, 0.12816, 0, 0.66667],
            928: [0, 0.69444, 0.08094, 0, 0.70834],
            931: [0, 0.69444, 0.11983, 0, 0.72222],
            933: [0, 0.69444, 0.09031, 0, 0.77778],
            934: [0, 0.69444, 0.04603, 0, 0.72222],
            936: [0, 0.69444, 0.09031, 0, 0.77778],
            937: [0, 0.69444, 0.08293, 0, 0.72222],
            8211: [0, 0.44444, 0.08616, 0, 0.5],
            8212: [0, 0.44444, 0.08616, 0, 1],
            8216: [0, 0.69444, 0.07816, 0, 0.27778],
            8217: [0, 0.69444, 0.07816, 0, 0.27778],
            8220: [0, 0.69444, 0.14205, 0, 0.5],
            8221: [0, 0.69444, 0.00316, 0, 0.5],
          },
          "SansSerif-Regular": {
            32: [0, 0, 0, 0, 0.25],
            33: [0, 0.69444, 0, 0, 0.31945],
            34: [0, 0.69444, 0, 0, 0.5],
            35: [0.19444, 0.69444, 0, 0, 0.83334],
            36: [0.05556, 0.75, 0, 0, 0.5],
            37: [0.05556, 0.75, 0, 0, 0.83334],
            38: [0, 0.69444, 0, 0, 0.75834],
            39: [0, 0.69444, 0, 0, 0.27778],
            40: [0.25, 0.75, 0, 0, 0.38889],
            41: [0.25, 0.75, 0, 0, 0.38889],
            42: [0, 0.75, 0, 0, 0.5],
            43: [0.08333, 0.58333, 0, 0, 0.77778],
            44: [0.125, 0.08333, 0, 0, 0.27778],
            45: [0, 0.44444, 0, 0, 0.33333],
            46: [0, 0.08333, 0, 0, 0.27778],
            47: [0.25, 0.75, 0, 0, 0.5],
            48: [0, 0.65556, 0, 0, 0.5],
            49: [0, 0.65556, 0, 0, 0.5],
            50: [0, 0.65556, 0, 0, 0.5],
            51: [0, 0.65556, 0, 0, 0.5],
            52: [0, 0.65556, 0, 0, 0.5],
            53: [0, 0.65556, 0, 0, 0.5],
            54: [0, 0.65556, 0, 0, 0.5],
            55: [0, 0.65556, 0, 0, 0.5],
            56: [0, 0.65556, 0, 0, 0.5],
            57: [0, 0.65556, 0, 0, 0.5],
            58: [0, 0.44444, 0, 0, 0.27778],
            59: [0.125, 0.44444, 0, 0, 0.27778],
            61: [-0.13, 0.37, 0, 0, 0.77778],
            63: [0, 0.69444, 0, 0, 0.47222],
            64: [0, 0.69444, 0, 0, 0.66667],
            65: [0, 0.69444, 0, 0, 0.66667],
            66: [0, 0.69444, 0, 0, 0.66667],
            67: [0, 0.69444, 0, 0, 0.63889],
            68: [0, 0.69444, 0, 0, 0.72223],
            69: [0, 0.69444, 0, 0, 0.59722],
            70: [0, 0.69444, 0, 0, 0.56945],
            71: [0, 0.69444, 0, 0, 0.66667],
            72: [0, 0.69444, 0, 0, 0.70834],
            73: [0, 0.69444, 0, 0, 0.27778],
            74: [0, 0.69444, 0, 0, 0.47222],
            75: [0, 0.69444, 0, 0, 0.69445],
            76: [0, 0.69444, 0, 0, 0.54167],
            77: [0, 0.69444, 0, 0, 0.875],
            78: [0, 0.69444, 0, 0, 0.70834],
            79: [0, 0.69444, 0, 0, 0.73611],
            80: [0, 0.69444, 0, 0, 0.63889],
            81: [0.125, 0.69444, 0, 0, 0.73611],
            82: [0, 0.69444, 0, 0, 0.64584],
            83: [0, 0.69444, 0, 0, 0.55556],
            84: [0, 0.69444, 0, 0, 0.68056],
            85: [0, 0.69444, 0, 0, 0.6875],
            86: [0, 0.69444, 0.01389, 0, 0.66667],
            87: [0, 0.69444, 0.01389, 0, 0.94445],
            88: [0, 0.69444, 0, 0, 0.66667],
            89: [0, 0.69444, 0.025, 0, 0.66667],
            90: [0, 0.69444, 0, 0, 0.61111],
            91: [0.25, 0.75, 0, 0, 0.28889],
            93: [0.25, 0.75, 0, 0, 0.28889],
            94: [0, 0.69444, 0, 0, 0.5],
            95: [0.35, 0.09444, 0.02778, 0, 0.5],
            97: [0, 0.44444, 0, 0, 0.48056],
            98: [0, 0.69444, 0, 0, 0.51667],
            99: [0, 0.44444, 0, 0, 0.44445],
            100: [0, 0.69444, 0, 0, 0.51667],
            101: [0, 0.44444, 0, 0, 0.44445],
            102: [0, 0.69444, 0.06944, 0, 0.30556],
            103: [0.19444, 0.44444, 0.01389, 0, 0.5],
            104: [0, 0.69444, 0, 0, 0.51667],
            105: [0, 0.67937, 0, 0, 0.23889],
            106: [0.19444, 0.67937, 0, 0, 0.26667],
            107: [0, 0.69444, 0, 0, 0.48889],
            108: [0, 0.69444, 0, 0, 0.23889],
            109: [0, 0.44444, 0, 0, 0.79445],
            110: [0, 0.44444, 0, 0, 0.51667],
            111: [0, 0.44444, 0, 0, 0.5],
            112: [0.19444, 0.44444, 0, 0, 0.51667],
            113: [0.19444, 0.44444, 0, 0, 0.51667],
            114: [0, 0.44444, 0.01389, 0, 0.34167],
            115: [0, 0.44444, 0, 0, 0.38333],
            116: [0, 0.57143, 0, 0, 0.36111],
            117: [0, 0.44444, 0, 0, 0.51667],
            118: [0, 0.44444, 0.01389, 0, 0.46111],
            119: [0, 0.44444, 0.01389, 0, 0.68334],
            120: [0, 0.44444, 0, 0, 0.46111],
            121: [0.19444, 0.44444, 0.01389, 0, 0.46111],
            122: [0, 0.44444, 0, 0, 0.43472],
            126: [0.35, 0.32659, 0, 0, 0.5],
            160: [0, 0, 0, 0, 0.25],
            168: [0, 0.67937, 0, 0, 0.5],
            176: [0, 0.69444, 0, 0, 0.66667],
            184: [0.17014, 0, 0, 0, 0.44445],
            305: [0, 0.44444, 0, 0, 0.23889],
            567: [0.19444, 0.44444, 0, 0, 0.26667],
            710: [0, 0.69444, 0, 0, 0.5],
            711: [0, 0.63194, 0, 0, 0.5],
            713: [0, 0.60889, 0, 0, 0.5],
            714: [0, 0.69444, 0, 0, 0.5],
            715: [0, 0.69444, 0, 0, 0.5],
            728: [0, 0.69444, 0, 0, 0.5],
            729: [0, 0.67937, 0, 0, 0.27778],
            730: [0, 0.69444, 0, 0, 0.66667],
            732: [0, 0.67659, 0, 0, 0.5],
            733: [0, 0.69444, 0, 0, 0.5],
            915: [0, 0.69444, 0, 0, 0.54167],
            916: [0, 0.69444, 0, 0, 0.83334],
            920: [0, 0.69444, 0, 0, 0.77778],
            923: [0, 0.69444, 0, 0, 0.61111],
            926: [0, 0.69444, 0, 0, 0.66667],
            928: [0, 0.69444, 0, 0, 0.70834],
            931: [0, 0.69444, 0, 0, 0.72222],
            933: [0, 0.69444, 0, 0, 0.77778],
            934: [0, 0.69444, 0, 0, 0.72222],
            936: [0, 0.69444, 0, 0, 0.77778],
            937: [0, 0.69444, 0, 0, 0.72222],
            8211: [0, 0.44444, 0.02778, 0, 0.5],
            8212: [0, 0.44444, 0.02778, 0, 1],
            8216: [0, 0.69444, 0, 0, 0.27778],
            8217: [0, 0.69444, 0, 0, 0.27778],
            8220: [0, 0.69444, 0, 0, 0.5],
            8221: [0, 0.69444, 0, 0, 0.5],
          },
          "Script-Regular": {
            32: [0, 0, 0, 0, 0.25],
            65: [0, 0.7, 0.22925, 0, 0.80253],
            66: [0, 0.7, 0.04087, 0, 0.90757],
            67: [0, 0.7, 0.1689, 0, 0.66619],
            68: [0, 0.7, 0.09371, 0, 0.77443],
            69: [0, 0.7, 0.18583, 0, 0.56162],
            70: [0, 0.7, 0.13634, 0, 0.89544],
            71: [0, 0.7, 0.17322, 0, 0.60961],
            72: [0, 0.7, 0.29694, 0, 0.96919],
            73: [0, 0.7, 0.19189, 0, 0.80907],
            74: [0.27778, 0.7, 0.19189, 0, 1.05159],
            75: [0, 0.7, 0.31259, 0, 0.91364],
            76: [0, 0.7, 0.19189, 0, 0.87373],
            77: [0, 0.7, 0.15981, 0, 1.08031],
            78: [0, 0.7, 0.3525, 0, 0.9015],
            79: [0, 0.7, 0.08078, 0, 0.73787],
            80: [0, 0.7, 0.08078, 0, 1.01262],
            81: [0, 0.7, 0.03305, 0, 0.88282],
            82: [0, 0.7, 0.06259, 0, 0.85],
            83: [0, 0.7, 0.19189, 0, 0.86767],
            84: [0, 0.7, 0.29087, 0, 0.74697],
            85: [0, 0.7, 0.25815, 0, 0.79996],
            86: [0, 0.7, 0.27523, 0, 0.62204],
            87: [0, 0.7, 0.27523, 0, 0.80532],
            88: [0, 0.7, 0.26006, 0, 0.94445],
            89: [0, 0.7, 0.2939, 0, 0.70961],
            90: [0, 0.7, 0.24037, 0, 0.8212],
            160: [0, 0, 0, 0, 0.25],
          },
          "Size1-Regular": {
            32: [0, 0, 0, 0, 0.25],
            40: [0.35001, 0.85, 0, 0, 0.45834],
            41: [0.35001, 0.85, 0, 0, 0.45834],
            47: [0.35001, 0.85, 0, 0, 0.57778],
            91: [0.35001, 0.85, 0, 0, 0.41667],
            92: [0.35001, 0.85, 0, 0, 0.57778],
            93: [0.35001, 0.85, 0, 0, 0.41667],
            123: [0.35001, 0.85, 0, 0, 0.58334],
            125: [0.35001, 0.85, 0, 0, 0.58334],
            160: [0, 0, 0, 0, 0.25],
            710: [0, 0.72222, 0, 0, 0.55556],
            732: [0, 0.72222, 0, 0, 0.55556],
            770: [0, 0.72222, 0, 0, 0.55556],
            771: [0, 0.72222, 0, 0, 0.55556],
            8214: [-99e-5, 0.601, 0, 0, 0.77778],
            8593: [1e-5, 0.6, 0, 0, 0.66667],
            8595: [1e-5, 0.6, 0, 0, 0.66667],
            8657: [1e-5, 0.6, 0, 0, 0.77778],
            8659: [1e-5, 0.6, 0, 0, 0.77778],
            8719: [0.25001, 0.75, 0, 0, 0.94445],
            8720: [0.25001, 0.75, 0, 0, 0.94445],
            8721: [0.25001, 0.75, 0, 0, 1.05556],
            8730: [0.35001, 0.85, 0, 0, 1],
            8739: [-0.00599, 0.606, 0, 0, 0.33333],
            8741: [-0.00599, 0.606, 0, 0, 0.55556],
            8747: [0.30612, 0.805, 0.19445, 0, 0.47222],
            8748: [0.306, 0.805, 0.19445, 0, 0.47222],
            8749: [0.306, 0.805, 0.19445, 0, 0.47222],
            8750: [0.30612, 0.805, 0.19445, 0, 0.47222],
            8896: [0.25001, 0.75, 0, 0, 0.83334],
            8897: [0.25001, 0.75, 0, 0, 0.83334],
            8898: [0.25001, 0.75, 0, 0, 0.83334],
            8899: [0.25001, 0.75, 0, 0, 0.83334],
            8968: [0.35001, 0.85, 0, 0, 0.47222],
            8969: [0.35001, 0.85, 0, 0, 0.47222],
            8970: [0.35001, 0.85, 0, 0, 0.47222],
            8971: [0.35001, 0.85, 0, 0, 0.47222],
            9168: [-99e-5, 0.601, 0, 0, 0.66667],
            10216: [0.35001, 0.85, 0, 0, 0.47222],
            10217: [0.35001, 0.85, 0, 0, 0.47222],
            10752: [0.25001, 0.75, 0, 0, 1.11111],
            10753: [0.25001, 0.75, 0, 0, 1.11111],
            10754: [0.25001, 0.75, 0, 0, 1.11111],
            10756: [0.25001, 0.75, 0, 0, 0.83334],
            10758: [0.25001, 0.75, 0, 0, 0.83334],
          },
          "Size2-Regular": {
            32: [0, 0, 0, 0, 0.25],
            40: [0.65002, 1.15, 0, 0, 0.59722],
            41: [0.65002, 1.15, 0, 0, 0.59722],
            47: [0.65002, 1.15, 0, 0, 0.81111],
            91: [0.65002, 1.15, 0, 0, 0.47222],
            92: [0.65002, 1.15, 0, 0, 0.81111],
            93: [0.65002, 1.15, 0, 0, 0.47222],
            123: [0.65002, 1.15, 0, 0, 0.66667],
            125: [0.65002, 1.15, 0, 0, 0.66667],
            160: [0, 0, 0, 0, 0.25],
            710: [0, 0.75, 0, 0, 1],
            732: [0, 0.75, 0, 0, 1],
            770: [0, 0.75, 0, 0, 1],
            771: [0, 0.75, 0, 0, 1],
            8719: [0.55001, 1.05, 0, 0, 1.27778],
            8720: [0.55001, 1.05, 0, 0, 1.27778],
            8721: [0.55001, 1.05, 0, 0, 1.44445],
            8730: [0.65002, 1.15, 0, 0, 1],
            8747: [0.86225, 1.36, 0.44445, 0, 0.55556],
            8748: [0.862, 1.36, 0.44445, 0, 0.55556],
            8749: [0.862, 1.36, 0.44445, 0, 0.55556],
            8750: [0.86225, 1.36, 0.44445, 0, 0.55556],
            8896: [0.55001, 1.05, 0, 0, 1.11111],
            8897: [0.55001, 1.05, 0, 0, 1.11111],
            8898: [0.55001, 1.05, 0, 0, 1.11111],
            8899: [0.55001, 1.05, 0, 0, 1.11111],
            8968: [0.65002, 1.15, 0, 0, 0.52778],
            8969: [0.65002, 1.15, 0, 0, 0.52778],
            8970: [0.65002, 1.15, 0, 0, 0.52778],
            8971: [0.65002, 1.15, 0, 0, 0.52778],
            10216: [0.65002, 1.15, 0, 0, 0.61111],
            10217: [0.65002, 1.15, 0, 0, 0.61111],
            10752: [0.55001, 1.05, 0, 0, 1.51112],
            10753: [0.55001, 1.05, 0, 0, 1.51112],
            10754: [0.55001, 1.05, 0, 0, 1.51112],
            10756: [0.55001, 1.05, 0, 0, 1.11111],
            10758: [0.55001, 1.05, 0, 0, 1.11111],
          },
          "Size3-Regular": {
            32: [0, 0, 0, 0, 0.25],
            40: [0.95003, 1.45, 0, 0, 0.73611],
            41: [0.95003, 1.45, 0, 0, 0.73611],
            47: [0.95003, 1.45, 0, 0, 1.04445],
            91: [0.95003, 1.45, 0, 0, 0.52778],
            92: [0.95003, 1.45, 0, 0, 1.04445],
            93: [0.95003, 1.45, 0, 0, 0.52778],
            123: [0.95003, 1.45, 0, 0, 0.75],
            125: [0.95003, 1.45, 0, 0, 0.75],
            160: [0, 0, 0, 0, 0.25],
            710: [0, 0.75, 0, 0, 1.44445],
            732: [0, 0.75, 0, 0, 1.44445],
            770: [0, 0.75, 0, 0, 1.44445],
            771: [0, 0.75, 0, 0, 1.44445],
            8730: [0.95003, 1.45, 0, 0, 1],
            8968: [0.95003, 1.45, 0, 0, 0.58334],
            8969: [0.95003, 1.45, 0, 0, 0.58334],
            8970: [0.95003, 1.45, 0, 0, 0.58334],
            8971: [0.95003, 1.45, 0, 0, 0.58334],
            10216: [0.95003, 1.45, 0, 0, 0.75],
            10217: [0.95003, 1.45, 0, 0, 0.75],
          },
          "Size4-Regular": {
            32: [0, 0, 0, 0, 0.25],
            40: [1.25003, 1.75, 0, 0, 0.79167],
            41: [1.25003, 1.75, 0, 0, 0.79167],
            47: [1.25003, 1.75, 0, 0, 1.27778],
            91: [1.25003, 1.75, 0, 0, 0.58334],
            92: [1.25003, 1.75, 0, 0, 1.27778],
            93: [1.25003, 1.75, 0, 0, 0.58334],
            123: [1.25003, 1.75, 0, 0, 0.80556],
            125: [1.25003, 1.75, 0, 0, 0.80556],
            160: [0, 0, 0, 0, 0.25],
            710: [0, 0.825, 0, 0, 1.8889],
            732: [0, 0.825, 0, 0, 1.8889],
            770: [0, 0.825, 0, 0, 1.8889],
            771: [0, 0.825, 0, 0, 1.8889],
            8730: [1.25003, 1.75, 0, 0, 1],
            8968: [1.25003, 1.75, 0, 0, 0.63889],
            8969: [1.25003, 1.75, 0, 0, 0.63889],
            8970: [1.25003, 1.75, 0, 0, 0.63889],
            8971: [1.25003, 1.75, 0, 0, 0.63889],
            9115: [0.64502, 1.155, 0, 0, 0.875],
            9116: [1e-5, 0.6, 0, 0, 0.875],
            9117: [0.64502, 1.155, 0, 0, 0.875],
            9118: [0.64502, 1.155, 0, 0, 0.875],
            9119: [1e-5, 0.6, 0, 0, 0.875],
            9120: [0.64502, 1.155, 0, 0, 0.875],
            9121: [0.64502, 1.155, 0, 0, 0.66667],
            9122: [-99e-5, 0.601, 0, 0, 0.66667],
            9123: [0.64502, 1.155, 0, 0, 0.66667],
            9124: [0.64502, 1.155, 0, 0, 0.66667],
            9125: [-99e-5, 0.601, 0, 0, 0.66667],
            9126: [0.64502, 1.155, 0, 0, 0.66667],
            9127: [1e-5, 0.9, 0, 0, 0.88889],
            9128: [0.65002, 1.15, 0, 0, 0.88889],
            9129: [0.90001, 0, 0, 0, 0.88889],
            9130: [0, 0.3, 0, 0, 0.88889],
            9131: [1e-5, 0.9, 0, 0, 0.88889],
            9132: [0.65002, 1.15, 0, 0, 0.88889],
            9133: [0.90001, 0, 0, 0, 0.88889],
            9143: [0.88502, 0.915, 0, 0, 1.05556],
            10216: [1.25003, 1.75, 0, 0, 0.80556],
            10217: [1.25003, 1.75, 0, 0, 0.80556],
            57344: [-0.00499, 0.605, 0, 0, 1.05556],
            57345: [-0.00499, 0.605, 0, 0, 1.05556],
            57680: [0, 0.12, 0, 0, 0.45],
            57681: [0, 0.12, 0, 0, 0.45],
            57682: [0, 0.12, 0, 0, 0.45],
            57683: [0, 0.12, 0, 0, 0.45],
          },
          "Typewriter-Regular": {
            32: [0, 0, 0, 0, 0.525],
            33: [0, 0.61111, 0, 0, 0.525],
            34: [0, 0.61111, 0, 0, 0.525],
            35: [0, 0.61111, 0, 0, 0.525],
            36: [0.08333, 0.69444, 0, 0, 0.525],
            37: [0.08333, 0.69444, 0, 0, 0.525],
            38: [0, 0.61111, 0, 0, 0.525],
            39: [0, 0.61111, 0, 0, 0.525],
            40: [0.08333, 0.69444, 0, 0, 0.525],
            41: [0.08333, 0.69444, 0, 0, 0.525],
            42: [0, 0.52083, 0, 0, 0.525],
            43: [-0.08056, 0.53055, 0, 0, 0.525],
            44: [0.13889, 0.125, 0, 0, 0.525],
            45: [-0.08056, 0.53055, 0, 0, 0.525],
            46: [0, 0.125, 0, 0, 0.525],
            47: [0.08333, 0.69444, 0, 0, 0.525],
            48: [0, 0.61111, 0, 0, 0.525],
            49: [0, 0.61111, 0, 0, 0.525],
            50: [0, 0.61111, 0, 0, 0.525],
            51: [0, 0.61111, 0, 0, 0.525],
            52: [0, 0.61111, 0, 0, 0.525],
            53: [0, 0.61111, 0, 0, 0.525],
            54: [0, 0.61111, 0, 0, 0.525],
            55: [0, 0.61111, 0, 0, 0.525],
            56: [0, 0.61111, 0, 0, 0.525],
            57: [0, 0.61111, 0, 0, 0.525],
            58: [0, 0.43056, 0, 0, 0.525],
            59: [0.13889, 0.43056, 0, 0, 0.525],
            60: [-0.05556, 0.55556, 0, 0, 0.525],
            61: [-0.19549, 0.41562, 0, 0, 0.525],
            62: [-0.05556, 0.55556, 0, 0, 0.525],
            63: [0, 0.61111, 0, 0, 0.525],
            64: [0, 0.61111, 0, 0, 0.525],
            65: [0, 0.61111, 0, 0, 0.525],
            66: [0, 0.61111, 0, 0, 0.525],
            67: [0, 0.61111, 0, 0, 0.525],
            68: [0, 0.61111, 0, 0, 0.525],
            69: [0, 0.61111, 0, 0, 0.525],
            70: [0, 0.61111, 0, 0, 0.525],
            71: [0, 0.61111, 0, 0, 0.525],
            72: [0, 0.61111, 0, 0, 0.525],
            73: [0, 0.61111, 0, 0, 0.525],
            74: [0, 0.61111, 0, 0, 0.525],
            75: [0, 0.61111, 0, 0, 0.525],
            76: [0, 0.61111, 0, 0, 0.525],
            77: [0, 0.61111, 0, 0, 0.525],
            78: [0, 0.61111, 0, 0, 0.525],
            79: [0, 0.61111, 0, 0, 0.525],
            80: [0, 0.61111, 0, 0, 0.525],
            81: [0.13889, 0.61111, 0, 0, 0.525],
            82: [0, 0.61111, 0, 0, 0.525],
            83: [0, 0.61111, 0, 0, 0.525],
            84: [0, 0.61111, 0, 0, 0.525],
            85: [0, 0.61111, 0, 0, 0.525],
            86: [0, 0.61111, 0, 0, 0.525],
            87: [0, 0.61111, 0, 0, 0.525],
            88: [0, 0.61111, 0, 0, 0.525],
            89: [0, 0.61111, 0, 0, 0.525],
            90: [0, 0.61111, 0, 0, 0.525],
            91: [0.08333, 0.69444, 0, 0, 0.525],
            92: [0.08333, 0.69444, 0, 0, 0.525],
            93: [0.08333, 0.69444, 0, 0, 0.525],
            94: [0, 0.61111, 0, 0, 0.525],
            95: [0.09514, 0, 0, 0, 0.525],
            96: [0, 0.61111, 0, 0, 0.525],
            97: [0, 0.43056, 0, 0, 0.525],
            98: [0, 0.61111, 0, 0, 0.525],
            99: [0, 0.43056, 0, 0, 0.525],
            100: [0, 0.61111, 0, 0, 0.525],
            101: [0, 0.43056, 0, 0, 0.525],
            102: [0, 0.61111, 0, 0, 0.525],
            103: [0.22222, 0.43056, 0, 0, 0.525],
            104: [0, 0.61111, 0, 0, 0.525],
            105: [0, 0.61111, 0, 0, 0.525],
            106: [0.22222, 0.61111, 0, 0, 0.525],
            107: [0, 0.61111, 0, 0, 0.525],
            108: [0, 0.61111, 0, 0, 0.525],
            109: [0, 0.43056, 0, 0, 0.525],
            110: [0, 0.43056, 0, 0, 0.525],
            111: [0, 0.43056, 0, 0, 0.525],
            112: [0.22222, 0.43056, 0, 0, 0.525],
            113: [0.22222, 0.43056, 0, 0, 0.525],
            114: [0, 0.43056, 0, 0, 0.525],
            115: [0, 0.43056, 0, 0, 0.525],
            116: [0, 0.55358, 0, 0, 0.525],
            117: [0, 0.43056, 0, 0, 0.525],
            118: [0, 0.43056, 0, 0, 0.525],
            119: [0, 0.43056, 0, 0, 0.525],
            120: [0, 0.43056, 0, 0, 0.525],
            121: [0.22222, 0.43056, 0, 0, 0.525],
            122: [0, 0.43056, 0, 0, 0.525],
            123: [0.08333, 0.69444, 0, 0, 0.525],
            124: [0.08333, 0.69444, 0, 0, 0.525],
            125: [0.08333, 0.69444, 0, 0, 0.525],
            126: [0, 0.61111, 0, 0, 0.525],
            127: [0, 0.61111, 0, 0, 0.525],
            160: [0, 0, 0, 0, 0.525],
            176: [0, 0.61111, 0, 0, 0.525],
            184: [0.19445, 0, 0, 0, 0.525],
            305: [0, 0.43056, 0, 0, 0.525],
            567: [0.22222, 0.43056, 0, 0, 0.525],
            711: [0, 0.56597, 0, 0, 0.525],
            713: [0, 0.56555, 0, 0, 0.525],
            714: [0, 0.61111, 0, 0, 0.525],
            715: [0, 0.61111, 0, 0, 0.525],
            728: [0, 0.61111, 0, 0, 0.525],
            730: [0, 0.61111, 0, 0, 0.525],
            770: [0, 0.61111, 0, 0, 0.525],
            771: [0, 0.61111, 0, 0, 0.525],
            776: [0, 0.61111, 0, 0, 0.525],
            915: [0, 0.61111, 0, 0, 0.525],
            916: [0, 0.61111, 0, 0, 0.525],
            920: [0, 0.61111, 0, 0, 0.525],
            923: [0, 0.61111, 0, 0, 0.525],
            926: [0, 0.61111, 0, 0, 0.525],
            928: [0, 0.61111, 0, 0, 0.525],
            931: [0, 0.61111, 0, 0, 0.525],
            933: [0, 0.61111, 0, 0, 0.525],
            934: [0, 0.61111, 0, 0, 0.525],
            936: [0, 0.61111, 0, 0, 0.525],
            937: [0, 0.61111, 0, 0, 0.525],
            8216: [0, 0.61111, 0, 0, 0.525],
            8217: [0, 0.61111, 0, 0, 0.525],
            8242: [0, 0.61111, 0, 0, 0.525],
            9251: [0.11111, 0.21944, 0, 0, 0.525],
          },
        };
        let Vt = {
            slant: [0.25, 0.25, 0.25],
            space: [0, 0, 0],
            stretch: [0, 0, 0],
            shrink: [0, 0, 0],
            xHeight: [0.431, 0.431, 0.431],
            quad: [1, 1.171, 1.472],
            extraSpace: [0, 0, 0],
            num1: [0.677, 0.732, 0.925],
            num2: [0.394, 0.384, 0.387],
            num3: [0.444, 0.471, 0.504],
            denom1: [0.686, 0.752, 1.025],
            denom2: [0.345, 0.344, 0.532],
            sup1: [0.413, 0.503, 0.504],
            sup2: [0.363, 0.431, 0.404],
            sup3: [0.289, 0.286, 0.294],
            sub1: [0.15, 0.143, 0.2],
            sub2: [0.247, 0.286, 0.4],
            supDrop: [0.386, 0.353, 0.494],
            subDrop: [0.05, 0.071, 0.1],
            delim1: [2.39, 1.7, 1.98],
            delim2: [1.01, 1.157, 1.42],
            axisHeight: [0.25, 0.25, 0.25],
            defaultRuleThickness: [0.04, 0.049, 0.049],
            bigOpSpacing1: [0.111, 0.111, 0.111],
            bigOpSpacing2: [0.166, 0.166, 0.166],
            bigOpSpacing3: [0.2, 0.2, 0.2],
            bigOpSpacing4: [0.6, 0.611, 0.611],
            bigOpSpacing5: [0.1, 0.143, 0.143],
            sqrtRuleThickness: [0.04, 0.04, 0.04],
            ptPerEm: [10, 10, 10],
            doubleRuleSep: [0.2, 0.2, 0.2],
            arrayRuleWidth: [0.04, 0.04, 0.04],
            fboxsep: [0.3, 0.3, 0.3],
            fboxrule: [0.04, 0.04, 0.04],
          },
          Te = {
            Å: "A",
            Ð: "D",
            Þ: "o",
            å: "a",
            ð: "d",
            þ: "o",
            А: "A",
            Б: "B",
            В: "B",
            Г: "F",
            Д: "A",
            Е: "E",
            Ж: "K",
            З: "3",
            И: "N",
            Й: "N",
            К: "K",
            Л: "N",
            М: "M",
            Н: "H",
            О: "O",
            П: "N",
            Р: "P",
            С: "C",
            Т: "T",
            У: "y",
            Ф: "O",
            Х: "X",
            Ц: "U",
            Ч: "h",
            Ш: "W",
            Щ: "W",
            Ъ: "B",
            Ы: "X",
            Ь: "B",
            Э: "3",
            Ю: "X",
            Я: "R",
            а: "a",
            б: "b",
            в: "a",
            г: "r",
            д: "y",
            е: "e",
            ж: "m",
            з: "e",
            и: "n",
            й: "n",
            к: "n",
            л: "n",
            м: "m",
            н: "n",
            о: "o",
            п: "n",
            р: "p",
            с: "c",
            т: "o",
            у: "y",
            ф: "b",
            х: "x",
            ц: "n",
            ч: "n",
            ш: "w",
            щ: "w",
            ъ: "a",
            ы: "m",
            ь: "a",
            э: "e",
            ю: "m",
            я: "r",
          };
        function St(f, c) {
          bt[f] = c;
        }
        function Ii(f, c, d) {
          if (!bt[c])
            throw new Error("Font metrics not found for font: " + c + ".");
          let g = f.charCodeAt(0),
            w = bt[c][g];
          if (
            (!w && f[0] in Te && ((g = Te[f[0]].charCodeAt(0)), (w = bt[c][g])),
            !w && d === "text" && X(g) && (w = bt[c][77]),
            w)
          )
            return {
              depth: w[0],
              height: w[1],
              italic: w[2],
              skew: w[3],
              width: w[4],
            };
        }
        let er = {};
        function OE(f) {
          let c;
          if ((f >= 5 ? (c = 0) : f >= 3 ? (c = 1) : (c = 2), !er[c])) {
            let d = (er[c] = { cssEmPerMu: Vt.quad[c] / 18 });
            for (let g in Vt) Vt.hasOwnProperty(g) && (d[g] = Vt[g][c]);
          }
          return er[c];
        }
        let BE = [
            [1, 1, 1],
            [2, 1, 1],
            [3, 1, 1],
            [4, 2, 1],
            [5, 2, 1],
            [6, 3, 1],
            [7, 4, 2],
            [8, 6, 3],
            [9, 7, 6],
            [10, 8, 7],
            [11, 10, 9],
          ],
          E5 = [0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.2, 1.44, 1.728, 2.074, 2.488],
          C5 = function (f, c) {
            return c.size < 2 ? f : BE[f - 1][c.size - 1];
          };
        class Fi {
          constructor(c) {
            ((this.style = void 0),
              (this.color = void 0),
              (this.size = void 0),
              (this.textSize = void 0),
              (this.phantom = void 0),
              (this.font = void 0),
              (this.fontFamily = void 0),
              (this.fontWeight = void 0),
              (this.fontShape = void 0),
              (this.sizeMultiplier = void 0),
              (this.maxSize = void 0),
              (this.minRuleThickness = void 0),
              (this._fontMetrics = void 0),
              (this.style = c.style),
              (this.color = c.color),
              (this.size = c.size || Fi.BASESIZE),
              (this.textSize = c.textSize || this.size),
              (this.phantom = !!c.phantom),
              (this.font = c.font || ""),
              (this.fontFamily = c.fontFamily || ""),
              (this.fontWeight = c.fontWeight || ""),
              (this.fontShape = c.fontShape || ""),
              (this.sizeMultiplier = E5[this.size - 1]),
              (this.maxSize = c.maxSize),
              (this.minRuleThickness = c.minRuleThickness),
              (this._fontMetrics = void 0));
          }
          extend(c) {
            let d = {
              style: this.style,
              size: this.size,
              textSize: this.textSize,
              color: this.color,
              phantom: this.phantom,
              font: this.font,
              fontFamily: this.fontFamily,
              fontWeight: this.fontWeight,
              fontShape: this.fontShape,
              maxSize: this.maxSize,
              minRuleThickness: this.minRuleThickness,
            };
            for (let g in c) c.hasOwnProperty(g) && (d[g] = c[g]);
            return new Fi(d);
          }
          havingStyle(c) {
            return this.style === c
              ? this
              : this.extend({ style: c, size: C5(this.textSize, c) });
          }
          havingCrampedStyle() {
            return this.havingStyle(this.style.cramp());
          }
          havingSize(c) {
            return this.size === c && this.textSize === c
              ? this
              : this.extend({
                  style: this.style.text(),
                  size: c,
                  textSize: c,
                  sizeMultiplier: E5[c - 1],
                });
          }
          havingBaseStyle(c) {
            c = c || this.style.text();
            let d = C5(Fi.BASESIZE, c);
            return this.size === d &&
              this.textSize === Fi.BASESIZE &&
              this.style === c
              ? this
              : this.extend({ style: c, size: d });
          }
          havingBaseSizing() {
            let c;
            switch (this.style.id) {
              case 4:
              case 5:
                c = 3;
                break;
              case 6:
              case 7:
                c = 1;
                break;
              default:
                c = 6;
            }
            return this.extend({ style: this.style.text(), size: c });
          }
          withColor(c) {
            return this.extend({ color: c });
          }
          withPhantom() {
            return this.extend({ phantom: !0 });
          }
          withFont(c) {
            return this.extend({ font: c });
          }
          withTextFontFamily(c) {
            return this.extend({ fontFamily: c, font: "" });
          }
          withTextFontWeight(c) {
            return this.extend({ fontWeight: c, font: "" });
          }
          withTextFontShape(c) {
            return this.extend({ fontShape: c, font: "" });
          }
          sizingClasses(c) {
            return c.size !== this.size
              ? ["sizing", "reset-size" + c.size, "size" + this.size]
              : [];
          }
          baseSizingClasses() {
            return this.size !== Fi.BASESIZE
              ? ["sizing", "reset-size" + this.size, "size" + Fi.BASESIZE]
              : [];
          }
          fontMetrics() {
            return (
              this._fontMetrics || (this._fontMetrics = OE(this.size)),
              this._fontMetrics
            );
          }
          getColor() {
            return this.phantom ? "transparent" : this.color;
          }
        }
        Fi.BASESIZE = 6;
        var zE = Fi;
        let Cp = {
            pt: 1,
            mm: 7227 / 2540,
            cm: 7227 / 254,
            in: 72.27,
            bp: 803 / 800,
            pc: 12,
            dd: 1238 / 1157,
            cc: 14856 / 1157,
            nd: 685 / 642,
            nc: 1370 / 107,
            sp: 1 / 65536,
            px: 803 / 800,
          },
          RE = { ex: !0, em: !0, mu: !0 },
          N5 = function (f) {
            return (
              typeof f != "string" && (f = f.unit),
              f in Cp || f in RE || f === "ex"
            );
          },
          Dt = function (f, c) {
            let d;
            if (f.unit in Cp)
              d = Cp[f.unit] / c.fontMetrics().ptPerEm / c.sizeMultiplier;
            else if (f.unit === "mu") d = c.fontMetrics().cssEmPerMu;
            else {
              let g;
              if (
                (c.style.isTight()
                  ? (g = c.havingStyle(c.style.text()))
                  : (g = c),
                f.unit === "ex")
              )
                d = g.fontMetrics().xHeight;
              else if (f.unit === "em") d = g.fontMetrics().quad;
              else throw new r("Invalid unit: '" + f.unit + "'");
              g !== c && (d *= g.sizeMultiplier / c.sizeMultiplier);
            }
            return Math.min(f.number * d, c.maxSize);
          },
          de = function (f) {
            return +f.toFixed(4) + "em";
          },
          xo = function (f) {
            return f.filter((c) => c).join(" ");
          },
          D5 = function (f, c, d) {
            if (
              ((this.classes = f || []),
              (this.attributes = {}),
              (this.height = 0),
              (this.depth = 0),
              (this.maxFontSize = 0),
              (this.style = d || {}),
              c)
            ) {
              c.style.isTight() && this.classes.push("mtight");
              let g = c.getColor();
              g && (this.style.color = g);
            }
          },
          I5 = function (f) {
            let c = document.createElement(f);
            c.className = xo(this.classes);
            for (let d in this.style)
              this.style.hasOwnProperty(d) && (c.style[d] = this.style[d]);
            for (let d in this.attributes)
              this.attributes.hasOwnProperty(d) &&
                c.setAttribute(d, this.attributes[d]);
            for (let d = 0; d < this.children.length; d++)
              c.appendChild(this.children[d].toNode());
            return c;
          },
          PE = /[\s"'>/=\x00-\x1f]/,
          F5 = function (f) {
            let c = "<" + f;
            this.classes.length &&
              (c += ' class="' + x.escape(xo(this.classes)) + '"');
            let d = "";
            for (let g in this.style)
              this.style.hasOwnProperty(g) &&
                (d += x.hyphenate(g) + ":" + this.style[g] + ";");
            d && (c += ' style="' + x.escape(d) + '"');
            for (let g in this.attributes)
              if (this.attributes.hasOwnProperty(g)) {
                if (PE.test(g))
                  throw new r("Invalid attribute name '" + g + "'");
                c += " " + g + '="' + x.escape(this.attributes[g]) + '"';
              }
            c += ">";
            for (let g = 0; g < this.children.length; g++)
              c += this.children[g].toMarkup();
            return ((c += "</" + f + ">"), c);
          };
        class ia {
          constructor(c, d, g, w) {
            ((this.children = void 0),
              (this.attributes = void 0),
              (this.classes = void 0),
              (this.height = void 0),
              (this.depth = void 0),
              (this.width = void 0),
              (this.maxFontSize = void 0),
              (this.style = void 0),
              D5.call(this, c, g, w),
              (this.children = d || []));
          }
          setAttribute(c, d) {
            this.attributes[c] = d;
          }
          hasClass(c) {
            return this.classes.includes(c);
          }
          toNode() {
            return I5.call(this, "span");
          }
          toMarkup() {
            return F5.call(this, "span");
          }
        }
        class Np {
          constructor(c, d, g, w) {
            ((this.children = void 0),
              (this.attributes = void 0),
              (this.classes = void 0),
              (this.height = void 0),
              (this.depth = void 0),
              (this.maxFontSize = void 0),
              (this.style = void 0),
              D5.call(this, d, w),
              (this.children = g || []),
              this.setAttribute("href", c));
          }
          setAttribute(c, d) {
            this.attributes[c] = d;
          }
          hasClass(c) {
            return this.classes.includes(c);
          }
          toNode() {
            return I5.call(this, "a");
          }
          toMarkup() {
            return F5.call(this, "a");
          }
        }
        class $E {
          constructor(c, d, g) {
            ((this.src = void 0),
              (this.alt = void 0),
              (this.classes = void 0),
              (this.height = void 0),
              (this.depth = void 0),
              (this.maxFontSize = void 0),
              (this.style = void 0),
              (this.alt = d),
              (this.src = c),
              (this.classes = ["mord"]),
              (this.style = g));
          }
          hasClass(c) {
            return this.classes.includes(c);
          }
          toNode() {
            let c = document.createElement("img");
            ((c.src = this.src), (c.alt = this.alt), (c.className = "mord"));
            for (let d in this.style)
              this.style.hasOwnProperty(d) && (c.style[d] = this.style[d]);
            return c;
          }
          toMarkup() {
            let c =
                '<img src="' +
                x.escape(this.src) +
                '"' +
                (' alt="' + x.escape(this.alt) + '"'),
              d = "";
            for (let g in this.style)
              this.style.hasOwnProperty(g) &&
                (d += x.hyphenate(g) + ":" + this.style[g] + ";");
            return (
              d && (c += ' style="' + x.escape(d) + '"'),
              (c += "'/>"),
              c
            );
          }
        }
        let HE = {
          î: "\u0131\u0302",
          ï: "\u0131\u0308",
          í: "\u0131\u0301",
          ì: "\u0131\u0300",
        };
        class tr {
          constructor(c, d, g, w, S, C, F, L) {
            ((this.text = void 0),
              (this.height = void 0),
              (this.depth = void 0),
              (this.italic = void 0),
              (this.skew = void 0),
              (this.width = void 0),
              (this.maxFontSize = void 0),
              (this.classes = void 0),
              (this.style = void 0),
              (this.text = c),
              (this.height = d || 0),
              (this.depth = g || 0),
              (this.italic = w || 0),
              (this.skew = S || 0),
              (this.width = C || 0),
              (this.classes = F || []),
              (this.style = L || {}),
              (this.maxFontSize = 0));
            let $ = ce(this.text.charCodeAt(0));
            ($ && this.classes.push($ + "_fallback"),
              /[îïíì]/.test(this.text) && (this.text = HE[this.text]));
          }
          hasClass(c) {
            return this.classes.includes(c);
          }
          toNode() {
            let c = document.createTextNode(this.text),
              d = null;
            (this.italic > 0 &&
              ((d = document.createElement("span")),
              (d.style.marginRight = de(this.italic))),
              this.classes.length > 0 &&
                ((d = d || document.createElement("span")),
                (d.className = xo(this.classes))));
            for (let g in this.style)
              this.style.hasOwnProperty(g) &&
                ((d = d || document.createElement("span")),
                (d.style[g] = this.style[g]));
            return d ? (d.appendChild(c), d) : c;
          }
          toMarkup() {
            let c = !1,
              d = "<span";
            this.classes.length &&
              ((c = !0),
              (d += ' class="'),
              (d += x.escape(xo(this.classes))),
              (d += '"'));
            let g = "";
            this.italic > 0 && (g += "margin-right:" + this.italic + "em;");
            for (let S in this.style)
              this.style.hasOwnProperty(S) &&
                (g += x.hyphenate(S) + ":" + this.style[S] + ";");
            g && ((c = !0), (d += ' style="' + x.escape(g) + '"'));
            let w = x.escape(this.text);
            return c ? ((d += ">"), (d += w), (d += "</span>"), d) : w;
          }
        }
        class qi {
          constructor(c, d) {
            ((this.children = void 0),
              (this.attributes = void 0),
              (this.children = c || []),
              (this.attributes = d || {}));
          }
          toNode() {
            let d = document.createElementNS(
              "http://www.w3.org/2000/svg",
              "svg",
            );
            for (let g in this.attributes)
              Object.prototype.hasOwnProperty.call(this.attributes, g) &&
                d.setAttribute(g, this.attributes[g]);
            for (let g = 0; g < this.children.length; g++)
              d.appendChild(this.children[g].toNode());
            return d;
          }
          toMarkup() {
            let c = '<svg xmlns="http://www.w3.org/2000/svg"';
            for (let d in this.attributes)
              Object.prototype.hasOwnProperty.call(this.attributes, d) &&
                (c += " " + d + '="' + x.escape(this.attributes[d]) + '"');
            c += ">";
            for (let d = 0; d < this.children.length; d++)
              c += this.children[d].toMarkup();
            return ((c += "</svg>"), c);
          }
        }
        class yo {
          constructor(c, d) {
            ((this.pathName = void 0),
              (this.alternate = void 0),
              (this.pathName = c),
              (this.alternate = d));
          }
          toNode() {
            let d = document.createElementNS(
              "http://www.w3.org/2000/svg",
              "path",
            );
            return (
              this.alternate
                ? d.setAttribute("d", this.alternate)
                : d.setAttribute("d", yt[this.pathName]),
              d
            );
          }
          toMarkup() {
            return this.alternate
              ? '<path d="' + x.escape(this.alternate) + '"/>'
              : '<path d="' + x.escape(yt[this.pathName]) + '"/>';
          }
        }
        class Dp {
          constructor(c) {
            ((this.attributes = void 0), (this.attributes = c || {}));
          }
          toNode() {
            let d = document.createElementNS(
              "http://www.w3.org/2000/svg",
              "line",
            );
            for (let g in this.attributes)
              Object.prototype.hasOwnProperty.call(this.attributes, g) &&
                d.setAttribute(g, this.attributes[g]);
            return d;
          }
          toMarkup() {
            let c = "<line";
            for (let d in this.attributes)
              Object.prototype.hasOwnProperty.call(this.attributes, d) &&
                (c += " " + d + '="' + x.escape(this.attributes[d]) + '"');
            return ((c += "/>"), c);
          }
        }
        function q5(f) {
          if (f instanceof tr) return f;
          throw new Error("Expected symbolNode but got " + String(f) + ".");
        }
        function UE(f) {
          if (f instanceof ia) return f;
          throw new Error(
            "Expected span<HtmlDomNode> but got " + String(f) + ".",
          );
        }
        let VE = { bin: 1, close: 1, inner: 1, open: 1, punct: 1, rel: 1 },
          jE = {
            "accent-token": 1,
            mathord: 1,
            "op-token": 1,
            spacing: 1,
            textord: 1,
          },
          Ec = { math: {}, text: {} };
        var It = Ec;
        function _(f, c, d, g, w, S) {
          ((Ec[f][w] = { font: c, group: d, replace: g }),
            S && g && (Ec[f][g] = Ec[f][w]));
        }
        let A = "math",
          se = "text",
          N = "main",
          z = "ams",
          At = "accent-token",
          ve = "bin",
          Sn = "close",
          Is = "inner",
          Ee = "mathord",
          jt = "op-token",
          jn = "open",
          Cc = "punct",
          R = "rel",
          Li = "spacing",
          Y = "textord";
        (_(A, N, R, "\u2261", "\\equiv", !0),
          _(A, N, R, "\u227A", "\\prec", !0),
          _(A, N, R, "\u227B", "\\succ", !0),
          _(A, N, R, "\u223C", "\\sim", !0),
          _(A, N, R, "\u22A5", "\\perp"),
          _(A, N, R, "\u2AAF", "\\preceq", !0),
          _(A, N, R, "\u2AB0", "\\succeq", !0),
          _(A, N, R, "\u2243", "\\simeq", !0),
          _(A, N, R, "\u2223", "\\mid", !0),
          _(A, N, R, "\u226A", "\\ll", !0),
          _(A, N, R, "\u226B", "\\gg", !0),
          _(A, N, R, "\u224D", "\\asymp", !0),
          _(A, N, R, "\u2225", "\\parallel"),
          _(A, N, R, "\u22C8", "\\bowtie", !0),
          _(A, N, R, "\u2323", "\\smile", !0),
          _(A, N, R, "\u2291", "\\sqsubseteq", !0),
          _(A, N, R, "\u2292", "\\sqsupseteq", !0),
          _(A, N, R, "\u2250", "\\doteq", !0),
          _(A, N, R, "\u2322", "\\frown", !0),
          _(A, N, R, "\u220B", "\\ni", !0),
          _(A, N, R, "\u221D", "\\propto", !0),
          _(A, N, R, "\u22A2", "\\vdash", !0),
          _(A, N, R, "\u22A3", "\\dashv", !0),
          _(A, N, R, "\u220B", "\\owns"),
          _(A, N, Cc, ".", "\\ldotp"),
          _(A, N, Cc, "\u22C5", "\\cdotp"),
          _(A, N, Y, "#", "\\#"),
          _(se, N, Y, "#", "\\#"),
          _(A, N, Y, "&", "\\&"),
          _(se, N, Y, "&", "\\&"),
          _(A, N, Y, "\u2135", "\\aleph", !0),
          _(A, N, Y, "\u2200", "\\forall", !0),
          _(A, N, Y, "\u210F", "\\hbar", !0),
          _(A, N, Y, "\u2203", "\\exists", !0),
          _(A, N, Y, "\u2207", "\\nabla", !0),
          _(A, N, Y, "\u266D", "\\flat", !0),
          _(A, N, Y, "\u2113", "\\ell", !0),
          _(A, N, Y, "\u266E", "\\natural", !0),
          _(A, N, Y, "\u2663", "\\clubsuit", !0),
          _(A, N, Y, "\u2118", "\\wp", !0),
          _(A, N, Y, "\u266F", "\\sharp", !0),
          _(A, N, Y, "\u2662", "\\diamondsuit", !0),
          _(A, N, Y, "\u211C", "\\Re", !0),
          _(A, N, Y, "\u2661", "\\heartsuit", !0),
          _(A, N, Y, "\u2111", "\\Im", !0),
          _(A, N, Y, "\u2660", "\\spadesuit", !0),
          _(A, N, Y, "\xA7", "\\S", !0),
          _(se, N, Y, "\xA7", "\\S"),
          _(A, N, Y, "\xB6", "\\P", !0),
          _(se, N, Y, "\xB6", "\\P"),
          _(A, N, Y, "\u2020", "\\dag"),
          _(se, N, Y, "\u2020", "\\dag"),
          _(se, N, Y, "\u2020", "\\textdagger"),
          _(A, N, Y, "\u2021", "\\ddag"),
          _(se, N, Y, "\u2021", "\\ddag"),
          _(se, N, Y, "\u2021", "\\textdaggerdbl"),
          _(A, N, Sn, "\u23B1", "\\rmoustache", !0),
          _(A, N, jn, "\u23B0", "\\lmoustache", !0),
          _(A, N, Sn, "\u27EF", "\\rgroup", !0),
          _(A, N, jn, "\u27EE", "\\lgroup", !0),
          _(A, N, ve, "\u2213", "\\mp", !0),
          _(A, N, ve, "\u2296", "\\ominus", !0),
          _(A, N, ve, "\u228E", "\\uplus", !0),
          _(A, N, ve, "\u2293", "\\sqcap", !0),
          _(A, N, ve, "\u2217", "\\ast"),
          _(A, N, ve, "\u2294", "\\sqcup", !0),
          _(A, N, ve, "\u25EF", "\\bigcirc", !0),
          _(A, N, ve, "\u2219", "\\bullet", !0),
          _(A, N, ve, "\u2021", "\\ddagger"),
          _(A, N, ve, "\u2240", "\\wr", !0),
          _(A, N, ve, "\u2A3F", "\\amalg"),
          _(A, N, ve, "&", "\\And"),
          _(A, N, R, "\u27F5", "\\longleftarrow", !0),
          _(A, N, R, "\u21D0", "\\Leftarrow", !0),
          _(A, N, R, "\u27F8", "\\Longleftarrow", !0),
          _(A, N, R, "\u27F6", "\\longrightarrow", !0),
          _(A, N, R, "\u21D2", "\\Rightarrow", !0),
          _(A, N, R, "\u27F9", "\\Longrightarrow", !0),
          _(A, N, R, "\u2194", "\\leftrightarrow", !0),
          _(A, N, R, "\u27F7", "\\longleftrightarrow", !0),
          _(A, N, R, "\u21D4", "\\Leftrightarrow", !0),
          _(A, N, R, "\u27FA", "\\Longleftrightarrow", !0),
          _(A, N, R, "\u21A6", "\\mapsto", !0),
          _(A, N, R, "\u27FC", "\\longmapsto", !0),
          _(A, N, R, "\u2197", "\\nearrow", !0),
          _(A, N, R, "\u21A9", "\\hookleftarrow", !0),
          _(A, N, R, "\u21AA", "\\hookrightarrow", !0),
          _(A, N, R, "\u2198", "\\searrow", !0),
          _(A, N, R, "\u21BC", "\\leftharpoonup", !0),
          _(A, N, R, "\u21C0", "\\rightharpoonup", !0),
          _(A, N, R, "\u2199", "\\swarrow", !0),
          _(A, N, R, "\u21BD", "\\leftharpoondown", !0),
          _(A, N, R, "\u21C1", "\\rightharpoondown", !0),
          _(A, N, R, "\u2196", "\\nwarrow", !0),
          _(A, N, R, "\u21CC", "\\rightleftharpoons", !0),
          _(A, z, R, "\u226E", "\\nless", !0),
          _(A, z, R, "\uE010", "\\@nleqslant"),
          _(A, z, R, "\uE011", "\\@nleqq"),
          _(A, z, R, "\u2A87", "\\lneq", !0),
          _(A, z, R, "\u2268", "\\lneqq", !0),
          _(A, z, R, "\uE00C", "\\@lvertneqq"),
          _(A, z, R, "\u22E6", "\\lnsim", !0),
          _(A, z, R, "\u2A89", "\\lnapprox", !0),
          _(A, z, R, "\u2280", "\\nprec", !0),
          _(A, z, R, "\u22E0", "\\npreceq", !0),
          _(A, z, R, "\u22E8", "\\precnsim", !0),
          _(A, z, R, "\u2AB9", "\\precnapprox", !0),
          _(A, z, R, "\u2241", "\\nsim", !0),
          _(A, z, R, "\uE006", "\\@nshortmid"),
          _(A, z, R, "\u2224", "\\nmid", !0),
          _(A, z, R, "\u22AC", "\\nvdash", !0),
          _(A, z, R, "\u22AD", "\\nvDash", !0),
          _(A, z, R, "\u22EA", "\\ntriangleleft"),
          _(A, z, R, "\u22EC", "\\ntrianglelefteq", !0),
          _(A, z, R, "\u228A", "\\subsetneq", !0),
          _(A, z, R, "\uE01A", "\\@varsubsetneq"),
          _(A, z, R, "\u2ACB", "\\subsetneqq", !0),
          _(A, z, R, "\uE017", "\\@varsubsetneqq"),
          _(A, z, R, "\u226F", "\\ngtr", !0),
          _(A, z, R, "\uE00F", "\\@ngeqslant"),
          _(A, z, R, "\uE00E", "\\@ngeqq"),
          _(A, z, R, "\u2A88", "\\gneq", !0),
          _(A, z, R, "\u2269", "\\gneqq", !0),
          _(A, z, R, "\uE00D", "\\@gvertneqq"),
          _(A, z, R, "\u22E7", "\\gnsim", !0),
          _(A, z, R, "\u2A8A", "\\gnapprox", !0),
          _(A, z, R, "\u2281", "\\nsucc", !0),
          _(A, z, R, "\u22E1", "\\nsucceq", !0),
          _(A, z, R, "\u22E9", "\\succnsim", !0),
          _(A, z, R, "\u2ABA", "\\succnapprox", !0),
          _(A, z, R, "\u2246", "\\ncong", !0),
          _(A, z, R, "\uE007", "\\@nshortparallel"),
          _(A, z, R, "\u2226", "\\nparallel", !0),
          _(A, z, R, "\u22AF", "\\nVDash", !0),
          _(A, z, R, "\u22EB", "\\ntriangleright"),
          _(A, z, R, "\u22ED", "\\ntrianglerighteq", !0),
          _(A, z, R, "\uE018", "\\@nsupseteqq"),
          _(A, z, R, "\u228B", "\\supsetneq", !0),
          _(A, z, R, "\uE01B", "\\@varsupsetneq"),
          _(A, z, R, "\u2ACC", "\\supsetneqq", !0),
          _(A, z, R, "\uE019", "\\@varsupsetneqq"),
          _(A, z, R, "\u22AE", "\\nVdash", !0),
          _(A, z, R, "\u2AB5", "\\precneqq", !0),
          _(A, z, R, "\u2AB6", "\\succneqq", !0),
          _(A, z, R, "\uE016", "\\@nsubseteqq"),
          _(A, z, ve, "\u22B4", "\\unlhd"),
          _(A, z, ve, "\u22B5", "\\unrhd"),
          _(A, z, R, "\u219A", "\\nleftarrow", !0),
          _(A, z, R, "\u219B", "\\nrightarrow", !0),
          _(A, z, R, "\u21CD", "\\nLeftarrow", !0),
          _(A, z, R, "\u21CF", "\\nRightarrow", !0),
          _(A, z, R, "\u21AE", "\\nleftrightarrow", !0),
          _(A, z, R, "\u21CE", "\\nLeftrightarrow", !0),
          _(A, z, R, "\u25B3", "\\vartriangle"),
          _(A, z, Y, "\u210F", "\\hslash"),
          _(A, z, Y, "\u25BD", "\\triangledown"),
          _(A, z, Y, "\u25CA", "\\lozenge"),
          _(A, z, Y, "\u24C8", "\\circledS"),
          _(A, z, Y, "\xAE", "\\circledR"),
          _(se, z, Y, "\xAE", "\\circledR"),
          _(A, z, Y, "\u2221", "\\measuredangle", !0),
          _(A, z, Y, "\u2204", "\\nexists"),
          _(A, z, Y, "\u2127", "\\mho"),
          _(A, z, Y, "\u2132", "\\Finv", !0),
          _(A, z, Y, "\u2141", "\\Game", !0),
          _(A, z, Y, "\u2035", "\\backprime"),
          _(A, z, Y, "\u25B2", "\\blacktriangle"),
          _(A, z, Y, "\u25BC", "\\blacktriangledown"),
          _(A, z, Y, "\u25A0", "\\blacksquare"),
          _(A, z, Y, "\u29EB", "\\blacklozenge"),
          _(A, z, Y, "\u2605", "\\bigstar"),
          _(A, z, Y, "\u2222", "\\sphericalangle", !0),
          _(A, z, Y, "\u2201", "\\complement", !0),
          _(A, z, Y, "\xF0", "\\eth", !0),
          _(se, N, Y, "\xF0", "\xF0"),
          _(A, z, Y, "\u2571", "\\diagup"),
          _(A, z, Y, "\u2572", "\\diagdown"),
          _(A, z, Y, "\u25A1", "\\square"),
          _(A, z, Y, "\u25A1", "\\Box"),
          _(A, z, Y, "\u25CA", "\\Diamond"),
          _(A, z, Y, "\xA5", "\\yen", !0),
          _(se, z, Y, "\xA5", "\\yen", !0),
          _(A, z, Y, "\u2713", "\\checkmark", !0),
          _(se, z, Y, "\u2713", "\\checkmark"),
          _(A, z, Y, "\u2136", "\\beth", !0),
          _(A, z, Y, "\u2138", "\\daleth", !0),
          _(A, z, Y, "\u2137", "\\gimel", !0),
          _(A, z, Y, "\u03DD", "\\digamma", !0),
          _(A, z, Y, "\u03F0", "\\varkappa"),
          _(A, z, jn, "\u250C", "\\@ulcorner", !0),
          _(A, z, Sn, "\u2510", "\\@urcorner", !0),
          _(A, z, jn, "\u2514", "\\@llcorner", !0),
          _(A, z, Sn, "\u2518", "\\@lrcorner", !0),
          _(A, z, R, "\u2266", "\\leqq", !0),
          _(A, z, R, "\u2A7D", "\\leqslant", !0),
          _(A, z, R, "\u2A95", "\\eqslantless", !0),
          _(A, z, R, "\u2272", "\\lesssim", !0),
          _(A, z, R, "\u2A85", "\\lessapprox", !0),
          _(A, z, R, "\u224A", "\\approxeq", !0),
          _(A, z, ve, "\u22D6", "\\lessdot"),
          _(A, z, R, "\u22D8", "\\lll", !0),
          _(A, z, R, "\u2276", "\\lessgtr", !0),
          _(A, z, R, "\u22DA", "\\lesseqgtr", !0),
          _(A, z, R, "\u2A8B", "\\lesseqqgtr", !0),
          _(A, z, R, "\u2251", "\\doteqdot"),
          _(A, z, R, "\u2253", "\\risingdotseq", !0),
          _(A, z, R, "\u2252", "\\fallingdotseq", !0),
          _(A, z, R, "\u223D", "\\backsim", !0),
          _(A, z, R, "\u22CD", "\\backsimeq", !0),
          _(A, z, R, "\u2AC5", "\\subseteqq", !0),
          _(A, z, R, "\u22D0", "\\Subset", !0),
          _(A, z, R, "\u228F", "\\sqsubset", !0),
          _(A, z, R, "\u227C", "\\preccurlyeq", !0),
          _(A, z, R, "\u22DE", "\\curlyeqprec", !0),
          _(A, z, R, "\u227E", "\\precsim", !0),
          _(A, z, R, "\u2AB7", "\\precapprox", !0),
          _(A, z, R, "\u22B2", "\\vartriangleleft"),
          _(A, z, R, "\u22B4", "\\trianglelefteq"),
          _(A, z, R, "\u22A8", "\\vDash", !0),
          _(A, z, R, "\u22AA", "\\Vvdash", !0),
          _(A, z, R, "\u2323", "\\smallsmile"),
          _(A, z, R, "\u2322", "\\smallfrown"),
          _(A, z, R, "\u224F", "\\bumpeq", !0),
          _(A, z, R, "\u224E", "\\Bumpeq", !0),
          _(A, z, R, "\u2267", "\\geqq", !0),
          _(A, z, R, "\u2A7E", "\\geqslant", !0),
          _(A, z, R, "\u2A96", "\\eqslantgtr", !0),
          _(A, z, R, "\u2273", "\\gtrsim", !0),
          _(A, z, R, "\u2A86", "\\gtrapprox", !0),
          _(A, z, ve, "\u22D7", "\\gtrdot"),
          _(A, z, R, "\u22D9", "\\ggg", !0),
          _(A, z, R, "\u2277", "\\gtrless", !0),
          _(A, z, R, "\u22DB", "\\gtreqless", !0),
          _(A, z, R, "\u2A8C", "\\gtreqqless", !0),
          _(A, z, R, "\u2256", "\\eqcirc", !0),
          _(A, z, R, "\u2257", "\\circeq", !0),
          _(A, z, R, "\u225C", "\\triangleq", !0),
          _(A, z, R, "\u223C", "\\thicksim"),
          _(A, z, R, "\u2248", "\\thickapprox"),
          _(A, z, R, "\u2AC6", "\\supseteqq", !0),
          _(A, z, R, "\u22D1", "\\Supset", !0),
          _(A, z, R, "\u2290", "\\sqsupset", !0),
          _(A, z, R, "\u227D", "\\succcurlyeq", !0),
          _(A, z, R, "\u22DF", "\\curlyeqsucc", !0),
          _(A, z, R, "\u227F", "\\succsim", !0),
          _(A, z, R, "\u2AB8", "\\succapprox", !0),
          _(A, z, R, "\u22B3", "\\vartriangleright"),
          _(A, z, R, "\u22B5", "\\trianglerighteq"),
          _(A, z, R, "\u22A9", "\\Vdash", !0),
          _(A, z, R, "\u2223", "\\shortmid"),
          _(A, z, R, "\u2225", "\\shortparallel"),
          _(A, z, R, "\u226C", "\\between", !0),
          _(A, z, R, "\u22D4", "\\pitchfork", !0),
          _(A, z, R, "\u221D", "\\varpropto"),
          _(A, z, R, "\u25C0", "\\blacktriangleleft"),
          _(A, z, R, "\u2234", "\\therefore", !0),
          _(A, z, R, "\u220D", "\\backepsilon"),
          _(A, z, R, "\u25B6", "\\blacktriangleright"),
          _(A, z, R, "\u2235", "\\because", !0),
          _(A, z, R, "\u22D8", "\\llless"),
          _(A, z, R, "\u22D9", "\\gggtr"),
          _(A, z, ve, "\u22B2", "\\lhd"),
          _(A, z, ve, "\u22B3", "\\rhd"),
          _(A, z, R, "\u2242", "\\eqsim", !0),
          _(A, N, R, "\u22C8", "\\Join"),
          _(A, z, R, "\u2251", "\\Doteq", !0),
          _(A, z, ve, "\u2214", "\\dotplus", !0),
          _(A, z, ve, "\u2216", "\\smallsetminus"),
          _(A, z, ve, "\u22D2", "\\Cap", !0),
          _(A, z, ve, "\u22D3", "\\Cup", !0),
          _(A, z, ve, "\u2A5E", "\\doublebarwedge", !0),
          _(A, z, ve, "\u229F", "\\boxminus", !0),
          _(A, z, ve, "\u229E", "\\boxplus", !0),
          _(A, z, ve, "\u22C7", "\\divideontimes", !0),
          _(A, z, ve, "\u22C9", "\\ltimes", !0),
          _(A, z, ve, "\u22CA", "\\rtimes", !0),
          _(A, z, ve, "\u22CB", "\\leftthreetimes", !0),
          _(A, z, ve, "\u22CC", "\\rightthreetimes", !0),
          _(A, z, ve, "\u22CF", "\\curlywedge", !0),
          _(A, z, ve, "\u22CE", "\\curlyvee", !0),
          _(A, z, ve, "\u229D", "\\circleddash", !0),
          _(A, z, ve, "\u229B", "\\circledast", !0),
          _(A, z, ve, "\u22C5", "\\centerdot"),
          _(A, z, ve, "\u22BA", "\\intercal", !0),
          _(A, z, ve, "\u22D2", "\\doublecap"),
          _(A, z, ve, "\u22D3", "\\doublecup"),
          _(A, z, ve, "\u22A0", "\\boxtimes", !0),
          _(A, z, R, "\u21E2", "\\dashrightarrow", !0),
          _(A, z, R, "\u21E0", "\\dashleftarrow", !0),
          _(A, z, R, "\u21C7", "\\leftleftarrows", !0),
          _(A, z, R, "\u21C6", "\\leftrightarrows", !0),
          _(A, z, R, "\u21DA", "\\Lleftarrow", !0),
          _(A, z, R, "\u219E", "\\twoheadleftarrow", !0),
          _(A, z, R, "\u21A2", "\\leftarrowtail", !0),
          _(A, z, R, "\u21AB", "\\looparrowleft", !0),
          _(A, z, R, "\u21CB", "\\leftrightharpoons", !0),
          _(A, z, R, "\u21B6", "\\curvearrowleft", !0),
          _(A, z, R, "\u21BA", "\\circlearrowleft", !0),
          _(A, z, R, "\u21B0", "\\Lsh", !0),
          _(A, z, R, "\u21C8", "\\upuparrows", !0),
          _(A, z, R, "\u21BF", "\\upharpoonleft", !0),
          _(A, z, R, "\u21C3", "\\downharpoonleft", !0),
          _(A, N, R, "\u22B6", "\\origof", !0),
          _(A, N, R, "\u22B7", "\\imageof", !0),
          _(A, z, R, "\u22B8", "\\multimap", !0),
          _(A, z, R, "\u21AD", "\\leftrightsquigarrow", !0),
          _(A, z, R, "\u21C9", "\\rightrightarrows", !0),
          _(A, z, R, "\u21C4", "\\rightleftarrows", !0),
          _(A, z, R, "\u21A0", "\\twoheadrightarrow", !0),
          _(A, z, R, "\u21A3", "\\rightarrowtail", !0),
          _(A, z, R, "\u21AC", "\\looparrowright", !0),
          _(A, z, R, "\u21B7", "\\curvearrowright", !0),
          _(A, z, R, "\u21BB", "\\circlearrowright", !0),
          _(A, z, R, "\u21B1", "\\Rsh", !0),
          _(A, z, R, "\u21CA", "\\downdownarrows", !0),
          _(A, z, R, "\u21BE", "\\upharpoonright", !0),
          _(A, z, R, "\u21C2", "\\downharpoonright", !0),
          _(A, z, R, "\u21DD", "\\rightsquigarrow", !0),
          _(A, z, R, "\u21DD", "\\leadsto"),
          _(A, z, R, "\u21DB", "\\Rrightarrow", !0),
          _(A, z, R, "\u21BE", "\\restriction"),
          _(A, N, Y, "\u2018", "`"),
          _(A, N, Y, "$", "\\$"),
          _(se, N, Y, "$", "\\$"),
          _(se, N, Y, "$", "\\textdollar"),
          _(A, N, Y, "%", "\\%"),
          _(se, N, Y, "%", "\\%"),
          _(A, N, Y, "_", "\\_"),
          _(se, N, Y, "_", "\\_"),
          _(se, N, Y, "_", "\\textunderscore"),
          _(A, N, Y, "\u2220", "\\angle", !0),
          _(A, N, Y, "\u221E", "\\infty", !0),
          _(A, N, Y, "\u2032", "\\prime"),
          _(A, N, Y, "\u25B3", "\\triangle"),
          _(A, N, Y, "\u0393", "\\Gamma", !0),
          _(A, N, Y, "\u0394", "\\Delta", !0),
          _(A, N, Y, "\u0398", "\\Theta", !0),
          _(A, N, Y, "\u039B", "\\Lambda", !0),
          _(A, N, Y, "\u039E", "\\Xi", !0),
          _(A, N, Y, "\u03A0", "\\Pi", !0),
          _(A, N, Y, "\u03A3", "\\Sigma", !0),
          _(A, N, Y, "\u03A5", "\\Upsilon", !0),
          _(A, N, Y, "\u03A6", "\\Phi", !0),
          _(A, N, Y, "\u03A8", "\\Psi", !0),
          _(A, N, Y, "\u03A9", "\\Omega", !0),
          _(A, N, Y, "A", "\u0391"),
          _(A, N, Y, "B", "\u0392"),
          _(A, N, Y, "E", "\u0395"),
          _(A, N, Y, "Z", "\u0396"),
          _(A, N, Y, "H", "\u0397"),
          _(A, N, Y, "I", "\u0399"),
          _(A, N, Y, "K", "\u039A"),
          _(A, N, Y, "M", "\u039C"),
          _(A, N, Y, "N", "\u039D"),
          _(A, N, Y, "O", "\u039F"),
          _(A, N, Y, "P", "\u03A1"),
          _(A, N, Y, "T", "\u03A4"),
          _(A, N, Y, "X", "\u03A7"),
          _(A, N, Y, "\xAC", "\\neg", !0),
          _(A, N, Y, "\xAC", "\\lnot"),
          _(A, N, Y, "\u22A4", "\\top"),
          _(A, N, Y, "\u22A5", "\\bot"),
          _(A, N, Y, "\u2205", "\\emptyset"),
          _(A, z, Y, "\u2205", "\\varnothing"),
          _(A, N, Ee, "\u03B1", "\\alpha", !0),
          _(A, N, Ee, "\u03B2", "\\beta", !0),
          _(A, N, Ee, "\u03B3", "\\gamma", !0),
          _(A, N, Ee, "\u03B4", "\\delta", !0),
          _(A, N, Ee, "\u03F5", "\\epsilon", !0),
          _(A, N, Ee, "\u03B6", "\\zeta", !0),
          _(A, N, Ee, "\u03B7", "\\eta", !0),
          _(A, N, Ee, "\u03B8", "\\theta", !0),
          _(A, N, Ee, "\u03B9", "\\iota", !0),
          _(A, N, Ee, "\u03BA", "\\kappa", !0),
          _(A, N, Ee, "\u03BB", "\\lambda", !0),
          _(A, N, Ee, "\u03BC", "\\mu", !0),
          _(A, N, Ee, "\u03BD", "\\nu", !0),
          _(A, N, Ee, "\u03BE", "\\xi", !0),
          _(A, N, Ee, "\u03BF", "\\omicron", !0),
          _(A, N, Ee, "\u03C0", "\\pi", !0),
          _(A, N, Ee, "\u03C1", "\\rho", !0),
          _(A, N, Ee, "\u03C3", "\\sigma", !0),
          _(A, N, Ee, "\u03C4", "\\tau", !0),
          _(A, N, Ee, "\u03C5", "\\upsilon", !0),
          _(A, N, Ee, "\u03D5", "\\phi", !0),
          _(A, N, Ee, "\u03C7", "\\chi", !0),
          _(A, N, Ee, "\u03C8", "\\psi", !0),
          _(A, N, Ee, "\u03C9", "\\omega", !0),
          _(A, N, Ee, "\u03B5", "\\varepsilon", !0),
          _(A, N, Ee, "\u03D1", "\\vartheta", !0),
          _(A, N, Ee, "\u03D6", "\\varpi", !0),
          _(A, N, Ee, "\u03F1", "\\varrho", !0),
          _(A, N, Ee, "\u03C2", "\\varsigma", !0),
          _(A, N, Ee, "\u03C6", "\\varphi", !0),
          _(A, N, ve, "\u2217", "*", !0),
          _(A, N, ve, "+", "+"),
          _(A, N, ve, "\u2212", "-", !0),
          _(A, N, ve, "\u22C5", "\\cdot", !0),
          _(A, N, ve, "\u2218", "\\circ", !0),
          _(A, N, ve, "\xF7", "\\div", !0),
          _(A, N, ve, "\xB1", "\\pm", !0),
          _(A, N, ve, "\xD7", "\\times", !0),
          _(A, N, ve, "\u2229", "\\cap", !0),
          _(A, N, ve, "\u222A", "\\cup", !0),
          _(A, N, ve, "\u2216", "\\setminus", !0),
          _(A, N, ve, "\u2227", "\\land"),
          _(A, N, ve, "\u2228", "\\lor"),
          _(A, N, ve, "\u2227", "\\wedge", !0),
          _(A, N, ve, "\u2228", "\\vee", !0),
          _(A, N, Y, "\u221A", "\\surd"),
          _(A, N, jn, "\u27E8", "\\langle", !0),
          _(A, N, jn, "\u2223", "\\lvert"),
          _(A, N, jn, "\u2225", "\\lVert"),
          _(A, N, Sn, "?", "?"),
          _(A, N, Sn, "!", "!"),
          _(A, N, Sn, "\u27E9", "\\rangle", !0),
          _(A, N, Sn, "\u2223", "\\rvert"),
          _(A, N, Sn, "\u2225", "\\rVert"),
          _(A, N, R, "=", "="),
          _(A, N, R, ":", ":"),
          _(A, N, R, "\u2248", "\\approx", !0),
          _(A, N, R, "\u2245", "\\cong", !0),
          _(A, N, R, "\u2265", "\\ge"),
          _(A, N, R, "\u2265", "\\geq", !0),
          _(A, N, R, "\u2190", "\\gets"),
          _(A, N, R, ">", "\\gt", !0),
          _(A, N, R, "\u2208", "\\in", !0),
          _(A, N, R, "\uE020", "\\@not"),
          _(A, N, R, "\u2282", "\\subset", !0),
          _(A, N, R, "\u2283", "\\supset", !0),
          _(A, N, R, "\u2286", "\\subseteq", !0),
          _(A, N, R, "\u2287", "\\supseteq", !0),
          _(A, z, R, "\u2288", "\\nsubseteq", !0),
          _(A, z, R, "\u2289", "\\nsupseteq", !0),
          _(A, N, R, "\u22A8", "\\models"),
          _(A, N, R, "\u2190", "\\leftarrow", !0),
          _(A, N, R, "\u2264", "\\le"),
          _(A, N, R, "\u2264", "\\leq", !0),
          _(A, N, R, "<", "\\lt", !0),
          _(A, N, R, "\u2192", "\\rightarrow", !0),
          _(A, N, R, "\u2192", "\\to"),
          _(A, z, R, "\u2271", "\\ngeq", !0),
          _(A, z, R, "\u2270", "\\nleq", !0),
          _(A, N, Li, "\xA0", "\\ "),
          _(A, N, Li, "\xA0", "\\space"),
          _(A, N, Li, "\xA0", "\\nobreakspace"),
          _(se, N, Li, "\xA0", "\\ "),
          _(se, N, Li, "\xA0", " "),
          _(se, N, Li, "\xA0", "\\space"),
          _(se, N, Li, "\xA0", "\\nobreakspace"),
          _(A, N, Li, null, "\\nobreak"),
          _(A, N, Li, null, "\\allowbreak"),
          _(A, N, Cc, ",", ","),
          _(A, N, Cc, ";", ";"),
          _(A, z, ve, "\u22BC", "\\barwedge", !0),
          _(A, z, ve, "\u22BB", "\\veebar", !0),
          _(A, N, ve, "\u2299", "\\odot", !0),
          _(A, N, ve, "\u2295", "\\oplus", !0),
          _(A, N, ve, "\u2297", "\\otimes", !0),
          _(A, N, Y, "\u2202", "\\partial", !0),
          _(A, N, ve, "\u2298", "\\oslash", !0),
          _(A, z, ve, "\u229A", "\\circledcirc", !0),
          _(A, z, ve, "\u22A1", "\\boxdot", !0),
          _(A, N, ve, "\u25B3", "\\bigtriangleup"),
          _(A, N, ve, "\u25BD", "\\bigtriangledown"),
          _(A, N, ve, "\u2020", "\\dagger"),
          _(A, N, ve, "\u22C4", "\\diamond"),
          _(A, N, ve, "\u22C6", "\\star"),
          _(A, N, ve, "\u25C3", "\\triangleleft"),
          _(A, N, ve, "\u25B9", "\\triangleright"),
          _(A, N, jn, "{", "\\{"),
          _(se, N, Y, "{", "\\{"),
          _(se, N, Y, "{", "\\textbraceleft"),
          _(A, N, Sn, "}", "\\}"),
          _(se, N, Y, "}", "\\}"),
          _(se, N, Y, "}", "\\textbraceright"),
          _(A, N, jn, "{", "\\lbrace"),
          _(A, N, Sn, "}", "\\rbrace"),
          _(A, N, jn, "[", "\\lbrack", !0),
          _(se, N, Y, "[", "\\lbrack", !0),
          _(A, N, Sn, "]", "\\rbrack", !0),
          _(se, N, Y, "]", "\\rbrack", !0),
          _(A, N, jn, "(", "\\lparen", !0),
          _(A, N, Sn, ")", "\\rparen", !0),
          _(se, N, Y, "<", "\\textless", !0),
          _(se, N, Y, ">", "\\textgreater", !0),
          _(A, N, jn, "\u230A", "\\lfloor", !0),
          _(A, N, Sn, "\u230B", "\\rfloor", !0),
          _(A, N, jn, "\u2308", "\\lceil", !0),
          _(A, N, Sn, "\u2309", "\\rceil", !0),
          _(A, N, Y, "\\", "\\backslash"),
          _(A, N, Y, "\u2223", "|"),
          _(A, N, Y, "\u2223", "\\vert"),
          _(se, N, Y, "|", "\\textbar", !0),
          _(A, N, Y, "\u2225", "\\|"),
          _(A, N, Y, "\u2225", "\\Vert"),
          _(se, N, Y, "\u2225", "\\textbardbl"),
          _(se, N, Y, "~", "\\textasciitilde"),
          _(se, N, Y, "\\", "\\textbackslash"),
          _(se, N, Y, "^", "\\textasciicircum"),
          _(A, N, R, "\u2191", "\\uparrow", !0),
          _(A, N, R, "\u21D1", "\\Uparrow", !0),
          _(A, N, R, "\u2193", "\\downarrow", !0),
          _(A, N, R, "\u21D3", "\\Downarrow", !0),
          _(A, N, R, "\u2195", "\\updownarrow", !0),
          _(A, N, R, "\u21D5", "\\Updownarrow", !0),
          _(A, N, jt, "\u2210", "\\coprod"),
          _(A, N, jt, "\u22C1", "\\bigvee"),
          _(A, N, jt, "\u22C0", "\\bigwedge"),
          _(A, N, jt, "\u2A04", "\\biguplus"),
          _(A, N, jt, "\u22C2", "\\bigcap"),
          _(A, N, jt, "\u22C3", "\\bigcup"),
          _(A, N, jt, "\u222B", "\\int"),
          _(A, N, jt, "\u222B", "\\intop"),
          _(A, N, jt, "\u222C", "\\iint"),
          _(A, N, jt, "\u222D", "\\iiint"),
          _(A, N, jt, "\u220F", "\\prod"),
          _(A, N, jt, "\u2211", "\\sum"),
          _(A, N, jt, "\u2A02", "\\bigotimes"),
          _(A, N, jt, "\u2A01", "\\bigoplus"),
          _(A, N, jt, "\u2A00", "\\bigodot"),
          _(A, N, jt, "\u222E", "\\oint"),
          _(A, N, jt, "\u222F", "\\oiint"),
          _(A, N, jt, "\u2230", "\\oiiint"),
          _(A, N, jt, "\u2A06", "\\bigsqcup"),
          _(A, N, jt, "\u222B", "\\smallint"),
          _(se, N, Is, "\u2026", "\\textellipsis"),
          _(A, N, Is, "\u2026", "\\mathellipsis"),
          _(se, N, Is, "\u2026", "\\ldots", !0),
          _(A, N, Is, "\u2026", "\\ldots", !0),
          _(A, N, Is, "\u22EF", "\\@cdots", !0),
          _(A, N, Is, "\u22F1", "\\ddots", !0),
          _(A, N, Y, "\u22EE", "\\varvdots"),
          _(se, N, Y, "\u22EE", "\\varvdots"),
          _(A, N, At, "\u02CA", "\\acute"),
          _(A, N, At, "\u02CB", "\\grave"),
          _(A, N, At, "\xA8", "\\ddot"),
          _(A, N, At, "~", "\\tilde"),
          _(A, N, At, "\u02C9", "\\bar"),
          _(A, N, At, "\u02D8", "\\breve"),
          _(A, N, At, "\u02C7", "\\check"),
          _(A, N, At, "^", "\\hat"),
          _(A, N, At, "\u20D7", "\\vec"),
          _(A, N, At, "\u02D9", "\\dot"),
          _(A, N, At, "\u02DA", "\\mathring"),
          _(A, N, Ee, "\uE131", "\\@imath"),
          _(A, N, Ee, "\uE237", "\\@jmath"),
          _(A, N, Y, "\u0131", "\u0131"),
          _(A, N, Y, "\u0237", "\u0237"),
          _(se, N, Y, "\u0131", "\\i", !0),
          _(se, N, Y, "\u0237", "\\j", !0),
          _(se, N, Y, "\xDF", "\\ss", !0),
          _(se, N, Y, "\xE6", "\\ae", !0),
          _(se, N, Y, "\u0153", "\\oe", !0),
          _(se, N, Y, "\xF8", "\\o", !0),
          _(se, N, Y, "\xC6", "\\AE", !0),
          _(se, N, Y, "\u0152", "\\OE", !0),
          _(se, N, Y, "\xD8", "\\O", !0),
          _(se, N, At, "\u02CA", "\\'"),
          _(se, N, At, "\u02CB", "\\`"),
          _(se, N, At, "\u02C6", "\\^"),
          _(se, N, At, "\u02DC", "\\~"),
          _(se, N, At, "\u02C9", "\\="),
          _(se, N, At, "\u02D8", "\\u"),
          _(se, N, At, "\u02D9", "\\."),
          _(se, N, At, "\xB8", "\\c"),
          _(se, N, At, "\u02DA", "\\r"),
          _(se, N, At, "\u02C7", "\\v"),
          _(se, N, At, "\xA8", '\\"'),
          _(se, N, At, "\u02DD", "\\H"),
          _(se, N, At, "\u25EF", "\\textcircled"));
        let L5 = { "--": !0, "---": !0, "``": !0, "''": !0 };
        (_(se, N, Y, "\u2013", "--", !0),
          _(se, N, Y, "\u2013", "\\textendash"),
          _(se, N, Y, "\u2014", "---", !0),
          _(se, N, Y, "\u2014", "\\textemdash"),
          _(se, N, Y, "\u2018", "`", !0),
          _(se, N, Y, "\u2018", "\\textquoteleft"),
          _(se, N, Y, "\u2019", "'", !0),
          _(se, N, Y, "\u2019", "\\textquoteright"),
          _(se, N, Y, "\u201C", "``", !0),
          _(se, N, Y, "\u201C", "\\textquotedblleft"),
          _(se, N, Y, "\u201D", "''", !0),
          _(se, N, Y, "\u201D", "\\textquotedblright"),
          _(A, N, Y, "\xB0", "\\degree", !0),
          _(se, N, Y, "\xB0", "\\degree"),
          _(se, N, Y, "\xB0", "\\textdegree", !0),
          _(A, N, Y, "\xA3", "\\pounds"),
          _(A, N, Y, "\xA3", "\\mathsterling", !0),
          _(se, N, Y, "\xA3", "\\pounds"),
          _(se, N, Y, "\xA3", "\\textsterling", !0),
          _(A, z, Y, "\u2720", "\\maltese"),
          _(se, z, Y, "\u2720", "\\maltese"));
        let O5 = '0123456789/@."';
        for (let f = 0; f < O5.length; f++) {
          let c = O5.charAt(f);
          _(A, N, Y, c, c);
        }
        let B5 = '0123456789!@*()-=+";:?/.,';
        for (let f = 0; f < B5.length; f++) {
          let c = B5.charAt(f);
          _(se, N, Y, c, c);
        }
        let Nc = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        for (let f = 0; f < Nc.length; f++) {
          let c = Nc.charAt(f);
          (_(A, N, Ee, c, c), _(se, N, Y, c, c));
        }
        (_(A, z, Y, "C", "\u2102"),
          _(se, z, Y, "C", "\u2102"),
          _(A, z, Y, "H", "\u210D"),
          _(se, z, Y, "H", "\u210D"),
          _(A, z, Y, "N", "\u2115"),
          _(se, z, Y, "N", "\u2115"),
          _(A, z, Y, "P", "\u2119"),
          _(se, z, Y, "P", "\u2119"),
          _(A, z, Y, "Q", "\u211A"),
          _(se, z, Y, "Q", "\u211A"),
          _(A, z, Y, "R", "\u211D"),
          _(se, z, Y, "R", "\u211D"),
          _(A, z, Y, "Z", "\u2124"),
          _(se, z, Y, "Z", "\u2124"),
          _(A, N, Ee, "h", "\u210E"),
          _(se, N, Ee, "h", "\u210E"));
        let Fe = "";
        for (let f = 0; f < Nc.length; f++) {
          let c = Nc.charAt(f);
          ((Fe = String.fromCharCode(55349, 56320 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56372 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56424 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56580 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56684 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56736 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56788 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56840 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 56944 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            f < 26 &&
              ((Fe = String.fromCharCode(55349, 56632 + f)),
              _(A, N, Ee, c, Fe),
              _(se, N, Y, c, Fe),
              (Fe = String.fromCharCode(55349, 56476 + f)),
              _(A, N, Ee, c, Fe),
              _(se, N, Y, c, Fe)));
        }
        ((Fe = "\u{1D55C}"), _(A, N, Ee, "k", Fe), _(se, N, Y, "k", Fe));
        for (let f = 0; f < 10; f++) {
          let c = f.toString();
          ((Fe = String.fromCharCode(55349, 57294 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 57314 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 57324 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe),
            (Fe = String.fromCharCode(55349, 57334 + f)),
            _(A, N, Ee, c, Fe),
            _(se, N, Y, c, Fe));
        }
        let Ip = "\xD0\xDE\xFE";
        for (let f = 0; f < Ip.length; f++) {
          let c = Ip.charAt(f);
          (_(A, N, Ee, c, c), _(se, N, Y, c, c));
        }
        let Dc = [
            ["mathbf", "textbf", "Main-Bold"],
            ["mathbf", "textbf", "Main-Bold"],
            ["mathnormal", "textit", "Math-Italic"],
            ["mathnormal", "textit", "Math-Italic"],
            ["boldsymbol", "boldsymbol", "Main-BoldItalic"],
            ["boldsymbol", "boldsymbol", "Main-BoldItalic"],
            ["mathscr", "textscr", "Script-Regular"],
            ["", "", ""],
            ["", "", ""],
            ["", "", ""],
            ["mathfrak", "textfrak", "Fraktur-Regular"],
            ["mathfrak", "textfrak", "Fraktur-Regular"],
            ["mathbb", "textbb", "AMS-Regular"],
            ["mathbb", "textbb", "AMS-Regular"],
            ["mathboldfrak", "textboldfrak", "Fraktur-Regular"],
            ["mathboldfrak", "textboldfrak", "Fraktur-Regular"],
            ["mathsf", "textsf", "SansSerif-Regular"],
            ["mathsf", "textsf", "SansSerif-Regular"],
            ["mathboldsf", "textboldsf", "SansSerif-Bold"],
            ["mathboldsf", "textboldsf", "SansSerif-Bold"],
            ["mathitsf", "textitsf", "SansSerif-Italic"],
            ["mathitsf", "textitsf", "SansSerif-Italic"],
            ["", "", ""],
            ["", "", ""],
            ["mathtt", "texttt", "Typewriter-Regular"],
            ["mathtt", "texttt", "Typewriter-Regular"],
          ],
          z5 = [
            ["mathbf", "textbf", "Main-Bold"],
            ["", "", ""],
            ["mathsf", "textsf", "SansSerif-Regular"],
            ["mathboldsf", "textboldsf", "SansSerif-Bold"],
            ["mathtt", "texttt", "Typewriter-Regular"],
          ],
          GE = function (f, c) {
            let d = f.charCodeAt(0),
              g = f.charCodeAt(1),
              w = (d - 55296) * 1024 + (g - 56320) + 65536,
              S = c === "math" ? 0 : 1;
            if (119808 <= w && w < 120484) {
              let C = Math.floor((w - 119808) / 26);
              return [Dc[C][2], Dc[C][S]];
            } else if (120782 <= w && w <= 120831) {
              let C = Math.floor((w - 120782) / 10);
              return [z5[C][2], z5[C][S]];
            } else {
              if (w === 120485 || w === 120486) return [Dc[0][2], Dc[0][S]];
              if (120486 < w && w < 120782) return ["", ""];
              throw new r("Unsupported character: " + f);
            }
          };
        class oa {
          constructor(c) {
            ((this.children = void 0),
              (this.classes = void 0),
              (this.height = void 0),
              (this.depth = void 0),
              (this.maxFontSize = void 0),
              (this.style = void 0),
              (this.children = c),
              (this.classes = []),
              (this.height = 0),
              (this.depth = 0),
              (this.maxFontSize = 0),
              (this.style = {}));
          }
          hasClass(c) {
            return this.classes.includes(c);
          }
          toNode() {
            let c = document.createDocumentFragment();
            for (let d = 0; d < this.children.length; d++)
              c.appendChild(this.children[d].toNode());
            return c;
          }
          toMarkup() {
            let c = "";
            for (let d = 0; d < this.children.length; d++)
              c += this.children[d].toMarkup();
            return c;
          }
          toText() {
            let c = (d) => d.toText();
            return this.children.map(c).join("");
          }
        }
        let Ic = function (f, c, d) {
            return (
              It[d][f] && It[d][f].replace && (f = It[d][f].replace),
              { value: f, metrics: Ii(f, c, d) }
            );
          },
          _r = function (f, c, d, g, w) {
            let S = Ic(f, c, d),
              C = S.metrics;
            f = S.value;
            let F;
            if (C) {
              let L = C.italic;
              ((d === "text" || (g && g.font === "mathit")) && (L = 0),
                (F = new tr(f, C.height, C.depth, L, C.skew, C.width, w)));
            } else
              (typeof console < "u" &&
                console.warn(
                  "No character metrics " +
                    ("for '" +
                      f +
                      "' in style '" +
                      c +
                      "' and mode '" +
                      d +
                      "'"),
                ),
                (F = new tr(f, 0, 0, 0, 0, 0, w)));
            if (g) {
              ((F.maxFontSize = g.sizeMultiplier),
                g.style.isTight() && F.classes.push("mtight"));
              let L = g.getColor();
              L && (F.style.color = L);
            }
            return F;
          },
          YE = function (f, c, d, g) {
            return (
              g === void 0 && (g = []),
              d.font === "boldsymbol" && Ic(f, "Main-Bold", c).metrics
                ? _r(f, "Main-Bold", c, d, g.concat(["mathbf"]))
                : f === "\\" || It[c][f].font === "main"
                  ? _r(f, "Main-Regular", c, d, g)
                  : _r(f, "AMS-Regular", c, d, g.concat(["amsrm"]))
            );
          },
          XE = function (f, c, d, g, w) {
            return w !== "textord" && Ic(f, "Math-BoldItalic", c).metrics
              ? { fontName: "Math-BoldItalic", fontClass: "boldsymbol" }
              : { fontName: "Main-Bold", fontClass: "mathbf" };
          },
          WE = function (f, c, d) {
            let g = f.mode,
              w = f.text,
              S = ["mord"],
              C = g === "math" || (g === "text" && c.font),
              F = C ? c.font : c.fontFamily,
              L = "",
              $ = "";
            if (
              (w.charCodeAt(0) === 55349 && ([L, $] = GE(w, g)), L.length > 0)
            )
              return _r(w, L, g, c, S.concat($));
            if (F) {
              let W, K;
              if (F === "boldsymbol") {
                let ee = XE(w, g, c, S, d);
                ((W = ee.fontName), (K = [ee.fontClass]));
              } else
                C
                  ? ((W = $5[F].fontName), (K = [F]))
                  : ((W = Fc(F, c.fontWeight, c.fontShape)),
                    (K = [F, c.fontWeight, c.fontShape]));
              if (Ic(w, W, g).metrics) return _r(w, W, g, c, S.concat(K));
              if (L5.hasOwnProperty(w) && W.slice(0, 10) === "Typewriter") {
                let ee = [];
                for (let re = 0; re < w.length; re++)
                  ee.push(_r(w[re], W, g, c, S.concat(K)));
                return P5(ee);
              }
            }
            if (d === "mathord")
              return _r(w, "Math-Italic", g, c, S.concat(["mathnormal"]));
            if (d === "textord") {
              let W = It[g][w] && It[g][w].font;
              if (W === "ams") {
                let K = Fc("amsrm", c.fontWeight, c.fontShape);
                return _r(
                  w,
                  K,
                  g,
                  c,
                  S.concat("amsrm", c.fontWeight, c.fontShape),
                );
              } else if (W === "main" || !W) {
                let K = Fc("textrm", c.fontWeight, c.fontShape);
                return _r(w, K, g, c, S.concat(c.fontWeight, c.fontShape));
              } else {
                let K = Fc(W, c.fontWeight, c.fontShape);
                return _r(w, K, g, c, S.concat(K, c.fontWeight, c.fontShape));
              }
            } else throw new Error("unexpected type: " + d + " in makeOrd");
          },
          KE = (f, c) => {
            if (
              xo(f.classes) !== xo(c.classes) ||
              f.skew !== c.skew ||
              f.maxFontSize !== c.maxFontSize
            )
              return !1;
            if (f.classes.length === 1) {
              let d = f.classes[0];
              if (d === "mbin" || d === "mord") return !1;
            }
            for (let d in f.style)
              if (f.style.hasOwnProperty(d) && f.style[d] !== c.style[d])
                return !1;
            for (let d in c.style)
              if (c.style.hasOwnProperty(d) && f.style[d] !== c.style[d])
                return !1;
            return !0;
          },
          ZE = (f) => {
            for (let c = 0; c < f.length - 1; c++) {
              let d = f[c],
                g = f[c + 1];
              d instanceof tr &&
                g instanceof tr &&
                KE(d, g) &&
                ((d.text += g.text),
                (d.height = Math.max(d.height, g.height)),
                (d.depth = Math.max(d.depth, g.depth)),
                (d.italic = g.italic),
                f.splice(c + 1, 1),
                c--);
            }
            return f;
          },
          Fp = function (f) {
            let c = 0,
              d = 0,
              g = 0;
            for (let w = 0; w < f.children.length; w++) {
              let S = f.children[w];
              (S.height > c && (c = S.height),
                S.depth > d && (d = S.depth),
                S.maxFontSize > g && (g = S.maxFontSize));
            }
            ((f.height = c), (f.depth = d), (f.maxFontSize = g));
          },
          Fn = function (f, c, d, g) {
            let w = new ia(f, c, d, g);
            return (Fp(w), w);
          },
          R5 = (f, c, d, g) => new ia(f, c, d, g),
          JE = function (f, c, d) {
            let g = Fn([f], [], c);
            return (
              (g.height = Math.max(
                d || c.fontMetrics().defaultRuleThickness,
                c.minRuleThickness,
              )),
              (g.style.borderBottomWidth = de(g.height)),
              (g.maxFontSize = 1),
              g
            );
          },
          QE = function (f, c, d, g) {
            let w = new Np(f, c, d, g);
            return (Fp(w), w);
          },
          P5 = function (f) {
            let c = new oa(f);
            return (Fp(c), c);
          },
          eC = function (f, c) {
            return f instanceof oa ? Fn([], [f], c) : f;
          },
          tC = function (f) {
            if (f.positionType === "individualShift") {
              let d = f.children,
                g = [d[0]],
                w = -d[0].shift - d[0].elem.depth,
                S = w;
              for (let C = 1; C < d.length; C++) {
                let F = -d[C].shift - S - d[C].elem.depth,
                  L = F - (d[C - 1].elem.height + d[C - 1].elem.depth);
                ((S = S + F), g.push({ type: "kern", size: L }), g.push(d[C]));
              }
              return { children: g, depth: w };
            }
            let c;
            if (f.positionType === "top") {
              let d = f.positionData;
              for (let g = 0; g < f.children.length; g++) {
                let w = f.children[g];
                d -= w.type === "kern" ? w.size : w.elem.height + w.elem.depth;
              }
              c = d;
            } else if (f.positionType === "bottom") c = -f.positionData;
            else {
              let d = f.children[0];
              if (d.type !== "elem")
                throw new Error('First child must have type "elem".');
              if (f.positionType === "shift")
                c = -d.elem.depth - f.positionData;
              else if (f.positionType === "firstBaseline") c = -d.elem.depth;
              else
                throw new Error("Invalid positionType " + f.positionType + ".");
            }
            return { children: f.children, depth: c };
          },
          nC = function (f, c) {
            let { children: d, depth: g } = tC(f),
              w = 0;
            for (let re = 0; re < d.length; re++) {
              let we = d[re];
              if (we.type === "elem") {
                let Se = we.elem;
                w = Math.max(w, Se.maxFontSize, Se.height);
              }
            }
            w += 2;
            let S = Fn(["pstrut"], []);
            S.style.height = de(w);
            let C = [],
              F = g,
              L = g,
              $ = g;
            for (let re = 0; re < d.length; re++) {
              let we = d[re];
              if (we.type === "kern") $ += we.size;
              else {
                let Se = we.elem,
                  Ye = we.wrapperClasses || [],
                  He = we.wrapperStyle || {},
                  Ze = Fn(Ye, [S, Se], void 0, He);
                ((Ze.style.top = de(-w - $ - Se.depth)),
                  we.marginLeft && (Ze.style.marginLeft = we.marginLeft),
                  we.marginRight && (Ze.style.marginRight = we.marginRight),
                  C.push(Ze),
                  ($ += Se.height + Se.depth));
              }
              ((F = Math.min(F, $)), (L = Math.max(L, $)));
            }
            let W = Fn(["vlist"], C);
            W.style.height = de(L);
            let K;
            if (F < 0) {
              let re = Fn([], []),
                we = Fn(["vlist"], [re]);
              we.style.height = de(-F);
              let Se = Fn(["vlist-s"], [new tr("\u200B")]);
              K = [Fn(["vlist-r"], [W, Se]), Fn(["vlist-r"], [we])];
            } else K = [Fn(["vlist-r"], [W])];
            let ee = Fn(["vlist-t"], K);
            return (
              K.length === 2 && ee.classes.push("vlist-t2"),
              (ee.height = L),
              (ee.depth = -F),
              ee
            );
          },
          rC = (f, c) => {
            let d = Fn(["mspace"], [], c),
              g = Dt(f, c);
            return ((d.style.marginRight = de(g)), d);
          },
          Fc = function (f, c, d) {
            let g = "";
            switch (f) {
              case "amsrm":
                g = "AMS";
                break;
              case "textrm":
                g = "Main";
                break;
              case "textsf":
                g = "SansSerif";
                break;
              case "texttt":
                g = "Typewriter";
                break;
              default:
                g = f;
            }
            let w;
            return (
              c === "textbf" && d === "textit"
                ? (w = "BoldItalic")
                : c === "textbf"
                  ? (w = "Bold")
                  : c === "textit"
                    ? (w = "Italic")
                    : (w = "Regular"),
              g + "-" + w
            );
          },
          $5 = {
            mathbf: { variant: "bold", fontName: "Main-Bold" },
            mathrm: { variant: "normal", fontName: "Main-Regular" },
            textit: { variant: "italic", fontName: "Main-Italic" },
            mathit: { variant: "italic", fontName: "Main-Italic" },
            mathnormal: { variant: "italic", fontName: "Math-Italic" },
            mathsfit: {
              variant: "sans-serif-italic",
              fontName: "SansSerif-Italic",
            },
            mathbb: { variant: "double-struck", fontName: "AMS-Regular" },
            mathcal: { variant: "script", fontName: "Caligraphic-Regular" },
            mathfrak: { variant: "fraktur", fontName: "Fraktur-Regular" },
            mathscr: { variant: "script", fontName: "Script-Regular" },
            mathsf: { variant: "sans-serif", fontName: "SansSerif-Regular" },
            mathtt: { variant: "monospace", fontName: "Typewriter-Regular" },
          },
          H5 = {
            vec: ["vec", 0.471, 0.714],
            oiintSize1: ["oiintSize1", 0.957, 0.499],
            oiintSize2: ["oiintSize2", 1.472, 0.659],
            oiiintSize1: ["oiiintSize1", 1.304, 0.499],
            oiiintSize2: ["oiiintSize2", 1.98, 0.659],
          };
        var J = {
          fontMap: $5,
          makeSymbol: _r,
          mathsym: YE,
          makeSpan: Fn,
          makeSvgSpan: R5,
          makeLineSpan: JE,
          makeAnchor: QE,
          makeFragment: P5,
          wrapFragment: eC,
          makeVList: nC,
          makeOrd: WE,
          makeGlue: rC,
          staticSvg: function (f, c) {
            let [d, g, w] = H5[f],
              S = new yo(d),
              C = new qi([S], {
                width: de(g),
                height: de(w),
                style: "width:" + de(g),
                viewBox: "0 0 " + 1e3 * g + " " + 1e3 * w,
                preserveAspectRatio: "xMinYMin",
              }),
              F = R5(["overlay"], [C], c);
            return (
              (F.height = w),
              (F.style.height = de(w)),
              (F.style.width = de(g)),
              F
            );
          },
          svgData: H5,
          tryCombineChars: ZE,
        };
        let Ft = { number: 3, unit: "mu" },
          d0 = { number: 4, unit: "mu" },
          Oi = { number: 5, unit: "mu" },
          iC = {
            mord: { mop: Ft, mbin: d0, mrel: Oi, minner: Ft },
            mop: { mord: Ft, mop: Ft, mrel: Oi, minner: Ft },
            mbin: { mord: d0, mop: d0, mopen: d0, minner: d0 },
            mrel: { mord: Oi, mop: Oi, mopen: Oi, minner: Oi },
            mopen: {},
            mclose: { mop: Ft, mbin: d0, mrel: Oi, minner: Ft },
            mpunct: {
              mord: Ft,
              mop: Ft,
              mrel: Oi,
              mopen: Ft,
              mclose: Ft,
              mpunct: Ft,
              minner: Ft,
            },
            minner: {
              mord: Ft,
              mop: Ft,
              mbin: d0,
              mrel: Oi,
              mopen: Ft,
              mpunct: Ft,
              minner: Ft,
            },
          },
          oC = {
            mord: { mop: Ft },
            mop: { mord: Ft, mop: Ft },
            mbin: {},
            mrel: {},
            mopen: {},
            mclose: { mop: Ft },
            mpunct: {},
            minner: { mop: Ft },
          },
          U5 = {},
          qc = {},
          Lc = {};
        function be(f) {
          let {
              type: c,
              names: d,
              props: g,
              handler: w,
              htmlBuilder: S,
              mathmlBuilder: C,
            } = f,
            F = {
              type: c,
              numArgs: g.numArgs,
              argTypes: g.argTypes,
              allowedInArgument: !!g.allowedInArgument,
              allowedInText: !!g.allowedInText,
              allowedInMath: g.allowedInMath === void 0 ? !0 : g.allowedInMath,
              numOptionalArgs: g.numOptionalArgs || 0,
              infix: !!g.infix,
              primitive: !!g.primitive,
              handler: w,
            };
          for (let L = 0; L < d.length; ++L) U5[d[L]] = F;
          c && (S && (qc[c] = S), C && (Lc[c] = C));
        }
        function p0(f) {
          let { type: c, htmlBuilder: d, mathmlBuilder: g } = f;
          be({
            type: c,
            names: [],
            props: { numArgs: 0 },
            handler() {
              throw new Error("Should never be called.");
            },
            htmlBuilder: d,
            mathmlBuilder: g,
          });
        }
        let Oc = function (f) {
            return f.type === "ordgroup" && f.body.length === 1 ? f.body[0] : f;
          },
          Pt = function (f) {
            return f.type === "ordgroup" ? f.body : [f];
          },
          Bi = J.makeSpan,
          sC = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"],
          uC = ["rightmost", "mrel", "mclose", "mpunct"],
          aC = {
            display: te.DISPLAY,
            text: te.TEXT,
            script: te.SCRIPT,
            scriptscript: te.SCRIPTSCRIPT,
          },
          lC = {
            mord: "mord",
            mop: "mop",
            mbin: "mbin",
            mrel: "mrel",
            mopen: "mopen",
            mclose: "mclose",
            mpunct: "mpunct",
            minner: "minner",
          },
          Xt = function (f, c, d, g) {
            g === void 0 && (g = [null, null]);
            let w = [];
            for (let $ = 0; $ < f.length; $++) {
              let W = et(f[$], c);
              if (W instanceof oa) {
                let K = W.children;
                w.push(...K);
              } else w.push(W);
            }
            if ((J.tryCombineChars(w), !d)) return w;
            let S = c;
            if (f.length === 1) {
              let $ = f[0];
              $.type === "sizing"
                ? (S = c.havingSize($.size))
                : $.type === "styling" && (S = c.havingStyle(aC[$.style]));
            }
            let C = Bi([g[0] || "leftmost"], [], c),
              F = Bi([g[1] || "rightmost"], [], c),
              L = d === "root";
            return (
              qp(
                w,
                ($, W) => {
                  let K = W.classes[0],
                    ee = $.classes[0];
                  K === "mbin" && uC.includes(ee)
                    ? (W.classes[0] = "mord")
                    : ee === "mbin" &&
                      sC.includes(K) &&
                      ($.classes[0] = "mord");
                },
                { node: C },
                F,
                L,
              ),
              qp(
                w,
                ($, W) => {
                  let K = Op(W),
                    ee = Op($),
                    re =
                      K && ee
                        ? $.hasClass("mtight")
                          ? oC[K][ee]
                          : iC[K][ee]
                        : null;
                  if (re) return J.makeGlue(re, S);
                },
                { node: C },
                F,
                L,
              ),
              w
            );
          },
          qp = function (f, c, d, g, w) {
            g && f.push(g);
            let S = 0;
            for (; S < f.length; S++) {
              let C = f[S],
                F = V5(C);
              if (F) {
                qp(F.children, c, d, null, w);
                continue;
              }
              let L = !C.hasClass("mspace");
              if (L) {
                let $ = c(C, d.node);
                $ && (d.insertAfter ? d.insertAfter($) : (f.unshift($), S++));
              }
              (L
                ? (d.node = C)
                : w && C.hasClass("newline") && (d.node = Bi(["leftmost"])),
                (d.insertAfter = (($) => (W) => {
                  (f.splice($ + 1, 0, W), S++);
                })(S)));
            }
            g && f.pop();
          },
          V5 = function (f) {
            return f instanceof oa ||
              f instanceof Np ||
              (f instanceof ia && f.hasClass("enclosing"))
              ? f
              : null;
          },
          Lp = function (f, c) {
            let d = V5(f);
            if (d) {
              let g = d.children;
              if (g.length) {
                if (c === "right") return Lp(g[g.length - 1], "right");
                if (c === "left") return Lp(g[0], "left");
              }
            }
            return f;
          },
          Op = function (f, c) {
            return f ? (c && (f = Lp(f, c)), lC[f.classes[0]] || null) : null;
          },
          sa = function (f, c) {
            let d = ["nulldelimiter"].concat(f.baseSizingClasses());
            return Bi(c.concat(d));
          },
          et = function (f, c, d) {
            if (!f) return Bi();
            if (qc[f.type]) {
              let g = qc[f.type](f, c);
              if (d && c.size !== d.size) {
                g = Bi(c.sizingClasses(d), [g], c);
                let w = c.sizeMultiplier / d.sizeMultiplier;
                ((g.height *= w), (g.depth *= w));
              }
              return g;
            } else throw new r("Got group of unknown type: '" + f.type + "'");
          };
        function Bc(f, c) {
          let d = Bi(["base"], f, c),
            g = Bi(["strut"]);
          return (
            (g.style.height = de(d.height + d.depth)),
            d.depth && (g.style.verticalAlign = de(-d.depth)),
            d.children.unshift(g),
            d
          );
        }
        function Bp(f, c) {
          let d = null;
          f.length === 1 &&
            f[0].type === "tag" &&
            ((d = f[0].tag), (f = f[0].body));
          let g = Xt(f, c, "root"),
            w;
          g.length === 2 && g[1].hasClass("tag") && (w = g.pop());
          let S = [],
            C = [];
          for (let $ = 0; $ < g.length; $++)
            if (
              (C.push(g[$]),
              g[$].hasClass("mbin") ||
                g[$].hasClass("mrel") ||
                g[$].hasClass("allowbreak"))
            ) {
              let W = !1;
              for (
                ;
                $ < g.length - 1 &&
                g[$ + 1].hasClass("mspace") &&
                !g[$ + 1].hasClass("newline");
              )
                ($++, C.push(g[$]), g[$].hasClass("nobreak") && (W = !0));
              W || (S.push(Bc(C, c)), (C = []));
            } else
              g[$].hasClass("newline") &&
                (C.pop(),
                C.length > 0 && (S.push(Bc(C, c)), (C = [])),
                S.push(g[$]));
          C.length > 0 && S.push(Bc(C, c));
          let F;
          d
            ? ((F = Bc(Xt(d, c, !0))), (F.classes = ["tag"]), S.push(F))
            : w && S.push(w);
          let L = Bi(["katex-html"], S);
          if ((L.setAttribute("aria-hidden", "true"), F)) {
            let $ = F.children[0];
            (($.style.height = de(L.height + L.depth)),
              L.depth && ($.style.verticalAlign = de(-L.depth)));
          }
          return L;
        }
        function j5(f) {
          return new oa(f);
        }
        class Gn {
          constructor(c, d, g) {
            ((this.type = void 0),
              (this.attributes = void 0),
              (this.children = void 0),
              (this.classes = void 0),
              (this.type = c),
              (this.attributes = {}),
              (this.children = d || []),
              (this.classes = g || []));
          }
          setAttribute(c, d) {
            this.attributes[c] = d;
          }
          getAttribute(c) {
            return this.attributes[c];
          }
          toNode() {
            let c = document.createElementNS(
              "http://www.w3.org/1998/Math/MathML",
              this.type,
            );
            for (let d in this.attributes)
              Object.prototype.hasOwnProperty.call(this.attributes, d) &&
                c.setAttribute(d, this.attributes[d]);
            this.classes.length > 0 && (c.className = xo(this.classes));
            for (let d = 0; d < this.children.length; d++)
              if (
                this.children[d] instanceof Yr &&
                this.children[d + 1] instanceof Yr
              ) {
                let g = this.children[d].toText() + this.children[++d].toText();
                for (; this.children[d + 1] instanceof Yr; )
                  g += this.children[++d].toText();
                c.appendChild(new Yr(g).toNode());
              } else c.appendChild(this.children[d].toNode());
            return c;
          }
          toMarkup() {
            let c = "<" + this.type;
            for (let d in this.attributes)
              Object.prototype.hasOwnProperty.call(this.attributes, d) &&
                ((c += " " + d + '="'),
                (c += x.escape(this.attributes[d])),
                (c += '"'));
            (this.classes.length > 0 &&
              (c += ' class ="' + x.escape(xo(this.classes)) + '"'),
              (c += ">"));
            for (let d = 0; d < this.children.length; d++)
              c += this.children[d].toMarkup();
            return ((c += "</" + this.type + ">"), c);
          }
          toText() {
            return this.children.map((c) => c.toText()).join("");
          }
        }
        class Yr {
          constructor(c) {
            ((this.text = void 0), (this.text = c));
          }
          toNode() {
            return document.createTextNode(this.text);
          }
          toMarkup() {
            return x.escape(this.toText());
          }
          toText() {
            return this.text;
          }
        }
        class cC {
          constructor(c) {
            ((this.width = void 0),
              (this.character = void 0),
              (this.width = c),
              c >= 0.05555 && c <= 0.05556
                ? (this.character = "\u200A")
                : c >= 0.1666 && c <= 0.1667
                  ? (this.character = "\u2009")
                  : c >= 0.2222 && c <= 0.2223
                    ? (this.character = "\u2005")
                    : c >= 0.2777 && c <= 0.2778
                      ? (this.character = "\u2005\u200A")
                      : c >= -0.05556 && c <= -0.05555
                        ? (this.character = "\u200A\u2063")
                        : c >= -0.1667 && c <= -0.1666
                          ? (this.character = "\u2009\u2063")
                          : c >= -0.2223 && c <= -0.2222
                            ? (this.character = "\u205F\u2063")
                            : c >= -0.2778 && c <= -0.2777
                              ? (this.character = "\u2005\u2063")
                              : (this.character = null));
          }
          toNode() {
            if (this.character) return document.createTextNode(this.character);
            {
              let c = document.createElementNS(
                "http://www.w3.org/1998/Math/MathML",
                "mspace",
              );
              return (c.setAttribute("width", de(this.width)), c);
            }
          }
          toMarkup() {
            return this.character
              ? "<mtext>" + this.character + "</mtext>"
              : '<mspace width="' + de(this.width) + '"/>';
          }
          toText() {
            return this.character ? this.character : " ";
          }
        }
        var ae = {
          MathNode: Gn,
          TextNode: Yr,
          SpaceNode: cC,
          newDocumentFragment: j5,
        };
        let nr = function (f, c, d) {
            return (
              It[c][f] &&
                It[c][f].replace &&
                f.charCodeAt(0) !== 55349 &&
                !(
                  L5.hasOwnProperty(f) &&
                  d &&
                  ((d.fontFamily && d.fontFamily.slice(4, 6) === "tt") ||
                    (d.font && d.font.slice(4, 6) === "tt"))
                ) &&
                (f = It[c][f].replace),
              new ae.TextNode(f)
            );
          },
          zp = function (f) {
            return f.length === 1 ? f[0] : new ae.MathNode("mrow", f);
          },
          Rp = function (f, c) {
            if (c.fontFamily === "texttt") return "monospace";
            if (c.fontFamily === "textsf")
              return c.fontShape === "textit" && c.fontWeight === "textbf"
                ? "sans-serif-bold-italic"
                : c.fontShape === "textit"
                  ? "sans-serif-italic"
                  : c.fontWeight === "textbf"
                    ? "bold-sans-serif"
                    : "sans-serif";
            if (c.fontShape === "textit" && c.fontWeight === "textbf")
              return "bold-italic";
            if (c.fontShape === "textit") return "italic";
            if (c.fontWeight === "textbf") return "bold";
            let d = c.font;
            if (!d || d === "mathnormal") return null;
            let g = f.mode;
            if (d === "mathit") return "italic";
            if (d === "boldsymbol")
              return f.type === "textord" ? "bold" : "bold-italic";
            if (d === "mathbf") return "bold";
            if (d === "mathbb") return "double-struck";
            if (d === "mathsfit") return "sans-serif-italic";
            if (d === "mathfrak") return "fraktur";
            if (d === "mathscr" || d === "mathcal") return "script";
            if (d === "mathsf") return "sans-serif";
            if (d === "mathtt") return "monospace";
            let w = f.text;
            if (["\\imath", "\\jmath"].includes(w)) return null;
            It[g][w] && It[g][w].replace && (w = It[g][w].replace);
            let S = J.fontMap[d].fontName;
            return Ii(w, S, g) ? J.fontMap[d].variant : null;
          };
        function Pp(f) {
          if (!f) return !1;
          if (f.type === "mi" && f.children.length === 1) {
            let c = f.children[0];
            return c instanceof Yr && c.text === ".";
          } else if (
            f.type === "mo" &&
            f.children.length === 1 &&
            f.getAttribute("separator") === "true" &&
            f.getAttribute("lspace") === "0em" &&
            f.getAttribute("rspace") === "0em"
          ) {
            let c = f.children[0];
            return c instanceof Yr && c.text === ",";
          } else return !1;
        }
        let qn = function (f, c, d) {
            if (f.length === 1) {
              let S = pt(f[0], c);
              return (
                d &&
                  S instanceof Gn &&
                  S.type === "mo" &&
                  (S.setAttribute("lspace", "0em"),
                  S.setAttribute("rspace", "0em")),
                [S]
              );
            }
            let g = [],
              w;
            for (let S = 0; S < f.length; S++) {
              let C = pt(f[S], c);
              if (C instanceof Gn && w instanceof Gn) {
                if (
                  C.type === "mtext" &&
                  w.type === "mtext" &&
                  C.getAttribute("mathvariant") ===
                    w.getAttribute("mathvariant")
                ) {
                  w.children.push(...C.children);
                  continue;
                } else if (C.type === "mn" && w.type === "mn") {
                  w.children.push(...C.children);
                  continue;
                } else if (Pp(C) && w.type === "mn") {
                  w.children.push(...C.children);
                  continue;
                } else if (C.type === "mn" && Pp(w))
                  ((C.children = [...w.children, ...C.children]), g.pop());
                else if (
                  (C.type === "msup" || C.type === "msub") &&
                  C.children.length >= 1 &&
                  (w.type === "mn" || Pp(w))
                ) {
                  let F = C.children[0];
                  F instanceof Gn &&
                    F.type === "mn" &&
                    ((F.children = [...w.children, ...F.children]), g.pop());
                } else if (w.type === "mi" && w.children.length === 1) {
                  let F = w.children[0];
                  if (
                    F instanceof Yr &&
                    F.text === "\u0338" &&
                    (C.type === "mo" || C.type === "mi" || C.type === "mn")
                  ) {
                    let L = C.children[0];
                    L instanceof Yr &&
                      L.text.length > 0 &&
                      ((L.text =
                        L.text.slice(0, 1) + "\u0338" + L.text.slice(1)),
                      g.pop());
                  }
                }
              }
              (g.push(C), (w = C));
            }
            return g;
          },
          wo = function (f, c, d) {
            return zp(qn(f, c, d));
          },
          pt = function (f, c) {
            if (!f) return new ae.MathNode("mrow");
            if (Lc[f.type]) return Lc[f.type](f, c);
            throw new r("Got group of unknown type: '" + f.type + "'");
          };
        function G5(f, c, d, g, w) {
          let S = qn(f, d),
            C;
          S.length === 1 &&
          S[0] instanceof Gn &&
          ["mrow", "mtable"].includes(S[0].type)
            ? (C = S[0])
            : (C = new ae.MathNode("mrow", S));
          let F = new ae.MathNode("annotation", [new ae.TextNode(c)]);
          F.setAttribute("encoding", "application/x-tex");
          let L = new ae.MathNode("semantics", [C, F]),
            $ = new ae.MathNode("math", [L]);
          ($.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"),
            g && $.setAttribute("display", "block"));
          let W = w ? "katex" : "katex-mathml";
          return J.makeSpan([W], [$]);
        }
        let Y5 = function (f) {
            return new zE({
              style: f.displayMode ? te.DISPLAY : te.TEXT,
              maxSize: f.maxSize,
              minRuleThickness: f.minRuleThickness,
            });
          },
          X5 = function (f, c) {
            if (c.displayMode) {
              let d = ["katex-display"];
              (c.leqno && d.push("leqno"),
                c.fleqn && d.push("fleqn"),
                (f = J.makeSpan(d, [f])));
            }
            return f;
          },
          fC = function (f, c, d) {
            let g = Y5(d),
              w;
            if (d.output === "mathml") return G5(f, c, g, d.displayMode, !0);
            if (d.output === "html") {
              let S = Bp(f, g);
              w = J.makeSpan(["katex"], [S]);
            } else {
              let S = G5(f, c, g, d.displayMode, !1),
                C = Bp(f, g);
              w = J.makeSpan(["katex"], [S, C]);
            }
            return X5(w, d);
          },
          hC = function (f, c, d) {
            let g = Y5(d),
              w = Bp(f, g),
              S = J.makeSpan(["katex"], [w]);
            return X5(S, d);
          };
        var QV = null;
        let dC = {
            widehat: "^",
            widecheck: "\u02C7",
            widetilde: "~",
            utilde: "~",
            overleftarrow: "\u2190",
            underleftarrow: "\u2190",
            xleftarrow: "\u2190",
            overrightarrow: "\u2192",
            underrightarrow: "\u2192",
            xrightarrow: "\u2192",
            underbrace: "\u23DF",
            overbrace: "\u23DE",
            overgroup: "\u23E0",
            undergroup: "\u23E1",
            overleftrightarrow: "\u2194",
            underleftrightarrow: "\u2194",
            xleftrightarrow: "\u2194",
            Overrightarrow: "\u21D2",
            xRightarrow: "\u21D2",
            overleftharpoon: "\u21BC",
            xleftharpoonup: "\u21BC",
            overrightharpoon: "\u21C0",
            xrightharpoonup: "\u21C0",
            xLeftarrow: "\u21D0",
            xLeftrightarrow: "\u21D4",
            xhookleftarrow: "\u21A9",
            xhookrightarrow: "\u21AA",
            xmapsto: "\u21A6",
            xrightharpoondown: "\u21C1",
            xleftharpoondown: "\u21BD",
            xrightleftharpoons: "\u21CC",
            xleftrightharpoons: "\u21CB",
            xtwoheadleftarrow: "\u219E",
            xtwoheadrightarrow: "\u21A0",
            xlongequal: "=",
            xtofrom: "\u21C4",
            xrightleftarrows: "\u21C4",
            xrightequilibrium: "\u21CC",
            xleftequilibrium: "\u21CB",
            "\\cdrightarrow": "\u2192",
            "\\cdleftarrow": "\u2190",
            "\\cdlongequal": "=",
          },
          pC = function (f) {
            let c = new ae.MathNode("mo", [
              new ae.TextNode(dC[f.replace(/^\\/, "")]),
            ]);
            return (c.setAttribute("stretchy", "true"), c);
          },
          mC = {
            overrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"],
            overleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"],
            underrightarrow: [["rightarrow"], 0.888, 522, "xMaxYMin"],
            underleftarrow: [["leftarrow"], 0.888, 522, "xMinYMin"],
            xrightarrow: [["rightarrow"], 1.469, 522, "xMaxYMin"],
            "\\cdrightarrow": [["rightarrow"], 3, 522, "xMaxYMin"],
            xleftarrow: [["leftarrow"], 1.469, 522, "xMinYMin"],
            "\\cdleftarrow": [["leftarrow"], 3, 522, "xMinYMin"],
            Overrightarrow: [["doublerightarrow"], 0.888, 560, "xMaxYMin"],
            xRightarrow: [["doublerightarrow"], 1.526, 560, "xMaxYMin"],
            xLeftarrow: [["doubleleftarrow"], 1.526, 560, "xMinYMin"],
            overleftharpoon: [["leftharpoon"], 0.888, 522, "xMinYMin"],
            xleftharpoonup: [["leftharpoon"], 0.888, 522, "xMinYMin"],
            xleftharpoondown: [["leftharpoondown"], 0.888, 522, "xMinYMin"],
            overrightharpoon: [["rightharpoon"], 0.888, 522, "xMaxYMin"],
            xrightharpoonup: [["rightharpoon"], 0.888, 522, "xMaxYMin"],
            xrightharpoondown: [["rightharpoondown"], 0.888, 522, "xMaxYMin"],
            xlongequal: [["longequal"], 0.888, 334, "xMinYMin"],
            "\\cdlongequal": [["longequal"], 3, 334, "xMinYMin"],
            xtwoheadleftarrow: [["twoheadleftarrow"], 0.888, 334, "xMinYMin"],
            xtwoheadrightarrow: [["twoheadrightarrow"], 0.888, 334, "xMaxYMin"],
            overleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522],
            overbrace: [["leftbrace", "midbrace", "rightbrace"], 1.6, 548],
            underbrace: [
              ["leftbraceunder", "midbraceunder", "rightbraceunder"],
              1.6,
              548,
            ],
            underleftrightarrow: [["leftarrow", "rightarrow"], 0.888, 522],
            xleftrightarrow: [["leftarrow", "rightarrow"], 1.75, 522],
            xLeftrightarrow: [
              ["doubleleftarrow", "doublerightarrow"],
              1.75,
              560,
            ],
            xrightleftharpoons: [
              ["leftharpoondownplus", "rightharpoonplus"],
              1.75,
              716,
            ],
            xleftrightharpoons: [
              ["leftharpoonplus", "rightharpoondownplus"],
              1.75,
              716,
            ],
            xhookleftarrow: [["leftarrow", "righthook"], 1.08, 522],
            xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522],
            overlinesegment: [
              ["leftlinesegment", "rightlinesegment"],
              0.888,
              522,
            ],
            underlinesegment: [
              ["leftlinesegment", "rightlinesegment"],
              0.888,
              522,
            ],
            overgroup: [["leftgroup", "rightgroup"], 0.888, 342],
            undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342],
            xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522],
            xtofrom: [["leftToFrom", "rightToFrom"], 1.75, 528],
            xrightleftarrows: [
              ["baraboveleftarrow", "rightarrowabovebar"],
              1.75,
              901,
            ],
            xrightequilibrium: [
              ["baraboveshortleftharpoon", "rightharpoonaboveshortbar"],
              1.75,
              716,
            ],
            xleftequilibrium: [
              ["shortbaraboveleftharpoon", "shortrightharpoonabovebar"],
              1.75,
              716,
            ],
          },
          gC = function (f) {
            return f.type === "ordgroup" ? f.body.length : 1;
          };
        var zi = {
          encloseSpan: function (f, c, d, g, w) {
            let S,
              C = f.height + f.depth + d + g;
            if (/fbox|color|angl/.test(c)) {
              if (((S = J.makeSpan(["stretchy", c], [], w)), c === "fbox")) {
                let F = w.color && w.getColor();
                F && (S.style.borderColor = F);
              }
            } else {
              let F = [];
              (/^[bx]cancel$/.test(c) &&
                F.push(
                  new Dp({
                    x1: "0",
                    y1: "0",
                    x2: "100%",
                    y2: "100%",
                    "stroke-width": "0.046em",
                  }),
                ),
                /^x?cancel$/.test(c) &&
                  F.push(
                    new Dp({
                      x1: "0",
                      y1: "100%",
                      x2: "100%",
                      y2: "0",
                      "stroke-width": "0.046em",
                    }),
                  ));
              let L = new qi(F, { width: "100%", height: de(C) });
              S = J.makeSvgSpan([], [L], w);
            }
            return ((S.height = C), (S.style.height = de(C)), S);
          },
          mathMLnode: pC,
          svgSpan: function (f, c) {
            function d() {
              let C = 4e5,
                F = f.label.slice(1);
              if (["widehat", "widecheck", "widetilde", "utilde"].includes(F)) {
                let $ = gC(f.base),
                  W,
                  K,
                  ee;
                if ($ > 5)
                  F === "widehat" || F === "widecheck"
                    ? ((W = 420), (C = 2364), (ee = 0.42), (K = F + "4"))
                    : ((W = 312), (C = 2340), (ee = 0.34), (K = "tilde4"));
                else {
                  let Se = [1, 1, 2, 2, 3, 3][$];
                  F === "widehat" || F === "widecheck"
                    ? ((C = [0, 1062, 2364, 2364, 2364][Se]),
                      (W = [0, 239, 300, 360, 420][Se]),
                      (ee = [0, 0.24, 0.3, 0.3, 0.36, 0.42][Se]),
                      (K = F + Se))
                    : ((C = [0, 600, 1033, 2339, 2340][Se]),
                      (W = [0, 260, 286, 306, 312][Se]),
                      (ee = [0, 0.26, 0.286, 0.3, 0.306, 0.34][Se]),
                      (K = "tilde" + Se));
                }
                let re = new yo(K),
                  we = new qi([re], {
                    width: "100%",
                    height: de(ee),
                    viewBox: "0 0 " + C + " " + W,
                    preserveAspectRatio: "none",
                  });
                return {
                  span: J.makeSvgSpan([], [we], c),
                  minWidth: 0,
                  height: ee,
                };
              } else {
                let L = [],
                  $ = mC[F],
                  [W, K, ee] = $,
                  re = ee / 1e3,
                  we = W.length,
                  Se,
                  Ye;
                if (we === 1) {
                  let He = $[3];
                  ((Se = ["hide-tail"]), (Ye = [He]));
                } else if (we === 2)
                  ((Se = ["halfarrow-left", "halfarrow-right"]),
                    (Ye = ["xMinYMin", "xMaxYMin"]));
                else if (we === 3)
                  ((Se = ["brace-left", "brace-center", "brace-right"]),
                    (Ye = ["xMinYMin", "xMidYMin", "xMaxYMin"]));
                else
                  throw new Error(
                    `Correct katexImagesData or update code here to support
                    ` +
                      we +
                      " children.",
                  );
                for (let He = 0; He < we; He++) {
                  let Ze = new yo(W[He]),
                    st = new qi([Ze], {
                      width: "400em",
                      height: de(re),
                      viewBox: "0 0 " + C + " " + ee,
                      preserveAspectRatio: Ye[He] + " slice",
                    }),
                    xt = J.makeSvgSpan([Se[He]], [st], c);
                  if (we === 1) return { span: xt, minWidth: K, height: re };
                  ((xt.style.height = de(re)), L.push(xt));
                }
                return {
                  span: J.makeSpan(["stretchy"], L, c),
                  minWidth: K,
                  height: re,
                };
              }
            }
            let { span: g, minWidth: w, height: S } = d();
            return (
              (g.height = S),
              (g.style.height = de(S)),
              w > 0 && (g.style.minWidth = de(w)),
              g
            );
          },
        };
        function ze(f, c) {
          if (!f || f.type !== c)
            throw new Error(
              "Expected node of type " +
                c +
                ", but got " +
                (f ? "node of type " + f.type : String(f)),
            );
          return f;
        }
        function $p(f) {
          let c = zc(f);
          if (!c)
            throw new Error(
              "Expected node of symbol group type, but got " +
                (f ? "node of type " + f.type : String(f)),
            );
          return c;
        }
        function zc(f) {
          return f && (f.type === "atom" || jE.hasOwnProperty(f.type))
            ? f
            : null;
        }
        let Hp = (f, c) => {
            let d, g, w;
            f && f.type === "supsub"
              ? ((g = ze(f.base, "accent")),
                (d = g.base),
                (f.base = d),
                (w = UE(et(f, c))),
                (f.base = g))
              : ((g = ze(f, "accent")), (d = g.base));
            let S = et(d, c.havingCrampedStyle()),
              C = g.isShifty && x.isCharacterBox(d),
              F = 0;
            if (C) {
              let ee = x.getBaseElem(d),
                re = et(ee, c.havingCrampedStyle());
              F = q5(re).skew;
            }
            let L = g.label === "\\c",
              $ = L
                ? S.height + S.depth
                : Math.min(S.height, c.fontMetrics().xHeight),
              W;
            if (g.isStretchy)
              ((W = zi.svgSpan(g, c)),
                (W = J.makeVList(
                  {
                    positionType: "firstBaseline",
                    children: [
                      { type: "elem", elem: S },
                      {
                        type: "elem",
                        elem: W,
                        wrapperClasses: ["svg-align"],
                        wrapperStyle:
                          F > 0
                            ? {
                                width: "calc(100% - " + de(2 * F) + ")",
                                marginLeft: de(2 * F),
                              }
                            : void 0,
                      },
                    ],
                  },
                  c,
                )));
            else {
              let ee, re;
              (g.label === "\\vec"
                ? ((ee = J.staticSvg("vec", c)), (re = J.svgData.vec[1]))
                : ((ee = J.makeOrd(
                    { mode: g.mode, text: g.label },
                    c,
                    "textord",
                  )),
                  (ee = q5(ee)),
                  (ee.italic = 0),
                  (re = ee.width),
                  L && ($ += ee.depth)),
                (W = J.makeSpan(["accent-body"], [ee])));
              let we = g.label === "\\textcircled";
              we && (W.classes.push("accent-full"), ($ = S.height));
              let Se = F;
              (we || (Se -= re / 2),
                (W.style.left = de(Se)),
                g.label === "\\textcircled" && (W.style.top = ".2em"),
                (W = J.makeVList(
                  {
                    positionType: "firstBaseline",
                    children: [
                      { type: "elem", elem: S },
                      { type: "kern", size: -$ },
                      { type: "elem", elem: W },
                    ],
                  },
                  c,
                )));
            }
            let K = J.makeSpan(["mord", "accent"], [W], c);
            return w
              ? ((w.children[0] = K),
                (w.height = Math.max(K.height, w.height)),
                (w.classes[0] = "mord"),
                w)
              : K;
          },
          W5 = (f, c) => {
            let d = f.isStretchy
                ? zi.mathMLnode(f.label)
                : new ae.MathNode("mo", [nr(f.label, f.mode)]),
              g = new ae.MathNode("mover", [pt(f.base, c), d]);
            return (g.setAttribute("accent", "true"), g);
          },
          bC = new RegExp(
            [
              "\\acute",
              "\\grave",
              "\\ddot",
              "\\tilde",
              "\\bar",
              "\\breve",
              "\\check",
              "\\hat",
              "\\vec",
              "\\dot",
              "\\mathring",
            ]
              .map((f) => "\\" + f)
              .join("|"),
          );
        (be({
          type: "accent",
          names: [
            "\\acute",
            "\\grave",
            "\\ddot",
            "\\tilde",
            "\\bar",
            "\\breve",
            "\\check",
            "\\hat",
            "\\vec",
            "\\dot",
            "\\mathring",
            "\\widecheck",
            "\\widehat",
            "\\widetilde",
            "\\overrightarrow",
            "\\overleftarrow",
            "\\Overrightarrow",
            "\\overleftrightarrow",
            "\\overgroup",
            "\\overlinesegment",
            "\\overleftharpoon",
            "\\overrightharpoon",
          ],
          props: { numArgs: 1 },
          handler: (f, c) => {
            let d = Oc(c[0]),
              g = !bC.test(f.funcName),
              w =
                !g ||
                f.funcName === "\\widehat" ||
                f.funcName === "\\widetilde" ||
                f.funcName === "\\widecheck";
            return {
              type: "accent",
              mode: f.parser.mode,
              label: f.funcName,
              isStretchy: g,
              isShifty: w,
              base: d,
            };
          },
          htmlBuilder: Hp,
          mathmlBuilder: W5,
        }),
          be({
            type: "accent",
            names: [
              "\\'",
              "\\`",
              "\\^",
              "\\~",
              "\\=",
              "\\u",
              "\\.",
              '\\"',
              "\\c",
              "\\r",
              "\\H",
              "\\v",
              "\\textcircled",
            ],
            props: {
              numArgs: 1,
              allowedInText: !0,
              allowedInMath: !0,
              argTypes: ["primitive"],
            },
            handler: (f, c) => {
              let d = c[0],
                g = f.parser.mode;
              return (
                g === "math" &&
                  (f.parser.settings.reportNonstrict(
                    "mathVsTextAccents",
                    "LaTeX's accent " + f.funcName + " works only in text mode",
                  ),
                  (g = "text")),
                {
                  type: "accent",
                  mode: g,
                  label: f.funcName,
                  isStretchy: !1,
                  isShifty: !0,
                  base: d,
                }
              );
            },
            htmlBuilder: Hp,
            mathmlBuilder: W5,
          }),
          be({
            type: "accentUnder",
            names: [
              "\\underleftarrow",
              "\\underrightarrow",
              "\\underleftrightarrow",
              "\\undergroup",
              "\\underlinesegment",
              "\\utilde",
            ],
            props: { numArgs: 1 },
            handler: (f, c) => {
              let { parser: d, funcName: g } = f,
                w = c[0];
              return { type: "accentUnder", mode: d.mode, label: g, base: w };
            },
            htmlBuilder: (f, c) => {
              let d = et(f.base, c),
                g = zi.svgSpan(f, c),
                w = f.label === "\\utilde" ? 0.12 : 0,
                S = J.makeVList(
                  {
                    positionType: "top",
                    positionData: d.height,
                    children: [
                      { type: "elem", elem: g, wrapperClasses: ["svg-align"] },
                      { type: "kern", size: w },
                      { type: "elem", elem: d },
                    ],
                  },
                  c,
                );
              return J.makeSpan(["mord", "accentunder"], [S], c);
            },
            mathmlBuilder: (f, c) => {
              let d = zi.mathMLnode(f.label),
                g = new ae.MathNode("munder", [pt(f.base, c), d]);
              return (g.setAttribute("accentunder", "true"), g);
            },
          }));
        let Rc = (f) => {
          let c = new ae.MathNode("mpadded", f ? [f] : []);
          return (
            c.setAttribute("width", "+0.6em"),
            c.setAttribute("lspace", "0.3em"),
            c
          );
        };
        be({
          type: "xArrow",
          names: [
            "\\xleftarrow",
            "\\xrightarrow",
            "\\xLeftarrow",
            "\\xRightarrow",
            "\\xleftrightarrow",
            "\\xLeftrightarrow",
            "\\xhookleftarrow",
            "\\xhookrightarrow",
            "\\xmapsto",
            "\\xrightharpoondown",
            "\\xrightharpoonup",
            "\\xleftharpoondown",
            "\\xleftharpoonup",
            "\\xrightleftharpoons",
            "\\xleftrightharpoons",
            "\\xlongequal",
            "\\xtwoheadrightarrow",
            "\\xtwoheadleftarrow",
            "\\xtofrom",
            "\\xrightleftarrows",
            "\\xrightequilibrium",
            "\\xleftequilibrium",
            "\\\\cdrightarrow",
            "\\\\cdleftarrow",
            "\\\\cdlongequal",
          ],
          props: { numArgs: 1, numOptionalArgs: 1 },
          handler(f, c, d) {
            let { parser: g, funcName: w } = f;
            return {
              type: "xArrow",
              mode: g.mode,
              label: w,
              body: c[0],
              below: d[0],
            };
          },
          htmlBuilder(f, c) {
            let d = c.style,
              g = c.havingStyle(d.sup()),
              w = J.wrapFragment(et(f.body, g, c), c),
              S = f.label.slice(0, 2) === "\\x" ? "x" : "cd";
            w.classes.push(S + "-arrow-pad");
            let C;
            f.below &&
              ((g = c.havingStyle(d.sub())),
              (C = J.wrapFragment(et(f.below, g, c), c)),
              C.classes.push(S + "-arrow-pad"));
            let F = zi.svgSpan(f, c),
              L = -c.fontMetrics().axisHeight + 0.5 * F.height,
              $ = -c.fontMetrics().axisHeight - 0.5 * F.height - 0.111;
            (w.depth > 0.25 || f.label === "\\xleftequilibrium") &&
              ($ -= w.depth);
            let W;
            if (C) {
              let K =
                -c.fontMetrics().axisHeight + C.height + 0.5 * F.height + 0.111;
              W = J.makeVList(
                {
                  positionType: "individualShift",
                  children: [
                    { type: "elem", elem: w, shift: $ },
                    { type: "elem", elem: F, shift: L },
                    { type: "elem", elem: C, shift: K },
                  ],
                },
                c,
              );
            } else
              W = J.makeVList(
                {
                  positionType: "individualShift",
                  children: [
                    { type: "elem", elem: w, shift: $ },
                    { type: "elem", elem: F, shift: L },
                  ],
                },
                c,
              );
            return (
              W.children[0].children[0].children[1].classes.push("svg-align"),
              J.makeSpan(["mrel", "x-arrow"], [W], c)
            );
          },
          mathmlBuilder(f, c) {
            let d = zi.mathMLnode(f.label);
            d.setAttribute(
              "minsize",
              f.label.charAt(0) === "x" ? "1.75em" : "3.0em",
            );
            let g;
            if (f.body) {
              let w = Rc(pt(f.body, c));
              if (f.below) {
                let S = Rc(pt(f.below, c));
                g = new ae.MathNode("munderover", [d, S, w]);
              } else g = new ae.MathNode("mover", [d, w]);
            } else if (f.below) {
              let w = Rc(pt(f.below, c));
              g = new ae.MathNode("munder", [d, w]);
            } else ((g = Rc()), (g = new ae.MathNode("mover", [d, g])));
            return g;
          },
        });
        let xC = J.makeSpan;
        function K5(f, c) {
          let d = Xt(f.body, c, !0);
          return xC([f.mclass], d, c);
        }
        function Z5(f, c) {
          let d,
            g = qn(f.body, c);
          return (
            f.mclass === "minner"
              ? (d = new ae.MathNode("mpadded", g))
              : f.mclass === "mord"
                ? f.isCharacterBox
                  ? ((d = g[0]), (d.type = "mi"))
                  : (d = new ae.MathNode("mi", g))
                : (f.isCharacterBox
                    ? ((d = g[0]), (d.type = "mo"))
                    : (d = new ae.MathNode("mo", g)),
                  f.mclass === "mbin"
                    ? ((d.attributes.lspace = "0.22em"),
                      (d.attributes.rspace = "0.22em"))
                    : f.mclass === "mpunct"
                      ? ((d.attributes.lspace = "0em"),
                        (d.attributes.rspace = "0.17em"))
                      : f.mclass === "mopen" || f.mclass === "mclose"
                        ? ((d.attributes.lspace = "0em"),
                          (d.attributes.rspace = "0em"))
                        : f.mclass === "minner" &&
                          ((d.attributes.lspace = "0.0556em"),
                          (d.attributes.width = "+0.1111em"))),
            d
          );
        }
        be({
          type: "mclass",
          names: [
            "\\mathord",
            "\\mathbin",
            "\\mathrel",
            "\\mathopen",
            "\\mathclose",
            "\\mathpunct",
            "\\mathinner",
          ],
          props: { numArgs: 1, primitive: !0 },
          handler(f, c) {
            let { parser: d, funcName: g } = f,
              w = c[0];
            return {
              type: "mclass",
              mode: d.mode,
              mclass: "m" + g.slice(5),
              body: Pt(w),
              isCharacterBox: x.isCharacterBox(w),
            };
          },
          htmlBuilder: K5,
          mathmlBuilder: Z5,
        });
        let Pc = (f) => {
          let c = f.type === "ordgroup" && f.body.length ? f.body[0] : f;
          return c.type === "atom" && (c.family === "bin" || c.family === "rel")
            ? "m" + c.family
            : "mord";
        };
        (be({
          type: "mclass",
          names: ["\\@binrel"],
          props: { numArgs: 2 },
          handler(f, c) {
            let { parser: d } = f;
            return {
              type: "mclass",
              mode: d.mode,
              mclass: Pc(c[0]),
              body: Pt(c[1]),
              isCharacterBox: x.isCharacterBox(c[1]),
            };
          },
        }),
          be({
            type: "mclass",
            names: ["\\stackrel", "\\overset", "\\underset"],
            props: { numArgs: 2 },
            handler(f, c) {
              let { parser: d, funcName: g } = f,
                w = c[1],
                S = c[0],
                C;
              g !== "\\stackrel" ? (C = Pc(w)) : (C = "mrel");
              let F = {
                  type: "op",
                  mode: w.mode,
                  limits: !0,
                  alwaysHandleSupSub: !0,
                  parentIsSupSub: !1,
                  symbol: !1,
                  suppressBaseShift: g !== "\\stackrel",
                  body: Pt(w),
                },
                L = {
                  type: "supsub",
                  mode: S.mode,
                  base: F,
                  sup: g === "\\underset" ? null : S,
                  sub: g === "\\underset" ? S : null,
                };
              return {
                type: "mclass",
                mode: d.mode,
                mclass: C,
                body: [L],
                isCharacterBox: x.isCharacterBox(L),
              };
            },
            htmlBuilder: K5,
            mathmlBuilder: Z5,
          }),
          be({
            type: "pmb",
            names: ["\\pmb"],
            props: { numArgs: 1, allowedInText: !0 },
            handler(f, c) {
              let { parser: d } = f;
              return {
                type: "pmb",
                mode: d.mode,
                mclass: Pc(c[0]),
                body: Pt(c[0]),
              };
            },
            htmlBuilder(f, c) {
              let d = Xt(f.body, c, !0),
                g = J.makeSpan([f.mclass], d, c);
              return ((g.style.textShadow = "0.02em 0.01em 0.04px"), g);
            },
            mathmlBuilder(f, c) {
              let d = qn(f.body, c),
                g = new ae.MathNode("mstyle", d);
              return (
                g.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px"),
                g
              );
            },
          }));
        let yC = {
            ">": "\\\\cdrightarrow",
            "<": "\\\\cdleftarrow",
            "=": "\\\\cdlongequal",
            A: "\\uparrow",
            V: "\\downarrow",
            "|": "\\Vert",
            ".": "no arrow",
          },
          J5 = () => ({
            type: "styling",
            body: [],
            mode: "math",
            style: "display",
          }),
          Q5 = (f) => f.type === "textord" && f.text === "@",
          wC = (f, c) =>
            (f.type === "mathord" || f.type === "atom") && f.text === c;
        function vC(f, c, d) {
          let g = yC[f];
          switch (g) {
            case "\\\\cdrightarrow":
            case "\\\\cdleftarrow":
              return d.callFunction(g, [c[0]], [c[1]]);
            case "\\uparrow":
            case "\\downarrow": {
              let w = d.callFunction("\\\\cdleft", [c[0]], []),
                S = { type: "atom", text: g, mode: "math", family: "rel" },
                C = d.callFunction("\\Big", [S], []),
                F = d.callFunction("\\\\cdright", [c[1]], []),
                L = { type: "ordgroup", mode: "math", body: [w, C, F] };
              return d.callFunction("\\\\cdparent", [L], []);
            }
            case "\\\\cdlongequal":
              return d.callFunction("\\\\cdlongequal", [], []);
            case "\\Vert": {
              let w = { type: "textord", text: "\\Vert", mode: "math" };
              return d.callFunction("\\Big", [w], []);
            }
            default:
              return { type: "textord", text: " ", mode: "math" };
          }
        }
        function _C(f) {
          let c = [];
          for (
            f.gullet.beginGroup(),
              f.gullet.macros.set("\\cr", "\\\\\\relax"),
              f.gullet.beginGroup();
            ;
          ) {
            (c.push(f.parseExpression(!1, "\\\\")),
              f.gullet.endGroup(),
              f.gullet.beginGroup());
            let S = f.fetch().text;
            if (S === "&" || S === "\\\\") f.consume();
            else if (S === "\\end") {
              c[c.length - 1].length === 0 && c.pop();
              break;
            } else throw new r("Expected \\\\ or \\cr or \\end", f.nextToken);
          }
          let d = [],
            g = [d];
          for (let S = 0; S < c.length; S++) {
            let C = c[S],
              F = J5();
            for (let L = 0; L < C.length; L++)
              if (!Q5(C[L])) F.body.push(C[L]);
              else {
                (d.push(F), (L += 1));
                let $ = $p(C[L]).text,
                  W = new Array(2);
                if (
                  ((W[0] = { type: "ordgroup", mode: "math", body: [] }),
                  (W[1] = { type: "ordgroup", mode: "math", body: [] }),
                  !("=|.".indexOf($) > -1))
                )
                  if ("<>AV".indexOf($) > -1)
                    for (let re = 0; re < 2; re++) {
                      let we = !0;
                      for (let Se = L + 1; Se < C.length; Se++) {
                        if (wC(C[Se], $)) {
                          ((we = !1), (L = Se));
                          break;
                        }
                        if (Q5(C[Se]))
                          throw new r(
                            "Missing a " +
                              $ +
                              " character to complete a CD arrow.",
                            C[Se],
                          );
                        W[re].body.push(C[Se]);
                      }
                      if (we)
                        throw new r(
                          "Missing a " +
                            $ +
                            " character to complete a CD arrow.",
                          C[L],
                        );
                    }
                  else throw new r('Expected one of "<>AV=|." after @', C[L]);
                let ee = {
                  type: "styling",
                  body: [vC($, W, f)],
                  mode: "math",
                  style: "display",
                };
                (d.push(ee), (F = J5()));
              }
            (S % 2 === 0 ? d.push(F) : d.shift(), (d = []), g.push(d));
          }
          (f.gullet.endGroup(), f.gullet.endGroup());
          let w = new Array(g[0].length).fill({
            type: "align",
            align: "c",
            pregap: 0.25,
            postgap: 0.25,
          });
          return {
            type: "array",
            mode: "math",
            body: g,
            arraystretch: 1,
            addJot: !0,
            rowGaps: [null],
            cols: w,
            colSeparationType: "CD",
            hLinesBeforeRow: new Array(g.length + 1).fill([]),
          };
        }
        (be({
          type: "cdlabel",
          names: ["\\\\cdleft", "\\\\cdright"],
          props: { numArgs: 1 },
          handler(f, c) {
            let { parser: d, funcName: g } = f;
            return {
              type: "cdlabel",
              mode: d.mode,
              side: g.slice(4),
              label: c[0],
            };
          },
          htmlBuilder(f, c) {
            let d = c.havingStyle(c.style.sup()),
              g = J.wrapFragment(et(f.label, d, c), c);
            return (
              g.classes.push("cd-label-" + f.side),
              (g.style.bottom = de(0.8 - g.depth)),
              (g.height = 0),
              (g.depth = 0),
              g
            );
          },
          mathmlBuilder(f, c) {
            let d = new ae.MathNode("mrow", [pt(f.label, c)]);
            return (
              (d = new ae.MathNode("mpadded", [d])),
              d.setAttribute("width", "0"),
              f.side === "left" && d.setAttribute("lspace", "-1width"),
              d.setAttribute("voffset", "0.7em"),
              (d = new ae.MathNode("mstyle", [d])),
              d.setAttribute("displaystyle", "false"),
              d.setAttribute("scriptlevel", "1"),
              d
            );
          },
        }),
          be({
            type: "cdlabelparent",
            names: ["\\\\cdparent"],
            props: { numArgs: 1 },
            handler(f, c) {
              let { parser: d } = f;
              return { type: "cdlabelparent", mode: d.mode, fragment: c[0] };
            },
            htmlBuilder(f, c) {
              let d = J.wrapFragment(et(f.fragment, c), c);
              return (d.classes.push("cd-vert-arrow"), d);
            },
            mathmlBuilder(f, c) {
              return new ae.MathNode("mrow", [pt(f.fragment, c)]);
            },
          }),
          be({
            type: "textord",
            names: ["\\@char"],
            props: { numArgs: 1, allowedInText: !0 },
            handler(f, c) {
              let { parser: d } = f,
                w = ze(c[0], "ordgroup").body,
                S = "";
              for (let L = 0; L < w.length; L++) {
                let $ = ze(w[L], "textord");
                S += $.text;
              }
              let C = parseInt(S),
                F;
              if (isNaN(C))
                throw new r("\\@char has non-numeric argument " + S);
              if (C < 0 || C >= 1114111)
                throw new r("\\@char with invalid code point " + S);
              return (
                C <= 65535
                  ? (F = String.fromCharCode(C))
                  : ((C -= 65536),
                    (F = String.fromCharCode(
                      (C >> 10) + 55296,
                      (C & 1023) + 56320,
                    ))),
                { type: "textord", mode: d.mode, text: F }
              );
            },
          }));
        let e8 = (f, c) => {
            let d = Xt(f.body, c.withColor(f.color), !1);
            return J.makeFragment(d);
          },
          t8 = (f, c) => {
            let d = qn(f.body, c.withColor(f.color)),
              g = new ae.MathNode("mstyle", d);
            return (g.setAttribute("mathcolor", f.color), g);
          };
        (be({
          type: "color",
          names: ["\\textcolor"],
          props: {
            numArgs: 2,
            allowedInText: !0,
            argTypes: ["color", "original"],
          },
          handler(f, c) {
            let { parser: d } = f,
              g = ze(c[0], "color-token").color,
              w = c[1];
            return { type: "color", mode: d.mode, color: g, body: Pt(w) };
          },
          htmlBuilder: e8,
          mathmlBuilder: t8,
        }),
          be({
            type: "color",
            names: ["\\color"],
            props: { numArgs: 1, allowedInText: !0, argTypes: ["color"] },
            handler(f, c) {
              let { parser: d, breakOnTokenText: g } = f,
                w = ze(c[0], "color-token").color;
              d.gullet.macros.set("\\current@color", w);
              let S = d.parseExpression(!0, g);
              return { type: "color", mode: d.mode, color: w, body: S };
            },
            htmlBuilder: e8,
            mathmlBuilder: t8,
          }),
          be({
            type: "cr",
            names: ["\\\\"],
            props: { numArgs: 0, numOptionalArgs: 0, allowedInText: !0 },
            handler(f, c, d) {
              let { parser: g } = f,
                w =
                  g.gullet.future().text === "[" ? g.parseSizeGroup(!0) : null,
                S =
                  !g.settings.displayMode ||
                  !g.settings.useStrictBehavior(
                    "newLineInDisplayMode",
                    "In LaTeX, \\\\ or \\newline does nothing in display mode",
                  );
              return {
                type: "cr",
                mode: g.mode,
                newLine: S,
                size: w && ze(w, "size").value,
              };
            },
            htmlBuilder(f, c) {
              let d = J.makeSpan(["mspace"], [], c);
              return (
                f.newLine &&
                  (d.classes.push("newline"),
                  f.size && (d.style.marginTop = de(Dt(f.size, c)))),
                d
              );
            },
            mathmlBuilder(f, c) {
              let d = new ae.MathNode("mspace");
              return (
                f.newLine &&
                  (d.setAttribute("linebreak", "newline"),
                  f.size && d.setAttribute("height", de(Dt(f.size, c)))),
                d
              );
            },
          }));
        let Up = {
            "\\global": "\\global",
            "\\long": "\\\\globallong",
            "\\\\globallong": "\\\\globallong",
            "\\def": "\\gdef",
            "\\gdef": "\\gdef",
            "\\edef": "\\xdef",
            "\\xdef": "\\xdef",
            "\\let": "\\\\globallet",
            "\\futurelet": "\\\\globalfuture",
          },
          n8 = (f) => {
            let c = f.text;
            if (/^(?:[\\{}$&#^_]|EOF)$/.test(c))
              throw new r("Expected a control sequence", f);
            return c;
          },
          kC = (f) => {
            let c = f.gullet.popToken();
            return (
              c.text === "=" &&
                ((c = f.gullet.popToken()),
                c.text === " " && (c = f.gullet.popToken())),
              c
            );
          },
          r8 = (f, c, d, g) => {
            let w = f.gullet.macros.get(d.text);
            (w == null &&
              ((d.noexpand = !0),
              (w = {
                tokens: [d],
                numArgs: 0,
                unexpandable: !f.gullet.isExpandable(d.text),
              })),
              f.gullet.macros.set(c, w, g));
          };
        (be({
          type: "internal",
          names: ["\\global", "\\long", "\\\\globallong"],
          props: { numArgs: 0, allowedInText: !0 },
          handler(f) {
            let { parser: c, funcName: d } = f;
            c.consumeSpaces();
            let g = c.fetch();
            if (Up[g.text])
              return (
                (d === "\\global" || d === "\\\\globallong") &&
                  (g.text = Up[g.text]),
                ze(c.parseFunction(), "internal")
              );
            throw new r("Invalid token after macro prefix", g);
          },
        }),
          be({
            type: "internal",
            names: ["\\def", "\\gdef", "\\edef", "\\xdef"],
            props: { numArgs: 0, allowedInText: !0, primitive: !0 },
            handler(f) {
              let { parser: c, funcName: d } = f,
                g = c.gullet.popToken(),
                w = g.text;
              if (/^(?:[\\{}$&#^_]|EOF)$/.test(w))
                throw new r("Expected a control sequence", g);
              let S = 0,
                C,
                F = [[]];
              for (; c.gullet.future().text !== "{"; )
                if (((g = c.gullet.popToken()), g.text === "#")) {
                  if (c.gullet.future().text === "{") {
                    ((C = c.gullet.future()), F[S].push("{"));
                    break;
                  }
                  if (((g = c.gullet.popToken()), !/^[1-9]$/.test(g.text)))
                    throw new r('Invalid argument number "' + g.text + '"');
                  if (parseInt(g.text) !== S + 1)
                    throw new r(
                      'Argument number "' + g.text + '" out of order',
                    );
                  (S++, F.push([]));
                } else {
                  if (g.text === "EOF")
                    throw new r("Expected a macro definition");
                  F[S].push(g.text);
                }
              let { tokens: L } = c.gullet.consumeArg();
              return (
                C && L.unshift(C),
                (d === "\\edef" || d === "\\xdef") &&
                  ((L = c.gullet.expandTokens(L)), L.reverse()),
                c.gullet.macros.set(
                  w,
                  { tokens: L, numArgs: S, delimiters: F },
                  d === Up[d],
                ),
                { type: "internal", mode: c.mode }
              );
            },
          }),
          be({
            type: "internal",
            names: ["\\let", "\\\\globallet"],
            props: { numArgs: 0, allowedInText: !0, primitive: !0 },
            handler(f) {
              let { parser: c, funcName: d } = f,
                g = n8(c.gullet.popToken());
              c.gullet.consumeSpaces();
              let w = kC(c);
              return (
                r8(c, g, w, d === "\\\\globallet"),
                { type: "internal", mode: c.mode }
              );
            },
          }),
          be({
            type: "internal",
            names: ["\\futurelet", "\\\\globalfuture"],
            props: { numArgs: 0, allowedInText: !0, primitive: !0 },
            handler(f) {
              let { parser: c, funcName: d } = f,
                g = n8(c.gullet.popToken()),
                w = c.gullet.popToken(),
                S = c.gullet.popToken();
              return (
                r8(c, g, S, d === "\\\\globalfuture"),
                c.gullet.pushToken(S),
                c.gullet.pushToken(w),
                { type: "internal", mode: c.mode }
              );
            },
          }));
        let ua = function (f, c, d) {
            let g = It.math[f] && It.math[f].replace,
              w = Ii(g || f, c, d);
            if (!w)
              throw new Error(
                "Unsupported symbol " + f + " and font size " + c + ".",
              );
            return w;
          },
          Vp = function (f, c, d, g) {
            let w = d.havingBaseStyle(c),
              S = J.makeSpan(g.concat(w.sizingClasses(d)), [f], d),
              C = w.sizeMultiplier / d.sizeMultiplier;
            return (
              (S.height *= C),
              (S.depth *= C),
              (S.maxFontSize = w.sizeMultiplier),
              S
            );
          },
          i8 = function (f, c, d) {
            let g = c.havingBaseStyle(d),
              w =
                (1 - c.sizeMultiplier / g.sizeMultiplier) *
                c.fontMetrics().axisHeight;
            (f.classes.push("delimcenter"),
              (f.style.top = de(w)),
              (f.height -= w),
              (f.depth += w));
          },
          SC = function (f, c, d, g, w, S) {
            let C = J.makeSymbol(f, "Main-Regular", w, g),
              F = Vp(C, c, g, S);
            return (d && i8(F, g, c), F);
          },
          AC = function (f, c, d, g) {
            return J.makeSymbol(f, "Size" + c + "-Regular", d, g);
          },
          o8 = function (f, c, d, g, w, S) {
            let C = AC(f, c, w, g),
              F = Vp(
                J.makeSpan(["delimsizing", "size" + c], [C], g),
                te.TEXT,
                g,
                S,
              );
            return (d && i8(F, g, te.TEXT), F);
          },
          jp = function (f, c, d) {
            let g;
            return (
              c === "Size1-Regular" ? (g = "delim-size1") : (g = "delim-size4"),
              {
                type: "elem",
                elem: J.makeSpan(
                  ["delimsizinginner", g],
                  [J.makeSpan([], [J.makeSymbol(f, c, d)])],
                ),
              }
            );
          },
          Gp = function (f, c, d) {
            let g = bt["Size4-Regular"][f.charCodeAt(0)]
                ? bt["Size4-Regular"][f.charCodeAt(0)][4]
                : bt["Size1-Regular"][f.charCodeAt(0)][4],
              w = new yo("inner", le(f, Math.round(1e3 * c))),
              S = new qi([w], {
                width: de(g),
                height: de(c),
                style: "width:" + de(g),
                viewBox: "0 0 " + 1e3 * g + " " + Math.round(1e3 * c),
                preserveAspectRatio: "xMinYMin",
              }),
              C = J.makeSvgSpan([], [S], d);
            return (
              (C.height = c),
              (C.style.height = de(c)),
              (C.style.width = de(g)),
              { type: "elem", elem: C }
            );
          },
          Yp = 0.008,
          $c = { type: "kern", size: -1 * Yp },
          MC = ["|", "\\lvert", "\\rvert", "\\vert"],
          TC = ["\\|", "\\lVert", "\\rVert", "\\Vert"],
          s8 = function (f, c, d, g, w, S) {
            let C,
              F,
              L,
              $,
              W = "",
              K = 0;
            ((C = L = $ = f), (F = null));
            let ee = "Size1-Regular";
            f === "\\uparrow"
              ? (L = $ = "\u23D0")
              : f === "\\Uparrow"
                ? (L = $ = "\u2016")
                : f === "\\downarrow"
                  ? (C = L = "\u23D0")
                  : f === "\\Downarrow"
                    ? (C = L = "\u2016")
                    : f === "\\updownarrow"
                      ? ((C = "\\uparrow"), (L = "\u23D0"), ($ = "\\downarrow"))
                      : f === "\\Updownarrow"
                        ? ((C = "\\Uparrow"),
                          (L = "\u2016"),
                          ($ = "\\Downarrow"))
                        : MC.includes(f)
                          ? ((L = "\u2223"), (W = "vert"), (K = 333))
                          : TC.includes(f)
                            ? ((L = "\u2225"), (W = "doublevert"), (K = 556))
                            : f === "[" || f === "\\lbrack"
                              ? ((C = "\u23A1"),
                                (L = "\u23A2"),
                                ($ = "\u23A3"),
                                (ee = "Size4-Regular"),
                                (W = "lbrack"),
                                (K = 667))
                              : f === "]" || f === "\\rbrack"
                                ? ((C = "\u23A4"),
                                  (L = "\u23A5"),
                                  ($ = "\u23A6"),
                                  (ee = "Size4-Regular"),
                                  (W = "rbrack"),
                                  (K = 667))
                                : f === "\\lfloor" || f === "\u230A"
                                  ? ((L = C = "\u23A2"),
                                    ($ = "\u23A3"),
                                    (ee = "Size4-Regular"),
                                    (W = "lfloor"),
                                    (K = 667))
                                  : f === "\\lceil" || f === "\u2308"
                                    ? ((C = "\u23A1"),
                                      (L = $ = "\u23A2"),
                                      (ee = "Size4-Regular"),
                                      (W = "lceil"),
                                      (K = 667))
                                    : f === "\\rfloor" || f === "\u230B"
                                      ? ((L = C = "\u23A5"),
                                        ($ = "\u23A6"),
                                        (ee = "Size4-Regular"),
                                        (W = "rfloor"),
                                        (K = 667))
                                      : f === "\\rceil" || f === "\u2309"
                                        ? ((C = "\u23A4"),
                                          (L = $ = "\u23A5"),
                                          (ee = "Size4-Regular"),
                                          (W = "rceil"),
                                          (K = 667))
                                        : f === "(" || f === "\\lparen"
                                          ? ((C = "\u239B"),
                                            (L = "\u239C"),
                                            ($ = "\u239D"),
                                            (ee = "Size4-Regular"),
                                            (W = "lparen"),
                                            (K = 875))
                                          : f === ")" || f === "\\rparen"
                                            ? ((C = "\u239E"),
                                              (L = "\u239F"),
                                              ($ = "\u23A0"),
                                              (ee = "Size4-Regular"),
                                              (W = "rparen"),
                                              (K = 875))
                                            : f === "\\{" || f === "\\lbrace"
                                              ? ((C = "\u23A7"),
                                                (F = "\u23A8"),
                                                ($ = "\u23A9"),
                                                (L = "\u23AA"),
                                                (ee = "Size4-Regular"))
                                              : f === "\\}" || f === "\\rbrace"
                                                ? ((C = "\u23AB"),
                                                  (F = "\u23AC"),
                                                  ($ = "\u23AD"),
                                                  (L = "\u23AA"),
                                                  (ee = "Size4-Regular"))
                                                : f === "\\lgroup" ||
                                                    f === "\u27EE"
                                                  ? ((C = "\u23A7"),
                                                    ($ = "\u23A9"),
                                                    (L = "\u23AA"),
                                                    (ee = "Size4-Regular"))
                                                  : f === "\\rgroup" ||
                                                      f === "\u27EF"
                                                    ? ((C = "\u23AB"),
                                                      ($ = "\u23AD"),
                                                      (L = "\u23AA"),
                                                      (ee = "Size4-Regular"))
                                                    : f === "\\lmoustache" ||
                                                        f === "\u23B0"
                                                      ? ((C = "\u23A7"),
                                                        ($ = "\u23AD"),
                                                        (L = "\u23AA"),
                                                        (ee = "Size4-Regular"))
                                                      : (f === "\\rmoustache" ||
                                                          f === "\u23B1") &&
                                                        ((C = "\u23AB"),
                                                        ($ = "\u23A9"),
                                                        (L = "\u23AA"),
                                                        (ee = "Size4-Regular"));
            let re = ua(C, ee, w),
              we = re.height + re.depth,
              Se = ua(L, ee, w),
              Ye = Se.height + Se.depth,
              He = ua($, ee, w),
              Ze = He.height + He.depth,
              st = 0,
              xt = 1;
            if (F !== null) {
              let Bt = ua(F, ee, w);
              ((st = Bt.height + Bt.depth), (xt = 2));
            }
            let An = we + Ze + st,
              Wt = Math.max(0, Math.ceil((c - An) / (xt * Ye))),
              rr = An + Wt * xt * Ye,
              qs = g.fontMetrics().axisHeight;
            d && (qs *= g.sizeMultiplier);
            let tt = rr / 2 - qs,
              lt = [];
            if (W.length > 0) {
              let Bt = rr - we - Ze,
                qt = Math.round(rr * 1e3),
                ir = ot(W, Math.round(Bt * 1e3)),
                QC = new yo(W, ir),
                K8 = (K / 1e3).toFixed(3) + "em",
                Z8 = (qt / 1e3).toFixed(3) + "em",
                eN = new qi([QC], {
                  width: K8,
                  height: Z8,
                  viewBox: "0 0 " + K + " " + qt,
                }),
                Gc = J.makeSvgSpan([], [eN], g);
              ((Gc.height = qt / 1e3),
                (Gc.style.width = K8),
                (Gc.style.height = Z8),
                lt.push({ type: "elem", elem: Gc }));
            } else {
              if ((lt.push(jp($, ee, w)), lt.push($c), F === null)) {
                let Bt = rr - we - Ze + 2 * Yp;
                lt.push(Gp(L, Bt, g));
              } else {
                let Bt = (rr - we - Ze - st) / 2 + 2 * Yp;
                (lt.push(Gp(L, Bt, g)),
                  lt.push($c),
                  lt.push(jp(F, ee, w)),
                  lt.push($c),
                  lt.push(Gp(L, Bt, g)));
              }
              (lt.push($c), lt.push(jp(C, ee, w)));
            }
            let wt = g.havingBaseStyle(te.TEXT),
              Mt = J.makeVList(
                { positionType: "bottom", positionData: tt, children: lt },
                wt,
              );
            return Vp(
              J.makeSpan(["delimsizing", "mult"], [Mt], wt),
              te.TEXT,
              g,
              S,
            );
          },
          Xp = 80,
          Wp = 0.08,
          Kp = function (f, c, d, g, w) {
            let S = Pe(f, g, d),
              C = new yo(f, S),
              F = new qi([C], {
                width: "400em",
                height: de(c),
                viewBox: "0 0 400000 " + d,
                preserveAspectRatio: "xMinYMin slice",
              });
            return J.makeSvgSpan(["hide-tail"], [F], w);
          },
          EC = function (f, c) {
            let d = c.havingBaseSizing(),
              g = c8("\\surd", f * d.sizeMultiplier, l8, d),
              w = d.sizeMultiplier,
              S = Math.max(
                0,
                c.minRuleThickness - c.fontMetrics().sqrtRuleThickness,
              ),
              C,
              F = 0,
              L = 0,
              $ = 0,
              W;
            return (
              g.type === "small"
                ? (($ = 1e3 + 1e3 * S + Xp),
                  f < 1 ? (w = 1) : f < 1.4 && (w = 0.7),
                  (F = (1 + S + Wp) / w),
                  (L = (1 + S) / w),
                  (C = Kp("sqrtMain", F, $, S, c)),
                  (C.style.minWidth = "0.853em"),
                  (W = 0.833 / w))
                : g.type === "large"
                  ? (($ = (1e3 + Xp) * aa[g.size]),
                    (L = (aa[g.size] + S) / w),
                    (F = (aa[g.size] + S + Wp) / w),
                    (C = Kp("sqrtSize" + g.size, F, $, S, c)),
                    (C.style.minWidth = "1.02em"),
                    (W = 1 / w))
                  : ((F = f + S + Wp),
                    (L = f + S),
                    ($ = Math.floor(1e3 * f + S) + Xp),
                    (C = Kp("sqrtTall", F, $, S, c)),
                    (C.style.minWidth = "0.742em"),
                    (W = 1.056)),
              (C.height = L),
              (C.style.height = de(F)),
              {
                span: C,
                advanceWidth: W,
                ruleWidth: (c.fontMetrics().sqrtRuleThickness + S) * w,
              }
            );
          },
          u8 = [
            "(",
            "\\lparen",
            ")",
            "\\rparen",
            "[",
            "\\lbrack",
            "]",
            "\\rbrack",
            "\\{",
            "\\lbrace",
            "\\}",
            "\\rbrace",
            "\\lfloor",
            "\\rfloor",
            "\u230A",
            "\u230B",
            "\\lceil",
            "\\rceil",
            "\u2308",
            "\u2309",
            "\\surd",
          ],
          CC = [
            "\\uparrow",
            "\\downarrow",
            "\\updownarrow",
            "\\Uparrow",
            "\\Downarrow",
            "\\Updownarrow",
            "|",
            "\\|",
            "\\vert",
            "\\Vert",
            "\\lvert",
            "\\rvert",
            "\\lVert",
            "\\rVert",
            "\\lgroup",
            "\\rgroup",
            "\u27EE",
            "\u27EF",
            "\\lmoustache",
            "\\rmoustache",
            "\u23B0",
            "\u23B1",
          ],
          a8 = [
            "<",
            ">",
            "\\langle",
            "\\rangle",
            "/",
            "\\backslash",
            "\\lt",
            "\\gt",
          ],
          aa = [0, 1.2, 1.8, 2.4, 3],
          NC = function (f, c, d, g, w) {
            if (
              (f === "<" || f === "\\lt" || f === "\u27E8"
                ? (f = "\\langle")
                : (f === ">" || f === "\\gt" || f === "\u27E9") &&
                  (f = "\\rangle"),
              u8.includes(f) || a8.includes(f))
            )
              return o8(f, c, !1, d, g, w);
            if (CC.includes(f)) return s8(f, aa[c], !1, d, g, w);
            throw new r("Illegal delimiter: '" + f + "'");
          },
          DC = [
            { type: "small", style: te.SCRIPTSCRIPT },
            { type: "small", style: te.SCRIPT },
            { type: "small", style: te.TEXT },
            { type: "large", size: 1 },
            { type: "large", size: 2 },
            { type: "large", size: 3 },
            { type: "large", size: 4 },
          ],
          IC = [
            { type: "small", style: te.SCRIPTSCRIPT },
            { type: "small", style: te.SCRIPT },
            { type: "small", style: te.TEXT },
            { type: "stack" },
          ],
          l8 = [
            { type: "small", style: te.SCRIPTSCRIPT },
            { type: "small", style: te.SCRIPT },
            { type: "small", style: te.TEXT },
            { type: "large", size: 1 },
            { type: "large", size: 2 },
            { type: "large", size: 3 },
            { type: "large", size: 4 },
            { type: "stack" },
          ],
          FC = function (f) {
            if (f.type === "small") return "Main-Regular";
            if (f.type === "large") return "Size" + f.size + "-Regular";
            if (f.type === "stack") return "Size4-Regular";
            throw new Error(
              "Add support for delim type '" + f.type + "' here.",
            );
          },
          c8 = function (f, c, d, g) {
            let w = Math.min(2, 3 - g.style.size);
            for (let S = w; S < d.length && d[S].type !== "stack"; S++) {
              let C = ua(f, FC(d[S]), "math"),
                F = C.height + C.depth;
              if (d[S].type === "small") {
                let L = g.havingBaseStyle(d[S].style);
                F *= L.sizeMultiplier;
              }
              if (F > c) return d[S];
            }
            return d[d.length - 1];
          },
          f8 = function (f, c, d, g, w, S) {
            f === "<" || f === "\\lt" || f === "\u27E8"
              ? (f = "\\langle")
              : (f === ">" || f === "\\gt" || f === "\u27E9") &&
                (f = "\\rangle");
            let C;
            a8.includes(f) ? (C = DC) : u8.includes(f) ? (C = l8) : (C = IC);
            let F = c8(f, c, C, g);
            return F.type === "small"
              ? SC(f, F.style, d, g, w, S)
              : F.type === "large"
                ? o8(f, F.size, d, g, w, S)
                : s8(f, c, d, g, w, S);
          };
        var Ri = {
          sqrtImage: EC,
          sizedDelim: NC,
          sizeToMaxHeight: aa,
          customSizedDelim: f8,
          leftRightDelim: function (f, c, d, g, w, S) {
            let C = g.fontMetrics().axisHeight * g.sizeMultiplier,
              F = 901,
              L = 5 / g.fontMetrics().ptPerEm,
              $ = Math.max(c - C, d + C),
              W = Math.max(($ / 500) * F, 2 * $ - L);
            return f8(f, W, !0, g, w, S);
          },
        };
        let h8 = {
            "\\bigl": { mclass: "mopen", size: 1 },
            "\\Bigl": { mclass: "mopen", size: 2 },
            "\\biggl": { mclass: "mopen", size: 3 },
            "\\Biggl": { mclass: "mopen", size: 4 },
            "\\bigr": { mclass: "mclose", size: 1 },
            "\\Bigr": { mclass: "mclose", size: 2 },
            "\\biggr": { mclass: "mclose", size: 3 },
            "\\Biggr": { mclass: "mclose", size: 4 },
            "\\bigm": { mclass: "mrel", size: 1 },
            "\\Bigm": { mclass: "mrel", size: 2 },
            "\\biggm": { mclass: "mrel", size: 3 },
            "\\Biggm": { mclass: "mrel", size: 4 },
            "\\big": { mclass: "mord", size: 1 },
            "\\Big": { mclass: "mord", size: 2 },
            "\\bigg": { mclass: "mord", size: 3 },
            "\\Bigg": { mclass: "mord", size: 4 },
          },
          qC = [
            "(",
            "\\lparen",
            ")",
            "\\rparen",
            "[",
            "\\lbrack",
            "]",
            "\\rbrack",
            "\\{",
            "\\lbrace",
            "\\}",
            "\\rbrace",
            "\\lfloor",
            "\\rfloor",
            "\u230A",
            "\u230B",
            "\\lceil",
            "\\rceil",
            "\u2308",
            "\u2309",
            "<",
            ">",
            "\\langle",
            "\u27E8",
            "\\rangle",
            "\u27E9",
            "\\lt",
            "\\gt",
            "\\lvert",
            "\\rvert",
            "\\lVert",
            "\\rVert",
            "\\lgroup",
            "\\rgroup",
            "\u27EE",
            "\u27EF",
            "\\lmoustache",
            "\\rmoustache",
            "\u23B0",
            "\u23B1",
            "/",
            "\\backslash",
            "|",
            "\\vert",
            "\\|",
            "\\Vert",
            "\\uparrow",
            "\\Uparrow",
            "\\downarrow",
            "\\Downarrow",
            "\\updownarrow",
            "\\Updownarrow",
            ".",
          ];
        function Hc(f, c) {
          let d = zc(f);
          if (d && qC.includes(d.text)) return d;
          throw d
            ? new r(
                "Invalid delimiter '" + d.text + "' after '" + c.funcName + "'",
                f,
              )
            : new r("Invalid delimiter type '" + f.type + "'", f);
        }
        be({
          type: "delimsizing",
          names: [
            "\\bigl",
            "\\Bigl",
            "\\biggl",
            "\\Biggl",
            "\\bigr",
            "\\Bigr",
            "\\biggr",
            "\\Biggr",
            "\\bigm",
            "\\Bigm",
            "\\biggm",
            "\\Biggm",
            "\\big",
            "\\Big",
            "\\bigg",
            "\\Bigg",
          ],
          props: { numArgs: 1, argTypes: ["primitive"] },
          handler: (f, c) => {
            let d = Hc(c[0], f);
            return {
              type: "delimsizing",
              mode: f.parser.mode,
              size: h8[f.funcName].size,
              mclass: h8[f.funcName].mclass,
              delim: d.text,
            };
          },
          htmlBuilder: (f, c) =>
            f.delim === "."
              ? J.makeSpan([f.mclass])
              : Ri.sizedDelim(f.delim, f.size, c, f.mode, [f.mclass]),
          mathmlBuilder: (f) => {
            let c = [];
            f.delim !== "." && c.push(nr(f.delim, f.mode));
            let d = new ae.MathNode("mo", c);
            (f.mclass === "mopen" || f.mclass === "mclose"
              ? d.setAttribute("fence", "true")
              : d.setAttribute("fence", "false"),
              d.setAttribute("stretchy", "true"));
            let g = de(Ri.sizeToMaxHeight[f.size]);
            return (
              d.setAttribute("minsize", g),
              d.setAttribute("maxsize", g),
              d
            );
          },
        });
        function d8(f) {
          if (!f.body)
            throw new Error(
              "Bug: The leftright ParseNode wasn't fully parsed.",
            );
        }
        (be({
          type: "leftright-right",
          names: ["\\right"],
          props: { numArgs: 1, primitive: !0 },
          handler: (f, c) => {
            let d = f.parser.gullet.macros.get("\\current@color");
            if (d && typeof d != "string")
              throw new r("\\current@color set to non-string in \\right");
            return {
              type: "leftright-right",
              mode: f.parser.mode,
              delim: Hc(c[0], f).text,
              color: d,
            };
          },
        }),
          be({
            type: "leftright",
            names: ["\\left"],
            props: { numArgs: 1, primitive: !0 },
            handler: (f, c) => {
              let d = Hc(c[0], f),
                g = f.parser;
              ++g.leftrightDepth;
              let w = g.parseExpression(!1);
              (--g.leftrightDepth, g.expect("\\right", !1));
              let S = ze(g.parseFunction(), "leftright-right");
              return {
                type: "leftright",
                mode: g.mode,
                body: w,
                left: d.text,
                right: S.delim,
                rightColor: S.color,
              };
            },
            htmlBuilder: (f, c) => {
              d8(f);
              let d = Xt(f.body, c, !0, ["mopen", "mclose"]),
                g = 0,
                w = 0,
                S = !1;
              for (let L = 0; L < d.length; L++)
                d[L].isMiddle
                  ? (S = !0)
                  : ((g = Math.max(d[L].height, g)),
                    (w = Math.max(d[L].depth, w)));
              ((g *= c.sizeMultiplier), (w *= c.sizeMultiplier));
              let C;
              if (
                (f.left === "."
                  ? (C = sa(c, ["mopen"]))
                  : (C = Ri.leftRightDelim(f.left, g, w, c, f.mode, ["mopen"])),
                d.unshift(C),
                S)
              )
                for (let L = 1; L < d.length; L++) {
                  let W = d[L].isMiddle;
                  W &&
                    (d[L] = Ri.leftRightDelim(
                      W.delim,
                      g,
                      w,
                      W.options,
                      f.mode,
                      [],
                    ));
                }
              let F;
              if (f.right === ".") F = sa(c, ["mclose"]);
              else {
                let L = f.rightColor ? c.withColor(f.rightColor) : c;
                F = Ri.leftRightDelim(f.right, g, w, L, f.mode, ["mclose"]);
              }
              return (d.push(F), J.makeSpan(["minner"], d, c));
            },
            mathmlBuilder: (f, c) => {
              d8(f);
              let d = qn(f.body, c);
              if (f.left !== ".") {
                let g = new ae.MathNode("mo", [nr(f.left, f.mode)]);
                (g.setAttribute("fence", "true"), d.unshift(g));
              }
              if (f.right !== ".") {
                let g = new ae.MathNode("mo", [nr(f.right, f.mode)]);
                (g.setAttribute("fence", "true"),
                  f.rightColor && g.setAttribute("mathcolor", f.rightColor),
                  d.push(g));
              }
              return zp(d);
            },
          }),
          be({
            type: "middle",
            names: ["\\middle"],
            props: { numArgs: 1, primitive: !0 },
            handler: (f, c) => {
              let d = Hc(c[0], f);
              if (!f.parser.leftrightDepth)
                throw new r("\\middle without preceding \\left", d);
              return { type: "middle", mode: f.parser.mode, delim: d.text };
            },
            htmlBuilder: (f, c) => {
              let d;
              if (f.delim === ".") d = sa(c, []);
              else {
                d = Ri.sizedDelim(f.delim, 1, c, f.mode, []);
                let g = { delim: f.delim, options: c };
                d.isMiddle = g;
              }
              return d;
            },
            mathmlBuilder: (f, c) => {
              let d =
                  f.delim === "\\vert" || f.delim === "|"
                    ? nr("|", "text")
                    : nr(f.delim, f.mode),
                g = new ae.MathNode("mo", [d]);
              return (
                g.setAttribute("fence", "true"),
                g.setAttribute("lspace", "0.05em"),
                g.setAttribute("rspace", "0.05em"),
                g
              );
            },
          }));
        let Zp = (f, c) => {
            let d = J.wrapFragment(et(f.body, c), c),
              g = f.label.slice(1),
              w = c.sizeMultiplier,
              S,
              C = 0,
              F = x.isCharacterBox(f.body);
            if (g === "sout")
              ((S = J.makeSpan(["stretchy", "sout"])),
                (S.height = c.fontMetrics().defaultRuleThickness / w),
                (C = -0.5 * c.fontMetrics().xHeight));
            else if (g === "phase") {
              let $ = Dt({ number: 0.6, unit: "pt" }, c),
                W = Dt({ number: 0.35, unit: "ex" }, c),
                K = c.havingBaseSizing();
              w = w / K.sizeMultiplier;
              let ee = d.height + d.depth + $ + W;
              d.style.paddingLeft = de(ee / 2 + $);
              let re = Math.floor(1e3 * ee * w),
                we = ge(re),
                Se = new qi([new yo("phase", we)], {
                  width: "400em",
                  height: de(re / 1e3),
                  viewBox: "0 0 400000 " + re,
                  preserveAspectRatio: "xMinYMin slice",
                });
              ((S = J.makeSvgSpan(["hide-tail"], [Se], c)),
                (S.style.height = de(ee)),
                (C = d.depth + $ + W));
            } else {
              /cancel/.test(g)
                ? F || d.classes.push("cancel-pad")
                : g === "angl"
                  ? d.classes.push("anglpad")
                  : d.classes.push("boxpad");
              let $ = 0,
                W = 0,
                K = 0;
              (/box/.test(g)
                ? ((K = Math.max(c.fontMetrics().fboxrule, c.minRuleThickness)),
                  ($ = c.fontMetrics().fboxsep + (g === "colorbox" ? 0 : K)),
                  (W = $))
                : g === "angl"
                  ? ((K = Math.max(
                      c.fontMetrics().defaultRuleThickness,
                      c.minRuleThickness,
                    )),
                    ($ = 4 * K),
                    (W = Math.max(0, 0.25 - d.depth)))
                  : (($ = F ? 0.2 : 0), (W = $)),
                (S = zi.encloseSpan(d, g, $, W, c)),
                /fbox|boxed|fcolorbox/.test(g)
                  ? ((S.style.borderStyle = "solid"),
                    (S.style.borderWidth = de(K)))
                  : g === "angl" &&
                    K !== 0.049 &&
                    ((S.style.borderTopWidth = de(K)),
                    (S.style.borderRightWidth = de(K))),
                (C = d.depth + W),
                f.backgroundColor &&
                  ((S.style.backgroundColor = f.backgroundColor),
                  f.borderColor && (S.style.borderColor = f.borderColor)));
            }
            let L;
            if (f.backgroundColor)
              L = J.makeVList(
                {
                  positionType: "individualShift",
                  children: [
                    { type: "elem", elem: S, shift: C },
                    { type: "elem", elem: d, shift: 0 },
                  ],
                },
                c,
              );
            else {
              let $ = /cancel|phase/.test(g) ? ["svg-align"] : [];
              L = J.makeVList(
                {
                  positionType: "individualShift",
                  children: [
                    { type: "elem", elem: d, shift: 0 },
                    { type: "elem", elem: S, shift: C, wrapperClasses: $ },
                  ],
                },
                c,
              );
            }
            return (
              /cancel/.test(g) && ((L.height = d.height), (L.depth = d.depth)),
              /cancel/.test(g) && !F
                ? J.makeSpan(["mord", "cancel-lap"], [L], c)
                : J.makeSpan(["mord"], [L], c)
            );
          },
          Jp = (f, c) => {
            let d = 0,
              g = new ae.MathNode(
                f.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose",
                [pt(f.body, c)],
              );
            switch (f.label) {
              case "\\cancel":
                g.setAttribute("notation", "updiagonalstrike");
                break;
              case "\\bcancel":
                g.setAttribute("notation", "downdiagonalstrike");
                break;
              case "\\phase":
                g.setAttribute("notation", "phasorangle");
                break;
              case "\\sout":
                g.setAttribute("notation", "horizontalstrike");
                break;
              case "\\fbox":
                g.setAttribute("notation", "box");
                break;
              case "\\angl":
                g.setAttribute("notation", "actuarial");
                break;
              case "\\fcolorbox":
              case "\\colorbox":
                if (
                  ((d = c.fontMetrics().fboxsep * c.fontMetrics().ptPerEm),
                  g.setAttribute("width", "+" + 2 * d + "pt"),
                  g.setAttribute("height", "+" + 2 * d + "pt"),
                  g.setAttribute("lspace", d + "pt"),
                  g.setAttribute("voffset", d + "pt"),
                  f.label === "\\fcolorbox")
                ) {
                  let w = Math.max(
                    c.fontMetrics().fboxrule,
                    c.minRuleThickness,
                  );
                  g.setAttribute(
                    "style",
                    "border: " + w + "em solid " + String(f.borderColor),
                  );
                }
                break;
              case "\\xcancel":
                g.setAttribute(
                  "notation",
                  "updiagonalstrike downdiagonalstrike",
                );
                break;
            }
            return (
              f.backgroundColor &&
                g.setAttribute("mathbackground", f.backgroundColor),
              g
            );
          };
        (be({
          type: "enclose",
          names: ["\\colorbox"],
          props: { numArgs: 2, allowedInText: !0, argTypes: ["color", "text"] },
          handler(f, c, d) {
            let { parser: g, funcName: w } = f,
              S = ze(c[0], "color-token").color,
              C = c[1];
            return {
              type: "enclose",
              mode: g.mode,
              label: w,
              backgroundColor: S,
              body: C,
            };
          },
          htmlBuilder: Zp,
          mathmlBuilder: Jp,
        }),
          be({
            type: "enclose",
            names: ["\\fcolorbox"],
            props: {
              numArgs: 3,
              allowedInText: !0,
              argTypes: ["color", "color", "text"],
            },
            handler(f, c, d) {
              let { parser: g, funcName: w } = f,
                S = ze(c[0], "color-token").color,
                C = ze(c[1], "color-token").color,
                F = c[2];
              return {
                type: "enclose",
                mode: g.mode,
                label: w,
                backgroundColor: C,
                borderColor: S,
                body: F,
              };
            },
            htmlBuilder: Zp,
            mathmlBuilder: Jp,
          }),
          be({
            type: "enclose",
            names: ["\\fbox"],
            props: { numArgs: 1, argTypes: ["hbox"], allowedInText: !0 },
            handler(f, c) {
              let { parser: d } = f;
              return {
                type: "enclose",
                mode: d.mode,
                label: "\\fbox",
                body: c[0],
              };
            },
          }),
          be({
            type: "enclose",
            names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"],
            props: { numArgs: 1 },
            handler(f, c) {
              let { parser: d, funcName: g } = f,
                w = c[0];
              return { type: "enclose", mode: d.mode, label: g, body: w };
            },
            htmlBuilder: Zp,
            mathmlBuilder: Jp,
          }),
          be({
            type: "enclose",
            names: ["\\angl"],
            props: { numArgs: 1, argTypes: ["hbox"], allowedInText: !1 },
            handler(f, c) {
              let { parser: d } = f;
              return {
                type: "enclose",
                mode: d.mode,
                label: "\\angl",
                body: c[0],
              };
            },
          }));
        let p8 = {};
        function Xr(f) {
          let {
              type: c,
              names: d,
              props: g,
              handler: w,
              htmlBuilder: S,
              mathmlBuilder: C,
            } = f,
            F = {
              type: c,
              numArgs: g.numArgs || 0,
              allowedInText: !1,
              numOptionalArgs: 0,
              handler: w,
            };
          for (let L = 0; L < d.length; ++L) p8[d[L]] = F;
          (S && (qc[c] = S), C && (Lc[c] = C));
        }
        let m8 = {};
        function q(f, c) {
          m8[f] = c;
        }
        class Ln {
          constructor(c, d, g) {
            ((this.lexer = void 0),
              (this.start = void 0),
              (this.end = void 0),
              (this.lexer = c),
              (this.start = d),
              (this.end = g));
          }
          static range(c, d) {
            return d
              ? !c || !c.loc || !d.loc || c.loc.lexer !== d.loc.lexer
                ? null
                : new Ln(c.loc.lexer, c.loc.start, d.loc.end)
              : c && c.loc;
          }
        }
        class Yn {
          constructor(c, d) {
            ((this.text = void 0),
              (this.loc = void 0),
              (this.noexpand = void 0),
              (this.treatAsRelax = void 0),
              (this.text = c),
              (this.loc = d));
          }
          range(c, d) {
            return new Yn(d, Ln.range(this, c));
          }
        }
        function g8(f) {
          let c = [];
          f.consumeSpaces();
          let d = f.fetch().text;
          for (
            d === "\\relax" &&
            (f.consume(), f.consumeSpaces(), (d = f.fetch().text));
            d === "\\hline" || d === "\\hdashline";
          )
            (f.consume(),
              c.push(d === "\\hdashline"),
              f.consumeSpaces(),
              (d = f.fetch().text));
          return c;
        }
        let Uc = (f) => {
          if (!f.parser.settings.displayMode)
            throw new r(
              "{" + f.envName + "} can be used only in display mode.",
            );
        };
        function Qp(f) {
          if (f.indexOf("ed") === -1) return f.indexOf("*") === -1;
        }
        function vo(f, c, d) {
          let {
            hskipBeforeAndAfter: g,
            addJot: w,
            cols: S,
            arraystretch: C,
            colSeparationType: F,
            autoTag: L,
            singleRow: $,
            emptySingleRow: W,
            maxNumCols: K,
            leqno: ee,
          } = c;
          if (
            (f.gullet.beginGroup(),
            $ || f.gullet.macros.set("\\cr", "\\\\\\relax"),
            !C)
          ) {
            let xt = f.gullet.expandMacroAsText("\\arraystretch");
            if (xt == null) C = 1;
            else if (((C = parseFloat(xt)), !C || C < 0))
              throw new r("Invalid \\arraystretch: " + xt);
          }
          f.gullet.beginGroup();
          let re = [],
            we = [re],
            Se = [],
            Ye = [],
            He = L != null ? [] : void 0;
          function Ze() {
            L && f.gullet.macros.set("\\@eqnsw", "1", !0);
          }
          function st() {
            He &&
              (f.gullet.macros.get("\\df@tag")
                ? (He.push(f.subparse([new Yn("\\df@tag")])),
                  f.gullet.macros.set("\\df@tag", void 0, !0))
                : He.push(!!L && f.gullet.macros.get("\\@eqnsw") === "1"));
          }
          for (Ze(), Ye.push(g8(f)); ; ) {
            let xt = f.parseExpression(!1, $ ? "\\end" : "\\\\");
            (f.gullet.endGroup(),
              f.gullet.beginGroup(),
              (xt = { type: "ordgroup", mode: f.mode, body: xt }),
              d &&
                (xt = { type: "styling", mode: f.mode, style: d, body: [xt] }),
              re.push(xt));
            let An = f.fetch().text;
            if (An === "&") {
              if (K && re.length === K) {
                if ($ || F)
                  throw new r("Too many tab characters: &", f.nextToken);
                f.settings.reportNonstrict(
                  "textEnv",
                  "Too few columns specified in the {array} column argument.",
                );
              }
              f.consume();
            } else if (An === "\\end") {
              (st(),
                re.length === 1 &&
                  xt.type === "styling" &&
                  xt.body[0].body.length === 0 &&
                  (we.length > 1 || !W) &&
                  we.pop(),
                Ye.length < we.length + 1 && Ye.push([]));
              break;
            } else if (An === "\\\\") {
              f.consume();
              let Wt;
              (f.gullet.future().text !== " " && (Wt = f.parseSizeGroup(!0)),
                Se.push(Wt ? Wt.value : null),
                st(),
                Ye.push(g8(f)),
                (re = []),
                we.push(re),
                Ze());
            } else
              throw new r("Expected & or \\\\ or \\cr or \\end", f.nextToken);
          }
          return (
            f.gullet.endGroup(),
            f.gullet.endGroup(),
            {
              type: "array",
              mode: f.mode,
              addJot: w,
              arraystretch: C,
              body: we,
              cols: S,
              rowGaps: Se,
              hskipBeforeAndAfter: g,
              hLinesBeforeRow: Ye,
              colSeparationType: F,
              tags: He,
              leqno: ee,
            }
          );
        }
        function em(f) {
          return f.slice(0, 1) === "d" ? "display" : "text";
        }
        let Wr = function (f, c) {
            let d,
              g,
              w = f.body.length,
              S = f.hLinesBeforeRow,
              C = 0,
              F = new Array(w),
              L = [],
              $ = Math.max(c.fontMetrics().arrayRuleWidth, c.minRuleThickness),
              W = 1 / c.fontMetrics().ptPerEm,
              K = 5 * W;
            f.colSeparationType &&
              f.colSeparationType === "small" &&
              (K =
                0.2778 *
                (c.havingStyle(te.SCRIPT).sizeMultiplier / c.sizeMultiplier));
            let ee =
                f.colSeparationType === "CD"
                  ? Dt({ number: 3, unit: "ex" }, c)
                  : 12 * W,
              re = 3 * W,
              we = f.arraystretch * ee,
              Se = 0.7 * we,
              Ye = 0.3 * we,
              He = 0;
            function Ze(tt) {
              for (let lt = 0; lt < tt.length; ++lt)
                (lt > 0 && (He += 0.25), L.push({ pos: He, isDashed: tt[lt] }));
            }
            for (Ze(S[0]), d = 0; d < f.body.length; ++d) {
              let tt = f.body[d],
                lt = Se,
                wt = Ye;
              C < tt.length && (C = tt.length);
              let Mt = new Array(tt.length);
              for (g = 0; g < tt.length; ++g) {
                let ir = et(tt[g], c);
                (wt < ir.depth && (wt = ir.depth),
                  lt < ir.height && (lt = ir.height),
                  (Mt[g] = ir));
              }
              let Bt = f.rowGaps[d],
                qt = 0;
              (Bt &&
                ((qt = Dt(Bt, c)),
                qt > 0 && ((qt += Ye), wt < qt && (wt = qt), (qt = 0))),
                f.addJot && (wt += re),
                (Mt.height = lt),
                (Mt.depth = wt),
                (He += lt),
                (Mt.pos = He),
                (He += wt + qt),
                (F[d] = Mt),
                Ze(S[d + 1]));
            }
            let st = He / 2 + c.fontMetrics().axisHeight,
              xt = f.cols || [],
              An = [],
              Wt,
              rr,
              qs = [];
            if (f.tags && f.tags.some((tt) => tt))
              for (d = 0; d < w; ++d) {
                let tt = F[d],
                  lt = tt.pos - st,
                  wt = f.tags[d],
                  Mt;
                (wt === !0
                  ? (Mt = J.makeSpan(["eqn-num"], [], c))
                  : wt === !1
                    ? (Mt = J.makeSpan([], [], c))
                    : (Mt = J.makeSpan([], Xt(wt, c, !0), c)),
                  (Mt.depth = tt.depth),
                  (Mt.height = tt.height),
                  qs.push({ type: "elem", elem: Mt, shift: lt }));
              }
            for (g = 0, rr = 0; g < C || rr < xt.length; ++g, ++rr) {
              let tt = xt[rr] || {},
                lt = !0;
              for (; tt.type === "separator"; ) {
                if (
                  (lt ||
                    ((Wt = J.makeSpan(["arraycolsep"], [])),
                    (Wt.style.width = de(c.fontMetrics().doubleRuleSep)),
                    An.push(Wt)),
                  tt.separator === "|" || tt.separator === ":")
                ) {
                  let Bt = tt.separator === "|" ? "solid" : "dashed",
                    qt = J.makeSpan(["vertical-separator"], [], c);
                  ((qt.style.height = de(He)),
                    (qt.style.borderRightWidth = de($)),
                    (qt.style.borderRightStyle = Bt),
                    (qt.style.margin = "0 " + de(-$ / 2)));
                  let ir = He - st;
                  (ir && (qt.style.verticalAlign = de(-ir)), An.push(qt));
                } else throw new r("Invalid separator type: " + tt.separator);
                (rr++, (tt = xt[rr] || {}), (lt = !1));
              }
              if (g >= C) continue;
              let wt;
              (g > 0 || f.hskipBeforeAndAfter) &&
                ((wt = x.deflt(tt.pregap, K)),
                wt !== 0 &&
                  ((Wt = J.makeSpan(["arraycolsep"], [])),
                  (Wt.style.width = de(wt)),
                  An.push(Wt)));
              let Mt = [];
              for (d = 0; d < w; ++d) {
                let Bt = F[d],
                  qt = Bt[g];
                if (!qt) continue;
                let ir = Bt.pos - st;
                ((qt.depth = Bt.depth),
                  (qt.height = Bt.height),
                  Mt.push({ type: "elem", elem: qt, shift: ir }));
              }
              ((Mt = J.makeVList(
                { positionType: "individualShift", children: Mt },
                c,
              )),
                (Mt = J.makeSpan(["col-align-" + (tt.align || "c")], [Mt])),
                An.push(Mt),
                (g < C - 1 || f.hskipBeforeAndAfter) &&
                  ((wt = x.deflt(tt.postgap, K)),
                  wt !== 0 &&
                    ((Wt = J.makeSpan(["arraycolsep"], [])),
                    (Wt.style.width = de(wt)),
                    An.push(Wt))));
            }
            if (((F = J.makeSpan(["mtable"], An)), L.length > 0)) {
              let tt = J.makeLineSpan("hline", c, $),
                lt = J.makeLineSpan("hdashline", c, $),
                wt = [{ type: "elem", elem: F, shift: 0 }];
              for (; L.length > 0; ) {
                let Mt = L.pop(),
                  Bt = Mt.pos - st;
                Mt.isDashed
                  ? wt.push({ type: "elem", elem: lt, shift: Bt })
                  : wt.push({ type: "elem", elem: tt, shift: Bt });
              }
              F = J.makeVList(
                { positionType: "individualShift", children: wt },
                c,
              );
            }
            if (qs.length === 0) return J.makeSpan(["mord"], [F], c);
            {
              let tt = J.makeVList(
                { positionType: "individualShift", children: qs },
                c,
              );
              return (
                (tt = J.makeSpan(["tag"], [tt], c)),
                J.makeFragment([F, tt])
              );
            }
          },
          LC = { c: "center ", l: "left ", r: "right " },
          Kr = function (f, c) {
            let d = [],
              g = new ae.MathNode("mtd", [], ["mtr-glue"]),
              w = new ae.MathNode("mtd", [], ["mml-eqn-num"]);
            for (let K = 0; K < f.body.length; K++) {
              let ee = f.body[K],
                re = [];
              for (let we = 0; we < ee.length; we++)
                re.push(new ae.MathNode("mtd", [pt(ee[we], c)]));
              (f.tags &&
                f.tags[K] &&
                (re.unshift(g),
                re.push(g),
                f.leqno ? re.unshift(w) : re.push(w)),
                d.push(new ae.MathNode("mtr", re)));
            }
            let S = new ae.MathNode("mtable", d),
              C =
                f.arraystretch === 0.5
                  ? 0.1
                  : 0.16 + f.arraystretch - 1 + (f.addJot ? 0.09 : 0);
            S.setAttribute("rowspacing", de(C));
            let F = "",
              L = "";
            if (f.cols && f.cols.length > 0) {
              let K = f.cols,
                ee = "",
                re = !1,
                we = 0,
                Se = K.length;
              (K[0].type === "separator" && ((F += "top "), (we = 1)),
                K[K.length - 1].type === "separator" &&
                  ((F += "bottom "), (Se -= 1)));
              for (let Ye = we; Ye < Se; Ye++)
                K[Ye].type === "align"
                  ? ((L += LC[K[Ye].align]), re && (ee += "none "), (re = !0))
                  : K[Ye].type === "separator" &&
                    re &&
                    ((ee += K[Ye].separator === "|" ? "solid " : "dashed "),
                    (re = !1));
              (S.setAttribute("columnalign", L.trim()),
                /[sd]/.test(ee) && S.setAttribute("columnlines", ee.trim()));
            }
            if (f.colSeparationType === "align") {
              let K = f.cols || [],
                ee = "";
              for (let re = 1; re < K.length; re++)
                ee += re % 2 ? "0em " : "1em ";
              S.setAttribute("columnspacing", ee.trim());
            } else
              f.colSeparationType === "alignat" ||
              f.colSeparationType === "gather"
                ? S.setAttribute("columnspacing", "0em")
                : f.colSeparationType === "small"
                  ? S.setAttribute("columnspacing", "0.2778em")
                  : f.colSeparationType === "CD"
                    ? S.setAttribute("columnspacing", "0.5em")
                    : S.setAttribute("columnspacing", "1em");
            let $ = "",
              W = f.hLinesBeforeRow;
            ((F += W[0].length > 0 ? "left " : ""),
              (F += W[W.length - 1].length > 0 ? "right " : ""));
            for (let K = 1; K < W.length - 1; K++)
              $ += W[K].length === 0 ? "none " : W[K][0] ? "dashed " : "solid ";
            return (
              /[sd]/.test($) && S.setAttribute("rowlines", $.trim()),
              F !== "" &&
                ((S = new ae.MathNode("menclose", [S])),
                S.setAttribute("notation", F.trim())),
              f.arraystretch &&
                f.arraystretch < 1 &&
                ((S = new ae.MathNode("mstyle", [S])),
                S.setAttribute("scriptlevel", "1")),
              S
            );
          },
          b8 = function (f, c) {
            f.envName.indexOf("ed") === -1 && Uc(f);
            let d = [],
              g = f.envName.indexOf("at") > -1 ? "alignat" : "align",
              w = f.envName === "split",
              S = vo(
                f.parser,
                {
                  cols: d,
                  addJot: !0,
                  autoTag: w ? void 0 : Qp(f.envName),
                  emptySingleRow: !0,
                  colSeparationType: g,
                  maxNumCols: w ? 2 : void 0,
                  leqno: f.parser.settings.leqno,
                },
                "display",
              ),
              C,
              F = 0,
              L = { type: "ordgroup", mode: f.mode, body: [] };
            if (c[0] && c[0].type === "ordgroup") {
              let W = "";
              for (let K = 0; K < c[0].body.length; K++) {
                let ee = ze(c[0].body[K], "textord");
                W += ee.text;
              }
              ((C = Number(W)), (F = C * 2));
            }
            let $ = !F;
            S.body.forEach(function (W) {
              for (let K = 1; K < W.length; K += 2) {
                let ee = ze(W[K], "styling");
                ze(ee.body[0], "ordgroup").body.unshift(L);
              }
              if ($) F < W.length && (F = W.length);
              else {
                let K = W.length / 2;
                if (C < K)
                  throw new r(
                    "Too many math in a row: " +
                      ("expected " + C + ", but got " + K),
                    W[0],
                  );
              }
            });
            for (let W = 0; W < F; ++W) {
              let K = "r",
                ee = 0;
              (W % 2 === 1 ? (K = "l") : W > 0 && $ && (ee = 1),
                (d[W] = { type: "align", align: K, pregap: ee, postgap: 0 }));
            }
            return ((S.colSeparationType = $ ? "align" : "alignat"), S);
          };
        (Xr({
          type: "array",
          names: ["array", "darray"],
          props: { numArgs: 1 },
          handler(f, c) {
            let w = (zc(c[0]) ? [c[0]] : ze(c[0], "ordgroup").body).map(
                function (C) {
                  let L = $p(C).text;
                  if ("lcr".indexOf(L) !== -1)
                    return { type: "align", align: L };
                  if (L === "|") return { type: "separator", separator: "|" };
                  if (L === ":") return { type: "separator", separator: ":" };
                  throw new r("Unknown column alignment: " + L, C);
                },
              ),
              S = { cols: w, hskipBeforeAndAfter: !0, maxNumCols: w.length };
            return vo(f.parser, S, em(f.envName));
          },
          htmlBuilder: Wr,
          mathmlBuilder: Kr,
        }),
          Xr({
            type: "array",
            names: [
              "matrix",
              "pmatrix",
              "bmatrix",
              "Bmatrix",
              "vmatrix",
              "Vmatrix",
              "matrix*",
              "pmatrix*",
              "bmatrix*",
              "Bmatrix*",
              "vmatrix*",
              "Vmatrix*",
            ],
            props: { numArgs: 0 },
            handler(f) {
              let c = {
                  matrix: null,
                  pmatrix: ["(", ")"],
                  bmatrix: ["[", "]"],
                  Bmatrix: ["\\{", "\\}"],
                  vmatrix: ["|", "|"],
                  Vmatrix: ["\\Vert", "\\Vert"],
                }[f.envName.replace("*", "")],
                d = "c",
                g = {
                  hskipBeforeAndAfter: !1,
                  cols: [{ type: "align", align: d }],
                };
              if (f.envName.charAt(f.envName.length - 1) === "*") {
                let C = f.parser;
                if ((C.consumeSpaces(), C.fetch().text === "[")) {
                  if (
                    (C.consume(),
                    C.consumeSpaces(),
                    (d = C.fetch().text),
                    "lcr".indexOf(d) === -1)
                  )
                    throw new r("Expected l or c or r", C.nextToken);
                  (C.consume(),
                    C.consumeSpaces(),
                    C.expect("]"),
                    C.consume(),
                    (g.cols = [{ type: "align", align: d }]));
                }
              }
              let w = vo(f.parser, g, em(f.envName)),
                S = Math.max(0, ...w.body.map((C) => C.length));
              return (
                (w.cols = new Array(S).fill({ type: "align", align: d })),
                c
                  ? {
                      type: "leftright",
                      mode: f.mode,
                      body: [w],
                      left: c[0],
                      right: c[1],
                      rightColor: void 0,
                    }
                  : w
              );
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["smallmatrix"],
            props: { numArgs: 0 },
            handler(f) {
              let c = { arraystretch: 0.5 },
                d = vo(f.parser, c, "script");
              return ((d.colSeparationType = "small"), d);
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["subarray"],
            props: { numArgs: 1 },
            handler(f, c) {
              let w = (zc(c[0]) ? [c[0]] : ze(c[0], "ordgroup").body).map(
                function (C) {
                  let L = $p(C).text;
                  if ("lc".indexOf(L) !== -1)
                    return { type: "align", align: L };
                  throw new r("Unknown column alignment: " + L, C);
                },
              );
              if (w.length > 1)
                throw new r("{subarray} can contain only one column");
              let S = { cols: w, hskipBeforeAndAfter: !1, arraystretch: 0.5 };
              if (
                ((S = vo(f.parser, S, "script")),
                S.body.length > 0 && S.body[0].length > 1)
              )
                throw new r("{subarray} can contain only one column");
              return S;
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["cases", "dcases", "rcases", "drcases"],
            props: { numArgs: 0 },
            handler(f) {
              let c = {
                  arraystretch: 1.2,
                  cols: [
                    { type: "align", align: "l", pregap: 0, postgap: 1 },
                    { type: "align", align: "l", pregap: 0, postgap: 0 },
                  ],
                },
                d = vo(f.parser, c, em(f.envName));
              return {
                type: "leftright",
                mode: f.mode,
                body: [d],
                left: f.envName.indexOf("r") > -1 ? "." : "\\{",
                right: f.envName.indexOf("r") > -1 ? "\\}" : ".",
                rightColor: void 0,
              };
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["align", "align*", "aligned", "split"],
            props: { numArgs: 0 },
            handler: b8,
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["gathered", "gather", "gather*"],
            props: { numArgs: 0 },
            handler(f) {
              ["gather", "gather*"].includes(f.envName) && Uc(f);
              let c = {
                cols: [{ type: "align", align: "c" }],
                addJot: !0,
                colSeparationType: "gather",
                autoTag: Qp(f.envName),
                emptySingleRow: !0,
                leqno: f.parser.settings.leqno,
              };
              return vo(f.parser, c, "display");
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["alignat", "alignat*", "alignedat"],
            props: { numArgs: 1 },
            handler: b8,
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["equation", "equation*"],
            props: { numArgs: 0 },
            handler(f) {
              Uc(f);
              let c = {
                autoTag: Qp(f.envName),
                emptySingleRow: !0,
                singleRow: !0,
                maxNumCols: 1,
                leqno: f.parser.settings.leqno,
              };
              return vo(f.parser, c, "display");
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          Xr({
            type: "array",
            names: ["CD"],
            props: { numArgs: 0 },
            handler(f) {
              return (Uc(f), _C(f.parser));
            },
            htmlBuilder: Wr,
            mathmlBuilder: Kr,
          }),
          q("\\nonumber", "\\gdef\\@eqnsw{0}"),
          q("\\notag", "\\nonumber"),
          be({
            type: "text",
            names: ["\\hline", "\\hdashline"],
            props: { numArgs: 0, allowedInText: !0, allowedInMath: !0 },
            handler(f, c) {
              throw new r(f.funcName + " valid only within array environment");
            },
          }));
        var x8 = p8;
        be({
          type: "environment",
          names: ["\\begin", "\\end"],
          props: { numArgs: 1, argTypes: ["text"] },
          handler(f, c) {
            let { parser: d, funcName: g } = f,
              w = c[0];
            if (w.type !== "ordgroup")
              throw new r("Invalid environment name", w);
            let S = "";
            for (let C = 0; C < w.body.length; ++C)
              S += ze(w.body[C], "textord").text;
            if (g === "\\begin") {
              if (!x8.hasOwnProperty(S))
                throw new r("No such environment: " + S, w);
              let C = x8[S],
                { args: F, optArgs: L } = d.parseArguments(
                  "\\begin{" + S + "}",
                  C,
                ),
                $ = { mode: d.mode, envName: S, parser: d },
                W = C.handler($, F, L);
              d.expect("\\end", !1);
              let K = d.nextToken,
                ee = ze(d.parseFunction(), "environment");
              if (ee.name !== S)
                throw new r(
                  "Mismatch: \\begin{" +
                    S +
                    "} matched by \\end{" +
                    ee.name +
                    "}",
                  K,
                );
              return W;
            }
            return { type: "environment", mode: d.mode, name: S, nameGroup: w };
          },
        });
        let y8 = (f, c) => {
            let d = f.font,
              g = c.withFont(d);
            return et(f.body, g);
          },
          w8 = (f, c) => {
            let d = f.font,
              g = c.withFont(d);
            return pt(f.body, g);
          },
          v8 = {
            "\\Bbb": "\\mathbb",
            "\\bold": "\\mathbf",
            "\\frak": "\\mathfrak",
            "\\bm": "\\boldsymbol",
          };
        (be({
          type: "font",
          names: [
            "\\mathrm",
            "\\mathit",
            "\\mathbf",
            "\\mathnormal",
            "\\mathsfit",
            "\\mathbb",
            "\\mathcal",
            "\\mathfrak",
            "\\mathscr",
            "\\mathsf",
            "\\mathtt",
            "\\Bbb",
            "\\bold",
            "\\frak",
          ],
          props: { numArgs: 1, allowedInArgument: !0 },
          handler: (f, c) => {
            let { parser: d, funcName: g } = f,
              w = Oc(c[0]),
              S = g;
            return (
              S in v8 && (S = v8[S]),
              { type: "font", mode: d.mode, font: S.slice(1), body: w }
            );
          },
          htmlBuilder: y8,
          mathmlBuilder: w8,
        }),
          be({
            type: "mclass",
            names: ["\\boldsymbol", "\\bm"],
            props: { numArgs: 1 },
            handler: (f, c) => {
              let { parser: d } = f,
                g = c[0],
                w = x.isCharacterBox(g);
              return {
                type: "mclass",
                mode: d.mode,
                mclass: Pc(g),
                body: [
                  { type: "font", mode: d.mode, font: "boldsymbol", body: g },
                ],
                isCharacterBox: w,
              };
            },
          }),
          be({
            type: "font",
            names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"],
            props: { numArgs: 0, allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d, funcName: g, breakOnTokenText: w } = f,
                { mode: S } = d,
                C = d.parseExpression(!0, w),
                F = "math" + g.slice(1);
              return {
                type: "font",
                mode: S,
                font: F,
                body: { type: "ordgroup", mode: d.mode, body: C },
              };
            },
            htmlBuilder: y8,
            mathmlBuilder: w8,
          }));
        let _8 = (f, c) => {
            let d = c;
            return (
              f === "display"
                ? (d = d.id >= te.SCRIPT.id ? d.text() : te.DISPLAY)
                : f === "text" && d.size === te.DISPLAY.size
                  ? (d = te.TEXT)
                  : f === "script"
                    ? (d = te.SCRIPT)
                    : f === "scriptscript" && (d = te.SCRIPTSCRIPT),
              d
            );
          },
          tm = (f, c) => {
            let d = _8(f.size, c.style),
              g = d.fracNum(),
              w = d.fracDen(),
              S;
            S = c.havingStyle(g);
            let C = et(f.numer, S, c);
            if (f.continued) {
              let Ze = 8.5 / c.fontMetrics().ptPerEm,
                st = 3.5 / c.fontMetrics().ptPerEm;
              ((C.height = C.height < Ze ? Ze : C.height),
                (C.depth = C.depth < st ? st : C.depth));
            }
            S = c.havingStyle(w);
            let F = et(f.denom, S, c),
              L,
              $,
              W;
            f.hasBarLine
              ? (f.barSize
                  ? (($ = Dt(f.barSize, c)),
                    (L = J.makeLineSpan("frac-line", c, $)))
                  : (L = J.makeLineSpan("frac-line", c)),
                ($ = L.height),
                (W = L.height))
              : ((L = null),
                ($ = 0),
                (W = c.fontMetrics().defaultRuleThickness));
            let K, ee, re;
            d.size === te.DISPLAY.size || f.size === "display"
              ? ((K = c.fontMetrics().num1),
                $ > 0 ? (ee = 3 * W) : (ee = 7 * W),
                (re = c.fontMetrics().denom1))
              : ($ > 0
                  ? ((K = c.fontMetrics().num2), (ee = W))
                  : ((K = c.fontMetrics().num3), (ee = 3 * W)),
                (re = c.fontMetrics().denom2));
            let we;
            if (L) {
              let Ze = c.fontMetrics().axisHeight;
              (K - C.depth - (Ze + 0.5 * $) < ee &&
                (K += ee - (K - C.depth - (Ze + 0.5 * $))),
                Ze - 0.5 * $ - (F.height - re) < ee &&
                  (re += ee - (Ze - 0.5 * $ - (F.height - re))));
              let st = -(Ze - 0.5 * $);
              we = J.makeVList(
                {
                  positionType: "individualShift",
                  children: [
                    { type: "elem", elem: F, shift: re },
                    { type: "elem", elem: L, shift: st },
                    { type: "elem", elem: C, shift: -K },
                  ],
                },
                c,
              );
            } else {
              let Ze = K - C.depth - (F.height - re);
              (Ze < ee && ((K += 0.5 * (ee - Ze)), (re += 0.5 * (ee - Ze))),
                (we = J.makeVList(
                  {
                    positionType: "individualShift",
                    children: [
                      { type: "elem", elem: F, shift: re },
                      { type: "elem", elem: C, shift: -K },
                    ],
                  },
                  c,
                )));
            }
            ((S = c.havingStyle(d)),
              (we.height *= S.sizeMultiplier / c.sizeMultiplier),
              (we.depth *= S.sizeMultiplier / c.sizeMultiplier));
            let Se;
            d.size === te.DISPLAY.size
              ? (Se = c.fontMetrics().delim1)
              : d.size === te.SCRIPTSCRIPT.size
                ? (Se = c.havingStyle(te.SCRIPT).fontMetrics().delim2)
                : (Se = c.fontMetrics().delim2);
            let Ye, He;
            return (
              f.leftDelim == null
                ? (Ye = sa(c, ["mopen"]))
                : (Ye = Ri.customSizedDelim(
                    f.leftDelim,
                    Se,
                    !0,
                    c.havingStyle(d),
                    f.mode,
                    ["mopen"],
                  )),
              f.continued
                ? (He = J.makeSpan([]))
                : f.rightDelim == null
                  ? (He = sa(c, ["mclose"]))
                  : (He = Ri.customSizedDelim(
                      f.rightDelim,
                      Se,
                      !0,
                      c.havingStyle(d),
                      f.mode,
                      ["mclose"],
                    )),
              J.makeSpan(
                ["mord"].concat(S.sizingClasses(c)),
                [Ye, J.makeSpan(["mfrac"], [we]), He],
                c,
              )
            );
          },
          nm = (f, c) => {
            let d = new ae.MathNode("mfrac", [pt(f.numer, c), pt(f.denom, c)]);
            if (!f.hasBarLine) d.setAttribute("linethickness", "0px");
            else if (f.barSize) {
              let w = Dt(f.barSize, c);
              d.setAttribute("linethickness", de(w));
            }
            let g = _8(f.size, c.style);
            if (g.size !== c.style.size) {
              d = new ae.MathNode("mstyle", [d]);
              let w = g.size === te.DISPLAY.size ? "true" : "false";
              (d.setAttribute("displaystyle", w),
                d.setAttribute("scriptlevel", "0"));
            }
            if (f.leftDelim != null || f.rightDelim != null) {
              let w = [];
              if (f.leftDelim != null) {
                let S = new ae.MathNode("mo", [
                  new ae.TextNode(f.leftDelim.replace("\\", "")),
                ]);
                (S.setAttribute("fence", "true"), w.push(S));
              }
              if ((w.push(d), f.rightDelim != null)) {
                let S = new ae.MathNode("mo", [
                  new ae.TextNode(f.rightDelim.replace("\\", "")),
                ]);
                (S.setAttribute("fence", "true"), w.push(S));
              }
              return zp(w);
            }
            return d;
          };
        (be({
          type: "genfrac",
          names: [
            "\\dfrac",
            "\\frac",
            "\\tfrac",
            "\\dbinom",
            "\\binom",
            "\\tbinom",
            "\\\\atopfrac",
            "\\\\bracefrac",
            "\\\\brackfrac",
          ],
          props: { numArgs: 2, allowedInArgument: !0 },
          handler: (f, c) => {
            let { parser: d, funcName: g } = f,
              w = c[0],
              S = c[1],
              C,
              F = null,
              L = null,
              $ = "auto";
            switch (g) {
              case "\\dfrac":
              case "\\frac":
              case "\\tfrac":
                C = !0;
                break;
              case "\\\\atopfrac":
                C = !1;
                break;
              case "\\dbinom":
              case "\\binom":
              case "\\tbinom":
                ((C = !1), (F = "("), (L = ")"));
                break;
              case "\\\\bracefrac":
                ((C = !1), (F = "\\{"), (L = "\\}"));
                break;
              case "\\\\brackfrac":
                ((C = !1), (F = "["), (L = "]"));
                break;
              default:
                throw new Error("Unrecognized genfrac command");
            }
            switch (g) {
              case "\\dfrac":
              case "\\dbinom":
                $ = "display";
                break;
              case "\\tfrac":
              case "\\tbinom":
                $ = "text";
                break;
            }
            return {
              type: "genfrac",
              mode: d.mode,
              continued: !1,
              numer: w,
              denom: S,
              hasBarLine: C,
              leftDelim: F,
              rightDelim: L,
              size: $,
              barSize: null,
            };
          },
          htmlBuilder: tm,
          mathmlBuilder: nm,
        }),
          be({
            type: "genfrac",
            names: ["\\cfrac"],
            props: { numArgs: 2 },
            handler: (f, c) => {
              let { parser: d, funcName: g } = f,
                w = c[0],
                S = c[1];
              return {
                type: "genfrac",
                mode: d.mode,
                continued: !0,
                numer: w,
                denom: S,
                hasBarLine: !0,
                leftDelim: null,
                rightDelim: null,
                size: "display",
                barSize: null,
              };
            },
          }),
          be({
            type: "infix",
            names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"],
            props: { numArgs: 0, infix: !0 },
            handler(f) {
              let { parser: c, funcName: d, token: g } = f,
                w;
              switch (d) {
                case "\\over":
                  w = "\\frac";
                  break;
                case "\\choose":
                  w = "\\binom";
                  break;
                case "\\atop":
                  w = "\\\\atopfrac";
                  break;
                case "\\brace":
                  w = "\\\\bracefrac";
                  break;
                case "\\brack":
                  w = "\\\\brackfrac";
                  break;
                default:
                  throw new Error("Unrecognized infix genfrac command");
              }
              return { type: "infix", mode: c.mode, replaceWith: w, token: g };
            },
          }));
        let k8 = ["display", "text", "script", "scriptscript"],
          S8 = function (f) {
            let c = null;
            return (f.length > 0 && ((c = f), (c = c === "." ? null : c)), c);
          };
        (be({
          type: "genfrac",
          names: ["\\genfrac"],
          props: {
            numArgs: 6,
            allowedInArgument: !0,
            argTypes: ["math", "math", "size", "text", "math", "math"],
          },
          handler(f, c) {
            let { parser: d } = f,
              g = c[4],
              w = c[5],
              S = Oc(c[0]),
              C = S.type === "atom" && S.family === "open" ? S8(S.text) : null,
              F = Oc(c[1]),
              L = F.type === "atom" && F.family === "close" ? S8(F.text) : null,
              $ = ze(c[2], "size"),
              W,
              K = null;
            $.isBlank ? (W = !0) : ((K = $.value), (W = K.number > 0));
            let ee = "auto",
              re = c[3];
            if (re.type === "ordgroup") {
              if (re.body.length > 0) {
                let we = ze(re.body[0], "textord");
                ee = k8[Number(we.text)];
              }
            } else ((re = ze(re, "textord")), (ee = k8[Number(re.text)]));
            return {
              type: "genfrac",
              mode: d.mode,
              numer: g,
              denom: w,
              continued: !1,
              hasBarLine: W,
              barSize: K,
              leftDelim: C,
              rightDelim: L,
              size: ee,
            };
          },
          htmlBuilder: tm,
          mathmlBuilder: nm,
        }),
          be({
            type: "infix",
            names: ["\\above"],
            props: { numArgs: 1, argTypes: ["size"], infix: !0 },
            handler(f, c) {
              let { parser: d, funcName: g, token: w } = f;
              return {
                type: "infix",
                mode: d.mode,
                replaceWith: "\\\\abovefrac",
                size: ze(c[0], "size").value,
                token: w,
              };
            },
          }),
          be({
            type: "genfrac",
            names: ["\\\\abovefrac"],
            props: { numArgs: 3, argTypes: ["math", "size", "math"] },
            handler: (f, c) => {
              let { parser: d, funcName: g } = f,
                w = c[0],
                S = p(ze(c[1], "infix").size),
                C = c[2],
                F = S.number > 0;
              return {
                type: "genfrac",
                mode: d.mode,
                numer: w,
                denom: C,
                continued: !1,
                hasBarLine: F,
                barSize: S,
                leftDelim: null,
                rightDelim: null,
                size: "auto",
              };
            },
            htmlBuilder: tm,
            mathmlBuilder: nm,
          }));
        let A8 = (f, c) => {
          let d = c.style,
            g,
            w;
          f.type === "supsub"
            ? ((g = f.sup
                ? et(f.sup, c.havingStyle(d.sup()), c)
                : et(f.sub, c.havingStyle(d.sub()), c)),
              (w = ze(f.base, "horizBrace")))
            : (w = ze(f, "horizBrace"));
          let S = et(w.base, c.havingBaseStyle(te.DISPLAY)),
            C = zi.svgSpan(w, c),
            F;
          if (
            (w.isOver
              ? ((F = J.makeVList(
                  {
                    positionType: "firstBaseline",
                    children: [
                      { type: "elem", elem: S },
                      { type: "kern", size: 0.1 },
                      { type: "elem", elem: C },
                    ],
                  },
                  c,
                )),
                F.children[0].children[0].children[1].classes.push("svg-align"))
              : ((F = J.makeVList(
                  {
                    positionType: "bottom",
                    positionData: S.depth + 0.1 + C.height,
                    children: [
                      { type: "elem", elem: C },
                      { type: "kern", size: 0.1 },
                      { type: "elem", elem: S },
                    ],
                  },
                  c,
                )),
                F.children[0].children[0].children[0].classes.push(
                  "svg-align",
                )),
            g)
          ) {
            let L = J.makeSpan(["mord", w.isOver ? "mover" : "munder"], [F], c);
            w.isOver
              ? (F = J.makeVList(
                  {
                    positionType: "firstBaseline",
                    children: [
                      { type: "elem", elem: L },
                      { type: "kern", size: 0.2 },
                      { type: "elem", elem: g },
                    ],
                  },
                  c,
                ))
              : (F = J.makeVList(
                  {
                    positionType: "bottom",
                    positionData: L.depth + 0.2 + g.height + g.depth,
                    children: [
                      { type: "elem", elem: g },
                      { type: "kern", size: 0.2 },
                      { type: "elem", elem: L },
                    ],
                  },
                  c,
                ));
          }
          return J.makeSpan(["mord", w.isOver ? "mover" : "munder"], [F], c);
        };
        (be({
          type: "horizBrace",
          names: ["\\overbrace", "\\underbrace"],
          props: { numArgs: 1 },
          handler(f, c) {
            let { parser: d, funcName: g } = f;
            return {
              type: "horizBrace",
              mode: d.mode,
              label: g,
              isOver: /^\\over/.test(g),
              base: c[0],
            };
          },
          htmlBuilder: A8,
          mathmlBuilder: (f, c) => {
            let d = zi.mathMLnode(f.label);
            return new ae.MathNode(f.isOver ? "mover" : "munder", [
              pt(f.base, c),
              d,
            ]);
          },
        }),
          be({
            type: "href",
            names: ["\\href"],
            props: {
              numArgs: 2,
              argTypes: ["url", "original"],
              allowedInText: !0,
            },
            handler: (f, c) => {
              let { parser: d } = f,
                g = c[1],
                w = ze(c[0], "url").url;
              return d.settings.isTrusted({ command: "\\href", url: w })
                ? { type: "href", mode: d.mode, href: w, body: Pt(g) }
                : d.formatUnsupportedCmd("\\href");
            },
            htmlBuilder: (f, c) => {
              let d = Xt(f.body, c, !1);
              return J.makeAnchor(f.href, [], d, c);
            },
            mathmlBuilder: (f, c) => {
              let d = wo(f.body, c);
              return (
                d instanceof Gn || (d = new Gn("mrow", [d])),
                d.setAttribute("href", f.href),
                d
              );
            },
          }),
          be({
            type: "href",
            names: ["\\url"],
            props: { numArgs: 1, argTypes: ["url"], allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d } = f,
                g = ze(c[0], "url").url;
              if (!d.settings.isTrusted({ command: "\\url", url: g }))
                return d.formatUnsupportedCmd("\\url");
              let w = [];
              for (let C = 0; C < g.length; C++) {
                let F = g[C];
                (F === "~" && (F = "\\textasciitilde"),
                  w.push({ type: "textord", mode: "text", text: F }));
              }
              let S = { type: "text", mode: d.mode, font: "\\texttt", body: w };
              return { type: "href", mode: d.mode, href: g, body: Pt(S) };
            },
          }),
          be({
            type: "hbox",
            names: ["\\hbox"],
            props: {
              numArgs: 1,
              argTypes: ["text"],
              allowedInText: !0,
              primitive: !0,
            },
            handler(f, c) {
              let { parser: d } = f;
              return { type: "hbox", mode: d.mode, body: Pt(c[0]) };
            },
            htmlBuilder(f, c) {
              let d = Xt(f.body, c, !1);
              return J.makeFragment(d);
            },
            mathmlBuilder(f, c) {
              return new ae.MathNode("mrow", qn(f.body, c));
            },
          }),
          be({
            type: "html",
            names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"],
            props: {
              numArgs: 2,
              argTypes: ["raw", "original"],
              allowedInText: !0,
            },
            handler: (f, c) => {
              let { parser: d, funcName: g, token: w } = f,
                S = ze(c[0], "raw").string,
                C = c[1];
              d.settings.strict &&
                d.settings.reportNonstrict(
                  "htmlExtension",
                  "HTML extension is disabled on strict mode",
                );
              let F,
                L = {};
              switch (g) {
                case "\\htmlClass":
                  ((L.class = S), (F = { command: "\\htmlClass", class: S }));
                  break;
                case "\\htmlId":
                  ((L.id = S), (F = { command: "\\htmlId", id: S }));
                  break;
                case "\\htmlStyle":
                  ((L.style = S), (F = { command: "\\htmlStyle", style: S }));
                  break;
                case "\\htmlData": {
                  let $ = S.split(",");
                  for (let W = 0; W < $.length; W++) {
                    let K = $[W],
                      ee = K.indexOf("=");
                    if (ee < 0)
                      throw new r(
                        "\\htmlData key/value '" + K + "' missing equals sign",
                      );
                    let re = K.slice(0, ee),
                      we = K.slice(ee + 1);
                    L["data-" + re.trim()] = we;
                  }
                  F = { command: "\\htmlData", attributes: L };
                  break;
                }
                default:
                  throw new Error("Unrecognized html command");
              }
              return d.settings.isTrusted(F)
                ? { type: "html", mode: d.mode, attributes: L, body: Pt(C) }
                : d.formatUnsupportedCmd(g);
            },
            htmlBuilder: (f, c) => {
              let d = Xt(f.body, c, !1),
                g = ["enclosing"];
              f.attributes.class &&
                g.push(...f.attributes.class.trim().split(/\s+/));
              let w = J.makeSpan(g, d, c);
              for (let S in f.attributes)
                S !== "class" &&
                  f.attributes.hasOwnProperty(S) &&
                  w.setAttribute(S, f.attributes[S]);
              return w;
            },
            mathmlBuilder: (f, c) => wo(f.body, c),
          }),
          be({
            type: "htmlmathml",
            names: ["\\html@mathml"],
            props: { numArgs: 2, allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d } = f;
              return {
                type: "htmlmathml",
                mode: d.mode,
                html: Pt(c[0]),
                mathml: Pt(c[1]),
              };
            },
            htmlBuilder: (f, c) => {
              let d = Xt(f.html, c, !1);
              return J.makeFragment(d);
            },
            mathmlBuilder: (f, c) => wo(f.mathml, c),
          }));
        let rm = function (f) {
          if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(f))
            return { number: +f, unit: "bp" };
          {
            let c = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(f);
            if (!c)
              throw new r("Invalid size: '" + f + "' in \\includegraphics");
            let d = { number: +(c[1] + c[2]), unit: c[3] };
            if (!N5(d))
              throw new r(
                "Invalid unit: '" + d.unit + "' in \\includegraphics.",
              );
            return d;
          }
        };
        (be({
          type: "includegraphics",
          names: ["\\includegraphics"],
          props: {
            numArgs: 1,
            numOptionalArgs: 1,
            argTypes: ["raw", "url"],
            allowedInText: !1,
          },
          handler: (f, c, d) => {
            let { parser: g } = f,
              w = { number: 0, unit: "em" },
              S = { number: 0.9, unit: "em" },
              C = { number: 0, unit: "em" },
              F = "";
            if (d[0]) {
              let W = ze(d[0], "raw").string.split(",");
              for (let K = 0; K < W.length; K++) {
                let ee = W[K].split("=");
                if (ee.length === 2) {
                  let re = ee[1].trim();
                  switch (ee[0].trim()) {
                    case "alt":
                      F = re;
                      break;
                    case "width":
                      w = rm(re);
                      break;
                    case "height":
                      S = rm(re);
                      break;
                    case "totalheight":
                      C = rm(re);
                      break;
                    default:
                      throw new r(
                        "Invalid key: '" + ee[0] + "' in \\includegraphics.",
                      );
                  }
                }
              }
            }
            let L = ze(c[0], "url").url;
            return (
              F === "" &&
                ((F = L),
                (F = F.replace(/^.*[\\/]/, "")),
                (F = F.substring(0, F.lastIndexOf(".")))),
              g.settings.isTrusted({ command: "\\includegraphics", url: L })
                ? {
                    type: "includegraphics",
                    mode: g.mode,
                    alt: F,
                    width: w,
                    height: S,
                    totalheight: C,
                    src: L,
                  }
                : g.formatUnsupportedCmd("\\includegraphics")
            );
          },
          htmlBuilder: (f, c) => {
            let d = Dt(f.height, c),
              g = 0;
            f.totalheight.number > 0 && (g = Dt(f.totalheight, c) - d);
            let w = 0;
            f.width.number > 0 && (w = Dt(f.width, c));
            let S = { height: de(d + g) };
            (w > 0 && (S.width = de(w)), g > 0 && (S.verticalAlign = de(-g)));
            let C = new $E(f.src, f.alt, S);
            return ((C.height = d), (C.depth = g), C);
          },
          mathmlBuilder: (f, c) => {
            let d = new ae.MathNode("mglyph", []);
            d.setAttribute("alt", f.alt);
            let g = Dt(f.height, c),
              w = 0;
            if (
              (f.totalheight.number > 0 &&
                ((w = Dt(f.totalheight, c) - g),
                d.setAttribute("valign", de(-w))),
              d.setAttribute("height", de(g + w)),
              f.width.number > 0)
            ) {
              let S = Dt(f.width, c);
              d.setAttribute("width", de(S));
            }
            return (d.setAttribute("src", f.src), d);
          },
        }),
          be({
            type: "kern",
            names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"],
            props: {
              numArgs: 1,
              argTypes: ["size"],
              primitive: !0,
              allowedInText: !0,
            },
            handler(f, c) {
              let { parser: d, funcName: g } = f,
                w = ze(c[0], "size");
              if (d.settings.strict) {
                let S = g[1] === "m",
                  C = w.value.unit === "mu";
                S
                  ? (C ||
                      d.settings.reportNonstrict(
                        "mathVsTextUnits",
                        "LaTeX's " +
                          g +
                          " supports only mu units, " +
                          ("not " + w.value.unit + " units"),
                      ),
                    d.mode !== "math" &&
                      d.settings.reportNonstrict(
                        "mathVsTextUnits",
                        "LaTeX's " + g + " works only in math mode",
                      ))
                  : C &&
                    d.settings.reportNonstrict(
                      "mathVsTextUnits",
                      "LaTeX's " + g + " doesn't support mu units",
                    );
              }
              return { type: "kern", mode: d.mode, dimension: w.value };
            },
            htmlBuilder(f, c) {
              return J.makeGlue(f.dimension, c);
            },
            mathmlBuilder(f, c) {
              let d = Dt(f.dimension, c);
              return new ae.SpaceNode(d);
            },
          }),
          be({
            type: "lap",
            names: ["\\mathllap", "\\mathrlap", "\\mathclap"],
            props: { numArgs: 1, allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d, funcName: g } = f,
                w = c[0];
              return {
                type: "lap",
                mode: d.mode,
                alignment: g.slice(5),
                body: w,
              };
            },
            htmlBuilder: (f, c) => {
              let d;
              f.alignment === "clap"
                ? ((d = J.makeSpan([], [et(f.body, c)])),
                  (d = J.makeSpan(["inner"], [d], c)))
                : (d = J.makeSpan(["inner"], [et(f.body, c)]));
              let g = J.makeSpan(["fix"], []),
                w = J.makeSpan([f.alignment], [d, g], c),
                S = J.makeSpan(["strut"]);
              return (
                (S.style.height = de(w.height + w.depth)),
                w.depth && (S.style.verticalAlign = de(-w.depth)),
                w.children.unshift(S),
                (w = J.makeSpan(["thinbox"], [w], c)),
                J.makeSpan(["mord", "vbox"], [w], c)
              );
            },
            mathmlBuilder: (f, c) => {
              let d = new ae.MathNode("mpadded", [pt(f.body, c)]);
              if (f.alignment !== "rlap") {
                let g = f.alignment === "llap" ? "-1" : "-0.5";
                d.setAttribute("lspace", g + "width");
              }
              return (d.setAttribute("width", "0px"), d);
            },
          }),
          be({
            type: "styling",
            names: ["\\(", "$"],
            props: { numArgs: 0, allowedInText: !0, allowedInMath: !1 },
            handler(f, c) {
              let { funcName: d, parser: g } = f,
                w = g.mode;
              g.switchMode("math");
              let S = d === "\\(" ? "\\)" : "$",
                C = g.parseExpression(!1, S);
              return (
                g.expect(S),
                g.switchMode(w),
                { type: "styling", mode: g.mode, style: "text", body: C }
              );
            },
          }),
          be({
            type: "text",
            names: ["\\)", "\\]"],
            props: { numArgs: 0, allowedInText: !0, allowedInMath: !1 },
            handler(f, c) {
              throw new r("Mismatched " + f.funcName);
            },
          }));
        let M8 = (f, c) => {
          switch (c.style.size) {
            case te.DISPLAY.size:
              return f.display;
            case te.TEXT.size:
              return f.text;
            case te.SCRIPT.size:
              return f.script;
            case te.SCRIPTSCRIPT.size:
              return f.scriptscript;
            default:
              return f.text;
          }
        };
        be({
          type: "mathchoice",
          names: ["\\mathchoice"],
          props: { numArgs: 4, primitive: !0 },
          handler: (f, c) => {
            let { parser: d } = f;
            return {
              type: "mathchoice",
              mode: d.mode,
              display: Pt(c[0]),
              text: Pt(c[1]),
              script: Pt(c[2]),
              scriptscript: Pt(c[3]),
            };
          },
          htmlBuilder: (f, c) => {
            let d = M8(f, c),
              g = Xt(d, c, !1);
            return J.makeFragment(g);
          },
          mathmlBuilder: (f, c) => {
            let d = M8(f, c);
            return wo(d, c);
          },
        });
        let T8 = (f, c, d, g, w, S, C) => {
            f = J.makeSpan([], [f]);
            let F = d && x.isCharacterBox(d),
              L,
              $;
            if (c) {
              let ee = et(c, g.havingStyle(w.sup()), g);
              $ = {
                elem: ee,
                kern: Math.max(
                  g.fontMetrics().bigOpSpacing1,
                  g.fontMetrics().bigOpSpacing3 - ee.depth,
                ),
              };
            }
            if (d) {
              let ee = et(d, g.havingStyle(w.sub()), g);
              L = {
                elem: ee,
                kern: Math.max(
                  g.fontMetrics().bigOpSpacing2,
                  g.fontMetrics().bigOpSpacing4 - ee.height,
                ),
              };
            }
            let W;
            if ($ && L) {
              let ee =
                g.fontMetrics().bigOpSpacing5 +
                L.elem.height +
                L.elem.depth +
                L.kern +
                f.depth +
                C;
              W = J.makeVList(
                {
                  positionType: "bottom",
                  positionData: ee,
                  children: [
                    { type: "kern", size: g.fontMetrics().bigOpSpacing5 },
                    { type: "elem", elem: L.elem, marginLeft: de(-S) },
                    { type: "kern", size: L.kern },
                    { type: "elem", elem: f },
                    { type: "kern", size: $.kern },
                    { type: "elem", elem: $.elem, marginLeft: de(S) },
                    { type: "kern", size: g.fontMetrics().bigOpSpacing5 },
                  ],
                },
                g,
              );
            } else if (L) {
              let ee = f.height - C;
              W = J.makeVList(
                {
                  positionType: "top",
                  positionData: ee,
                  children: [
                    { type: "kern", size: g.fontMetrics().bigOpSpacing5 },
                    { type: "elem", elem: L.elem, marginLeft: de(-S) },
                    { type: "kern", size: L.kern },
                    { type: "elem", elem: f },
                  ],
                },
                g,
              );
            } else if ($) {
              let ee = f.depth + C;
              W = J.makeVList(
                {
                  positionType: "bottom",
                  positionData: ee,
                  children: [
                    { type: "elem", elem: f },
                    { type: "kern", size: $.kern },
                    { type: "elem", elem: $.elem, marginLeft: de(S) },
                    { type: "kern", size: g.fontMetrics().bigOpSpacing5 },
                  ],
                },
                g,
              );
            } else return f;
            let K = [W];
            if (L && S !== 0 && !F) {
              let ee = J.makeSpan(["mspace"], [], g);
              ((ee.style.marginRight = de(S)), K.unshift(ee));
            }
            return J.makeSpan(["mop", "op-limits"], K, g);
          },
          E8 = ["\\smallint"],
          Fs = (f, c) => {
            let d,
              g,
              w = !1,
              S;
            f.type === "supsub"
              ? ((d = f.sup), (g = f.sub), (S = ze(f.base, "op")), (w = !0))
              : (S = ze(f, "op"));
            let C = c.style,
              F = !1;
            C.size === te.DISPLAY.size &&
              S.symbol &&
              !E8.includes(S.name) &&
              (F = !0);
            let L;
            if (S.symbol) {
              let K = F ? "Size2-Regular" : "Size1-Regular",
                ee = "";
              if (
                ((S.name === "\\oiint" || S.name === "\\oiiint") &&
                  ((ee = S.name.slice(1)),
                  (S.name = ee === "oiint" ? "\\iint" : "\\iiint")),
                (L = J.makeSymbol(S.name, K, "math", c, [
                  "mop",
                  "op-symbol",
                  F ? "large-op" : "small-op",
                ])),
                ee.length > 0)
              ) {
                let re = L.italic,
                  we = J.staticSvg(ee + "Size" + (F ? "2" : "1"), c);
                ((L = J.makeVList(
                  {
                    positionType: "individualShift",
                    children: [
                      { type: "elem", elem: L, shift: 0 },
                      { type: "elem", elem: we, shift: F ? 0.08 : 0 },
                    ],
                  },
                  c,
                )),
                  (S.name = "\\" + ee),
                  L.classes.unshift("mop"),
                  (L.italic = re));
              }
            } else if (S.body) {
              let K = Xt(S.body, c, !0);
              K.length === 1 && K[0] instanceof tr
                ? ((L = K[0]), (L.classes[0] = "mop"))
                : (L = J.makeSpan(["mop"], K, c));
            } else {
              let K = [];
              for (let ee = 1; ee < S.name.length; ee++)
                K.push(J.mathsym(S.name[ee], S.mode, c));
              L = J.makeSpan(["mop"], K, c);
            }
            let $ = 0,
              W = 0;
            return (
              (L instanceof tr ||
                S.name === "\\oiint" ||
                S.name === "\\oiiint") &&
                !S.suppressBaseShift &&
                (($ = (L.height - L.depth) / 2 - c.fontMetrics().axisHeight),
                (W = L.italic)),
              w
                ? T8(L, d, g, c, C, W, $)
                : ($ &&
                    ((L.style.position = "relative"), (L.style.top = de($))),
                  L)
            );
          },
          la = (f, c) => {
            let d;
            if (f.symbol)
              ((d = new Gn("mo", [nr(f.name, f.mode)])),
                E8.includes(f.name) && d.setAttribute("largeop", "false"));
            else if (f.body) d = new Gn("mo", qn(f.body, c));
            else {
              d = new Gn("mi", [new Yr(f.name.slice(1))]);
              let g = new Gn("mo", [nr("\u2061", "text")]);
              f.parentIsSupSub
                ? (d = new Gn("mrow", [d, g]))
                : (d = j5([d, g]));
            }
            return d;
          },
          OC = {
            "\u220F": "\\prod",
            "\u2210": "\\coprod",
            "\u2211": "\\sum",
            "\u22C0": "\\bigwedge",
            "\u22C1": "\\bigvee",
            "\u22C2": "\\bigcap",
            "\u22C3": "\\bigcup",
            "\u2A00": "\\bigodot",
            "\u2A01": "\\bigoplus",
            "\u2A02": "\\bigotimes",
            "\u2A04": "\\biguplus",
            "\u2A06": "\\bigsqcup",
          };
        (be({
          type: "op",
          names: [
            "\\coprod",
            "\\bigvee",
            "\\bigwedge",
            "\\biguplus",
            "\\bigcap",
            "\\bigcup",
            "\\intop",
            "\\prod",
            "\\sum",
            "\\bigotimes",
            "\\bigoplus",
            "\\bigodot",
            "\\bigsqcup",
            "\\smallint",
            "\u220F",
            "\u2210",
            "\u2211",
            "\u22C0",
            "\u22C1",
            "\u22C2",
            "\u22C3",
            "\u2A00",
            "\u2A01",
            "\u2A02",
            "\u2A04",
            "\u2A06",
          ],
          props: { numArgs: 0 },
          handler: (f, c) => {
            let { parser: d, funcName: g } = f,
              w = g;
            return (
              w.length === 1 && (w = OC[w]),
              {
                type: "op",
                mode: d.mode,
                limits: !0,
                parentIsSupSub: !1,
                symbol: !0,
                name: w,
              }
            );
          },
          htmlBuilder: Fs,
          mathmlBuilder: la,
        }),
          be({
            type: "op",
            names: ["\\mathop"],
            props: { numArgs: 1, primitive: !0 },
            handler: (f, c) => {
              let { parser: d } = f,
                g = c[0];
              return {
                type: "op",
                mode: d.mode,
                limits: !1,
                parentIsSupSub: !1,
                symbol: !1,
                body: Pt(g),
              };
            },
            htmlBuilder: Fs,
            mathmlBuilder: la,
          }));
        let BC = {
          "\u222B": "\\int",
          "\u222C": "\\iint",
          "\u222D": "\\iiint",
          "\u222E": "\\oint",
          "\u222F": "\\oiint",
          "\u2230": "\\oiiint",
        };
        (be({
          type: "op",
          names: [
            "\\arcsin",
            "\\arccos",
            "\\arctan",
            "\\arctg",
            "\\arcctg",
            "\\arg",
            "\\ch",
            "\\cos",
            "\\cosec",
            "\\cosh",
            "\\cot",
            "\\cotg",
            "\\coth",
            "\\csc",
            "\\ctg",
            "\\cth",
            "\\deg",
            "\\dim",
            "\\exp",
            "\\hom",
            "\\ker",
            "\\lg",
            "\\ln",
            "\\log",
            "\\sec",
            "\\sin",
            "\\sinh",
            "\\sh",
            "\\tan",
            "\\tanh",
            "\\tg",
            "\\th",
          ],
          props: { numArgs: 0 },
          handler(f) {
            let { parser: c, funcName: d } = f;
            return {
              type: "op",
              mode: c.mode,
              limits: !1,
              parentIsSupSub: !1,
              symbol: !1,
              name: d,
            };
          },
          htmlBuilder: Fs,
          mathmlBuilder: la,
        }),
          be({
            type: "op",
            names: [
              "\\det",
              "\\gcd",
              "\\inf",
              "\\lim",
              "\\max",
              "\\min",
              "\\Pr",
              "\\sup",
            ],
            props: { numArgs: 0 },
            handler(f) {
              let { parser: c, funcName: d } = f;
              return {
                type: "op",
                mode: c.mode,
                limits: !0,
                parentIsSupSub: !1,
                symbol: !1,
                name: d,
              };
            },
            htmlBuilder: Fs,
            mathmlBuilder: la,
          }),
          be({
            type: "op",
            names: [
              "\\int",
              "\\iint",
              "\\iiint",
              "\\oint",
              "\\oiint",
              "\\oiiint",
              "\u222B",
              "\u222C",
              "\u222D",
              "\u222E",
              "\u222F",
              "\u2230",
            ],
            props: { numArgs: 0, allowedInArgument: !0 },
            handler(f) {
              let { parser: c, funcName: d } = f,
                g = d;
              return (
                g.length === 1 && (g = BC[g]),
                {
                  type: "op",
                  mode: c.mode,
                  limits: !1,
                  parentIsSupSub: !1,
                  symbol: !0,
                  name: g,
                }
              );
            },
            htmlBuilder: Fs,
            mathmlBuilder: la,
          }));
        let C8 = (f, c) => {
          let d,
            g,
            w = !1,
            S;
          f.type === "supsub"
            ? ((d = f.sup),
              (g = f.sub),
              (S = ze(f.base, "operatorname")),
              (w = !0))
            : (S = ze(f, "operatorname"));
          let C;
          if (S.body.length > 0) {
            let F = S.body.map(($) => {
                let W = $.text;
                return typeof W == "string"
                  ? { type: "textord", mode: $.mode, text: W }
                  : $;
              }),
              L = Xt(F, c.withFont("mathrm"), !0);
            for (let $ = 0; $ < L.length; $++) {
              let W = L[$];
              W instanceof tr &&
                (W.text = W.text.replace(/\u2212/, "-").replace(/\u2217/, "*"));
            }
            C = J.makeSpan(["mop"], L, c);
          } else C = J.makeSpan(["mop"], [], c);
          return w ? T8(C, d, g, c, c.style, 0, 0) : C;
        };
        (be({
          type: "operatorname",
          names: ["\\operatorname@", "\\operatornamewithlimits"],
          props: { numArgs: 1 },
          handler: (f, c) => {
            let { parser: d, funcName: g } = f,
              w = c[0];
            return {
              type: "operatorname",
              mode: d.mode,
              body: Pt(w),
              alwaysHandleSupSub: g === "\\operatornamewithlimits",
              limits: !1,
              parentIsSupSub: !1,
            };
          },
          htmlBuilder: C8,
          mathmlBuilder: (f, c) => {
            let d = qn(f.body, c.withFont("mathrm")),
              g = !0;
            for (let C = 0; C < d.length; C++) {
              let F = d[C];
              if (!(F instanceof ae.SpaceNode))
                if (F instanceof ae.MathNode)
                  switch (F.type) {
                    case "mi":
                    case "mn":
                    case "ms":
                    case "mspace":
                    case "mtext":
                      break;
                    case "mo": {
                      let L = F.children[0];
                      F.children.length === 1 && L instanceof ae.TextNode
                        ? (L.text = L.text
                            .replace(/\u2212/, "-")
                            .replace(/\u2217/, "*"))
                        : (g = !1);
                      break;
                    }
                    default:
                      g = !1;
                  }
                else g = !1;
            }
            if (g) {
              let C = d.map((F) => F.toText()).join("");
              d = [new ae.TextNode(C)];
            }
            let w = new ae.MathNode("mi", d);
            w.setAttribute("mathvariant", "normal");
            let S = new ae.MathNode("mo", [nr("\u2061", "text")]);
            return f.parentIsSupSub
              ? new ae.MathNode("mrow", [w, S])
              : ae.newDocumentFragment([w, S]);
          },
        }),
          q(
            "\\operatorname",
            "\\@ifstar\\operatornamewithlimits\\operatorname@",
          ),
          p0({
            type: "ordgroup",
            htmlBuilder(f, c) {
              return f.semisimple
                ? J.makeFragment(Xt(f.body, c, !1))
                : J.makeSpan(["mord"], Xt(f.body, c, !0), c);
            },
            mathmlBuilder(f, c) {
              return wo(f.body, c, !0);
            },
          }),
          be({
            type: "overline",
            names: ["\\overline"],
            props: { numArgs: 1 },
            handler(f, c) {
              let { parser: d } = f,
                g = c[0];
              return { type: "overline", mode: d.mode, body: g };
            },
            htmlBuilder(f, c) {
              let d = et(f.body, c.havingCrampedStyle()),
                g = J.makeLineSpan("overline-line", c),
                w = c.fontMetrics().defaultRuleThickness,
                S = J.makeVList(
                  {
                    positionType: "firstBaseline",
                    children: [
                      { type: "elem", elem: d },
                      { type: "kern", size: 3 * w },
                      { type: "elem", elem: g },
                      { type: "kern", size: w },
                    ],
                  },
                  c,
                );
              return J.makeSpan(["mord", "overline"], [S], c);
            },
            mathmlBuilder(f, c) {
              let d = new ae.MathNode("mo", [new ae.TextNode("\u203E")]);
              d.setAttribute("stretchy", "true");
              let g = new ae.MathNode("mover", [pt(f.body, c), d]);
              return (g.setAttribute("accent", "true"), g);
            },
          }),
          be({
            type: "phantom",
            names: ["\\phantom"],
            props: { numArgs: 1, allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d } = f,
                g = c[0];
              return { type: "phantom", mode: d.mode, body: Pt(g) };
            },
            htmlBuilder: (f, c) => {
              let d = Xt(f.body, c.withPhantom(), !1);
              return J.makeFragment(d);
            },
            mathmlBuilder: (f, c) => {
              let d = qn(f.body, c);
              return new ae.MathNode("mphantom", d);
            },
          }),
          be({
            type: "hphantom",
            names: ["\\hphantom"],
            props: { numArgs: 1, allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d } = f,
                g = c[0];
              return { type: "hphantom", mode: d.mode, body: g };
            },
            htmlBuilder: (f, c) => {
              let d = J.makeSpan([], [et(f.body, c.withPhantom())]);
              if (((d.height = 0), (d.depth = 0), d.children))
                for (let g = 0; g < d.children.length; g++)
                  ((d.children[g].height = 0), (d.children[g].depth = 0));
              return (
                (d = J.makeVList(
                  {
                    positionType: "firstBaseline",
                    children: [{ type: "elem", elem: d }],
                  },
                  c,
                )),
                J.makeSpan(["mord"], [d], c)
              );
            },
            mathmlBuilder: (f, c) => {
              let d = qn(Pt(f.body), c),
                g = new ae.MathNode("mphantom", d),
                w = new ae.MathNode("mpadded", [g]);
              return (
                w.setAttribute("height", "0px"),
                w.setAttribute("depth", "0px"),
                w
              );
            },
          }),
          be({
            type: "vphantom",
            names: ["\\vphantom"],
            props: { numArgs: 1, allowedInText: !0 },
            handler: (f, c) => {
              let { parser: d } = f,
                g = c[0];
              return { type: "vphantom", mode: d.mode, body: g };
            },
            htmlBuilder: (f, c) => {
              let d = J.makeSpan(["inner"], [et(f.body, c.withPhantom())]),
                g = J.makeSpan(["fix"], []);
              return J.makeSpan(["mord", "rlap"], [d, g], c);
            },
            mathmlBuilder: (f, c) => {
              let d = qn(Pt(f.body), c),
                g = new ae.MathNode("mphantom", d),
                w = new ae.MathNode("mpadded", [g]);
              return (w.setAttribute("width", "0px"), w);
            },
          }),
          be({
            type: "raisebox",
            names: ["\\raisebox"],
            props: {
              numArgs: 2,
              argTypes: ["size", "hbox"],
              allowedInText: !0,
            },
            handler(f, c) {
              let { parser: d } = f,
                g = ze(c[0], "size").value,
                w = c[1];
              return { type: "raisebox", mode: d.mode, dy: g, body: w };
            },
            htmlBuilder(f, c) {
              let d = et(f.body, c),
                g = Dt(f.dy, c);
              return J.makeVList(
                {
                  positionType: "shift",
                  positionData: -g,
                  children: [{ type: "elem", elem: d }],
                },
                c,
              );
            },
            mathmlBuilder(f, c) {
              let d = new ae.MathNode("mpadded", [pt(f.body, c)]),
                g = f.dy.number + f.dy.unit;
              return (d.setAttribute("voffset", g), d);
            },
          }),
          be({
            type: "internal",
            names: ["\\relax"],
            props: { numArgs: 0, allowedInText: !0, allowedInArgument: !0 },
            handler(f) {
              let { parser: c } = f;
              return { type: "internal", mode: c.mode };
            },
          }),
          be({
            type: "rule",
            names: ["\\rule"],
            props: {
              numArgs: 2,
              numOptionalArgs: 1,
              allowedInText: !0,
              allowedInMath: !0,
              argTypes: ["size", "size", "size"],
            },
            handler(f, c, d) {
              let { parser: g } = f,
                w = d[0],
                S = ze(c[0], "size"),
                C = ze(c[1], "size");
              return {
                type: "rule",
                mode: g.mode,
                shift: w && ze(w, "size").value,
                width: S.value,
                height: C.value,
              };
            },
            htmlBuilder(f, c) {
              let d = J.makeSpan(["mord", "rule"], [], c),
                g = Dt(f.width, c),
                w = Dt(f.height, c),
                S = f.shift ? Dt(f.shift, c) : 0;
              return (
                (d.style.borderRightWidth = de(g)),
                (d.style.borderTopWidth = de(w)),
                (d.style.bottom = de(S)),
                (d.width = g),
                (d.height = w + S),
                (d.depth = -S),
                (d.maxFontSize = w * 1.125 * c.sizeMultiplier),
                d
              );
            },
            mathmlBuilder(f, c) {
              let d = Dt(f.width, c),
                g = Dt(f.height, c),
                w = f.shift ? Dt(f.shift, c) : 0,
                S = (c.color && c.getColor()) || "black",
                C = new ae.MathNode("mspace");
              (C.setAttribute("mathbackground", S),
                C.setAttribute("width", de(d)),
                C.setAttribute("height", de(g)));
              let F = new ae.MathNode("mpadded", [C]);
              return (
                w >= 0
                  ? F.setAttribute("height", de(w))
                  : (F.setAttribute("height", de(w)),
                    F.setAttribute("depth", de(-w))),
                F.setAttribute("voffset", de(w)),
                F
              );
            },
          }));
        function N8(f, c, d) {
          let g = Xt(f, c, !1),
            w = c.sizeMultiplier / d.sizeMultiplier;
          for (let S = 0; S < g.length; S++) {
            let C = g[S].classes.indexOf("sizing");
            (C < 0
              ? Array.prototype.push.apply(g[S].classes, c.sizingClasses(d))
              : g[S].classes[C + 1] === "reset-size" + c.size &&
                (g[S].classes[C + 1] = "reset-size" + d.size),
              (g[S].height *= w),
              (g[S].depth *= w));
          }
          return J.makeFragment(g);
        }
        let D8 = [
          "\\tiny",
          "\\sixptsize",
          "\\scriptsize",
          "\\footnotesize",
          "\\small",
          "\\normalsize",
          "\\large",
          "\\Large",
          "\\LARGE",
          "\\huge",
          "\\Huge",
        ];
        (be({
          type: "sizing",
          names: D8,
          props: { numArgs: 0, allowedInText: !0 },
          handler: (f, c) => {
            let { breakOnTokenText: d, funcName: g, parser: w } = f,
              S = w.parseExpression(!1, d);
            return {
              type: "sizing",
              mode: w.mode,
              size: D8.indexOf(g) + 1,
              body: S,
            };
          },
          htmlBuilder: (f, c) => {
            let d = c.havingSize(f.size);
            return N8(f.body, d, c);
          },
          mathmlBuilder: (f, c) => {
            let d = c.havingSize(f.size),
              g = qn(f.body, d),
              w = new ae.MathNode("mstyle", g);
            return (w.setAttribute("mathsize", de(d.sizeMultiplier)), w);
          },
        }),
          be({
            type: "smash",
            names: ["\\smash"],
            props: { numArgs: 1, numOptionalArgs: 1, allowedInText: !0 },
            handler: (f, c, d) => {
              let { parser: g } = f,
                w = !1,
                S = !1,
                C = d[0] && ze(d[0], "ordgroup");
              if (C) {
                let L = "";
                for (let $ = 0; $ < C.body.length; ++$)
                  if (((L = C.body[$].text), L === "t")) w = !0;
                  else if (L === "b") S = !0;
                  else {
                    ((w = !1), (S = !1));
                    break;
                  }
              } else ((w = !0), (S = !0));
              let F = c[0];
              return {
                type: "smash",
                mode: g.mode,
                body: F,
                smashHeight: w,
                smashDepth: S,
              };
            },
            htmlBuilder: (f, c) => {
              let d = J.makeSpan([], [et(f.body, c)]);
              if (!f.smashHeight && !f.smashDepth) return d;
              if (f.smashHeight && ((d.height = 0), d.children))
                for (let w = 0; w < d.children.length; w++)
                  d.children[w].height = 0;
              if (f.smashDepth && ((d.depth = 0), d.children))
                for (let w = 0; w < d.children.length; w++)
                  d.children[w].depth = 0;
              let g = J.makeVList(
                {
                  positionType: "firstBaseline",
                  children: [{ type: "elem", elem: d }],
                },
                c,
              );
              return J.makeSpan(["mord"], [g], c);
            },
            mathmlBuilder: (f, c) => {
              let d = new ae.MathNode("mpadded", [pt(f.body, c)]);
              return (
                f.smashHeight && d.setAttribute("height", "0px"),
                f.smashDepth && d.setAttribute("depth", "0px"),
                d
              );
            },
          }),
          be({
            type: "sqrt",
            names: ["\\sqrt"],
            props: { numArgs: 1, numOptionalArgs: 1 },
            handler(f, c, d) {
              let { parser: g } = f,
                w = d[0],
                S = c[0];
              return { type: "sqrt", mode: g.mode, body: S, index: w };
            },
            htmlBuilder(f, c) {
              let d = et(f.body, c.havingCrampedStyle());
              (d.height === 0 && (d.height = c.fontMetrics().xHeight),
                (d = J.wrapFragment(d, c)));
              let w = c.fontMetrics().defaultRuleThickness,
                S = w;
              c.style.id < te.TEXT.id && (S = c.fontMetrics().xHeight);
              let C = w + S / 4,
                F = d.height + d.depth + C + w,
                { span: L, ruleWidth: $, advanceWidth: W } = Ri.sqrtImage(F, c),
                K = L.height - $;
              K > d.height + d.depth + C &&
                (C = (C + K - d.height - d.depth) / 2);
              let ee = L.height - d.height - C - $;
              d.style.paddingLeft = de(W);
              let re = J.makeVList(
                {
                  positionType: "firstBaseline",
                  children: [
                    { type: "elem", elem: d, wrapperClasses: ["svg-align"] },
                    { type: "kern", size: -(d.height + ee) },
                    { type: "elem", elem: L },
                    { type: "kern", size: $ },
                  ],
                },
                c,
              );
              if (f.index) {
                let we = c.havingStyle(te.SCRIPTSCRIPT),
                  Se = et(f.index, we, c),
                  Ye = 0.6 * (re.height - re.depth),
                  He = J.makeVList(
                    {
                      positionType: "shift",
                      positionData: -Ye,
                      children: [{ type: "elem", elem: Se }],
                    },
                    c,
                  ),
                  Ze = J.makeSpan(["root"], [He]);
                return J.makeSpan(["mord", "sqrt"], [Ze, re], c);
              } else return J.makeSpan(["mord", "sqrt"], [re], c);
            },
            mathmlBuilder(f, c) {
              let { body: d, index: g } = f;
              return g
                ? new ae.MathNode("mroot", [pt(d, c), pt(g, c)])
                : new ae.MathNode("msqrt", [pt(d, c)]);
            },
          }));
        let I8 = {
          display: te.DISPLAY,
          text: te.TEXT,
          script: te.SCRIPT,
          scriptscript: te.SCRIPTSCRIPT,
        };
        be({
          type: "styling",
          names: [
            "\\displaystyle",
            "\\textstyle",
            "\\scriptstyle",
            "\\scriptscriptstyle",
          ],
          props: { numArgs: 0, allowedInText: !0, primitive: !0 },
          handler(f, c) {
            let { breakOnTokenText: d, funcName: g, parser: w } = f,
              S = w.parseExpression(!0, d),
              C = g.slice(1, g.length - 5);
            return { type: "styling", mode: w.mode, style: C, body: S };
          },
          htmlBuilder(f, c) {
            let d = I8[f.style],
              g = c.havingStyle(d).withFont("");
            return N8(f.body, g, c);
          },
          mathmlBuilder(f, c) {
            let d = I8[f.style],
              g = c.havingStyle(d),
              w = qn(f.body, g),
              S = new ae.MathNode("mstyle", w),
              F = {
                display: ["0", "true"],
                text: ["0", "false"],
                script: ["1", "false"],
                scriptscript: ["2", "false"],
              }[f.style];
            return (
              S.setAttribute("scriptlevel", F[0]),
              S.setAttribute("displaystyle", F[1]),
              S
            );
          },
        });
        let zC = function (f, c) {
          let d = f.base;
          return d
            ? d.type === "op"
              ? d.limits &&
                (c.style.size === te.DISPLAY.size || d.alwaysHandleSupSub)
                ? Fs
                : null
              : d.type === "operatorname"
                ? d.alwaysHandleSupSub &&
                  (c.style.size === te.DISPLAY.size || d.limits)
                  ? C8
                  : null
                : d.type === "accent"
                  ? x.isCharacterBox(d.base)
                    ? Hp
                    : null
                  : d.type === "horizBrace" && !f.sub === d.isOver
                    ? A8
                    : null
            : null;
        };
        (p0({
          type: "supsub",
          htmlBuilder(f, c) {
            let d = zC(f, c);
            if (d) return d(f, c);
            let { base: g, sup: w, sub: S } = f,
              C = et(g, c),
              F,
              L,
              $ = c.fontMetrics(),
              W = 0,
              K = 0,
              ee = g && x.isCharacterBox(g);
            if (w) {
              let st = c.havingStyle(c.style.sup());
              ((F = et(w, st, c)),
                ee ||
                  (W =
                    C.height -
                    (st.fontMetrics().supDrop * st.sizeMultiplier) /
                      c.sizeMultiplier));
            }
            if (S) {
              let st = c.havingStyle(c.style.sub());
              ((L = et(S, st, c)),
                ee ||
                  (K =
                    C.depth +
                    (st.fontMetrics().subDrop * st.sizeMultiplier) /
                      c.sizeMultiplier));
            }
            let re;
            c.style === te.DISPLAY
              ? (re = $.sup1)
              : c.style.cramped
                ? (re = $.sup3)
                : (re = $.sup2);
            let we = c.sizeMultiplier,
              Se = de(0.5 / $.ptPerEm / we),
              Ye = null;
            if (L) {
              let st =
                f.base &&
                f.base.type === "op" &&
                f.base.name &&
                (f.base.name === "\\oiint" || f.base.name === "\\oiiint");
              (C instanceof tr || st) && (Ye = de(-C.italic));
            }
            let He;
            if (F && L) {
              ((W = Math.max(W, re, F.depth + 0.25 * $.xHeight)),
                (K = Math.max(K, $.sub2)));
              let xt = 4 * $.defaultRuleThickness;
              if (W - F.depth - (L.height - K) < xt) {
                K = xt - (W - F.depth) + L.height;
                let Wt = 0.8 * $.xHeight - (W - F.depth);
                Wt > 0 && ((W += Wt), (K -= Wt));
              }
              let An = [
                {
                  type: "elem",
                  elem: L,
                  shift: K,
                  marginRight: Se,
                  marginLeft: Ye,
                },
                { type: "elem", elem: F, shift: -W, marginRight: Se },
              ];
              He = J.makeVList(
                { positionType: "individualShift", children: An },
                c,
              );
            } else if (L) {
              K = Math.max(K, $.sub1, L.height - 0.8 * $.xHeight);
              let st = [
                { type: "elem", elem: L, marginLeft: Ye, marginRight: Se },
              ];
              He = J.makeVList(
                { positionType: "shift", positionData: K, children: st },
                c,
              );
            } else if (F)
              ((W = Math.max(W, re, F.depth + 0.25 * $.xHeight)),
                (He = J.makeVList(
                  {
                    positionType: "shift",
                    positionData: -W,
                    children: [{ type: "elem", elem: F, marginRight: Se }],
                  },
                  c,
                )));
            else throw new Error("supsub must have either sup or sub.");
            let Ze = Op(C, "right") || "mord";
            return J.makeSpan([Ze], [C, J.makeSpan(["msupsub"], [He])], c);
          },
          mathmlBuilder(f, c) {
            let d = !1,
              g,
              w;
            (f.base &&
              f.base.type === "horizBrace" &&
              ((w = !!f.sup),
              w === f.base.isOver && ((d = !0), (g = f.base.isOver))),
              f.base &&
                (f.base.type === "op" || f.base.type === "operatorname") &&
                (f.base.parentIsSupSub = !0));
            let S = [pt(f.base, c)];
            (f.sub && S.push(pt(f.sub, c)), f.sup && S.push(pt(f.sup, c)));
            let C;
            if (d) C = g ? "mover" : "munder";
            else if (f.sub)
              if (f.sup) {
                let F = f.base;
                (F && F.type === "op" && F.limits && c.style === te.DISPLAY) ||
                (F &&
                  F.type === "operatorname" &&
                  F.alwaysHandleSupSub &&
                  (c.style === te.DISPLAY || F.limits))
                  ? (C = "munderover")
                  : (C = "msubsup");
              } else {
                let F = f.base;
                (F &&
                  F.type === "op" &&
                  F.limits &&
                  (c.style === te.DISPLAY || F.alwaysHandleSupSub)) ||
                (F &&
                  F.type === "operatorname" &&
                  F.alwaysHandleSupSub &&
                  (F.limits || c.style === te.DISPLAY))
                  ? (C = "munder")
                  : (C = "msub");
              }
            else {
              let F = f.base;
              (F &&
                F.type === "op" &&
                F.limits &&
                (c.style === te.DISPLAY || F.alwaysHandleSupSub)) ||
              (F &&
                F.type === "operatorname" &&
                F.alwaysHandleSupSub &&
                (F.limits || c.style === te.DISPLAY))
                ? (C = "mover")
                : (C = "msup");
            }
            return new ae.MathNode(C, S);
          },
        }),
          p0({
            type: "atom",
            htmlBuilder(f, c) {
              return J.mathsym(f.text, f.mode, c, ["m" + f.family]);
            },
            mathmlBuilder(f, c) {
              let d = new ae.MathNode("mo", [nr(f.text, f.mode)]);
              if (f.family === "bin") {
                let g = Rp(f, c);
                g === "bold-italic" && d.setAttribute("mathvariant", g);
              } else
                f.family === "punct"
                  ? d.setAttribute("separator", "true")
                  : (f.family === "open" || f.family === "close") &&
                    d.setAttribute("stretchy", "false");
              return d;
            },
          }));
        let F8 = { mi: "italic", mn: "normal", mtext: "normal" };
        (p0({
          type: "mathord",
          htmlBuilder(f, c) {
            return J.makeOrd(f, c, "mathord");
          },
          mathmlBuilder(f, c) {
            let d = new ae.MathNode("mi", [nr(f.text, f.mode, c)]),
              g = Rp(f, c) || "italic";
            return (g !== F8[d.type] && d.setAttribute("mathvariant", g), d);
          },
        }),
          p0({
            type: "textord",
            htmlBuilder(f, c) {
              return J.makeOrd(f, c, "textord");
            },
            mathmlBuilder(f, c) {
              let d = nr(f.text, f.mode, c),
                g = Rp(f, c) || "normal",
                w;
              return (
                f.mode === "text"
                  ? (w = new ae.MathNode("mtext", [d]))
                  : /[0-9]/.test(f.text)
                    ? (w = new ae.MathNode("mn", [d]))
                    : f.text === "\\prime"
                      ? (w = new ae.MathNode("mo", [d]))
                      : (w = new ae.MathNode("mi", [d])),
                g !== F8[w.type] && w.setAttribute("mathvariant", g),
                w
              );
            },
          }));
        let im = { "\\nobreak": "nobreak", "\\allowbreak": "allowbreak" },
          om = {
            " ": {},
            "\\ ": {},
            "~": { className: "nobreak" },
            "\\space": {},
            "\\nobreakspace": { className: "nobreak" },
          };
        p0({
          type: "spacing",
          htmlBuilder(f, c) {
            if (om.hasOwnProperty(f.text)) {
              let d = om[f.text].className || "";
              if (f.mode === "text") {
                let g = J.makeOrd(f, c, "textord");
                return (g.classes.push(d), g);
              } else
                return J.makeSpan(
                  ["mspace", d],
                  [J.mathsym(f.text, f.mode, c)],
                  c,
                );
            } else {
              if (im.hasOwnProperty(f.text))
                return J.makeSpan(["mspace", im[f.text]], [], c);
              throw new r('Unknown type of space "' + f.text + '"');
            }
          },
          mathmlBuilder(f, c) {
            let d;
            if (om.hasOwnProperty(f.text))
              d = new ae.MathNode("mtext", [new ae.TextNode("\xA0")]);
            else {
              if (im.hasOwnProperty(f.text)) return new ae.MathNode("mspace");
              throw new r('Unknown type of space "' + f.text + '"');
            }
            return d;
          },
        });
        let q8 = () => {
          let f = new ae.MathNode("mtd", []);
          return (f.setAttribute("width", "50%"), f);
        };
        p0({
          type: "tag",
          mathmlBuilder(f, c) {
            let d = new ae.MathNode("mtable", [
              new ae.MathNode("mtr", [
                q8(),
                new ae.MathNode("mtd", [wo(f.body, c)]),
                q8(),
                new ae.MathNode("mtd", [wo(f.tag, c)]),
              ]),
            ]);
            return (d.setAttribute("width", "100%"), d);
          },
        });
        let L8 = {
            "\\text": void 0,
            "\\textrm": "textrm",
            "\\textsf": "textsf",
            "\\texttt": "texttt",
            "\\textnormal": "textrm",
          },
          O8 = { "\\textbf": "textbf", "\\textmd": "textmd" },
          RC = { "\\textit": "textit", "\\textup": "textup" },
          B8 = (f, c) => {
            let d = f.font;
            if (d) {
              if (L8[d]) return c.withTextFontFamily(L8[d]);
              if (O8[d]) return c.withTextFontWeight(O8[d]);
              if (d === "\\emph")
                return c.fontShape === "textit"
                  ? c.withTextFontShape("textup")
                  : c.withTextFontShape("textit");
            } else return c;
            return c.withTextFontShape(RC[d]);
          };
        (be({
          type: "text",
          names: [
            "\\text",
            "\\textrm",
            "\\textsf",
            "\\texttt",
            "\\textnormal",
            "\\textbf",
            "\\textmd",
            "\\textit",
            "\\textup",
            "\\emph",
          ],
          props: {
            numArgs: 1,
            argTypes: ["text"],
            allowedInArgument: !0,
            allowedInText: !0,
          },
          handler(f, c) {
            let { parser: d, funcName: g } = f,
              w = c[0];
            return { type: "text", mode: d.mode, body: Pt(w), font: g };
          },
          htmlBuilder(f, c) {
            let d = B8(f, c),
              g = Xt(f.body, d, !0);
            return J.makeSpan(["mord", "text"], g, d);
          },
          mathmlBuilder(f, c) {
            let d = B8(f, c);
            return wo(f.body, d);
          },
        }),
          be({
            type: "underline",
            names: ["\\underline"],
            props: { numArgs: 1, allowedInText: !0 },
            handler(f, c) {
              let { parser: d } = f;
              return { type: "underline", mode: d.mode, body: c[0] };
            },
            htmlBuilder(f, c) {
              let d = et(f.body, c),
                g = J.makeLineSpan("underline-line", c),
                w = c.fontMetrics().defaultRuleThickness,
                S = J.makeVList(
                  {
                    positionType: "top",
                    positionData: d.height,
                    children: [
                      { type: "kern", size: w },
                      { type: "elem", elem: g },
                      { type: "kern", size: 3 * w },
                      { type: "elem", elem: d },
                    ],
                  },
                  c,
                );
              return J.makeSpan(["mord", "underline"], [S], c);
            },
            mathmlBuilder(f, c) {
              let d = new ae.MathNode("mo", [new ae.TextNode("\u203E")]);
              d.setAttribute("stretchy", "true");
              let g = new ae.MathNode("munder", [pt(f.body, c), d]);
              return (g.setAttribute("accentunder", "true"), g);
            },
          }),
          be({
            type: "vcenter",
            names: ["\\vcenter"],
            props: { numArgs: 1, argTypes: ["original"], allowedInText: !1 },
            handler(f, c) {
              let { parser: d } = f;
              return { type: "vcenter", mode: d.mode, body: c[0] };
            },
            htmlBuilder(f, c) {
              let d = et(f.body, c),
                g = c.fontMetrics().axisHeight,
                w = 0.5 * (d.height - g - (d.depth + g));
              return J.makeVList(
                {
                  positionType: "shift",
                  positionData: w,
                  children: [{ type: "elem", elem: d }],
                },
                c,
              );
            },
            mathmlBuilder(f, c) {
              return new ae.MathNode("mpadded", [pt(f.body, c)], ["vcenter"]);
            },
          }),
          be({
            type: "verb",
            names: ["\\verb"],
            props: { numArgs: 0, allowedInText: !0 },
            handler(f, c, d) {
              throw new r(
                "\\verb ended by end of line instead of matching delimiter",
              );
            },
            htmlBuilder(f, c) {
              let d = z8(f),
                g = [],
                w = c.havingStyle(c.style.text());
              for (let S = 0; S < d.length; S++) {
                let C = d[S];
                (C === "~" && (C = "\\textasciitilde"),
                  g.push(
                    J.makeSymbol(C, "Typewriter-Regular", f.mode, w, [
                      "mord",
                      "texttt",
                    ]),
                  ));
              }
              return J.makeSpan(
                ["mord", "text"].concat(w.sizingClasses(c)),
                J.tryCombineChars(g),
                w,
              );
            },
            mathmlBuilder(f, c) {
              let d = new ae.TextNode(z8(f)),
                g = new ae.MathNode("mtext", [d]);
              return (g.setAttribute("mathvariant", "monospace"), g);
            },
          }));
        let z8 = (f) => f.body.replace(/ /g, f.star ? "\u2423" : "\xA0");
        var _o = U5;
        let R8 = `[ \r
	]`,
          PC = "\\\\[a-zA-Z@]+",
          $C = "\\\\[^\uD800-\uDFFF]",
          HC = "(" + PC + ")" + R8 + "*",
          UC = `\\\\(
|[ \r	]+
?)[ \r	]*`,
          sm = "[\u0300-\u036F]",
          VC = new RegExp(sm + "+$"),
          jC =
            "(" +
            R8 +
            "+)|" +
            (UC + "|") +
            "([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]" +
            (sm + "*") +
            "|[\uD800-\uDBFF][\uDC00-\uDFFF]" +
            (sm + "*") +
            "|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5" +
            ("|" + HC) +
            ("|" + $C + ")");
        class P8 {
          constructor(c, d) {
            ((this.input = void 0),
              (this.settings = void 0),
              (this.tokenRegex = void 0),
              (this.catcodes = void 0),
              (this.input = c),
              (this.settings = d),
              (this.tokenRegex = new RegExp(jC, "g")),
              (this.catcodes = { "%": 14, "~": 13 }));
          }
          setCatcode(c, d) {
            this.catcodes[c] = d;
          }
          lex() {
            let c = this.input,
              d = this.tokenRegex.lastIndex;
            if (d === c.length) return new Yn("EOF", new Ln(this, d, d));
            let g = this.tokenRegex.exec(c);
            if (g === null || g.index !== d)
              throw new r(
                "Unexpected character: '" + c[d] + "'",
                new Yn(c[d], new Ln(this, d, d + 1)),
              );
            let w = g[6] || g[3] || (g[2] ? "\\ " : " ");
            if (this.catcodes[w] === 14) {
              let S = c.indexOf(
                `
`,
                this.tokenRegex.lastIndex,
              );
              return (
                S === -1
                  ? ((this.tokenRegex.lastIndex = c.length),
                    this.settings.reportNonstrict(
                      "commentAtEnd",
                      "% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)",
                    ))
                  : (this.tokenRegex.lastIndex = S + 1),
                this.lex()
              );
            }
            return new Yn(w, new Ln(this, d, this.tokenRegex.lastIndex));
          }
        }
        class GC {
          constructor(c, d) {
            (c === void 0 && (c = {}),
              d === void 0 && (d = {}),
              (this.current = void 0),
              (this.builtins = void 0),
              (this.undefStack = void 0),
              (this.current = d),
              (this.builtins = c),
              (this.undefStack = []));
          }
          beginGroup() {
            this.undefStack.push({});
          }
          endGroup() {
            if (this.undefStack.length === 0)
              throw new r(
                "Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug",
              );
            let c = this.undefStack.pop();
            for (let d in c)
              c.hasOwnProperty(d) &&
                (c[d] == null
                  ? delete this.current[d]
                  : (this.current[d] = c[d]));
          }
          endGroups() {
            for (; this.undefStack.length > 0; ) this.endGroup();
          }
          has(c) {
            return (
              this.current.hasOwnProperty(c) || this.builtins.hasOwnProperty(c)
            );
          }
          get(c) {
            return this.current.hasOwnProperty(c)
              ? this.current[c]
              : this.builtins[c];
          }
          set(c, d, g) {
            if ((g === void 0 && (g = !1), g)) {
              for (let w = 0; w < this.undefStack.length; w++)
                delete this.undefStack[w][c];
              this.undefStack.length > 0 &&
                (this.undefStack[this.undefStack.length - 1][c] = d);
            } else {
              let w = this.undefStack[this.undefStack.length - 1];
              w && !w.hasOwnProperty(c) && (w[c] = this.current[c]);
            }
            d == null ? delete this.current[c] : (this.current[c] = d);
          }
        }
        var YC = m8;
        (q("\\noexpand", function (f) {
          let c = f.popToken();
          return (
            f.isExpandable(c.text) &&
              ((c.noexpand = !0), (c.treatAsRelax = !0)),
            { tokens: [c], numArgs: 0 }
          );
        }),
          q("\\expandafter", function (f) {
            let c = f.popToken();
            return (f.expandOnce(!0), { tokens: [c], numArgs: 0 });
          }),
          q("\\@firstoftwo", function (f) {
            return { tokens: f.consumeArgs(2)[0], numArgs: 0 };
          }),
          q("\\@secondoftwo", function (f) {
            return { tokens: f.consumeArgs(2)[1], numArgs: 0 };
          }),
          q("\\@ifnextchar", function (f) {
            let c = f.consumeArgs(3);
            f.consumeSpaces();
            let d = f.future();
            return c[0].length === 1 && c[0][0].text === d.text
              ? { tokens: c[1], numArgs: 0 }
              : { tokens: c[2], numArgs: 0 };
          }),
          q("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"),
          q("\\TextOrMath", function (f) {
            let c = f.consumeArgs(2);
            return f.mode === "text"
              ? { tokens: c[0], numArgs: 0 }
              : { tokens: c[1], numArgs: 0 };
          }));
        let $8 = {
          0: 0,
          1: 1,
          2: 2,
          3: 3,
          4: 4,
          5: 5,
          6: 6,
          7: 7,
          8: 8,
          9: 9,
          a: 10,
          A: 10,
          b: 11,
          B: 11,
          c: 12,
          C: 12,
          d: 13,
          D: 13,
          e: 14,
          E: 14,
          f: 15,
          F: 15,
        };
        q("\\char", function (f) {
          let c = f.popToken(),
            d,
            g = "";
          if (c.text === "'") ((d = 8), (c = f.popToken()));
          else if (c.text === '"') ((d = 16), (c = f.popToken()));
          else if (c.text === "`")
            if (((c = f.popToken()), c.text[0] === "\\"))
              g = c.text.charCodeAt(1);
            else {
              if (c.text === "EOF") throw new r("\\char` missing argument");
              g = c.text.charCodeAt(0);
            }
          else d = 10;
          if (d) {
            if (((g = $8[c.text]), g == null || g >= d))
              throw new r("Invalid base-" + d + " digit " + c.text);
            let w;
            for (; (w = $8[f.future().text]) != null && w < d; )
              ((g *= d), (g += w), f.popToken());
          }
          return "\\@char{" + g + "}";
        });
        let um = (f, c, d, g) => {
          let w = f.consumeArg().tokens;
          if (w.length !== 1)
            throw new r("\\newcommand's first argument must be a macro name");
          let S = w[0].text,
            C = f.isDefined(S);
          if (C && !c)
            throw new r(
              "\\newcommand{" +
                S +
                "} attempting to redefine " +
                (S + "; use \\renewcommand"),
            );
          if (!C && !d)
            throw new r(
              "\\renewcommand{" +
                S +
                "} when command " +
                S +
                " does not yet exist; use \\newcommand",
            );
          let F = 0;
          if (
            ((w = f.consumeArg().tokens), w.length === 1 && w[0].text === "[")
          ) {
            let L = "",
              $ = f.expandNextToken();
            for (; $.text !== "]" && $.text !== "EOF"; )
              ((L += $.text), ($ = f.expandNextToken()));
            if (!L.match(/^\s*[0-9]+\s*$/))
              throw new r("Invalid number of arguments: " + L);
            ((F = parseInt(L)), (w = f.consumeArg().tokens));
          }
          return ((C && g) || f.macros.set(S, { tokens: w, numArgs: F }), "");
        };
        (q("\\newcommand", (f) => um(f, !1, !0, !1)),
          q("\\renewcommand", (f) => um(f, !0, !1, !1)),
          q("\\providecommand", (f) => um(f, !0, !0, !0)),
          q("\\message", (f) => {
            let c = f.consumeArgs(1)[0];
            return (
              console.log(
                c
                  .reverse()
                  .map((d) => d.text)
                  .join(""),
              ),
              ""
            );
          }),
          q("\\errmessage", (f) => {
            let c = f.consumeArgs(1)[0];
            return (
              console.error(
                c
                  .reverse()
                  .map((d) => d.text)
                  .join(""),
              ),
              ""
            );
          }),
          q("\\show", (f) => {
            let c = f.popToken(),
              d = c.text;
            return (
              console.log(c, f.macros.get(d), _o[d], It.math[d], It.text[d]),
              ""
            );
          }),
          q("\\bgroup", "{"),
          q("\\egroup", "}"),
          q("~", "\\nobreakspace"),
          q("\\lq", "`"),
          q("\\rq", "'"),
          q("\\aa", "\\r a"),
          q("\\AA", "\\r A"),
          q("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`\xA9}"),
          q(
            "\\copyright",
            "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}",
          ),
          q(
            "\\textregistered",
            "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}",
          ),
          q("\u212C", "\\mathscr{B}"),
          q("\u2130", "\\mathscr{E}"),
          q("\u2131", "\\mathscr{F}"),
          q("\u210B", "\\mathscr{H}"),
          q("\u2110", "\\mathscr{I}"),
          q("\u2112", "\\mathscr{L}"),
          q("\u2133", "\\mathscr{M}"),
          q("\u211B", "\\mathscr{R}"),
          q("\u212D", "\\mathfrak{C}"),
          q("\u210C", "\\mathfrak{H}"),
          q("\u2128", "\\mathfrak{Z}"),
          q("\\Bbbk", "\\Bbb{k}"),
          q("\xB7", "\\cdotp"),
          q("\\llap", "\\mathllap{\\textrm{#1}}"),
          q("\\rlap", "\\mathrlap{\\textrm{#1}}"),
          q("\\clap", "\\mathclap{\\textrm{#1}}"),
          q("\\mathstrut", "\\vphantom{(}"),
          q("\\underbar", "\\underline{\\text{#1}}"),
          q("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),
          q(
            "\\neq",
            "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}",
          ),
          q("\\ne", "\\neq"),
          q("\u2260", "\\neq"),
          q(
            "\\notin",
            "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}",
          ),
          q("\u2209", "\\notin"),
          q(
            "\u2258",
            "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}",
          ),
          q(
            "\u2259",
            "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}",
          ),
          q(
            "\u225A",
            "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}",
          ),
          q(
            "\u225B",
            "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}",
          ),
          q(
            "\u225D",
            "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}",
          ),
          q(
            "\u225E",
            "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}",
          ),
          q(
            "\u225F",
            "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}",
          ),
          q("\u27C2", "\\perp"),
          q("\u203C", "\\mathclose{!\\mkern-0.8mu!}"),
          q("\u220C", "\\notni"),
          q("\u231C", "\\ulcorner"),
          q("\u231D", "\\urcorner"),
          q("\u231E", "\\llcorner"),
          q("\u231F", "\\lrcorner"),
          q("\xA9", "\\copyright"),
          q("\xAE", "\\textregistered"),
          q("\uFE0F", "\\textregistered"),
          q("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),
          q("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),
          q("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),
          q("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),
          q("\\vdots", "{\\varvdots\\rule{0pt}{15pt}}"),
          q("\u22EE", "\\vdots"),
          q("\\varGamma", "\\mathit{\\Gamma}"),
          q("\\varDelta", "\\mathit{\\Delta}"),
          q("\\varTheta", "\\mathit{\\Theta}"),
          q("\\varLambda", "\\mathit{\\Lambda}"),
          q("\\varXi", "\\mathit{\\Xi}"),
          q("\\varPi", "\\mathit{\\Pi}"),
          q("\\varSigma", "\\mathit{\\Sigma}"),
          q("\\varUpsilon", "\\mathit{\\Upsilon}"),
          q("\\varPhi", "\\mathit{\\Phi}"),
          q("\\varPsi", "\\mathit{\\Psi}"),
          q("\\varOmega", "\\mathit{\\Omega}"),
          q("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"),
          q(
            "\\colon",
            "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax",
          ),
          q("\\boxed", "\\fbox{$\\displaystyle{#1}$}"),
          q("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"),
          q("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"),
          q("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;"),
          q("\\dddot", "{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}"),
          q(
            "\\ddddot",
            "{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}",
          ));
        let H8 = {
          ",": "\\dotsc",
          "\\not": "\\dotsb",
          "+": "\\dotsb",
          "=": "\\dotsb",
          "<": "\\dotsb",
          ">": "\\dotsb",
          "-": "\\dotsb",
          "*": "\\dotsb",
          ":": "\\dotsb",
          "\\DOTSB": "\\dotsb",
          "\\coprod": "\\dotsb",
          "\\bigvee": "\\dotsb",
          "\\bigwedge": "\\dotsb",
          "\\biguplus": "\\dotsb",
          "\\bigcap": "\\dotsb",
          "\\bigcup": "\\dotsb",
          "\\prod": "\\dotsb",
          "\\sum": "\\dotsb",
          "\\bigotimes": "\\dotsb",
          "\\bigoplus": "\\dotsb",
          "\\bigodot": "\\dotsb",
          "\\bigsqcup": "\\dotsb",
          "\\And": "\\dotsb",
          "\\longrightarrow": "\\dotsb",
          "\\Longrightarrow": "\\dotsb",
          "\\longleftarrow": "\\dotsb",
          "\\Longleftarrow": "\\dotsb",
          "\\longleftrightarrow": "\\dotsb",
          "\\Longleftrightarrow": "\\dotsb",
          "\\mapsto": "\\dotsb",
          "\\longmapsto": "\\dotsb",
          "\\hookrightarrow": "\\dotsb",
          "\\doteq": "\\dotsb",
          "\\mathbin": "\\dotsb",
          "\\mathrel": "\\dotsb",
          "\\relbar": "\\dotsb",
          "\\Relbar": "\\dotsb",
          "\\xrightarrow": "\\dotsb",
          "\\xleftarrow": "\\dotsb",
          "\\DOTSI": "\\dotsi",
          "\\int": "\\dotsi",
          "\\oint": "\\dotsi",
          "\\iint": "\\dotsi",
          "\\iiint": "\\dotsi",
          "\\iiiint": "\\dotsi",
          "\\idotsint": "\\dotsi",
          "\\DOTSX": "\\dotsx",
        };
        q("\\dots", function (f) {
          let c = "\\dotso",
            d = f.expandAfterFuture().text;
          return (
            d in H8
              ? (c = H8[d])
              : (d.slice(0, 4) === "\\not" ||
                  (d in It.math &&
                    ["bin", "rel"].includes(It.math[d].group))) &&
                (c = "\\dotsb"),
            c
          );
        });
        let am = {
          ")": !0,
          "]": !0,
          "\\rbrack": !0,
          "\\}": !0,
          "\\rbrace": !0,
          "\\rangle": !0,
          "\\rceil": !0,
          "\\rfloor": !0,
          "\\rgroup": !0,
          "\\rmoustache": !0,
          "\\right": !0,
          "\\bigr": !0,
          "\\biggr": !0,
          "\\Bigr": !0,
          "\\Biggr": !0,
          $: !0,
          ";": !0,
          ".": !0,
          ",": !0,
        };
        (q("\\dotso", function (f) {
          return f.future().text in am ? "\\ldots\\," : "\\ldots";
        }),
          q("\\dotsc", function (f) {
            let c = f.future().text;
            return c in am && c !== "," ? "\\ldots\\," : "\\ldots";
          }),
          q("\\cdots", function (f) {
            return f.future().text in am ? "\\@cdots\\," : "\\@cdots";
          }),
          q("\\dotsb", "\\cdots"),
          q("\\dotsm", "\\cdots"),
          q("\\dotsi", "\\!\\cdots"),
          q("\\dotsx", "\\ldots\\,"),
          q("\\DOTSI", "\\relax"),
          q("\\DOTSB", "\\relax"),
          q("\\DOTSX", "\\relax"),
          q("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),
          q("\\,", "\\tmspace+{3mu}{.1667em}"),
          q("\\thinspace", "\\,"),
          q("\\>", "\\mskip{4mu}"),
          q("\\:", "\\tmspace+{4mu}{.2222em}"),
          q("\\medspace", "\\:"),
          q("\\;", "\\tmspace+{5mu}{.2777em}"),
          q("\\thickspace", "\\;"),
          q("\\!", "\\tmspace-{3mu}{.1667em}"),
          q("\\negthinspace", "\\!"),
          q("\\negmedspace", "\\tmspace-{4mu}{.2222em}"),
          q("\\negthickspace", "\\tmspace-{5mu}{.277em}"),
          q("\\enspace", "\\kern.5em "),
          q("\\enskip", "\\hskip.5em\\relax"),
          q("\\quad", "\\hskip1em\\relax"),
          q("\\qquad", "\\hskip2em\\relax"),
          q("\\tag", "\\@ifstar\\tag@literal\\tag@paren"),
          q("\\tag@paren", "\\tag@literal{({#1})}"),
          q("\\tag@literal", (f) => {
            if (f.macros.get("\\df@tag")) throw new r("Multiple \\tag");
            return "\\gdef\\df@tag{\\text{#1}}";
          }),
          q(
            "\\bmod",
            "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}",
          ),
          q(
            "\\pod",
            "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)",
          ),
          q("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"),
          q(
            "\\mod",
            "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1",
          ),
          q("\\newline", "\\\\\\relax"),
          q(
            "\\TeX",
            "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}",
          ));
        let U8 = de(
          bt["Main-Regular"][84][1] - 0.7 * bt["Main-Regular"][65][1],
        );
        (q(
          "\\LaTeX",
          "\\textrm{\\html@mathml{" +
            ("L\\kern-.36em\\raisebox{" + U8 + "}{\\scriptstyle A}") +
            "\\kern-.15em\\TeX}{LaTeX}}",
        ),
          q(
            "\\KaTeX",
            "\\textrm{\\html@mathml{" +
              ("K\\kern-.17em\\raisebox{" + U8 + "}{\\scriptstyle A}") +
              "\\kern-.15em\\TeX}{KaTeX}}",
          ),
          q("\\hspace", "\\@ifstar\\@hspacer\\@hspace"),
          q("\\@hspace", "\\hskip #1\\relax"),
          q("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"),
          q("\\ordinarycolon", ":"),
          q("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"),
          q(
            "\\dblcolon",
            '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}',
          ),
          q(
            "\\coloneqq",
            '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}',
          ),
          q(
            "\\Coloneqq",
            '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}',
          ),
          q(
            "\\coloneq",
            '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}',
          ),
          q(
            "\\Coloneq",
            '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}',
          ),
          q(
            "\\eqqcolon",
            '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}',
          ),
          q(
            "\\Eqqcolon",
            '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}',
          ),
          q(
            "\\eqcolon",
            '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}',
          ),
          q(
            "\\Eqcolon",
            '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}',
          ),
          q(
            "\\colonapprox",
            '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}',
          ),
          q(
            "\\Colonapprox",
            '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}',
          ),
          q(
            "\\colonsim",
            '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}',
          ),
          q(
            "\\Colonsim",
            '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}',
          ),
          q("\u2237", "\\dblcolon"),
          q("\u2239", "\\eqcolon"),
          q("\u2254", "\\coloneqq"),
          q("\u2255", "\\eqqcolon"),
          q("\u2A74", "\\Coloneqq"),
          q("\\ratio", "\\vcentcolon"),
          q("\\coloncolon", "\\dblcolon"),
          q("\\colonequals", "\\coloneqq"),
          q("\\coloncolonequals", "\\Coloneqq"),
          q("\\equalscolon", "\\eqqcolon"),
          q("\\equalscoloncolon", "\\Eqqcolon"),
          q("\\colonminus", "\\coloneq"),
          q("\\coloncolonminus", "\\Coloneq"),
          q("\\minuscolon", "\\eqcolon"),
          q("\\minuscoloncolon", "\\Eqcolon"),
          q("\\coloncolonapprox", "\\Colonapprox"),
          q("\\coloncolonsim", "\\Colonsim"),
          q(
            "\\simcolon",
            "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}",
          ),
          q(
            "\\simcoloncolon",
            "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}",
          ),
          q(
            "\\approxcolon",
            "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}",
          ),
          q(
            "\\approxcoloncolon",
            "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}",
          ),
          q("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}"),
          q("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"),
          q("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"),
          q("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}"),
          q("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}"),
          q("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}"),
          q("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}"),
          q("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),
          q("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),
          q("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{\u2269}"),
          q("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{\u2268}"),
          q("\\ngeqq", "\\html@mathml{\\@ngeqq}{\u2271}"),
          q("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{\u2271}"),
          q("\\nleqq", "\\html@mathml{\\@nleqq}{\u2270}"),
          q("\\nleqslant", "\\html@mathml{\\@nleqslant}{\u2270}"),
          q("\\nshortmid", "\\html@mathml{\\@nshortmid}{\u2224}"),
          q("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{\u2226}"),
          q("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{\u2288}"),
          q("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{\u2289}"),
          q("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{\u228A}"),
          q("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{\u2ACB}"),
          q("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{\u228B}"),
          q("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{\u2ACC}"),
          q("\\imath", "\\html@mathml{\\@imath}{\u0131}"),
          q("\\jmath", "\\html@mathml{\\@jmath}{\u0237}"),
          q(
            "\\llbracket",
            "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}",
          ),
          q(
            "\\rrbracket",
            "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}",
          ),
          q("\u27E6", "\\llbracket"),
          q("\u27E7", "\\rrbracket"),
          q(
            "\\lBrace",
            "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}",
          ),
          q(
            "\\rBrace",
            "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}",
          ),
          q("\u2983", "\\lBrace"),
          q("\u2984", "\\rBrace"),
          q(
            "\\minuso",
            "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}",
          ),
          q("\u29B5", "\\minuso"),
          q("\\darr", "\\downarrow"),
          q("\\dArr", "\\Downarrow"),
          q("\\Darr", "\\Downarrow"),
          q("\\lang", "\\langle"),
          q("\\rang", "\\rangle"),
          q("\\uarr", "\\uparrow"),
          q("\\uArr", "\\Uparrow"),
          q("\\Uarr", "\\Uparrow"),
          q("\\N", "\\mathbb{N}"),
          q("\\R", "\\mathbb{R}"),
          q("\\Z", "\\mathbb{Z}"),
          q("\\alef", "\\aleph"),
          q("\\alefsym", "\\aleph"),
          q("\\Alpha", "\\mathrm{A}"),
          q("\\Beta", "\\mathrm{B}"),
          q("\\bull", "\\bullet"),
          q("\\Chi", "\\mathrm{X}"),
          q("\\clubs", "\\clubsuit"),
          q("\\cnums", "\\mathbb{C}"),
          q("\\Complex", "\\mathbb{C}"),
          q("\\Dagger", "\\ddagger"),
          q("\\diamonds", "\\diamondsuit"),
          q("\\empty", "\\emptyset"),
          q("\\Epsilon", "\\mathrm{E}"),
          q("\\Eta", "\\mathrm{H}"),
          q("\\exist", "\\exists"),
          q("\\harr", "\\leftrightarrow"),
          q("\\hArr", "\\Leftrightarrow"),
          q("\\Harr", "\\Leftrightarrow"),
          q("\\hearts", "\\heartsuit"),
          q("\\image", "\\Im"),
          q("\\infin", "\\infty"),
          q("\\Iota", "\\mathrm{I}"),
          q("\\isin", "\\in"),
          q("\\Kappa", "\\mathrm{K}"),
          q("\\larr", "\\leftarrow"),
          q("\\lArr", "\\Leftarrow"),
          q("\\Larr", "\\Leftarrow"),
          q("\\lrarr", "\\leftrightarrow"),
          q("\\lrArr", "\\Leftrightarrow"),
          q("\\Lrarr", "\\Leftrightarrow"),
          q("\\Mu", "\\mathrm{M}"),
          q("\\natnums", "\\mathbb{N}"),
          q("\\Nu", "\\mathrm{N}"),
          q("\\Omicron", "\\mathrm{O}"),
          q("\\plusmn", "\\pm"),
          q("\\rarr", "\\rightarrow"),
          q("\\rArr", "\\Rightarrow"),
          q("\\Rarr", "\\Rightarrow"),
          q("\\real", "\\Re"),
          q("\\reals", "\\mathbb{R}"),
          q("\\Reals", "\\mathbb{R}"),
          q("\\Rho", "\\mathrm{P}"),
          q("\\sdot", "\\cdot"),
          q("\\sect", "\\S"),
          q("\\spades", "\\spadesuit"),
          q("\\sub", "\\subset"),
          q("\\sube", "\\subseteq"),
          q("\\supe", "\\supseteq"),
          q("\\Tau", "\\mathrm{T}"),
          q("\\thetasym", "\\vartheta"),
          q("\\weierp", "\\wp"),
          q("\\Zeta", "\\mathrm{Z}"),
          q("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"),
          q("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"),
          q("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),
          q("\\bra", "\\mathinner{\\langle{#1}|}"),
          q("\\ket", "\\mathinner{|{#1}\\rangle}"),
          q("\\braket", "\\mathinner{\\langle{#1}\\rangle}"),
          q("\\Bra", "\\left\\langle#1\\right|"),
          q("\\Ket", "\\left|#1\\right\\rangle"));
        let V8 = (f) => (c) => {
          let d = c.consumeArg().tokens,
            g = c.consumeArg().tokens,
            w = c.consumeArg().tokens,
            S = c.consumeArg().tokens,
            C = c.macros.get("|"),
            F = c.macros.get("\\|");
          c.macros.beginGroup();
          let L = (K) => (ee) => {
            f && (ee.macros.set("|", C), w.length && ee.macros.set("\\|", F));
            let re = K;
            return (
              !K &&
                w.length &&
                ee.future().text === "|" &&
                (ee.popToken(), (re = !0)),
              { tokens: re ? w : g, numArgs: 0 }
            );
          };
          (c.macros.set("|", L(!1)), w.length && c.macros.set("\\|", L(!0)));
          let $ = c.consumeArg().tokens,
            W = c.expandTokens([...S, ...$, ...d]);
          return (c.macros.endGroup(), { tokens: W.reverse(), numArgs: 0 });
        };
        (q("\\bra@ket", V8(!1)),
          q("\\bra@set", V8(!0)),
          q(
            "\\Braket",
            "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}",
          ),
          q(
            "\\Set",
            "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}",
          ),
          q("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),
          q("\\angln", "{\\angl n}"),
          q("\\blue", "\\textcolor{##6495ed}{#1}"),
          q("\\orange", "\\textcolor{##ffa500}{#1}"),
          q("\\pink", "\\textcolor{##ff00af}{#1}"),
          q("\\red", "\\textcolor{##df0030}{#1}"),
          q("\\green", "\\textcolor{##28ae7b}{#1}"),
          q("\\gray", "\\textcolor{gray}{#1}"),
          q("\\purple", "\\textcolor{##9d38bd}{#1}"),
          q("\\blueA", "\\textcolor{##ccfaff}{#1}"),
          q("\\blueB", "\\textcolor{##80f6ff}{#1}"),
          q("\\blueC", "\\textcolor{##63d9ea}{#1}"),
          q("\\blueD", "\\textcolor{##11accd}{#1}"),
          q("\\blueE", "\\textcolor{##0c7f99}{#1}"),
          q("\\tealA", "\\textcolor{##94fff5}{#1}"),
          q("\\tealB", "\\textcolor{##26edd5}{#1}"),
          q("\\tealC", "\\textcolor{##01d1c1}{#1}"),
          q("\\tealD", "\\textcolor{##01a995}{#1}"),
          q("\\tealE", "\\textcolor{##208170}{#1}"),
          q("\\greenA", "\\textcolor{##b6ffb0}{#1}"),
          q("\\greenB", "\\textcolor{##8af281}{#1}"),
          q("\\greenC", "\\textcolor{##74cf70}{#1}"),
          q("\\greenD", "\\textcolor{##1fab54}{#1}"),
          q("\\greenE", "\\textcolor{##0d923f}{#1}"),
          q("\\goldA", "\\textcolor{##ffd0a9}{#1}"),
          q("\\goldB", "\\textcolor{##ffbb71}{#1}"),
          q("\\goldC", "\\textcolor{##ff9c39}{#1}"),
          q("\\goldD", "\\textcolor{##e07d10}{#1}"),
          q("\\goldE", "\\textcolor{##a75a05}{#1}"),
          q("\\redA", "\\textcolor{##fca9a9}{#1}"),
          q("\\redB", "\\textcolor{##ff8482}{#1}"),
          q("\\redC", "\\textcolor{##f9685d}{#1}"),
          q("\\redD", "\\textcolor{##e84d39}{#1}"),
          q("\\redE", "\\textcolor{##bc2612}{#1}"),
          q("\\maroonA", "\\textcolor{##ffbde0}{#1}"),
          q("\\maroonB", "\\textcolor{##ff92c6}{#1}"),
          q("\\maroonC", "\\textcolor{##ed5fa6}{#1}"),
          q("\\maroonD", "\\textcolor{##ca337c}{#1}"),
          q("\\maroonE", "\\textcolor{##9e034e}{#1}"),
          q("\\purpleA", "\\textcolor{##ddd7ff}{#1}"),
          q("\\purpleB", "\\textcolor{##c6b9fc}{#1}"),
          q("\\purpleC", "\\textcolor{##aa87ff}{#1}"),
          q("\\purpleD", "\\textcolor{##7854ab}{#1}"),
          q("\\purpleE", "\\textcolor{##543b78}{#1}"),
          q("\\mintA", "\\textcolor{##f5f9e8}{#1}"),
          q("\\mintB", "\\textcolor{##edf2df}{#1}"),
          q("\\mintC", "\\textcolor{##e0e5cc}{#1}"),
          q("\\grayA", "\\textcolor{##f6f7f7}{#1}"),
          q("\\grayB", "\\textcolor{##f0f1f2}{#1}"),
          q("\\grayC", "\\textcolor{##e3e5e6}{#1}"),
          q("\\grayD", "\\textcolor{##d6d8da}{#1}"),
          q("\\grayE", "\\textcolor{##babec2}{#1}"),
          q("\\grayF", "\\textcolor{##888d93}{#1}"),
          q("\\grayG", "\\textcolor{##626569}{#1}"),
          q("\\grayH", "\\textcolor{##3b3e40}{#1}"),
          q("\\grayI", "\\textcolor{##21242c}{#1}"),
          q("\\kaBlue", "\\textcolor{##314453}{#1}"),
          q("\\kaGreen", "\\textcolor{##71B307}{#1}"));
        let j8 = { "^": !0, _: !0, "\\limits": !0, "\\nolimits": !0 };
        class XC {
          constructor(c, d, g) {
            ((this.settings = void 0),
              (this.expansionCount = void 0),
              (this.lexer = void 0),
              (this.macros = void 0),
              (this.stack = void 0),
              (this.mode = void 0),
              (this.settings = d),
              (this.expansionCount = 0),
              this.feed(c),
              (this.macros = new GC(YC, d.macros)),
              (this.mode = g),
              (this.stack = []));
          }
          feed(c) {
            this.lexer = new P8(c, this.settings);
          }
          switchMode(c) {
            this.mode = c;
          }
          beginGroup() {
            this.macros.beginGroup();
          }
          endGroup() {
            this.macros.endGroup();
          }
          endGroups() {
            this.macros.endGroups();
          }
          future() {
            return (
              this.stack.length === 0 && this.pushToken(this.lexer.lex()),
              this.stack[this.stack.length - 1]
            );
          }
          popToken() {
            return (this.future(), this.stack.pop());
          }
          pushToken(c) {
            this.stack.push(c);
          }
          pushTokens(c) {
            this.stack.push(...c);
          }
          scanArgument(c) {
            let d, g, w;
            if (c) {
              if ((this.consumeSpaces(), this.future().text !== "["))
                return null;
              ((d = this.popToken()),
                ({ tokens: w, end: g } = this.consumeArg(["]"])));
            } else ({ tokens: w, start: d, end: g } = this.consumeArg());
            return (
              this.pushToken(new Yn("EOF", g.loc)),
              this.pushTokens(w),
              new Yn("", Ln.range(d, g))
            );
          }
          consumeSpaces() {
            for (; this.future().text === " "; ) this.stack.pop();
          }
          consumeArg(c) {
            let d = [],
              g = c && c.length > 0;
            g || this.consumeSpaces();
            let w = this.future(),
              S,
              C = 0,
              F = 0;
            do {
              if (((S = this.popToken()), d.push(S), S.text === "{")) ++C;
              else if (S.text === "}") {
                if ((--C, C === -1)) throw new r("Extra }", S);
              } else if (S.text === "EOF")
                throw new r(
                  "Unexpected end of input in a macro argument, expected '" +
                    (c && g ? c[F] : "}") +
                    "'",
                  S,
                );
              if (c && g)
                if ((C === 0 || (C === 1 && c[F] === "{")) && S.text === c[F]) {
                  if ((++F, F === c.length)) {
                    d.splice(-F, F);
                    break;
                  }
                } else F = 0;
            } while (C !== 0 || g);
            return (
              w.text === "{" &&
                d[d.length - 1].text === "}" &&
                (d.pop(), d.shift()),
              d.reverse(),
              { tokens: d, start: w, end: S }
            );
          }
          consumeArgs(c, d) {
            if (d) {
              if (d.length !== c + 1)
                throw new r(
                  "The length of delimiters doesn't match the number of args!",
                );
              let w = d[0];
              for (let S = 0; S < w.length; S++) {
                let C = this.popToken();
                if (w[S] !== C.text)
                  throw new r(
                    "Use of the macro doesn't match its definition",
                    C,
                  );
              }
            }
            let g = [];
            for (let w = 0; w < c; w++)
              g.push(this.consumeArg(d && d[w + 1]).tokens);
            return g;
          }
          countExpansion(c) {
            if (
              ((this.expansionCount += c),
              this.expansionCount > this.settings.maxExpand)
            )
              throw new r(
                "Too many expansions: infinite loop or need to increase maxExpand setting",
              );
          }
          expandOnce(c) {
            let d = this.popToken(),
              g = d.text,
              w = d.noexpand ? null : this._getExpansion(g);
            if (w == null || (c && w.unexpandable)) {
              if (c && w == null && g[0] === "\\" && !this.isDefined(g))
                throw new r("Undefined control sequence: " + g);
              return (this.pushToken(d), !1);
            }
            this.countExpansion(1);
            let S = w.tokens,
              C = this.consumeArgs(w.numArgs, w.delimiters);
            if (w.numArgs) {
              S = S.slice();
              for (let F = S.length - 1; F >= 0; --F) {
                let L = S[F];
                if (L.text === "#") {
                  if (F === 0)
                    throw new r(
                      "Incomplete placeholder at end of macro body",
                      L,
                    );
                  if (((L = S[--F]), L.text === "#")) S.splice(F + 1, 1);
                  else if (/^[1-9]$/.test(L.text))
                    S.splice(F, 2, ...C[+L.text - 1]);
                  else throw new r("Not a valid argument number", L);
                }
              }
            }
            return (this.pushTokens(S), S.length);
          }
          expandAfterFuture() {
            return (this.expandOnce(), this.future());
          }
          expandNextToken() {
            for (;;)
              if (this.expandOnce() === !1) {
                let c = this.stack.pop();
                return (c.treatAsRelax && (c.text = "\\relax"), c);
              }
            throw new Error();
          }
          expandMacro(c) {
            return this.macros.has(c) ? this.expandTokens([new Yn(c)]) : void 0;
          }
          expandTokens(c) {
            let d = [],
              g = this.stack.length;
            for (this.pushTokens(c); this.stack.length > g; )
              if (this.expandOnce(!0) === !1) {
                let w = this.stack.pop();
                (w.treatAsRelax && ((w.noexpand = !1), (w.treatAsRelax = !1)),
                  d.push(w));
              }
            return (this.countExpansion(d.length), d);
          }
          expandMacroAsText(c) {
            let d = this.expandMacro(c);
            return d && d.map((g) => g.text).join("");
          }
          _getExpansion(c) {
            let d = this.macros.get(c);
            if (d == null) return d;
            if (c.length === 1) {
              let w = this.lexer.catcodes[c];
              if (w != null && w !== 13) return;
            }
            let g = typeof d == "function" ? d(this) : d;
            if (typeof g == "string") {
              let w = 0;
              if (g.indexOf("#") !== -1) {
                let $ = g.replace(/##/g, "");
                for (; $.indexOf("#" + (w + 1)) !== -1; ) ++w;
              }
              let S = new P8(g, this.settings),
                C = [],
                F = S.lex();
              for (; F.text !== "EOF"; ) (C.push(F), (F = S.lex()));
              return (C.reverse(), { tokens: C, numArgs: w });
            }
            return g;
          }
          isDefined(c) {
            return (
              this.macros.has(c) ||
              _o.hasOwnProperty(c) ||
              It.math.hasOwnProperty(c) ||
              It.text.hasOwnProperty(c) ||
              j8.hasOwnProperty(c)
            );
          }
          isExpandable(c) {
            let d = this.macros.get(c);
            return d != null
              ? typeof d == "string" ||
                  typeof d == "function" ||
                  !d.unexpandable
              : _o.hasOwnProperty(c) && !_o[c].primitive;
          }
        }
        let G8 = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,
          Vc = Object.freeze({
            "\u208A": "+",
            "\u208B": "-",
            "\u208C": "=",
            "\u208D": "(",
            "\u208E": ")",
            "\u2080": "0",
            "\u2081": "1",
            "\u2082": "2",
            "\u2083": "3",
            "\u2084": "4",
            "\u2085": "5",
            "\u2086": "6",
            "\u2087": "7",
            "\u2088": "8",
            "\u2089": "9",
            "\u2090": "a",
            "\u2091": "e",
            "\u2095": "h",
            "\u1D62": "i",
            "\u2C7C": "j",
            "\u2096": "k",
            "\u2097": "l",
            "\u2098": "m",
            "\u2099": "n",
            "\u2092": "o",
            "\u209A": "p",
            "\u1D63": "r",
            "\u209B": "s",
            "\u209C": "t",
            "\u1D64": "u",
            "\u1D65": "v",
            "\u2093": "x",
            "\u1D66": "\u03B2",
            "\u1D67": "\u03B3",
            "\u1D68": "\u03C1",
            "\u1D69": "\u03D5",
            "\u1D6A": "\u03C7",
            "\u207A": "+",
            "\u207B": "-",
            "\u207C": "=",
            "\u207D": "(",
            "\u207E": ")",
            "\u2070": "0",
            "\xB9": "1",
            "\xB2": "2",
            "\xB3": "3",
            "\u2074": "4",
            "\u2075": "5",
            "\u2076": "6",
            "\u2077": "7",
            "\u2078": "8",
            "\u2079": "9",
            "\u1D2C": "A",
            "\u1D2E": "B",
            "\u1D30": "D",
            "\u1D31": "E",
            "\u1D33": "G",
            "\u1D34": "H",
            "\u1D35": "I",
            "\u1D36": "J",
            "\u1D37": "K",
            "\u1D38": "L",
            "\u1D39": "M",
            "\u1D3A": "N",
            "\u1D3C": "O",
            "\u1D3E": "P",
            "\u1D3F": "R",
            "\u1D40": "T",
            "\u1D41": "U",
            "\u2C7D": "V",
            "\u1D42": "W",
            "\u1D43": "a",
            "\u1D47": "b",
            "\u1D9C": "c",
            "\u1D48": "d",
            "\u1D49": "e",
            "\u1DA0": "f",
            "\u1D4D": "g",
            ʰ: "h",
            "\u2071": "i",
            ʲ: "j",
            "\u1D4F": "k",
            ˡ: "l",
            "\u1D50": "m",
            ⁿ: "n",
            "\u1D52": "o",
            "\u1D56": "p",
            ʳ: "r",
            ˢ: "s",
            "\u1D57": "t",
            "\u1D58": "u",
            "\u1D5B": "v",
            ʷ: "w",
            ˣ: "x",
            ʸ: "y",
            "\u1DBB": "z",
            "\u1D5D": "\u03B2",
            "\u1D5E": "\u03B3",
            "\u1D5F": "\u03B4",
            "\u1D60": "\u03D5",
            "\u1D61": "\u03C7",
            "\u1DBF": "\u03B8",
          }),
          lm = {
            "\u0301": { text: "\\'", math: "\\acute" },
            "\u0300": { text: "\\`", math: "\\grave" },
            "\u0308": { text: '\\"', math: "\\ddot" },
            "\u0303": { text: "\\~", math: "\\tilde" },
            "\u0304": { text: "\\=", math: "\\bar" },
            "\u0306": { text: "\\u", math: "\\breve" },
            "\u030C": { text: "\\v", math: "\\check" },
            "\u0302": { text: "\\^", math: "\\hat" },
            "\u0307": { text: "\\.", math: "\\dot" },
            "\u030A": { text: "\\r", math: "\\mathring" },
            "\u030B": { text: "\\H" },
            "\u0327": { text: "\\c" },
          },
          Y8 = {
            á: "a\u0301",
            à: "a\u0300",
            ä: "a\u0308",
            ǟ: "a\u0308\u0304",
            ã: "a\u0303",
            ā: "a\u0304",
            ă: "a\u0306",
            ắ: "a\u0306\u0301",
            ằ: "a\u0306\u0300",
            ẵ: "a\u0306\u0303",
            ǎ: "a\u030C",
            â: "a\u0302",
            ấ: "a\u0302\u0301",
            ầ: "a\u0302\u0300",
            ẫ: "a\u0302\u0303",
            ȧ: "a\u0307",
            ǡ: "a\u0307\u0304",
            å: "a\u030A",
            ǻ: "a\u030A\u0301",
            ḃ: "b\u0307",
            ć: "c\u0301",
            ḉ: "c\u0327\u0301",
            č: "c\u030C",
            ĉ: "c\u0302",
            ċ: "c\u0307",
            ç: "c\u0327",
            ď: "d\u030C",
            ḋ: "d\u0307",
            ḑ: "d\u0327",
            é: "e\u0301",
            è: "e\u0300",
            ë: "e\u0308",
            ẽ: "e\u0303",
            ē: "e\u0304",
            ḗ: "e\u0304\u0301",
            ḕ: "e\u0304\u0300",
            ĕ: "e\u0306",
            ḝ: "e\u0327\u0306",
            ě: "e\u030C",
            ê: "e\u0302",
            ế: "e\u0302\u0301",
            ề: "e\u0302\u0300",
            ễ: "e\u0302\u0303",
            ė: "e\u0307",
            ȩ: "e\u0327",
            ḟ: "f\u0307",
            ǵ: "g\u0301",
            ḡ: "g\u0304",
            ğ: "g\u0306",
            ǧ: "g\u030C",
            ĝ: "g\u0302",
            ġ: "g\u0307",
            ģ: "g\u0327",
            ḧ: "h\u0308",
            ȟ: "h\u030C",
            ĥ: "h\u0302",
            ḣ: "h\u0307",
            ḩ: "h\u0327",
            í: "i\u0301",
            ì: "i\u0300",
            ï: "i\u0308",
            ḯ: "i\u0308\u0301",
            ĩ: "i\u0303",
            ī: "i\u0304",
            ĭ: "i\u0306",
            ǐ: "i\u030C",
            î: "i\u0302",
            ǰ: "j\u030C",
            ĵ: "j\u0302",
            ḱ: "k\u0301",
            ǩ: "k\u030C",
            ķ: "k\u0327",
            ĺ: "l\u0301",
            ľ: "l\u030C",
            ļ: "l\u0327",
            ḿ: "m\u0301",
            ṁ: "m\u0307",
            ń: "n\u0301",
            ǹ: "n\u0300",
            ñ: "n\u0303",
            ň: "n\u030C",
            ṅ: "n\u0307",
            ņ: "n\u0327",
            ó: "o\u0301",
            ò: "o\u0300",
            ö: "o\u0308",
            ȫ: "o\u0308\u0304",
            õ: "o\u0303",
            ṍ: "o\u0303\u0301",
            ṏ: "o\u0303\u0308",
            ȭ: "o\u0303\u0304",
            ō: "o\u0304",
            ṓ: "o\u0304\u0301",
            ṑ: "o\u0304\u0300",
            ŏ: "o\u0306",
            ǒ: "o\u030C",
            ô: "o\u0302",
            ố: "o\u0302\u0301",
            ồ: "o\u0302\u0300",
            ỗ: "o\u0302\u0303",
            ȯ: "o\u0307",
            ȱ: "o\u0307\u0304",
            ő: "o\u030B",
            ṕ: "p\u0301",
            ṗ: "p\u0307",
            ŕ: "r\u0301",
            ř: "r\u030C",
            ṙ: "r\u0307",
            ŗ: "r\u0327",
            ś: "s\u0301",
            ṥ: "s\u0301\u0307",
            š: "s\u030C",
            ṧ: "s\u030C\u0307",
            ŝ: "s\u0302",
            ṡ: "s\u0307",
            ş: "s\u0327",
            ẗ: "t\u0308",
            ť: "t\u030C",
            ṫ: "t\u0307",
            ţ: "t\u0327",
            ú: "u\u0301",
            ù: "u\u0300",
            ü: "u\u0308",
            ǘ: "u\u0308\u0301",
            ǜ: "u\u0308\u0300",
            ǖ: "u\u0308\u0304",
            ǚ: "u\u0308\u030C",
            ũ: "u\u0303",
            ṹ: "u\u0303\u0301",
            ū: "u\u0304",
            ṻ: "u\u0304\u0308",
            ŭ: "u\u0306",
            ǔ: "u\u030C",
            û: "u\u0302",
            ů: "u\u030A",
            ű: "u\u030B",
            ṽ: "v\u0303",
            ẃ: "w\u0301",
            ẁ: "w\u0300",
            ẅ: "w\u0308",
            ŵ: "w\u0302",
            ẇ: "w\u0307",
            ẘ: "w\u030A",
            ẍ: "x\u0308",
            ẋ: "x\u0307",
            ý: "y\u0301",
            ỳ: "y\u0300",
            ÿ: "y\u0308",
            ỹ: "y\u0303",
            ȳ: "y\u0304",
            ŷ: "y\u0302",
            ẏ: "y\u0307",
            ẙ: "y\u030A",
            ź: "z\u0301",
            ž: "z\u030C",
            ẑ: "z\u0302",
            ż: "z\u0307",
            Á: "A\u0301",
            À: "A\u0300",
            Ä: "A\u0308",
            Ǟ: "A\u0308\u0304",
            Ã: "A\u0303",
            Ā: "A\u0304",
            Ă: "A\u0306",
            Ắ: "A\u0306\u0301",
            Ằ: "A\u0306\u0300",
            Ẵ: "A\u0306\u0303",
            Ǎ: "A\u030C",
            Â: "A\u0302",
            Ấ: "A\u0302\u0301",
            Ầ: "A\u0302\u0300",
            Ẫ: "A\u0302\u0303",
            Ȧ: "A\u0307",
            Ǡ: "A\u0307\u0304",
            Å: "A\u030A",
            Ǻ: "A\u030A\u0301",
            Ḃ: "B\u0307",
            Ć: "C\u0301",
            Ḉ: "C\u0327\u0301",
            Č: "C\u030C",
            Ĉ: "C\u0302",
            Ċ: "C\u0307",
            Ç: "C\u0327",
            Ď: "D\u030C",
            Ḋ: "D\u0307",
            Ḑ: "D\u0327",
            É: "E\u0301",
            È: "E\u0300",
            Ë: "E\u0308",
            Ẽ: "E\u0303",
            Ē: "E\u0304",
            Ḗ: "E\u0304\u0301",
            Ḕ: "E\u0304\u0300",
            Ĕ: "E\u0306",
            Ḝ: "E\u0327\u0306",
            Ě: "E\u030C",
            Ê: "E\u0302",
            Ế: "E\u0302\u0301",
            Ề: "E\u0302\u0300",
            Ễ: "E\u0302\u0303",
            Ė: "E\u0307",
            Ȩ: "E\u0327",
            Ḟ: "F\u0307",
            Ǵ: "G\u0301",
            Ḡ: "G\u0304",
            Ğ: "G\u0306",
            Ǧ: "G\u030C",
            Ĝ: "G\u0302",
            Ġ: "G\u0307",
            Ģ: "G\u0327",
            Ḧ: "H\u0308",
            Ȟ: "H\u030C",
            Ĥ: "H\u0302",
            Ḣ: "H\u0307",
            Ḩ: "H\u0327",
            Í: "I\u0301",
            Ì: "I\u0300",
            Ï: "I\u0308",
            Ḯ: "I\u0308\u0301",
            Ĩ: "I\u0303",
            Ī: "I\u0304",
            Ĭ: "I\u0306",
            Ǐ: "I\u030C",
            Î: "I\u0302",
            İ: "I\u0307",
            Ĵ: "J\u0302",
            Ḱ: "K\u0301",
            Ǩ: "K\u030C",
            Ķ: "K\u0327",
            Ĺ: "L\u0301",
            Ľ: "L\u030C",
            Ļ: "L\u0327",
            Ḿ: "M\u0301",
            Ṁ: "M\u0307",
            Ń: "N\u0301",
            Ǹ: "N\u0300",
            Ñ: "N\u0303",
            Ň: "N\u030C",
            Ṅ: "N\u0307",
            Ņ: "N\u0327",
            Ó: "O\u0301",
            Ò: "O\u0300",
            Ö: "O\u0308",
            Ȫ: "O\u0308\u0304",
            Õ: "O\u0303",
            Ṍ: "O\u0303\u0301",
            Ṏ: "O\u0303\u0308",
            Ȭ: "O\u0303\u0304",
            Ō: "O\u0304",
            Ṓ: "O\u0304\u0301",
            Ṑ: "O\u0304\u0300",
            Ŏ: "O\u0306",
            Ǒ: "O\u030C",
            Ô: "O\u0302",
            Ố: "O\u0302\u0301",
            Ồ: "O\u0302\u0300",
            Ỗ: "O\u0302\u0303",
            Ȯ: "O\u0307",
            Ȱ: "O\u0307\u0304",
            Ő: "O\u030B",
            Ṕ: "P\u0301",
            Ṗ: "P\u0307",
            Ŕ: "R\u0301",
            Ř: "R\u030C",
            Ṙ: "R\u0307",
            Ŗ: "R\u0327",
            Ś: "S\u0301",
            Ṥ: "S\u0301\u0307",
            Š: "S\u030C",
            Ṧ: "S\u030C\u0307",
            Ŝ: "S\u0302",
            Ṡ: "S\u0307",
            Ş: "S\u0327",
            Ť: "T\u030C",
            Ṫ: "T\u0307",
            Ţ: "T\u0327",
            Ú: "U\u0301",
            Ù: "U\u0300",
            Ü: "U\u0308",
            Ǘ: "U\u0308\u0301",
            Ǜ: "U\u0308\u0300",
            Ǖ: "U\u0308\u0304",
            Ǚ: "U\u0308\u030C",
            Ũ: "U\u0303",
            Ṹ: "U\u0303\u0301",
            Ū: "U\u0304",
            Ṻ: "U\u0304\u0308",
            Ŭ: "U\u0306",
            Ǔ: "U\u030C",
            Û: "U\u0302",
            Ů: "U\u030A",
            Ű: "U\u030B",
            Ṽ: "V\u0303",
            Ẃ: "W\u0301",
            Ẁ: "W\u0300",
            Ẅ: "W\u0308",
            Ŵ: "W\u0302",
            Ẇ: "W\u0307",
            Ẍ: "X\u0308",
            Ẋ: "X\u0307",
            Ý: "Y\u0301",
            Ỳ: "Y\u0300",
            Ÿ: "Y\u0308",
            Ỹ: "Y\u0303",
            Ȳ: "Y\u0304",
            Ŷ: "Y\u0302",
            Ẏ: "Y\u0307",
            Ź: "Z\u0301",
            Ž: "Z\u030C",
            Ẑ: "Z\u0302",
            Ż: "Z\u0307",
            ά: "\u03B1\u0301",
            ὰ: "\u03B1\u0300",
            ᾱ: "\u03B1\u0304",
            ᾰ: "\u03B1\u0306",
            έ: "\u03B5\u0301",
            ὲ: "\u03B5\u0300",
            ή: "\u03B7\u0301",
            ὴ: "\u03B7\u0300",
            ί: "\u03B9\u0301",
            ὶ: "\u03B9\u0300",
            ϊ: "\u03B9\u0308",
            ΐ: "\u03B9\u0308\u0301",
            ῒ: "\u03B9\u0308\u0300",
            ῑ: "\u03B9\u0304",
            ῐ: "\u03B9\u0306",
            ό: "\u03BF\u0301",
            ὸ: "\u03BF\u0300",
            ύ: "\u03C5\u0301",
            ὺ: "\u03C5\u0300",
            ϋ: "\u03C5\u0308",
            ΰ: "\u03C5\u0308\u0301",
            ῢ: "\u03C5\u0308\u0300",
            ῡ: "\u03C5\u0304",
            ῠ: "\u03C5\u0306",
            ώ: "\u03C9\u0301",
            ὼ: "\u03C9\u0300",
            Ύ: "\u03A5\u0301",
            Ὺ: "\u03A5\u0300",
            Ϋ: "\u03A5\u0308",
            Ῡ: "\u03A5\u0304",
            Ῠ: "\u03A5\u0306",
            Ώ: "\u03A9\u0301",
            Ὼ: "\u03A9\u0300",
          };
        class jc {
          constructor(c, d) {
            ((this.mode = void 0),
              (this.gullet = void 0),
              (this.settings = void 0),
              (this.leftrightDepth = void 0),
              (this.nextToken = void 0),
              (this.mode = "math"),
              (this.gullet = new XC(c, d, this.mode)),
              (this.settings = d),
              (this.leftrightDepth = 0));
          }
          expect(c, d) {
            if ((d === void 0 && (d = !0), this.fetch().text !== c))
              throw new r(
                "Expected '" + c + "', got '" + this.fetch().text + "'",
                this.fetch(),
              );
            d && this.consume();
          }
          consume() {
            this.nextToken = null;
          }
          fetch() {
            return (
              this.nextToken == null &&
                (this.nextToken = this.gullet.expandNextToken()),
              this.nextToken
            );
          }
          switchMode(c) {
            ((this.mode = c), this.gullet.switchMode(c));
          }
          parse() {
            (this.settings.globalGroup || this.gullet.beginGroup(),
              this.settings.colorIsTextColor &&
                this.gullet.macros.set("\\color", "\\textcolor"));
            try {
              let c = this.parseExpression(!1);
              return (
                this.expect("EOF"),
                this.settings.globalGroup || this.gullet.endGroup(),
                c
              );
            } finally {
              this.gullet.endGroups();
            }
          }
          subparse(c) {
            let d = this.nextToken;
            (this.consume(),
              this.gullet.pushToken(new Yn("}")),
              this.gullet.pushTokens(c));
            let g = this.parseExpression(!1);
            return (this.expect("}"), (this.nextToken = d), g);
          }
          parseExpression(c, d) {
            let g = [];
            for (;;) {
              this.mode === "math" && this.consumeSpaces();
              let w = this.fetch();
              if (
                jc.endOfExpression.indexOf(w.text) !== -1 ||
                (d && w.text === d) ||
                (c && _o[w.text] && _o[w.text].infix)
              )
                break;
              let S = this.parseAtom(d);
              if (S) {
                if (S.type === "internal") continue;
              } else break;
              g.push(S);
            }
            return (
              this.mode === "text" && this.formLigatures(g),
              this.handleInfixNodes(g)
            );
          }
          handleInfixNodes(c) {
            let d = -1,
              g;
            for (let w = 0; w < c.length; w++)
              if (c[w].type === "infix") {
                if (d !== -1)
                  throw new r("only one infix operator per group", c[w].token);
                ((d = w), (g = c[w].replaceWith));
              }
            if (d !== -1 && g) {
              let w,
                S,
                C = c.slice(0, d),
                F = c.slice(d + 1);
              (C.length === 1 && C[0].type === "ordgroup"
                ? (w = C[0])
                : (w = { type: "ordgroup", mode: this.mode, body: C }),
                F.length === 1 && F[0].type === "ordgroup"
                  ? (S = F[0])
                  : (S = { type: "ordgroup", mode: this.mode, body: F }));
              let L;
              return (
                g === "\\\\abovefrac"
                  ? (L = this.callFunction(g, [w, c[d], S], []))
                  : (L = this.callFunction(g, [w, S], [])),
                [L]
              );
            } else return c;
          }
          handleSupSubscript(c) {
            let d = this.fetch(),
              g = d.text;
            (this.consume(), this.consumeSpaces());
            let w;
            do {
              var S;
              w = this.parseGroup(c);
            } while (((S = w) == null ? void 0 : S.type) === "internal");
            if (!w) throw new r("Expected group after '" + g + "'", d);
            return w;
          }
          formatUnsupportedCmd(c) {
            let d = [];
            for (let S = 0; S < c.length; S++)
              d.push({ type: "textord", mode: "text", text: c[S] });
            let g = { type: "text", mode: this.mode, body: d };
            return {
              type: "color",
              mode: this.mode,
              color: this.settings.errorColor,
              body: [g],
            };
          }
          parseAtom(c) {
            let d = this.parseGroup("atom", c);
            if (d?.type === "internal" || this.mode === "text") return d;
            let g, w;
            for (;;) {
              this.consumeSpaces();
              let S = this.fetch();
              if (S.text === "\\limits" || S.text === "\\nolimits") {
                if (d && d.type === "op") {
                  let C = S.text === "\\limits";
                  ((d.limits = C), (d.alwaysHandleSupSub = !0));
                } else if (d && d.type === "operatorname")
                  d.alwaysHandleSupSub && (d.limits = S.text === "\\limits");
                else
                  throw new r("Limit controls must follow a math operator", S);
                this.consume();
              } else if (S.text === "^") {
                if (g) throw new r("Double superscript", S);
                g = this.handleSupSubscript("superscript");
              } else if (S.text === "_") {
                if (w) throw new r("Double subscript", S);
                w = this.handleSupSubscript("subscript");
              } else if (S.text === "'") {
                if (g) throw new r("Double superscript", S);
                let C = { type: "textord", mode: this.mode, text: "\\prime" },
                  F = [C];
                for (this.consume(); this.fetch().text === "'"; )
                  (F.push(C), this.consume());
                (this.fetch().text === "^" &&
                  F.push(this.handleSupSubscript("superscript")),
                  (g = { type: "ordgroup", mode: this.mode, body: F }));
              } else if (Vc[S.text]) {
                let C = G8.test(S.text),
                  F = [];
                for (F.push(new Yn(Vc[S.text])), this.consume(); ; ) {
                  let $ = this.fetch().text;
                  if (!Vc[$] || G8.test($) !== C) break;
                  (F.unshift(new Yn(Vc[$])), this.consume());
                }
                let L = this.subparse(F);
                C
                  ? (w = { type: "ordgroup", mode: "math", body: L })
                  : (g = { type: "ordgroup", mode: "math", body: L });
              } else break;
            }
            return g || w
              ? { type: "supsub", mode: this.mode, base: d, sup: g, sub: w }
              : d;
          }
          parseFunction(c, d) {
            let g = this.fetch(),
              w = g.text,
              S = _o[w];
            if (!S) return null;
            if ((this.consume(), d && d !== "atom" && !S.allowedInArgument))
              throw new r(
                "Got function '" +
                  w +
                  "' with no arguments" +
                  (d ? " as " + d : ""),
                g,
              );
            if (this.mode === "text" && !S.allowedInText)
              throw new r("Can't use function '" + w + "' in text mode", g);
            if (this.mode === "math" && S.allowedInMath === !1)
              throw new r("Can't use function '" + w + "' in math mode", g);
            let { args: C, optArgs: F } = this.parseArguments(w, S);
            return this.callFunction(w, C, F, g, c);
          }
          callFunction(c, d, g, w, S) {
            let C = {
                funcName: c,
                parser: this,
                token: w,
                breakOnTokenText: S,
              },
              F = _o[c];
            if (F && F.handler) return F.handler(C, d, g);
            throw new r("No function handler for " + c);
          }
          parseArguments(c, d) {
            let g = d.numArgs + d.numOptionalArgs;
            if (g === 0) return { args: [], optArgs: [] };
            let w = [],
              S = [];
            for (let C = 0; C < g; C++) {
              let F = d.argTypes && d.argTypes[C],
                L = C < d.numOptionalArgs;
              ((d.primitive && F == null) ||
                (d.type === "sqrt" && C === 1 && S[0] == null)) &&
                (F = "primitive");
              let $ = this.parseGroupOfType("argument to '" + c + "'", F, L);
              if (L) S.push($);
              else if ($ != null) w.push($);
              else throw new r("Null argument, please report this as a bug");
            }
            return { args: w, optArgs: S };
          }
          parseGroupOfType(c, d, g) {
            switch (d) {
              case "color":
                return this.parseColorGroup(g);
              case "size":
                return this.parseSizeGroup(g);
              case "url":
                return this.parseUrlGroup(g);
              case "math":
              case "text":
                return this.parseArgumentGroup(g, d);
              case "hbox": {
                let w = this.parseArgumentGroup(g, "text");
                return w != null
                  ? { type: "styling", mode: w.mode, body: [w], style: "text" }
                  : null;
              }
              case "raw": {
                let w = this.parseStringGroup("raw", g);
                return w != null
                  ? { type: "raw", mode: "text", string: w.text }
                  : null;
              }
              case "primitive": {
                if (g) throw new r("A primitive argument cannot be optional");
                let w = this.parseGroup(c);
                if (w == null)
                  throw new r("Expected group as " + c, this.fetch());
                return w;
              }
              case "original":
              case null:
              case void 0:
                return this.parseArgumentGroup(g);
              default:
                throw new r("Unknown group type as " + c, this.fetch());
            }
          }
          consumeSpaces() {
            for (; this.fetch().text === " "; ) this.consume();
          }
          parseStringGroup(c, d) {
            let g = this.gullet.scanArgument(d);
            if (g == null) return null;
            let w = "",
              S;
            for (; (S = this.fetch()).text !== "EOF"; )
              ((w += S.text), this.consume());
            return (this.consume(), (g.text = w), g);
          }
          parseRegexGroup(c, d) {
            let g = this.fetch(),
              w = g,
              S = "",
              C;
            for (; (C = this.fetch()).text !== "EOF" && c.test(S + C.text); )
              ((w = C), (S += w.text), this.consume());
            if (S === "") throw new r("Invalid " + d + ": '" + g.text + "'", g);
            return g.range(w, S);
          }
          parseColorGroup(c) {
            let d = this.parseStringGroup("color", c);
            if (d == null) return null;
            let g =
              /^(#[a-f0-9]{3,4}|#[a-f0-9]{6}|#[a-f0-9]{8}|[a-f0-9]{6}|[a-z]+)$/i.exec(
                d.text,
              );
            if (!g) throw new r("Invalid color: '" + d.text + "'", d);
            let w = g[0];
            return (
              /^[0-9a-f]{6}$/i.test(w) && (w = "#" + w),
              { type: "color-token", mode: this.mode, color: w }
            );
          }
          parseSizeGroup(c) {
            let d,
              g = !1;
            if (
              (this.gullet.consumeSpaces(),
              !c && this.gullet.future().text !== "{"
                ? (d = this.parseRegexGroup(
                    /^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,
                    "size",
                  ))
                : (d = this.parseStringGroup("size", c)),
              !d)
            )
              return null;
            !c && d.text.length === 0 && ((d.text = "0pt"), (g = !0));
            let w = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(d.text);
            if (!w) throw new r("Invalid size: '" + d.text + "'", d);
            let S = { number: +(w[1] + w[2]), unit: w[3] };
            if (!N5(S)) throw new r("Invalid unit: '" + S.unit + "'", d);
            return { type: "size", mode: this.mode, value: S, isBlank: g };
          }
          parseUrlGroup(c) {
            (this.gullet.lexer.setCatcode("%", 13),
              this.gullet.lexer.setCatcode("~", 12));
            let d = this.parseStringGroup("url", c);
            if (
              (this.gullet.lexer.setCatcode("%", 14),
              this.gullet.lexer.setCatcode("~", 13),
              d == null)
            )
              return null;
            let g = d.text.replace(/\\([#$%&~_^{}])/g, "$1");
            return { type: "url", mode: this.mode, url: g };
          }
          parseArgumentGroup(c, d) {
            let g = this.gullet.scanArgument(c);
            if (g == null) return null;
            let w = this.mode;
            (d && this.switchMode(d), this.gullet.beginGroup());
            let S = this.parseExpression(!1, "EOF");
            (this.expect("EOF"), this.gullet.endGroup());
            let C = { type: "ordgroup", mode: this.mode, loc: g.loc, body: S };
            return (d && this.switchMode(w), C);
          }
          parseGroup(c, d) {
            let g = this.fetch(),
              w = g.text,
              S;
            if (w === "{" || w === "\\begingroup") {
              this.consume();
              let C = w === "{" ? "}" : "\\endgroup";
              this.gullet.beginGroup();
              let F = this.parseExpression(!1, C),
                L = this.fetch();
              (this.expect(C),
                this.gullet.endGroup(),
                (S = {
                  type: "ordgroup",
                  mode: this.mode,
                  loc: Ln.range(g, L),
                  body: F,
                  semisimple: w === "\\begingroup" || void 0,
                }));
            } else if (
              ((S = this.parseFunction(d, c) || this.parseSymbol()),
              S == null && w[0] === "\\" && !j8.hasOwnProperty(w))
            ) {
              if (this.settings.throwOnError)
                throw new r("Undefined control sequence: " + w, g);
              ((S = this.formatUnsupportedCmd(w)), this.consume());
            }
            return S;
          }
          formLigatures(c) {
            let d = c.length - 1;
            for (let g = 0; g < d; ++g) {
              let w = c[g],
                S = w.text;
              (S === "-" &&
                c[g + 1].text === "-" &&
                (g + 1 < d && c[g + 2].text === "-"
                  ? (c.splice(g, 3, {
                      type: "textord",
                      mode: "text",
                      loc: Ln.range(w, c[g + 2]),
                      text: "---",
                    }),
                    (d -= 2))
                  : (c.splice(g, 2, {
                      type: "textord",
                      mode: "text",
                      loc: Ln.range(w, c[g + 1]),
                      text: "--",
                    }),
                    (d -= 1))),
                (S === "'" || S === "`") &&
                  c[g + 1].text === S &&
                  (c.splice(g, 2, {
                    type: "textord",
                    mode: "text",
                    loc: Ln.range(w, c[g + 1]),
                    text: S + S,
                  }),
                  (d -= 1)));
            }
          }
          parseSymbol() {
            let c = this.fetch(),
              d = c.text;
            if (/^\\verb[^a-zA-Z]/.test(d)) {
              this.consume();
              let S = d.slice(5),
                C = S.charAt(0) === "*";
              if (
                (C && (S = S.slice(1)),
                S.length < 2 || S.charAt(0) !== S.slice(-1))
              )
                throw new r(`\\verb assertion failed --
                    please report what input caused this bug`);
              return (
                (S = S.slice(1, -1)),
                { type: "verb", mode: "text", body: S, star: C }
              );
            }
            Y8.hasOwnProperty(d[0]) &&
              !It[this.mode][d[0]] &&
              (this.settings.strict &&
                this.mode === "math" &&
                this.settings.reportNonstrict(
                  "unicodeTextInMathMode",
                  'Accented Unicode text character "' +
                    d[0] +
                    '" used in math mode',
                  c,
                ),
              (d = Y8[d[0]] + d.slice(1)));
            let g = VC.exec(d);
            g &&
              ((d = d.substring(0, g.index)),
              d === "i" ? (d = "\u0131") : d === "j" && (d = "\u0237"));
            let w;
            if (It[this.mode][d]) {
              this.settings.strict &&
                this.mode === "math" &&
                Ip.indexOf(d) >= 0 &&
                this.settings.reportNonstrict(
                  "unicodeTextInMathMode",
                  'Latin-1/Unicode text character "' +
                    d[0] +
                    '" used in math mode',
                  c,
                );
              let S = It[this.mode][d].group,
                C = Ln.range(c),
                F;
              if (VE.hasOwnProperty(S)) {
                let L = S;
                F = {
                  type: "atom",
                  mode: this.mode,
                  family: L,
                  loc: C,
                  text: d,
                };
              } else F = { type: S, mode: this.mode, loc: C, text: d };
              w = F;
            } else if (d.charCodeAt(0) >= 128)
              (this.settings.strict &&
                (X(d.charCodeAt(0))
                  ? this.mode === "math" &&
                    this.settings.reportNonstrict(
                      "unicodeTextInMathMode",
                      'Unicode text character "' + d[0] + '" used in math mode',
                      c,
                    )
                  : this.settings.reportNonstrict(
                      "unknownSymbol",
                      'Unrecognized Unicode character "' +
                        d[0] +
                        '"' +
                        (" (" + d.charCodeAt(0) + ")"),
                      c,
                    )),
                (w = {
                  type: "textord",
                  mode: "text",
                  loc: Ln.range(c),
                  text: d,
                }));
            else return null;
            if ((this.consume(), g))
              for (let S = 0; S < g[0].length; S++) {
                let C = g[0][S];
                if (!lm[C]) throw new r("Unknown accent ' " + C + "'", c);
                let F = lm[C][this.mode] || lm[C].text;
                if (!F)
                  throw new r(
                    "Accent " + C + " unsupported in " + this.mode + " mode",
                    c,
                  );
                w = {
                  type: "accent",
                  mode: this.mode,
                  loc: Ln.range(c),
                  label: F,
                  isStretchy: !1,
                  isShifty: !0,
                  base: w,
                };
              }
            return w;
          }
        }
        jc.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"];
        var cm = function (f, c) {
          if (!(typeof f == "string" || f instanceof String))
            throw new TypeError("KaTeX can only parse string typed expression");
          let d = new jc(f, c);
          delete d.gullet.macros.current["\\df@tag"];
          let g = d.parse();
          if (
            (delete d.gullet.macros.current["\\current@color"],
            delete d.gullet.macros.current["\\color"],
            d.gullet.macros.get("\\df@tag"))
          ) {
            if (!c.displayMode)
              throw new r("\\tag works only in display equations");
            g = [
              {
                type: "tag",
                mode: "text",
                body: g,
                tag: d.subparse([new Yn("\\df@tag")]),
              },
            ];
          }
          return g;
        };
        let X8 = function (f, c, d) {
          c.textContent = "";
          let g = fm(f, d).toNode();
          c.appendChild(g);
        };
        typeof document < "u" &&
          document.compatMode !== "CSS1Compat" &&
          (typeof console < "u" &&
            console.warn(
              "Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype.",
            ),
          (X8 = function () {
            throw new r("KaTeX doesn't work in quirks mode.");
          }));
        let WC = function (f, c) {
            return fm(f, c).toMarkup();
          },
          KC = function (f, c) {
            let d = new k(c);
            return cm(f, d);
          },
          W8 = function (f, c, d) {
            if (d.throwOnError || !(f instanceof r)) throw f;
            let g = J.makeSpan(["katex-error"], [new tr(c)]);
            return (
              g.setAttribute("title", f.toString()),
              g.setAttribute("style", "color:" + d.errorColor),
              g
            );
          },
          fm = function (f, c) {
            let d = new k(c);
            try {
              let g = cm(f, d);
              return fC(g, f, d);
            } catch (g) {
              return W8(g, f, d);
            }
          };
        var ZC = {
            version: "0.16.27",
            render: X8,
            renderToString: WC,
            ParseError: r,
            SETTINGS_SCHEMA: y,
            __parse: KC,
            __renderToDomTree: fm,
            __renderToHTMLTree: function (f, c) {
              let d = new k(c);
              try {
                let g = cm(f, d);
                return hC(g, f, d);
              } catch (g) {
                return W8(g, f, d);
              }
            },
            __setFontMetrics: St,
            __defineSymbol: _,
            __defineFunction: be,
            __defineMacro: q,
            __domTree: {
              Span: ia,
              Anchor: Np,
              SymbolNode: tr,
              SvgNode: qi,
              PathNode: yo,
              LineNode: Dp,
            },
          },
          JC = ZC;
        return ((t = t.default), t);
      })();
    });
  });
  var SE = J8((Mc) => {
    "use strict";
    var DU =
      (Mc && Mc.__importDefault) ||
      function (e) {
        return e && e.__esModule ? e : { default: e };
      };
    Object.defineProperty(Mc, "__esModule", { value: !0 });
    var IU = DU(xE());
    function yE(e, t) {
      let n = e.src[t - 1],
        r = e.src[t],
        i = e.src[t + 1];
      if (r !== "$") return { can_open: !1, can_close: !1 };
      let o = !1,
        s = !1;
      return (
        n !== "$" &&
          n !== "\\" &&
          (n === void 0 || wE(n) || !vE(n)) &&
          (o = !0),
        i !== "$" && (i == null || wE(i) || !vE(i)) && (s = !0),
        { can_open: o, can_close: s }
      );
    }
    function wE(e) {
      return /^\s$/u.test(e);
    }
    function vE(e) {
      return /^[\w\d]$/u.test(e);
    }
    function _E(e, t) {
      let n = e.src[t - 1],
        r = e.src[t],
        i = e.src[t + 1],
        o = e.src[t + 2];
      return r === "$" && n !== "$" && n !== "\\" && i === "$" && o !== "$"
        ? { can_open: !0, can_close: !0 }
        : { can_open: !1, can_close: !1 };
    }
    function FU(e, t) {
      if (e.src[e.pos] !== "$") return !1;
      let n = e.tokens.at(-1);
      if (n?.type === "html_inline" && /^<\w+.+[^/]>$/.test(n.content))
        return !1;
      let r = yE(e, e.pos);
      if (!r.can_open) return (t || (e.pending += "$"), (e.pos += 1), !0);
      let i = e.pos + 1,
        o = i,
        s;
      for (; (o = e.src.indexOf("$", o)) !== -1; ) {
        for (s = o - 1; e.src[s] === "\\"; ) s -= 1;
        if ((o - s) % 2 == 1) break;
        o += 1;
      }
      if (o === -1) return (t || (e.pending += "$"), (e.pos = i), !0);
      if (o - i === 0) return (t || (e.pending += "$$"), (e.pos = i + 1), !0);
      if (((r = yE(e, o)), !r.can_close))
        return (t || (e.pending += "$"), (e.pos = i), !0);
      if (!t) {
        let u = e.push("math_inline", "math", 0);
        ((u.markup = "$"), (u.content = e.src.slice(i, o)));
      }
      return ((e.pos = o + 1), !0);
    }
    function qU(e, t, n, r) {
      let i = !1,
        o = e.bMarks[t] + e.tShift[t],
        s = e.eMarks[t];
      if (o + 2 > s || e.src.slice(o, o + 2) !== "$$") return !1;
      o += 2;
      let u = e.src.slice(o, s),
        a = [...u.matchAll(/\$\$/g)];
      if (a.length === 1 && a[0].index === u.length - 2)
        ((u = u.trim().slice(0, -2)), (i = !0));
      else if (a.length > 1) return !1;
      if (r) return !0;
      let l, h, m;
      for (
        h = t;
        !i &&
        (h++,
        !(
          h >= n ||
          ((o = e.bMarks[h] + e.tShift[h]),
          (s = e.eMarks[h]),
          o < s && e.tShift[h] < e.blkIndent)
        ));
      )
        e.src.slice(o, s).trim().slice(-2) === "$$"
          ? ((m = e.src.slice(0, s).lastIndexOf("$$")),
            (l = e.src.slice(o, m)),
            (i = !0))
          : e.src.slice(o, s).trim().includes("$$") &&
            ((m = e.src.slice(0, s).trim().indexOf("$$")),
            (l = e.src.slice(o, m)),
            (i = !0));
      e.line = h + 1;
      let p = e.push("math_block", "math", 0);
      return (
        (p.block = !0),
        (p.content =
          (u && u.trim()
            ? u +
              `
`
            : "") +
          e.getLines(t + 1, h, e.tShift[t], !0) +
          (l && l.trim() ? l : "")),
        (p.map = [t, e.line]),
        (p.markup = "$$"),
        !0
      );
    }
    function LU(e, t, n, r) {
      let i = e.bMarks[t] + e.tShift[t],
        o = e.eMarks[t];
      if (!e.src.slice(i, o).match(/^\s*\\begin\s*\{([^{}]+)\}/)) return !1;
      if (t > 0) {
        let b = e.bMarks[t - 1] + e.tShift[t - 1],
          x = e.eMarks[t - 1],
          y = e.src.slice(b, x);
        if (!/^\s*$/.test(y)) return !1;
      }
      if (r) return !0;
      let a = [],
        l = t,
        h,
        m = !1;
      e: for (; !m && !(l >= n); l++) {
        let b = e.bMarks[l] + e.tShift[l],
          x = e.eMarks[l];
        if (b < x && e.tShift[l] < e.blkIndent) break;
        let y = e.src.slice(b, x);
        for (let v of y.matchAll(/(\\begin|\\end)\s*\{([^{}]+)\}/g))
          if (v[1] === "\\begin") a.push(v[2].trim());
          else if (v[1] === "\\end" && (a.pop(), !a.length)) {
            ((h = e.src.slice(b, x)), (m = !0));
            break e;
          }
      }
      e.line = l + 1;
      let p = e.push("math_block", "math", 0);
      return (
        (p.block = !0),
        (p.content = (e.getLines(t, l, e.tShift[t], !0) + (h ?? "")).trim()),
        (p.map = [t, e.line]),
        (p.markup = "$$"),
        !0
      );
    }
    function OU(e, t) {
      var n, r, i, o, s;
      if (e.src.slice(e.pos, e.pos + 2) !== "$$") return !1;
      if (((o = _E(e, e.pos)), !o.can_open))
        return (t || (e.pending += "$$"), (e.pos += 2), !0);
      for (n = e.pos + 2, r = n; (r = e.src.indexOf("$$", r)) !== -1; ) {
        for (s = r - 1; e.src[s] === "\\"; ) s -= 1;
        if ((r - s) % 2 == 1) break;
        r += 2;
      }
      return r === -1
        ? (t || (e.pending += "$$"), (e.pos = n), !0)
        : r - n === 0
          ? (t || (e.pending += "$$$$"), (e.pos = n + 2), !0)
          : ((o = _E(e, r)),
            o.can_close
              ? (t ||
                  ((i = e.push("math_block", "math", 0)),
                  (i.block = !0),
                  (i.markup = "$$"),
                  (i.content = e.src.slice(n, r))),
                (e.pos = r + 2),
                !0)
              : (t || (e.pending += "$$"), (e.pos = n), !0));
    }
    function BU(e, t) {
      let n = e.src.slice(e.pos);
      if (!/^\n\\begin/.test(n)) return !1;
      if (((e.pos += 1), t)) return !0;
      let r = n.split(/\n/g).slice(1),
        i,
        o = [];
      e: for (var s = 0; s < r.length; ++s) {
        let l = r[s];
        for (let h of l.matchAll(/(\\begin|\\end)\s*\{([^{}]+)\}/g))
          if (h[1] === "\\begin") o.push(h[2].trim());
          else if (h[1] === "\\end" && (o.pop(), !o.length)) {
            i = s;
            break e;
          }
      }
      if (typeof i > "u") return !1;
      let u = r.slice(0, i + 1).reduce((l, h) => l + h.length, 0) + i + 1,
        a = e.push("math_inline_bare_block", "math", 0);
      return (
        (a.block = !0),
        (a.markup = "$$"),
        (a.content = n.slice(1, u)),
        (e.pos = e.pos + u),
        !0
      );
    }
    function kE(e, t, n, r) {
      let i = e.tokens;
      for (let o = i.length - 1; o >= 0; o--) {
        let s = i[o],
          u = [];
        if (s.type !== "html_block") continue;
        let a = s.content;
        for (let l of a.matchAll(r)) {
          if (!l.groups) continue;
          let h = l.groups.html_before_math,
            m = l.groups.math,
            p = l.groups.html_after_math;
          (h && u.push({ ...s, type: "html_block", map: null, content: h }),
            m &&
              u.push({
                ...s,
                type: t,
                map: null,
                content: m,
                markup: n,
                block: !0,
                tag: "math",
              }),
            p && u.push({ ...s, type: "html_block", map: null, content: p }));
        }
        u.length > 0 && i.splice(o, 1, ...u);
      }
      return !0;
    }
    function Ap(e) {
      return e
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;")
        .replace(/'/g, "&#039;");
    }
    function zU(e, t) {
      let n = t?.katex ?? IU.default,
        r = t?.enableBareBlocks,
        i = t?.enableMathBlockInHtml,
        o = t?.enableMathInlineInHtml,
        s = t?.enableFencedBlocks;
      (e.inline.ruler.after("escape", "math_inline", FU),
        e.inline.ruler.after("escape", "math_inline_block", OU),
        r && e.inline.ruler.before("text", "math_inline_bare_block", BU),
        e.block.ruler.after(
          "blockquote",
          "math_block",
          (b, x, y, v) => (r && LU(b, x, y, v) ? !0 : qU(b, x, y, v)),
          { alt: ["paragraph", "reference", "blockquote", "list"] },
        ));
      let u =
          /(?<html_before_math>[\s\S]*?)\$\$(?<math>[\s\S]+?)\$\$(?<html_after_math>(?:(?!\$\$[\s\S]+?\$\$)[\s\S])*)/gm,
        a =
          /(?<html_before_math>[\s\S]*?)\$(?<math>.*?)\$(?<html_after_math>(?:(?!\$.*?\$)[\s\S])*)/gm;
      (i &&
        e.core.ruler.push("math_block_in_html_block", (b) =>
          kE(b, "math_block", "$$", u),
        ),
        o &&
          e.core.ruler.push("math_inline_in_html_block", (b) =>
            kE(b, "math_inline", "$", a),
          ));
      let l = (b) => {
          let x = /\\begin\{(align|equation|gather|cd|alignat)\}/gi.test(b);
          try {
            return n.renderToString(b, { ...t, displayMode: x });
          } catch (y) {
            return (
              t?.throwOnError && console.log(y),
              `<span class="katex-error" title="${Ap(b)}">${Ap(y + "")}</span>`
            );
          }
        },
        h = (b, x) => {
          let y = b[x].content,
            k =
              y.length > 2 && y[0] === "`" && y[y.length - 1] === "`"
                ? y.slice(1, -1)
                : y;
          return l(k);
        },
        m = (b) => {
          try {
            return `<p class="katex-block">${n.renderToString(b, { ...t, displayMode: !0 })}</p>`;
          } catch (x) {
            return (
              t?.throwOnError && console.log(x),
              `<p class="katex-block katex-error" title="${Ap(b)}">${Ap(x + "")}</p>`
            );
          }
        },
        p = (b, x) =>
          m(b[x].content) +
          `
`;
      if (
        ((e.renderer.rules.math_inline = h),
        (e.renderer.rules.math_inline_block = p),
        (e.renderer.rules.math_inline_bare_block = p),
        (e.renderer.rules.math_block = p),
        s)
      ) {
        let b = "math",
          x = e.renderer.rules.fence;
        e.renderer.rules.fence = function (y, v, k, T, E) {
          let M = y[v];
          return M.info.trim().toLowerCase() === b && s
            ? m(M.content) +
                `
`
            : x?.call(this, y, v, k, T, E) || "";
        };
      }
    }
    Mc.default = zU;
  });
  var Z3 = {};
  ca(Z3, {
    Adder: () => ct,
    Delaunay: () => Wa,
    FormatSpecifier: () => Za,
    InternMap: () => kr,
    InternSet: () => Bn,
    Node: () => li,
    Path: () => Ki,
    Voronoi: () => B0,
    ZoomTransform: () => br,
    active: () => ax,
    arc: () => hS,
    area: () => E1,
    areaRadial: () => H3,
    ascending: () => je,
    autoType: () => z2,
    axisBottom: () => Mb,
    axisLeft: () => Tb,
    axisRight: () => Ab,
    axisTop: () => Sb,
    bin: () => Kc,
    bisect: () => On,
    bisectCenter: () => nb,
    bisectLeft: () => tb,
    bisectRight: () => dm,
    bisector: () => ko,
    blob: () => ny,
    blur: () => rb,
    blur2: () => Yc,
    blurImage: () => ib,
    brush: () => xx,
    brushSelection: () => mx,
    brushX: () => gx,
    brushY: () => bx,
    buffer: () => ry,
    chord: () => wx,
    chordDirected: () => _x,
    chordTranspose: () => vx,
    cluster: () => mv,
    color: () => ar,
    contourDensity: () => Lx,
    contours: () => ja,
    count: () => Pi,
    create: () => b7,
    creator: () => So,
    cross: () => mm,
    csv: () => oy,
    csvFormat: () => jx,
    csvFormatBody: () => Gx,
    csvFormatRow: () => Xx,
    csvFormatRows: () => Yx,
    csvFormatValue: () => Wx,
    csvParse: () => Gf,
    csvParseRows: () => Vx,
    cubehelix: () => gn,
    cumsum: () => gm,
    curveBasis: () => AS,
    curveBasisClosed: () => TS,
    curveBasisOpen: () => CS,
    curveBumpX: () => D1,
    curveBumpY: () => I1,
    curveBundle: () => DS,
    curveCardinal: () => IS,
    curveCardinalClosed: () => FS,
    curveCardinalOpen: () => qS,
    curveCatmullRom: () => OS,
    curveCatmullRomClosed: () => zS,
    curveCatmullRomOpen: () => PS,
    curveLinear: () => Zo,
    curveLinearClosed: () => HS,
    curveMonotoneX: () => XS,
    curveMonotoneY: () => WS,
    curveNatural: () => JS,
    curveStep: () => QS,
    curveStepAfter: () => tA,
    curveStepBefore: () => eA,
    descending: () => fa,
    deviation: () => da,
    difference: () => Pm,
    disjoint: () => $m,
    dispatch: () => ur,
    drag: () => v7,
    dragDisable: () => To,
    dragEnable: () => Eo,
    dsv: () => R2,
    dsvFormat: () => zo,
    easeBack: () => b2,
    easeBackIn: () => rx,
    easeBackInOut: () => b2,
    easeBackOut: () => ix,
    easeBounce: () => Zs,
    easeBounceIn: () => tx,
    easeBounceInOut: () => nx,
    easeBounceOut: () => Zs,
    easeCircle: () => p2,
    easeCircleIn: () => Q9,
    easeCircleInOut: () => p2,
    easeCircleOut: () => ex,
    easeCubic: () => $a,
    easeCubicIn: () => U9,
    easeCubicInOut: () => $a,
    easeCubicOut: () => V9,
    easeElastic: () => w2,
    easeElasticIn: () => ox,
    easeElasticInOut: () => sx,
    easeElasticOut: () => w2,
    easeExp: () => d2,
    easeExpIn: () => Z9,
    easeExpInOut: () => d2,
    easeExpOut: () => J9,
    easeLinear: () => P9,
    easePoly: () => f2,
    easePolyIn: () => j9,
    easePolyInOut: () => f2,
    easePolyOut: () => G9,
    easeQuad: () => l2,
    easeQuadIn: () => $9,
    easeQuadInOut: () => l2,
    easeQuadOut: () => H9,
    easeSin: () => h2,
    easeSinIn: () => W9,
    easeSinInOut: () => h2,
    easeSinOut: () => K9,
    every: () => qm,
    extent: () => $i,
    fcumsum: () => ub,
    filter: () => Om,
    flatGroup: () => hb,
    flatRollup: () => db,
    forceCenter: () => hy,
    forceCollide: () => Dy,
    forceLink: () => Fy,
    forceManyBody: () => zy,
    forceRadial: () => Ry,
    forceSimulation: () => By,
    forceX: () => Py,
    forceY: () => $y,
    format: () => H0,
    formatDefaultLocale: () => Kf,
    formatLocale: () => Xf,
    formatPrefix: () => Qa,
    formatSpecifier: () => Nr,
    fsum: () => sb,
    geoAlbers: () => qh,
    geoAlbersUsa: () => tv,
    geoArea: () => tw,
    geoAzimuthalEqualArea: () => nv,
    geoAzimuthalEqualAreaRaw: () => Oh,
    geoAzimuthalEquidistant: () => rv,
    geoAzimuthalEquidistantRaw: () => Bh,
    geoBounds: () => lw,
    geoCentroid: () => mw,
    geoCircle: () => ww,
    geoClipAntimeridian: () => ll,
    geoClipCircle: () => wh,
    geoClipExtent: () => kw,
    geoClipRectangle: () => no,
    geoConicConformal: () => ov,
    geoConicConformalRaw: () => A4,
    geoConicEqualArea: () => K0,
    geoConicEqualAreaRaw: () => k4,
    geoConicEquidistant: () => uv,
    geoConicEquidistantRaw: () => M4,
    geoContains: () => Nw,
    geoDistance: () => fu,
    geoEqualEarth: () => av,
    geoEqualEarthRaw: () => Ph,
    geoEquirectangular: () => sv,
    geoEquirectangularRaw: () => J0,
    geoGnomonic: () => lv,
    geoGnomonicRaw: () => $h,
    geoGraticule: () => Mh,
    geoGraticule10: () => Fw,
    geoIdentity: () => cv,
    geoInterpolate: () => qw,
    geoLength: () => Sh,
    geoMercator: () => iv,
    geoMercatorRaw: () => Z0,
    geoNaturalEarth1: () => fv,
    geoNaturalEarth1Raw: () => Hh,
    geoOrthographic: () => hv,
    geoOrthographicRaw: () => Uh,
    geoPath: () => Kw,
    geoProjection: () => Ht,
    geoProjectionMutator: () => gl,
    geoRotation: () => ph,
    geoStereographic: () => dv,
    geoStereographicRaw: () => Vh,
    geoStream: () => rn,
    geoTransform: () => Zw,
    geoTransverseMercator: () => pv,
    geoTransverseMercatorRaw: () => jh,
    gray: () => B7,
    greatest: () => ya,
    greatestIndex: () => Cm,
    group: () => pa,
    groupSort: () => wm,
    groups: () => xm,
    hcl: () => js,
    hierarchy: () => vl,
    histogram: () => Kc,
    hsl: () => Us,
    html: () => cy,
    image: () => uy,
    index: () => pb,
    indexes: () => mb,
    interpolate: () => bn,
    interpolateArray: () => W7,
    interpolateBasis: () => bf,
    interpolateBasisClosed: () => xf,
    interpolateBlues: () => Yk,
    interpolateBrBG: () => Mk,
    interpolateBuGn: () => Lk,
    interpolateBuPu: () => Ok,
    interpolateCividis: () => Qk,
    interpolateCool: () => nS,
    interpolateCubehelix: () => c9,
    interpolateCubehelixDefault: () => eS,
    interpolateCubehelixLong: () => E0,
    interpolateDate: () => vf,
    interpolateDiscrete: () => K7,
    interpolateGnBu: () => Bk,
    interpolateGreens: () => Xk,
    interpolateGreys: () => Wk,
    interpolateHcl: () => u9,
    interpolateHclLong: () => a9,
    interpolateHsl: () => i9,
    interpolateHslLong: () => o9,
    interpolateHue: () => Z7,
    interpolateInferno: () => aS,
    interpolateLab: () => s2,
    interpolateMagma: () => uS,
    interpolateNumber: () => tn,
    interpolateNumberArray: () => Ys,
    interpolateObject: () => _f,
    interpolateOrRd: () => zk,
    interpolateOranges: () => Jk,
    interpolatePRGn: () => Tk,
    interpolatePiYG: () => Ek,
    interpolatePlasma: () => lS,
    interpolatePuBu: () => Pk,
    interpolatePuBuGn: () => Rk,
    interpolatePuOr: () => Ck,
    interpolatePuRd: () => $k,
    interpolatePurples: () => Kk,
    interpolateRainbow: () => rS,
    interpolateRdBu: () => Nk,
    interpolateRdGy: () => Dk,
    interpolateRdPu: () => Hk,
    interpolateRdYlBu: () => Ik,
    interpolateRdYlGn: () => Fk,
    interpolateReds: () => Zk,
    interpolateRgb: () => Io,
    interpolateRgbBasis: () => yf,
    interpolateRgbBasisClosed: () => X7,
    interpolateRound: () => Fo,
    interpolateSinebow: () => iS,
    interpolateSpectral: () => qk,
    interpolateString: () => Xs,
    interpolateTransformCss: () => Af,
    interpolateTransformSvg: () => Mf,
    interpolateTurbo: () => oS,
    interpolateViridis: () => sS,
    interpolateWarm: () => tS,
    interpolateYlGn: () => Vk,
    interpolateYlGnBu: () => Uk,
    interpolateYlOrBr: () => jk,
    interpolateYlOrRd: () => Gk,
    interpolateZoom: () => Tf,
    interrupt: () => Er,
    intersection: () => Hm,
    interval: () => m9,
    isoFormat: () => hk,
    isoParse: () => dk,
    json: () => ay,
    lab: () => M0,
    lch: () => R7,
    least: () => Em,
    leastIndex: () => wa,
    line: () => Tu,
    lineRadial: () => $3,
    link: () => Rl,
    linkHorizontal: () => F1,
    linkRadial: () => vS,
    linkVertical: () => wS,
    local: () => uf,
    map: () => Bm,
    matcher: () => Ps,
    max: () => or,
    maxIndex: () => y0,
    mean: () => km,
    median: () => Sm,
    medianIndex: () => yb,
    merge: () => v0,
    min: () => Ar,
    minIndex: () => Vi,
    mode: () => Am,
    namespace: () => Jr,
    namespaces: () => Sa,
    nice: () => b0,
    now: () => qo,
    pack: () => Pv,
    packEnclose: () => Dv,
    packSiblings: () => Bv,
    pairs: () => Mm,
    partition: () => $v,
    path: () => Va,
    pathRound: () => Sx,
    permute: () => ma,
    pie: () => bS,
    piecewise: () => Fa,
    pointRadial: () => ps,
    pointer: () => en,
    pointers: () => x7,
    polygonArea: () => Kv,
    polygonCentroid: () => Zv,
    polygonContains: () => t_,
    polygonHull: () => e_,
    polygonLength: () => n_,
    precisionFixed: () => Zf,
    precisionPrefix: () => Jf,
    precisionRound: () => Qf,
    quadtree: () => Ro,
    quantile: () => Zr,
    quantileIndex: () => Jc,
    quantileSorted: () => Zc,
    quantize: () => f9,
    quickselect: () => w0,
    radialArea: () => H3,
    radialLine: () => $3,
    randomBates: () => s_,
    randomBernoulli: () => l_,
    randomBeta: () => Qh,
    randomBinomial: () => e1,
    randomCauchy: () => f_,
    randomExponential: () => u_,
    randomGamma: () => ku,
    randomGeometric: () => Jh,
    randomInt: () => i_,
    randomIrwinHall: () => Zh,
    randomLcg: () => R4,
    randomLogNormal: () => o_,
    randomLogistic: () => h_,
    randomNormal: () => _u,
    randomPareto: () => a_,
    randomPoisson: () => d_,
    randomUniform: () => r_,
    randomWeibull: () => c_,
    range: () => sr,
    rank: () => Tm,
    reduce: () => zm,
    reverse: () => Rm,
    rgb: () => Yi,
    ribbon: () => Ex,
    ribbonArrow: () => Cx,
    rollup: () => Xc,
    rollups: () => ym,
    scaleBand: () => kl,
    scaleDiverging: () => v1,
    scaleDivergingLog: () => c3,
    scaleDivergingPow: () => _1,
    scaleDivergingSqrt: () => mk,
    scaleDivergingSymlog: () => f3,
    scaleIdentity: () => r1,
    scaleImplicit: () => t1,
    scaleLinear: () => n1,
    scaleLog: () => i1,
    scaleOrdinal: () => Go,
    scalePoint: () => g_,
    scalePow: () => Cl,
    scaleQuantile: () => u1,
    scaleQuantize: () => a1,
    scaleRadial: () => s1,
    scaleSequential: () => b1,
    scaleSequentialLog: () => a3,
    scaleSequentialPow: () => x1,
    scaleSequentialQuantile: () => y1,
    scaleSequentialSqrt: () => pk,
    scaleSequentialSymlog: () => l3,
    scaleSqrt: () => S_,
    scaleSymlog: () => o1,
    scaleThreshold: () => l1,
    scaleTime: () => s3,
    scaleUtc: () => u3,
    scan: () => Nm,
    schemeAccent: () => gk,
    schemeBlues: () => F3,
    schemeBrBG: () => h3,
    schemeBuGn: () => v3,
    schemeBuPu: () => _3,
    schemeCategory10: () => k1,
    schemeDark2: () => bk,
    schemeGnBu: () => k3,
    schemeGreens: () => q3,
    schemeGreys: () => L3,
    schemeObservable10: () => xk,
    schemeOrRd: () => S3,
    schemeOranges: () => z3,
    schemePRGn: () => d3,
    schemePaired: () => yk,
    schemePastel1: () => wk,
    schemePastel2: () => vk,
    schemePiYG: () => p3,
    schemePuBu: () => M3,
    schemePuBuGn: () => A3,
    schemePuOr: () => m3,
    schemePuRd: () => T3,
    schemePurples: () => O3,
    schemeRdBu: () => g3,
    schemeRdGy: () => b3,
    schemeRdPu: () => E3,
    schemeRdYlBu: () => x3,
    schemeRdYlGn: () => y3,
    schemeReds: () => B3,
    schemeSet1: () => _k,
    schemeSet2: () => kk,
    schemeSet3: () => Sk,
    schemeSpectral: () => w3,
    schemeTableau10: () => Ak,
    schemeYlGn: () => N3,
    schemeYlGnBu: () => C3,
    schemeYlOrBr: () => D3,
    schemeYlOrRd: () => I3,
    select: () => Tt,
    selectAll: () => y7,
    selection: () => Qr,
    selector: () => Ao,
    selectorAll: () => Rs,
    shuffle: () => wb,
    shuffler: () => Dm,
    some: () => Lm,
    sort: () => zs,
    stack: () => nA,
    stackOffsetDiverging: () => iA,
    stackOffsetExpand: () => rA,
    stackOffsetNone: () => Or,
    stackOffsetSilhouette: () => oA,
    stackOffsetWiggle: () => sA,
    stackOrderAppearance: () => K1,
    stackOrderAscending: () => Z1,
    stackOrderDescending: () => uA,
    stackOrderInsideOut: () => aA,
    stackOrderNone: () => Br,
    stackOrderReverse: () => lA,
    stratify: () => Vv,
    style: () => ji,
    subset: () => Um,
    sum: () => Im,
    superset: () => _a,
    svg: () => fy,
    symbol: () => Y3,
    symbolAsterisk: () => q1,
    symbolCircle: () => Nu,
    symbolCross: () => L1,
    symbolDiamond: () => O1,
    symbolDiamond2: () => B1,
    symbolPlus: () => z1,
    symbolSquare: () => R1,
    symbolSquare2: () => P1,
    symbolStar: () => $1,
    symbolTimes: () => Pl,
    symbolTriangle: () => H1,
    symbolTriangle2: () => U1,
    symbolWye: () => V1,
    symbolX: () => Pl,
    symbols: () => G3,
    symbolsFill: () => G3,
    symbolsStroke: () => SS,
    text: () => P0,
    thresholdFreedmanDiaconis: () => vm,
    thresholdScott: () => _m,
    thresholdSturges: () => x0,
    tickFormat: () => Sl,
    tickIncrement: () => Sr,
    tickStep: () => g0,
    ticks: () => zn,
    timeDay: () => di,
    timeDays: () => N_,
    timeFormat: () => Ol,
    timeFormatDefaultLocale: () => p1,
    timeFormatLocale: () => Ll,
    timeFriday: () => X4,
    timeFridays: () => z_,
    timeHour: () => os,
    timeHours: () => E_,
    timeInterval: () => ft,
    timeMillisecond: () => Xo,
    timeMilliseconds: () => V4,
    timeMinute: () => ns,
    timeMinutes: () => M_,
    timeMonday: () => as,
    timeMondays: () => q_,
    timeMonth: () => fs,
    timeMonths: () => G_,
    timeParse: () => i3,
    timeSaturday: () => W4,
    timeSaturdays: () => R_,
    timeSecond: () => Kn,
    timeSeconds: () => j4,
    timeSunday: () => pi,
    timeSundays: () => K4,
    timeThursday: () => io,
    timeThursdays: () => B_,
    timeTickInterval: () => d1,
    timeTicks: () => h1,
    timeTuesday: () => G4,
    timeTuesdays: () => L_,
    timeWednesday: () => Y4,
    timeWednesdays: () => O_,
    timeWeek: () => pi,
    timeWeeks: () => K4,
    timeYear: () => $n,
    timeYears: () => X_,
    timeout: () => za,
    timer: () => D0,
    timerFlush: () => a2,
    transition: () => Bf,
    transpose: () => va,
    tree: () => jv,
    treemap: () => Gv,
    treemapBinary: () => Yv,
    treemapDice: () => ci,
    treemapResquarify: () => Wv,
    treemapSlice: () => jo,
    treemapSliceDice: () => Xv,
    treemapSquarify: () => Kh,
    tsv: () => sy,
    tsvFormat: () => Zx,
    tsvFormatBody: () => Jx,
    tsvFormatRow: () => ey,
    tsvFormatRows: () => Qx,
    tsvFormatValue: () => ty,
    tsvParse: () => Yf,
    tsvParseRows: () => Kx,
    union: () => Vm,
    unixDay: () => Dl,
    unixDays: () => I_,
    utcDay: () => Wo,
    utcDays: () => D_,
    utcFormat: () => ds,
    utcFriday: () => Q4,
    utcFridays: () => V_,
    utcHour: () => ss,
    utcHours: () => C_,
    utcMillisecond: () => Xo,
    utcMilliseconds: () => V4,
    utcMinute: () => rs,
    utcMinutes: () => T_,
    utcMonday: () => cs,
    utcMondays: () => P_,
    utcMonth: () => hs,
    utcMonths: () => Y_,
    utcParse: () => Bl,
    utcSaturday: () => e3,
    utcSaturdays: () => j_,
    utcSecond: () => Kn,
    utcSeconds: () => j4,
    utcSunday: () => mi,
    utcSundays: () => t3,
    utcThursday: () => oo,
    utcThursdays: () => U_,
    utcTickInterval: () => f1,
    utcTicks: () => c1,
    utcTuesday: () => Z4,
    utcTuesdays: () => $_,
    utcWednesday: () => J4,
    utcWednesdays: () => H_,
    utcWeek: () => mi,
    utcWeeks: () => t3,
    utcYear: () => Hn,
    utcYears: () => W_,
    variance: () => ha,
    window: () => $s,
    xml: () => ly,
    zip: () => Fm,
    zoom: () => Q1,
    zoomIdentity: () => Jo,
    zoomTransform: () => xi,
  });
  function je(e, t) {
    return e == null || t == null
      ? NaN
      : e < t
        ? -1
        : e > t
          ? 1
          : e >= t
            ? 0
            : NaN;
  }
  function fa(e, t) {
    return e == null || t == null
      ? NaN
      : t < e
        ? -1
        : t > e
          ? 1
          : t >= e
            ? 0
            : NaN;
  }
  function ko(e) {
    let t, n, r;
    e.length !== 2
      ? ((t = je), (n = (u, a) => je(e(u), a)), (r = (u, a) => e(u) - a))
      : ((t = e === je || e === fa ? e : aN), (n = e), (r = e));
    function i(u, a, l = 0, h = u.length) {
      if (l < h) {
        if (t(a, a) !== 0) return h;
        do {
          let m = (l + h) >>> 1;
          n(u[m], a) < 0 ? (l = m + 1) : (h = m);
        } while (l < h);
      }
      return l;
    }
    function o(u, a, l = 0, h = u.length) {
      if (l < h) {
        if (t(a, a) !== 0) return h;
        do {
          let m = (l + h) >>> 1;
          n(u[m], a) <= 0 ? (l = m + 1) : (h = m);
        } while (l < h);
      }
      return l;
    }
    function s(u, a, l = 0, h = u.length) {
      let m = i(u, a, l, h - 1);
      return m > l && r(u[m - 1], a) > -r(u[m], a) ? m - 1 : m;
    }
    return { left: i, center: s, right: o };
  }
  function aN() {
    return 0;
  }
  function m0(e) {
    return e === null ? NaN : +e;
  }
  function* Q8(e, t) {
    if (t === void 0) for (let n of e) n != null && (n = +n) >= n && (yield n);
    else {
      let n = -1;
      for (let r of e) (r = t(r, ++n, e)) != null && (r = +r) >= r && (yield r);
    }
  }
  var eb = ko(je),
    dm = eb.right,
    tb = eb.left,
    nb = ko(m0).center,
    On = dm;
  function rb(e, t) {
    if (!((t = +t) >= 0)) throw new RangeError("invalid r");
    let n = e.length;
    if (!((n = Math.floor(n)) >= 0)) throw new RangeError("invalid length");
    if (!n || !t) return e;
    let r = pm(t),
      i = e.slice();
    return (r(e, i, 0, n, 1), r(i, e, 0, n, 1), r(e, i, 0, n, 1), e);
  }
  var Yc = ob(pm),
    ib = ob(lN);
  function ob(e) {
    return function (t, n, r = n) {
      if (!((n = +n) >= 0)) throw new RangeError("invalid rx");
      if (!((r = +r) >= 0)) throw new RangeError("invalid ry");
      let { data: i, width: o, height: s } = t;
      if (!((o = Math.floor(o)) >= 0)) throw new RangeError("invalid width");
      if (!((s = Math.floor(s !== void 0 ? s : i.length / o)) >= 0))
        throw new RangeError("invalid height");
      if (!o || !s || (!n && !r)) return t;
      let u = n && e(n),
        a = r && e(r),
        l = i.slice();
      return (
        u && a
          ? (Ls(u, l, i, o, s),
            Ls(u, i, l, o, s),
            Ls(u, l, i, o, s),
            Os(a, i, l, o, s),
            Os(a, l, i, o, s),
            Os(a, i, l, o, s))
          : u
            ? (Ls(u, i, l, o, s), Ls(u, l, i, o, s), Ls(u, i, l, o, s))
            : a && (Os(a, i, l, o, s), Os(a, l, i, o, s), Os(a, i, l, o, s)),
        t
      );
    };
  }
  function Ls(e, t, n, r, i) {
    for (let o = 0, s = r * i; o < s; ) e(t, n, o, (o += r), 1);
  }
  function Os(e, t, n, r, i) {
    for (let o = 0, s = r * i; o < r; ++o) e(t, n, o, o + s, r);
  }
  function lN(e) {
    let t = pm(e);
    return (n, r, i, o, s) => {
      ((i <<= 2),
        (o <<= 2),
        (s <<= 2),
        t(n, r, i + 0, o + 0, s),
        t(n, r, i + 1, o + 1, s),
        t(n, r, i + 2, o + 2, s),
        t(n, r, i + 3, o + 3, s));
    };
  }
  function pm(e) {
    let t = Math.floor(e);
    if (t === e) return cN(e);
    let n = e - t,
      r = 2 * e + 1;
    return (i, o, s, u, a) => {
      if (!((u -= a) >= s)) return;
      let l = t * o[s],
        h = a * t,
        m = h + a;
      for (let p = s, b = s + h; p < b; p += a) l += o[Math.min(u, p)];
      for (let p = s, b = u; p <= b; p += a)
        ((l += o[Math.min(u, p + h)]),
          (i[p] =
            (l + n * (o[Math.max(s, p - m)] + o[Math.min(u, p + m)])) / r),
          (l -= o[Math.max(s, p - h)]));
    };
  }
  function cN(e) {
    let t = 2 * e + 1;
    return (n, r, i, o, s) => {
      if (!((o -= s) >= i)) return;
      let u = e * r[i],
        a = s * e;
      for (let l = i, h = i + a; l < h; l += s) u += r[Math.min(o, l)];
      for (let l = i, h = o; l <= h; l += s)
        ((u += r[Math.min(o, l + a)]),
          (n[l] = u / t),
          (u -= r[Math.max(i, l - a)]));
    };
  }
  function Pi(e, t) {
    let n = 0;
    if (t === void 0) for (let r of e) r != null && (r = +r) >= r && ++n;
    else {
      let r = -1;
      for (let i of e) (i = t(i, ++r, e)) != null && (i = +i) >= i && ++n;
    }
    return n;
  }
  function fN(e) {
    return e.length | 0;
  }
  function hN(e) {
    return !(e > 0);
  }
  function dN(e) {
    return typeof e != "object" || "length" in e ? e : Array.from(e);
  }
  function pN(e) {
    return (t) => e(...t);
  }
  function mm(...e) {
    let t = typeof e[e.length - 1] == "function" && pN(e.pop());
    e = e.map(dN);
    let n = e.map(fN),
      r = e.length - 1,
      i = new Array(r + 1).fill(0),
      o = [];
    if (r < 0 || n.some(hN)) return o;
    for (;;) {
      o.push(i.map((u, a) => e[a][u]));
      let s = r;
      for (; ++i[s] === n[s]; ) {
        if (s === 0) return t ? o.map(t) : o;
        i[s--] = 0;
      }
    }
  }
  function gm(e, t) {
    var n = 0,
      r = 0;
    return Float64Array.from(
      e,
      t === void 0 ? (i) => (n += +i || 0) : (i) => (n += +t(i, r++, e) || 0),
    );
  }
  function ha(e, t) {
    let n = 0,
      r,
      i = 0,
      o = 0;
    if (t === void 0)
      for (let s of e)
        s != null &&
          (s = +s) >= s &&
          ((r = s - i), (i += r / ++n), (o += r * (s - i)));
    else {
      let s = -1;
      for (let u of e)
        (u = t(u, ++s, e)) != null &&
          (u = +u) >= u &&
          ((r = u - i), (i += r / ++n), (o += r * (u - i)));
    }
    if (n > 1) return o / (n - 1);
  }
  function da(e, t) {
    let n = ha(e, t);
    return n && Math.sqrt(n);
  }
  function $i(e, t) {
    let n, r;
    if (t === void 0)
      for (let i of e)
        i != null &&
          (n === void 0
            ? i >= i && (n = r = i)
            : (n > i && (n = i), r < i && (r = i)));
    else {
      let i = -1;
      for (let o of e)
        (o = t(o, ++i, e)) != null &&
          (n === void 0
            ? o >= o && (n = r = o)
            : (n > o && (n = o), r < o && (r = o)));
    }
    return [n, r];
  }
  var ct = class {
    constructor() {
      ((this._partials = new Float64Array(32)), (this._n = 0));
    }
    add(t) {
      let n = this._partials,
        r = 0;
      for (let i = 0; i < this._n && i < 32; i++) {
        let o = n[i],
          s = t + o,
          u = Math.abs(t) < Math.abs(o) ? t - (s - o) : o - (s - t);
        (u && (n[r++] = u), (t = s));
      }
      return ((n[r] = t), (this._n = r + 1), this);
    }
    valueOf() {
      let t = this._partials,
        n = this._n,
        r,
        i,
        o,
        s = 0;
      if (n > 0) {
        for (
          s = t[--n];
          n > 0 && ((r = s), (i = t[--n]), (s = r + i), (o = i - (s - r)), !o);
        );
        n > 0 &&
          ((o < 0 && t[n - 1] < 0) || (o > 0 && t[n - 1] > 0)) &&
          ((i = o * 2), (r = s + i), i == r - s && (s = r));
      }
      return s;
    }
  };
  function sb(e, t) {
    let n = new ct();
    if (t === void 0) for (let r of e) (r = +r) && n.add(r);
    else {
      let r = -1;
      for (let i of e) (i = +t(i, ++r, e)) && n.add(i);
    }
    return +n;
  }
  function ub(e, t) {
    let n = new ct(),
      r = -1;
    return Float64Array.from(
      e,
      t === void 0 ? (i) => n.add(+i || 0) : (i) => n.add(+t(i, ++r, e) || 0),
    );
  }
  var kr = class extends Map {
      constructor(t, n = cb) {
        if (
          (super(),
          Object.defineProperties(this, {
            _intern: { value: new Map() },
            _key: { value: n },
          }),
          t != null)
        )
          for (let [r, i] of t) this.set(r, i);
      }
      get(t) {
        return super.get(bm(this, t));
      }
      has(t) {
        return super.has(bm(this, t));
      }
      set(t, n) {
        return super.set(ab(this, t), n);
      }
      delete(t) {
        return super.delete(lb(this, t));
      }
    },
    Bn = class extends Set {
      constructor(t, n = cb) {
        if (
          (super(),
          Object.defineProperties(this, {
            _intern: { value: new Map() },
            _key: { value: n },
          }),
          t != null)
        )
          for (let r of t) this.add(r);
      }
      has(t) {
        return super.has(bm(this, t));
      }
      add(t) {
        return super.add(ab(this, t));
      }
      delete(t) {
        return super.delete(lb(this, t));
      }
    };
  function bm({ _intern: e, _key: t }, n) {
    let r = t(n);
    return e.has(r) ? e.get(r) : n;
  }
  function ab({ _intern: e, _key: t }, n) {
    let r = t(n);
    return e.has(r) ? e.get(r) : (e.set(r, n), n);
  }
  function lb({ _intern: e, _key: t }, n) {
    let r = t(n);
    return (e.has(r) && ((n = e.get(r)), e.delete(r)), n);
  }
  function cb(e) {
    return e !== null && typeof e == "object" ? e.valueOf() : e;
  }
  function Hi(e) {
    return e;
  }
  function pa(e, ...t) {
    return Bs(e, Hi, Hi, t);
  }
  function xm(e, ...t) {
    return Bs(e, Array.from, Hi, t);
  }
  function fb(e, t) {
    for (let n = 1, r = t.length; n < r; ++n)
      e = e.flatMap((i) => i.pop().map(([o, s]) => [...i, o, s]));
    return e;
  }
  function hb(e, ...t) {
    return fb(xm(e, ...t), t);
  }
  function db(e, t, ...n) {
    return fb(ym(e, t, ...n), n);
  }
  function Xc(e, t, ...n) {
    return Bs(e, Hi, t, n);
  }
  function ym(e, t, ...n) {
    return Bs(e, Array.from, t, n);
  }
  function pb(e, ...t) {
    return Bs(e, Hi, gb, t);
  }
  function mb(e, ...t) {
    return Bs(e, Array.from, gb, t);
  }
  function gb(e) {
    if (e.length !== 1) throw new Error("duplicate key");
    return e[0];
  }
  function Bs(e, t, n, r) {
    return (function i(o, s) {
      if (s >= r.length) return n(o);
      let u = new kr(),
        a = r[s++],
        l = -1;
      for (let h of o) {
        let m = a(h, ++l, o),
          p = u.get(m);
        p ? p.push(h) : u.set(m, [h]);
      }
      for (let [h, m] of u) u.set(h, i(m, s));
      return t(u);
    })(e, 0);
  }
  function ma(e, t) {
    return Array.from(t, (n) => e[n]);
  }
  function zs(e, ...t) {
    if (typeof e[Symbol.iterator] != "function")
      throw new TypeError("values is not iterable");
    e = Array.from(e);
    let [n] = t;
    if ((n && n.length !== 2) || t.length > 1) {
      let r = Uint32Array.from(e, (i, o) => o);
      return (
        t.length > 1
          ? ((t = t.map((i) => e.map(i))),
            r.sort((i, o) => {
              for (let s of t) {
                let u = Ui(s[i], s[o]);
                if (u) return u;
              }
            }))
          : ((n = e.map(n)), r.sort((i, o) => Ui(n[i], n[o]))),
        ma(e, r)
      );
    }
    return e.sort(ga(n));
  }
  function ga(e = je) {
    if (e === je) return Ui;
    if (typeof e != "function")
      throw new TypeError("compare is not a function");
    return (t, n) => {
      let r = e(t, n);
      return r || r === 0 ? r : (e(n, n) === 0) - (e(t, t) === 0);
    };
  }
  function Ui(e, t) {
    return (
      (e == null || !(e >= e)) - (t == null || !(t >= t)) ||
      (e < t ? -1 : e > t ? 1 : 0)
    );
  }
  function wm(e, t, n) {
    return (
      t.length !== 2
        ? zs(Xc(e, t, n), ([r, i], [o, s]) => je(i, s) || je(r, o))
        : zs(pa(e, n), ([r, i], [o, s]) => t(i, s) || je(r, o))
    ).map(([r]) => r);
  }
  var bb = Array.prototype,
    xb = bb.slice,
    Gj = bb.map;
  function ba(e) {
    return () => e;
  }
  var mN = Math.sqrt(50),
    gN = Math.sqrt(10),
    bN = Math.sqrt(2);
  function Wc(e, t, n) {
    let r = (t - e) / Math.max(0, n),
      i = Math.floor(Math.log10(r)),
      o = r / Math.pow(10, i),
      s = o >= mN ? 10 : o >= gN ? 5 : o >= bN ? 2 : 1,
      u,
      a,
      l;
    return (
      i < 0
        ? ((l = Math.pow(10, -i) / s),
          (u = Math.round(e * l)),
          (a = Math.round(t * l)),
          u / l < e && ++u,
          a / l > t && --a,
          (l = -l))
        : ((l = Math.pow(10, i) * s),
          (u = Math.round(e / l)),
          (a = Math.round(t / l)),
          u * l < e && ++u,
          a * l > t && --a),
      a < u && 0.5 <= n && n < 2 ? Wc(e, t, n * 2) : [u, a, l]
    );
  }
  function zn(e, t, n) {
    if (((t = +t), (e = +e), (n = +n), !(n > 0))) return [];
    if (e === t) return [e];
    let r = t < e,
      [i, o, s] = r ? Wc(t, e, n) : Wc(e, t, n);
    if (!(o >= i)) return [];
    let u = o - i + 1,
      a = new Array(u);
    if (r)
      if (s < 0) for (let l = 0; l < u; ++l) a[l] = (o - l) / -s;
      else for (let l = 0; l < u; ++l) a[l] = (o - l) * s;
    else if (s < 0) for (let l = 0; l < u; ++l) a[l] = (i + l) / -s;
    else for (let l = 0; l < u; ++l) a[l] = (i + l) * s;
    return a;
  }
  function Sr(e, t, n) {
    return ((t = +t), (e = +e), (n = +n), Wc(e, t, n)[2]);
  }
  function g0(e, t, n) {
    ((t = +t), (e = +e), (n = +n));
    let r = t < e,
      i = r ? Sr(t, e, n) : Sr(e, t, n);
    return (r ? -1 : 1) * (i < 0 ? 1 / -i : i);
  }
  function b0(e, t, n) {
    let r;
    for (;;) {
      let i = Sr(e, t, n);
      if (i === r || i === 0 || !isFinite(i)) return [e, t];
      (i > 0
        ? ((e = Math.floor(e / i) * i), (t = Math.ceil(t / i) * i))
        : i < 0 && ((e = Math.ceil(e * i) / i), (t = Math.floor(t * i) / i)),
        (r = i));
    }
  }
  function x0(e) {
    return Math.max(1, Math.ceil(Math.log(Pi(e)) / Math.LN2) + 1);
  }
  function Kc() {
    var e = Hi,
      t = $i,
      n = x0;
    function r(i) {
      Array.isArray(i) || (i = Array.from(i));
      var o,
        s = i.length,
        u,
        a,
        l = new Array(s);
      for (o = 0; o < s; ++o) l[o] = e(i[o], o, i);
      var h = t(l),
        m = h[0],
        p = h[1],
        b = n(l, m, p);
      if (!Array.isArray(b)) {
        let E = p,
          M = +b;
        if (
          (t === $i && ([m, p] = b0(m, p, M)),
          (b = zn(m, p, M)),
          b[0] <= m && (a = Sr(m, p, M)),
          b[b.length - 1] >= p)
        )
          if (E >= p && t === $i) {
            let D = Sr(m, p, M);
            isFinite(D) &&
              (D > 0
                ? (p = (Math.floor(p / D) + 1) * D)
                : D < 0 && (p = (Math.ceil(p * -D) + 1) / -D));
          } else b.pop();
      }
      for (var x = b.length, y = 0, v = x; b[y] <= m; ) ++y;
      for (; b[v - 1] > p; ) --v;
      (y || v < x) && ((b = b.slice(y, v)), (x = v - y));
      var k = new Array(x + 1),
        T;
      for (o = 0; o <= x; ++o)
        ((T = k[o] = []),
          (T.x0 = o > 0 ? b[o - 1] : m),
          (T.x1 = o < x ? b[o] : p));
      if (isFinite(a)) {
        if (a > 0)
          for (o = 0; o < s; ++o)
            (u = l[o]) != null &&
              m <= u &&
              u <= p &&
              k[Math.min(x, Math.floor((u - m) / a))].push(i[o]);
        else if (a < 0) {
          for (o = 0; o < s; ++o)
            if ((u = l[o]) != null && m <= u && u <= p) {
              let E = Math.floor((m - u) * a);
              k[Math.min(x, E + (b[E] <= u))].push(i[o]);
            }
        }
      } else
        for (o = 0; o < s; ++o)
          (u = l[o]) != null &&
            m <= u &&
            u <= p &&
            k[On(b, u, 0, x)].push(i[o]);
      return k;
    }
    return (
      (r.value = function (i) {
        return arguments.length
          ? ((e = typeof i == "function" ? i : ba(i)), r)
          : e;
      }),
      (r.domain = function (i) {
        return arguments.length
          ? ((t = typeof i == "function" ? i : ba([i[0], i[1]])), r)
          : t;
      }),
      (r.thresholds = function (i) {
        return arguments.length
          ? ((n =
              typeof i == "function"
                ? i
                : ba(Array.isArray(i) ? xb.call(i) : i)),
            r)
          : n;
      }),
      r
    );
  }
  function or(e, t) {
    let n;
    if (t === void 0)
      for (let r of e)
        r != null && (n < r || (n === void 0 && r >= r)) && (n = r);
    else {
      let r = -1;
      for (let i of e)
        (i = t(i, ++r, e)) != null &&
          (n < i || (n === void 0 && i >= i)) &&
          (n = i);
    }
    return n;
  }
  function y0(e, t) {
    let n,
      r = -1,
      i = -1;
    if (t === void 0)
      for (let o of e)
        (++i,
          o != null &&
            (n < o || (n === void 0 && o >= o)) &&
            ((n = o), (r = i)));
    else
      for (let o of e)
        (o = t(o, ++i, e)) != null &&
          (n < o || (n === void 0 && o >= o)) &&
          ((n = o), (r = i));
    return r;
  }
  function Ar(e, t) {
    let n;
    if (t === void 0)
      for (let r of e)
        r != null && (n > r || (n === void 0 && r >= r)) && (n = r);
    else {
      let r = -1;
      for (let i of e)
        (i = t(i, ++r, e)) != null &&
          (n > i || (n === void 0 && i >= i)) &&
          (n = i);
    }
    return n;
  }
  function Vi(e, t) {
    let n,
      r = -1,
      i = -1;
    if (t === void 0)
      for (let o of e)
        (++i,
          o != null &&
            (n > o || (n === void 0 && o >= o)) &&
            ((n = o), (r = i)));
    else
      for (let o of e)
        (o = t(o, ++i, e)) != null &&
          (n > o || (n === void 0 && o >= o)) &&
          ((n = o), (r = i));
    return r;
  }
  function w0(e, t, n = 0, r = 1 / 0, i) {
    if (
      ((t = Math.floor(t)),
      (n = Math.floor(Math.max(0, n))),
      (r = Math.floor(Math.min(e.length - 1, r))),
      !(n <= t && t <= r))
    )
      return e;
    for (i = i === void 0 ? Ui : ga(i); r > n; ) {
      if (r - n > 600) {
        let a = r - n + 1,
          l = t - n + 1,
          h = Math.log(a),
          m = 0.5 * Math.exp((2 * h) / 3),
          p = 0.5 * Math.sqrt((h * m * (a - m)) / a) * (l - a / 2 < 0 ? -1 : 1),
          b = Math.max(n, Math.floor(t - (l * m) / a + p)),
          x = Math.min(r, Math.floor(t + ((a - l) * m) / a + p));
        w0(e, t, b, x, i);
      }
      let o = e[t],
        s = n,
        u = r;
      for (xa(e, n, t), i(e[r], o) > 0 && xa(e, n, r); s < u; ) {
        for (xa(e, s, u), ++s, --u; i(e[s], o) < 0; ) ++s;
        for (; i(e[u], o) > 0; ) --u;
      }
      (i(e[n], o) === 0 ? xa(e, n, u) : (++u, xa(e, u, r)),
        u <= t && (n = u + 1),
        t <= u && (r = u - 1));
    }
    return e;
  }
  function xa(e, t, n) {
    let r = e[t];
    ((e[t] = e[n]), (e[n] = r));
  }
  function ya(e, t = je) {
    let n,
      r = !1;
    if (t.length === 1) {
      let i;
      for (let o of e) {
        let s = t(o);
        (r ? je(s, i) > 0 : je(s, s) === 0) && ((n = o), (i = s), (r = !0));
      }
    } else
      for (let i of e) (r ? t(i, n) > 0 : t(i, i) === 0) && ((n = i), (r = !0));
    return n;
  }
  function Zr(e, t, n) {
    if (
      ((e = Float64Array.from(Q8(e, n))), !(!(r = e.length) || isNaN((t = +t))))
    ) {
      if (t <= 0 || r < 2) return Ar(e);
      if (t >= 1) return or(e);
      var r,
        i = (r - 1) * t,
        o = Math.floor(i),
        s = or(w0(e, o).subarray(0, o + 1)),
        u = Ar(e.subarray(o + 1));
      return s + (u - s) * (i - o);
    }
  }
  function Zc(e, t, n = m0) {
    if (!(!(r = e.length) || isNaN((t = +t)))) {
      if (t <= 0 || r < 2) return +n(e[0], 0, e);
      if (t >= 1) return +n(e[r - 1], r - 1, e);
      var r,
        i = (r - 1) * t,
        o = Math.floor(i),
        s = +n(e[o], o, e),
        u = +n(e[o + 1], o + 1, e);
      return s + (u - s) * (i - o);
    }
  }
  function Jc(e, t, n = m0) {
    if (!isNaN((t = +t))) {
      if (((r = Float64Array.from(e, (u, a) => m0(n(e[a], a, e)))), t <= 0))
        return Vi(r);
      if (t >= 1) return y0(r);
      var r,
        i = Uint32Array.from(e, (u, a) => a),
        o = r.length - 1,
        s = Math.floor(o * t);
      return (
        w0(i, s, 0, o, (u, a) => Ui(r[u], r[a])),
        (s = ya(i.subarray(0, s + 1), (u) => r[u])),
        s >= 0 ? s : -1
      );
    }
  }
  function vm(e, t, n) {
    let r = Pi(e),
      i = Zr(e, 0.75) - Zr(e, 0.25);
    return r && i ? Math.ceil((n - t) / (2 * i * Math.pow(r, -1 / 3))) : 1;
  }
  function _m(e, t, n) {
    let r = Pi(e),
      i = da(e);
    return r && i ? Math.ceil(((n - t) * Math.cbrt(r)) / (3.49 * i)) : 1;
  }
  function km(e, t) {
    let n = 0,
      r = 0;
    if (t === void 0)
      for (let i of e) i != null && (i = +i) >= i && (++n, (r += i));
    else {
      let i = -1;
      for (let o of e)
        (o = t(o, ++i, e)) != null && (o = +o) >= o && (++n, (r += o));
    }
    if (n) return r / n;
  }
  function Sm(e, t) {
    return Zr(e, 0.5, t);
  }
  function yb(e, t) {
    return Jc(e, 0.5, t);
  }
  function* xN(e) {
    for (let t of e) yield* t;
  }
  function v0(e) {
    return Array.from(xN(e));
  }
  function Am(e, t) {
    let n = new kr();
    if (t === void 0)
      for (let o of e) o != null && o >= o && n.set(o, (n.get(o) || 0) + 1);
    else {
      let o = -1;
      for (let s of e)
        (s = t(s, ++o, e)) != null && s >= s && n.set(s, (n.get(s) || 0) + 1);
    }
    let r,
      i = 0;
    for (let [o, s] of n) s > i && ((i = s), (r = o));
    return r;
  }
  function Mm(e, t = yN) {
    let n = [],
      r,
      i = !1;
    for (let o of e) (i && n.push(t(r, o)), (r = o), (i = !0));
    return n;
  }
  function yN(e, t) {
    return [e, t];
  }
  function sr(e, t, n) {
    ((e = +e),
      (t = +t),
      (n =
        (i = arguments.length) < 2 ? ((t = e), (e = 0), 1) : i < 3 ? 1 : +n));
    for (
      var r = -1, i = Math.max(0, Math.ceil((t - e) / n)) | 0, o = new Array(i);
      ++r < i;
    )
      o[r] = e + r * n;
    return o;
  }
  function Tm(e, t = je) {
    if (typeof e[Symbol.iterator] != "function")
      throw new TypeError("values is not iterable");
    let n = Array.from(e),
      r = new Float64Array(n.length);
    t.length !== 2 && ((n = n.map(t)), (t = je));
    let i = (u, a) => t(n[u], n[a]),
      o,
      s;
    return (
      (e = Uint32Array.from(n, (u, a) => a)),
      e.sort(t === je ? (u, a) => Ui(n[u], n[a]) : ga(i)),
      e.forEach((u, a) => {
        let l = i(u, o === void 0 ? u : o);
        l >= 0
          ? ((o === void 0 || l > 0) && ((o = u), (s = a)), (r[u] = s))
          : (r[u] = NaN);
      }),
      r
    );
  }
  function Em(e, t = je) {
    let n,
      r = !1;
    if (t.length === 1) {
      let i;
      for (let o of e) {
        let s = t(o);
        (r ? je(s, i) < 0 : je(s, s) === 0) && ((n = o), (i = s), (r = !0));
      }
    } else
      for (let i of e) (r ? t(i, n) < 0 : t(i, i) === 0) && ((n = i), (r = !0));
    return n;
  }
  function wa(e, t = je) {
    if (t.length === 1) return Vi(e, t);
    let n,
      r = -1,
      i = -1;
    for (let o of e)
      (++i, (r < 0 ? t(o, o) === 0 : t(o, n) < 0) && ((n = o), (r = i)));
    return r;
  }
  function Cm(e, t = je) {
    if (t.length === 1) return y0(e, t);
    let n,
      r = -1,
      i = -1;
    for (let o of e)
      (++i, (r < 0 ? t(o, o) === 0 : t(o, n) > 0) && ((n = o), (r = i)));
    return r;
  }
  function Nm(e, t) {
    let n = wa(e, t);
    return n < 0 ? void 0 : n;
  }
  var wb = Dm(Math.random);
  function Dm(e) {
    return function (n, r = 0, i = n.length) {
      let o = i - (r = +r);
      for (; o; ) {
        let s = (e() * o--) | 0,
          u = n[o + r];
        ((n[o + r] = n[s + r]), (n[s + r] = u));
      }
      return n;
    };
  }
  function Im(e, t) {
    let n = 0;
    if (t === void 0) for (let r of e) (r = +r) && (n += r);
    else {
      let r = -1;
      for (let i of e) (i = +t(i, ++r, e)) && (n += i);
    }
    return n;
  }
  function va(e) {
    if (!(o = e.length)) return [];
    for (var t = -1, n = Ar(e, wN), r = new Array(n); ++t < n; )
      for (var i = -1, o, s = (r[t] = new Array(o)); ++i < o; ) s[i] = e[i][t];
    return r;
  }
  function wN(e) {
    return e.length;
  }
  function Fm() {
    return va(arguments);
  }
  function qm(e, t) {
    if (typeof t != "function") throw new TypeError("test is not a function");
    let n = -1;
    for (let r of e) if (!t(r, ++n, e)) return !1;
    return !0;
  }
  function Lm(e, t) {
    if (typeof t != "function") throw new TypeError("test is not a function");
    let n = -1;
    for (let r of e) if (t(r, ++n, e)) return !0;
    return !1;
  }
  function Om(e, t) {
    if (typeof t != "function") throw new TypeError("test is not a function");
    let n = [],
      r = -1;
    for (let i of e) t(i, ++r, e) && n.push(i);
    return n;
  }
  function Bm(e, t) {
    if (typeof e[Symbol.iterator] != "function")
      throw new TypeError("values is not iterable");
    if (typeof t != "function") throw new TypeError("mapper is not a function");
    return Array.from(e, (n, r) => t(n, r, e));
  }
  function zm(e, t, n) {
    if (typeof t != "function")
      throw new TypeError("reducer is not a function");
    let r = e[Symbol.iterator](),
      i,
      o,
      s = -1;
    if (arguments.length < 3) {
      if ((({ done: i, value: n } = r.next()), i)) return;
      ++s;
    }
    for (; ({ done: i, value: o } = r.next()), !i; ) n = t(n, o, ++s, e);
    return n;
  }
  function Rm(e) {
    if (typeof e[Symbol.iterator] != "function")
      throw new TypeError("values is not iterable");
    return Array.from(e).reverse();
  }
  function Pm(e, ...t) {
    e = new Bn(e);
    for (let n of t) for (let r of n) e.delete(r);
    return e;
  }
  function $m(e, t) {
    let n = t[Symbol.iterator](),
      r = new Bn();
    for (let i of e) {
      if (r.has(i)) return !1;
      let o, s;
      for (; ({ value: o, done: s } = n.next()) && !s; ) {
        if (Object.is(i, o)) return !1;
        r.add(o);
      }
    }
    return !0;
  }
  function Hm(e, ...t) {
    ((e = new Bn(e)), (t = t.map(vN)));
    e: for (let n of e)
      for (let r of t)
        if (!r.has(n)) {
          e.delete(n);
          continue e;
        }
    return e;
  }
  function vN(e) {
    return e instanceof Bn ? e : new Bn(e);
  }
  function _a(e, t) {
    let n = e[Symbol.iterator](),
      r = new Set();
    for (let i of t) {
      let o = vb(i);
      if (r.has(o)) continue;
      let s, u;
      for (; ({ value: s, done: u } = n.next()); ) {
        if (u) return !1;
        let a = vb(s);
        if ((r.add(a), Object.is(o, a))) break;
      }
    }
    return !0;
  }
  function vb(e) {
    return e !== null && typeof e == "object" ? e.valueOf() : e;
  }
  function Um(e, t) {
    return _a(t, e);
  }
  function Vm(...e) {
    let t = new Bn();
    for (let n of e) for (let r of n) t.add(r);
    return t;
  }
  function _b(e) {
    return e;
  }
  var Qc = 1,
    ef = 2,
    jm = 3,
    ka = 4,
    kb = 1e-6;
  function _N(e) {
    return "translate(" + e + ",0)";
  }
  function kN(e) {
    return "translate(0," + e + ")";
  }
  function SN(e) {
    return (t) => +e(t);
  }
  function AN(e, t) {
    return (
      (t = Math.max(0, e.bandwidth() - t * 2) / 2),
      e.round() && (t = Math.round(t)),
      (n) => +e(n) + t
    );
  }
  function MN() {
    return !this.__axis;
  }
  function tf(e, t) {
    var n = [],
      r = null,
      i = null,
      o = 6,
      s = 6,
      u = 3,
      a = typeof window < "u" && window.devicePixelRatio > 1 ? 0 : 0.5,
      l = e === Qc || e === ka ? -1 : 1,
      h = e === ka || e === ef ? "x" : "y",
      m = e === Qc || e === jm ? _N : kN;
    function p(b) {
      var x = r ?? (t.ticks ? t.ticks.apply(t, n) : t.domain()),
        y = i ?? (t.tickFormat ? t.tickFormat.apply(t, n) : _b),
        v = Math.max(o, 0) + u,
        k = t.range(),
        T = +k[0] + a,
        E = +k[k.length - 1] + a,
        M = (t.bandwidth ? AN : SN)(t.copy(), a),
        D = b.selection ? b.selection() : b,
        I = D.selectAll(".domain").data([null]),
        P = D.selectAll(".tick").data(x, t).order(),
        O = P.exit(),
        H = P.enter().append("g").attr("class", "tick"),
        U = P.select("line"),
        j = P.select("text");
      ((I = I.merge(
        I.enter()
          .insert("path", ".tick")
          .attr("class", "domain")
          .attr("stroke", "currentColor"),
      )),
        (P = P.merge(H)),
        (U = U.merge(
          H.append("line")
            .attr("stroke", "currentColor")
            .attr(h + "2", l * o),
        )),
        (j = j.merge(
          H.append("text")
            .attr("fill", "currentColor")
            .attr(h, l * v)
            .attr("dy", e === Qc ? "0em" : e === jm ? "0.71em" : "0.32em"),
        )),
        b !== D &&
          ((I = I.transition(b)),
          (P = P.transition(b)),
          (U = U.transition(b)),
          (j = j.transition(b)),
          (O = O.transition(b)
            .attr("opacity", kb)
            .attr("transform", function (Z) {
              return isFinite((Z = M(Z)))
                ? m(Z + a)
                : this.getAttribute("transform");
            })),
          H.attr("opacity", kb).attr("transform", function (Z) {
            var Q = this.parentNode.__axis;
            return m((Q && isFinite((Q = Q(Z))) ? Q : M(Z)) + a);
          })),
        O.remove(),
        I.attr(
          "d",
          e === ka || e === ef
            ? s
              ? "M" + l * s + "," + T + "H" + a + "V" + E + "H" + l * s
              : "M" + a + "," + T + "V" + E
            : s
              ? "M" + T + "," + l * s + "V" + a + "H" + E + "V" + l * s
              : "M" + T + "," + a + "H" + E,
        ),
        P.attr("opacity", 1).attr("transform", function (Z) {
          return m(M(Z) + a);
        }),
        U.attr(h + "2", l * o),
        j.attr(h, l * v).text(y),
        D.filter(MN)
          .attr("fill", "none")
          .attr("font-size", 10)
          .attr("font-family", "sans-serif")
          .attr(
            "text-anchor",
            e === ef ? "start" : e === ka ? "end" : "middle",
          ),
        D.each(function () {
          this.__axis = M;
        }));
    }
    return (
      (p.scale = function (b) {
        return arguments.length ? ((t = b), p) : t;
      }),
      (p.ticks = function () {
        return ((n = Array.from(arguments)), p);
      }),
      (p.tickArguments = function (b) {
        return arguments.length
          ? ((n = b == null ? [] : Array.from(b)), p)
          : n.slice();
      }),
      (p.tickValues = function (b) {
        return arguments.length
          ? ((r = b == null ? null : Array.from(b)), p)
          : r && r.slice();
      }),
      (p.tickFormat = function (b) {
        return arguments.length ? ((i = b), p) : i;
      }),
      (p.tickSize = function (b) {
        return arguments.length ? ((o = s = +b), p) : o;
      }),
      (p.tickSizeInner = function (b) {
        return arguments.length ? ((o = +b), p) : o;
      }),
      (p.tickSizeOuter = function (b) {
        return arguments.length ? ((s = +b), p) : s;
      }),
      (p.tickPadding = function (b) {
        return arguments.length ? ((u = +b), p) : u;
      }),
      (p.offset = function (b) {
        return arguments.length ? ((a = +b), p) : a;
      }),
      p
    );
  }
  function Sb(e) {
    return tf(Qc, e);
  }
  function Ab(e) {
    return tf(ef, e);
  }
  function Mb(e) {
    return tf(jm, e);
  }
  function Tb(e) {
    return tf(ka, e);
  }
  var TN = { value: () => {} };
  function Cb() {
    for (var e = 0, t = arguments.length, n = {}, r; e < t; ++e) {
      if (!(r = arguments[e] + "") || r in n || /[\s.]/.test(r))
        throw new Error("illegal type: " + r);
      n[r] = [];
    }
    return new nf(n);
  }
  function nf(e) {
    this._ = e;
  }
  function EN(e, t) {
    return e
      .trim()
      .split(/^|\s+/)
      .map(function (n) {
        var r = "",
          i = n.indexOf(".");
        if (
          (i >= 0 && ((r = n.slice(i + 1)), (n = n.slice(0, i))),
          n && !t.hasOwnProperty(n))
        )
          throw new Error("unknown type: " + n);
        return { type: n, name: r };
      });
  }
  nf.prototype = Cb.prototype = {
    constructor: nf,
    on: function (e, t) {
      var n = this._,
        r = EN(e + "", n),
        i,
        o = -1,
        s = r.length;
      if (arguments.length < 2) {
        for (; ++o < s; )
          if ((i = (e = r[o]).type) && (i = CN(n[i], e.name))) return i;
        return;
      }
      if (t != null && typeof t != "function")
        throw new Error("invalid callback: " + t);
      for (; ++o < s; )
        if ((i = (e = r[o]).type)) n[i] = Eb(n[i], e.name, t);
        else if (t == null) for (i in n) n[i] = Eb(n[i], e.name, null);
      return this;
    },
    copy: function () {
      var e = {},
        t = this._;
      for (var n in t) e[n] = t[n].slice();
      return new nf(e);
    },
    call: function (e, t) {
      if ((i = arguments.length - 2) > 0)
        for (var n = new Array(i), r = 0, i, o; r < i; ++r)
          n[r] = arguments[r + 2];
      if (!this._.hasOwnProperty(e)) throw new Error("unknown type: " + e);
      for (o = this._[e], r = 0, i = o.length; r < i; ++r)
        o[r].value.apply(t, n);
    },
    apply: function (e, t, n) {
      if (!this._.hasOwnProperty(e)) throw new Error("unknown type: " + e);
      for (var r = this._[e], i = 0, o = r.length; i < o; ++i)
        r[i].value.apply(t, n);
    },
  };
  function CN(e, t) {
    for (var n = 0, r = e.length, i; n < r; ++n)
      if ((i = e[n]).name === t) return i.value;
  }
  function Eb(e, t, n) {
    for (var r = 0, i = e.length; r < i; ++r)
      if (e[r].name === t) {
        ((e[r] = TN), (e = e.slice(0, r).concat(e.slice(r + 1))));
        break;
      }
    return (n != null && e.push({ name: t, value: n }), e);
  }
  var ur = Cb;
  var rf = "http://www.w3.org/1999/xhtml",
    Sa = {
      svg: "http://www.w3.org/2000/svg",
      xhtml: rf,
      xlink: "http://www.w3.org/1999/xlink",
      xml: "http://www.w3.org/XML/1998/namespace",
      xmlns: "http://www.w3.org/2000/xmlns/",
    };
  function Jr(e) {
    var t = (e += ""),
      n = t.indexOf(":");
    return (
      n >= 0 && (t = e.slice(0, n)) !== "xmlns" && (e = e.slice(n + 1)),
      Sa.hasOwnProperty(t) ? { space: Sa[t], local: e } : e
    );
  }
  function NN(e) {
    return function () {
      var t = this.ownerDocument,
        n = this.namespaceURI;
      return n === rf && t.documentElement.namespaceURI === rf
        ? t.createElement(e)
        : t.createElementNS(n, e);
    };
  }
  function DN(e) {
    return function () {
      return this.ownerDocument.createElementNS(e.space, e.local);
    };
  }
  function So(e) {
    var t = Jr(e);
    return (t.local ? DN : NN)(t);
  }
  function IN() {}
  function Ao(e) {
    return e == null
      ? IN
      : function () {
          return this.querySelector(e);
        };
  }
  function Nb(e) {
    typeof e != "function" && (e = Ao(e));
    for (
      var t = this._groups, n = t.length, r = new Array(n), i = 0;
      i < n;
      ++i
    )
      for (
        var o = t[i], s = o.length, u = (r[i] = new Array(s)), a, l, h = 0;
        h < s;
        ++h
      )
        (a = o[h]) &&
          (l = e.call(a, a.__data__, h, o)) &&
          ("__data__" in a && (l.__data__ = a.__data__), (u[h] = l));
    return new vt(r, this._parents);
  }
  function Aa(e) {
    return e == null ? [] : Array.isArray(e) ? e : Array.from(e);
  }
  function FN() {
    return [];
  }
  function Rs(e) {
    return e == null
      ? FN
      : function () {
          return this.querySelectorAll(e);
        };
  }
  function qN(e) {
    return function () {
      return Aa(e.apply(this, arguments));
    };
  }
  function Db(e) {
    typeof e == "function" ? (e = qN(e)) : (e = Rs(e));
    for (var t = this._groups, n = t.length, r = [], i = [], o = 0; o < n; ++o)
      for (var s = t[o], u = s.length, a, l = 0; l < u; ++l)
        (a = s[l]) && (r.push(e.call(a, a.__data__, l, s)), i.push(a));
    return new vt(r, i);
  }
  function Ps(e) {
    return function () {
      return this.matches(e);
    };
  }
  function of(e) {
    return function (t) {
      return t.matches(e);
    };
  }
  var LN = Array.prototype.find;
  function ON(e) {
    return function () {
      return LN.call(this.children, e);
    };
  }
  function BN() {
    return this.firstElementChild;
  }
  function Ib(e) {
    return this.select(e == null ? BN : ON(typeof e == "function" ? e : of(e)));
  }
  var zN = Array.prototype.filter;
  function RN() {
    return Array.from(this.children);
  }
  function PN(e) {
    return function () {
      return zN.call(this.children, e);
    };
  }
  function Fb(e) {
    return this.selectAll(
      e == null ? RN : PN(typeof e == "function" ? e : of(e)),
    );
  }
  function qb(e) {
    typeof e != "function" && (e = Ps(e));
    for (
      var t = this._groups, n = t.length, r = new Array(n), i = 0;
      i < n;
      ++i
    )
      for (var o = t[i], s = o.length, u = (r[i] = []), a, l = 0; l < s; ++l)
        (a = o[l]) && e.call(a, a.__data__, l, o) && u.push(a);
    return new vt(r, this._parents);
  }
  function sf(e) {
    return new Array(e.length);
  }
  function Lb() {
    return new vt(this._enter || this._groups.map(sf), this._parents);
  }
  function Ma(e, t) {
    ((this.ownerDocument = e.ownerDocument),
      (this.namespaceURI = e.namespaceURI),
      (this._next = null),
      (this._parent = e),
      (this.__data__ = t));
  }
  Ma.prototype = {
    constructor: Ma,
    appendChild: function (e) {
      return this._parent.insertBefore(e, this._next);
    },
    insertBefore: function (e, t) {
      return this._parent.insertBefore(e, t);
    },
    querySelector: function (e) {
      return this._parent.querySelector(e);
    },
    querySelectorAll: function (e) {
      return this._parent.querySelectorAll(e);
    },
  };
  function Ob(e) {
    return function () {
      return e;
    };
  }
  function $N(e, t, n, r, i, o) {
    for (var s = 0, u, a = t.length, l = o.length; s < l; ++s)
      (u = t[s]) ? ((u.__data__ = o[s]), (r[s] = u)) : (n[s] = new Ma(e, o[s]));
    for (; s < a; ++s) (u = t[s]) && (i[s] = u);
  }
  function HN(e, t, n, r, i, o, s) {
    var u,
      a,
      l = new Map(),
      h = t.length,
      m = o.length,
      p = new Array(h),
      b;
    for (u = 0; u < h; ++u)
      (a = t[u]) &&
        ((p[u] = b = s.call(a, a.__data__, u, t) + ""),
        l.has(b) ? (i[u] = a) : l.set(b, a));
    for (u = 0; u < m; ++u)
      ((b = s.call(e, o[u], u, o) + ""),
        (a = l.get(b))
          ? ((r[u] = a), (a.__data__ = o[u]), l.delete(b))
          : (n[u] = new Ma(e, o[u])));
    for (u = 0; u < h; ++u) (a = t[u]) && l.get(p[u]) === a && (i[u] = a);
  }
  function UN(e) {
    return e.__data__;
  }
  function Bb(e, t) {
    if (!arguments.length) return Array.from(this, UN);
    var n = t ? HN : $N,
      r = this._parents,
      i = this._groups;
    typeof e != "function" && (e = Ob(e));
    for (
      var o = i.length,
        s = new Array(o),
        u = new Array(o),
        a = new Array(o),
        l = 0;
      l < o;
      ++l
    ) {
      var h = r[l],
        m = i[l],
        p = m.length,
        b = VN(e.call(h, h && h.__data__, l, r)),
        x = b.length,
        y = (u[l] = new Array(x)),
        v = (s[l] = new Array(x)),
        k = (a[l] = new Array(p));
      n(h, m, y, v, k, b, t);
      for (var T = 0, E = 0, M, D; T < x; ++T)
        if ((M = y[T])) {
          for (T >= E && (E = T + 1); !(D = v[E]) && ++E < x; );
          M._next = D || null;
        }
    }
    return ((s = new vt(s, r)), (s._enter = u), (s._exit = a), s);
  }
  function VN(e) {
    return typeof e == "object" && "length" in e ? e : Array.from(e);
  }
  function zb() {
    return new vt(this._exit || this._groups.map(sf), this._parents);
  }
  function Rb(e, t, n) {
    var r = this.enter(),
      i = this,
      o = this.exit();
    return (
      typeof e == "function"
        ? ((r = e(r)), r && (r = r.selection()))
        : (r = r.append(e + "")),
      t != null && ((i = t(i)), i && (i = i.selection())),
      n == null ? o.remove() : n(o),
      r && i ? r.merge(i).order() : i
    );
  }
  function Pb(e) {
    for (
      var t = e.selection ? e.selection() : e,
        n = this._groups,
        r = t._groups,
        i = n.length,
        o = r.length,
        s = Math.min(i, o),
        u = new Array(i),
        a = 0;
      a < s;
      ++a
    )
      for (
        var l = n[a],
          h = r[a],
          m = l.length,
          p = (u[a] = new Array(m)),
          b,
          x = 0;
        x < m;
        ++x
      )
        (b = l[x] || h[x]) && (p[x] = b);
    for (; a < i; ++a) u[a] = n[a];
    return new vt(u, this._parents);
  }
  function $b() {
    for (var e = this._groups, t = -1, n = e.length; ++t < n; )
      for (var r = e[t], i = r.length - 1, o = r[i], s; --i >= 0; )
        (s = r[i]) &&
          (o &&
            s.compareDocumentPosition(o) ^ 4 &&
            o.parentNode.insertBefore(s, o),
          (o = s));
    return this;
  }
  function Hb(e) {
    e || (e = jN);
    function t(m, p) {
      return m && p ? e(m.__data__, p.__data__) : !m - !p;
    }
    for (
      var n = this._groups, r = n.length, i = new Array(r), o = 0;
      o < r;
      ++o
    ) {
      for (
        var s = n[o], u = s.length, a = (i[o] = new Array(u)), l, h = 0;
        h < u;
        ++h
      )
        (l = s[h]) && (a[h] = l);
      a.sort(t);
    }
    return new vt(i, this._parents).order();
  }
  function jN(e, t) {
    return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
  }
  function Ub() {
    var e = arguments[0];
    return ((arguments[0] = this), e.apply(null, arguments), this);
  }
  function Vb() {
    return Array.from(this);
  }
  function jb() {
    for (var e = this._groups, t = 0, n = e.length; t < n; ++t)
      for (var r = e[t], i = 0, o = r.length; i < o; ++i) {
        var s = r[i];
        if (s) return s;
      }
    return null;
  }
  function Gb() {
    let e = 0;
    for (let t of this) ++e;
    return e;
  }
  function Yb() {
    return !this.node();
  }
  function Xb(e) {
    for (var t = this._groups, n = 0, r = t.length; n < r; ++n)
      for (var i = t[n], o = 0, s = i.length, u; o < s; ++o)
        (u = i[o]) && e.call(u, u.__data__, o, i);
    return this;
  }
  function GN(e) {
    return function () {
      this.removeAttribute(e);
    };
  }
  function YN(e) {
    return function () {
      this.removeAttributeNS(e.space, e.local);
    };
  }
  function XN(e, t) {
    return function () {
      this.setAttribute(e, t);
    };
  }
  function WN(e, t) {
    return function () {
      this.setAttributeNS(e.space, e.local, t);
    };
  }
  function KN(e, t) {
    return function () {
      var n = t.apply(this, arguments);
      n == null ? this.removeAttribute(e) : this.setAttribute(e, n);
    };
  }
  function ZN(e, t) {
    return function () {
      var n = t.apply(this, arguments);
      n == null
        ? this.removeAttributeNS(e.space, e.local)
        : this.setAttributeNS(e.space, e.local, n);
    };
  }
  function Wb(e, t) {
    var n = Jr(e);
    if (arguments.length < 2) {
      var r = this.node();
      return n.local ? r.getAttributeNS(n.space, n.local) : r.getAttribute(n);
    }
    return this.each(
      (t == null
        ? n.local
          ? YN
          : GN
        : typeof t == "function"
          ? n.local
            ? ZN
            : KN
          : n.local
            ? WN
            : XN)(n, t),
    );
  }
  function $s(e) {
    return (
      (e.ownerDocument && e.ownerDocument.defaultView) ||
      (e.document && e) ||
      e.defaultView
    );
  }
  function JN(e) {
    return function () {
      this.style.removeProperty(e);
    };
  }
  function QN(e, t, n) {
    return function () {
      this.style.setProperty(e, t, n);
    };
  }
  function eD(e, t, n) {
    return function () {
      var r = t.apply(this, arguments);
      r == null
        ? this.style.removeProperty(e)
        : this.style.setProperty(e, r, n);
    };
  }
  function Kb(e, t, n) {
    return arguments.length > 1
      ? this.each(
          (t == null ? JN : typeof t == "function" ? eD : QN)(e, t, n ?? ""),
        )
      : ji(this.node(), e);
  }
  function ji(e, t) {
    return (
      e.style.getPropertyValue(t) ||
      $s(e).getComputedStyle(e, null).getPropertyValue(t)
    );
  }
  function tD(e) {
    return function () {
      delete this[e];
    };
  }
  function nD(e, t) {
    return function () {
      this[e] = t;
    };
  }
  function rD(e, t) {
    return function () {
      var n = t.apply(this, arguments);
      n == null ? delete this[e] : (this[e] = n);
    };
  }
  function Zb(e, t) {
    return arguments.length > 1
      ? this.each((t == null ? tD : typeof t == "function" ? rD : nD)(e, t))
      : this.node()[e];
  }
  function Jb(e) {
    return e.trim().split(/^|\s+/);
  }
  function Gm(e) {
    return e.classList || new Qb(e);
  }
  function Qb(e) {
    ((this._node = e), (this._names = Jb(e.getAttribute("class") || "")));
  }
  Qb.prototype = {
    add: function (e) {
      var t = this._names.indexOf(e);
      t < 0 &&
        (this._names.push(e),
        this._node.setAttribute("class", this._names.join(" ")));
    },
    remove: function (e) {
      var t = this._names.indexOf(e);
      t >= 0 &&
        (this._names.splice(t, 1),
        this._node.setAttribute("class", this._names.join(" ")));
    },
    contains: function (e) {
      return this._names.indexOf(e) >= 0;
    },
  };
  function e7(e, t) {
    for (var n = Gm(e), r = -1, i = t.length; ++r < i; ) n.add(t[r]);
  }
  function t7(e, t) {
    for (var n = Gm(e), r = -1, i = t.length; ++r < i; ) n.remove(t[r]);
  }
  function iD(e) {
    return function () {
      e7(this, e);
    };
  }
  function oD(e) {
    return function () {
      t7(this, e);
    };
  }
  function sD(e, t) {
    return function () {
      (t.apply(this, arguments) ? e7 : t7)(this, e);
    };
  }
  function n7(e, t) {
    var n = Jb(e + "");
    if (arguments.length < 2) {
      for (var r = Gm(this.node()), i = -1, o = n.length; ++i < o; )
        if (!r.contains(n[i])) return !1;
      return !0;
    }
    return this.each((typeof t == "function" ? sD : t ? iD : oD)(n, t));
  }
  function uD() {
    this.textContent = "";
  }
  function aD(e) {
    return function () {
      this.textContent = e;
    };
  }
  function lD(e) {
    return function () {
      var t = e.apply(this, arguments);
      this.textContent = t ?? "";
    };
  }
  function r7(e) {
    return arguments.length
      ? this.each(e == null ? uD : (typeof e == "function" ? lD : aD)(e))
      : this.node().textContent;
  }
  function cD() {
    this.innerHTML = "";
  }
  function fD(e) {
    return function () {
      this.innerHTML = e;
    };
  }
  function hD(e) {
    return function () {
      var t = e.apply(this, arguments);
      this.innerHTML = t ?? "";
    };
  }
  function i7(e) {
    return arguments.length
      ? this.each(e == null ? cD : (typeof e == "function" ? hD : fD)(e))
      : this.node().innerHTML;
  }
  function dD() {
    this.nextSibling && this.parentNode.appendChild(this);
  }
  function o7() {
    return this.each(dD);
  }
  function pD() {
    this.previousSibling &&
      this.parentNode.insertBefore(this, this.parentNode.firstChild);
  }
  function s7() {
    return this.each(pD);
  }
  function u7(e) {
    var t = typeof e == "function" ? e : So(e);
    return this.select(function () {
      return this.appendChild(t.apply(this, arguments));
    });
  }
  function mD() {
    return null;
  }
  function a7(e, t) {
    var n = typeof e == "function" ? e : So(e),
      r = t == null ? mD : typeof t == "function" ? t : Ao(t);
    return this.select(function () {
      return this.insertBefore(
        n.apply(this, arguments),
        r.apply(this, arguments) || null,
      );
    });
  }
  function gD() {
    var e = this.parentNode;
    e && e.removeChild(this);
  }
  function l7() {
    return this.each(gD);
  }
  function bD() {
    var e = this.cloneNode(!1),
      t = this.parentNode;
    return t ? t.insertBefore(e, this.nextSibling) : e;
  }
  function xD() {
    var e = this.cloneNode(!0),
      t = this.parentNode;
    return t ? t.insertBefore(e, this.nextSibling) : e;
  }
  function c7(e) {
    return this.select(e ? xD : bD);
  }
  function f7(e) {
    return arguments.length
      ? this.property("__data__", e)
      : this.node().__data__;
  }
  function yD(e) {
    return function (t) {
      e.call(this, t, this.__data__);
    };
  }
  function wD(e) {
    return e
      .trim()
      .split(/^|\s+/)
      .map(function (t) {
        var n = "",
          r = t.indexOf(".");
        return (
          r >= 0 && ((n = t.slice(r + 1)), (t = t.slice(0, r))),
          { type: t, name: n }
        );
      });
  }
  function vD(e) {
    return function () {
      var t = this.__on;
      if (t) {
        for (var n = 0, r = -1, i = t.length, o; n < i; ++n)
          ((o = t[n]),
            (!e.type || o.type === e.type) && o.name === e.name
              ? this.removeEventListener(o.type, o.listener, o.options)
              : (t[++r] = o));
        ++r ? (t.length = r) : delete this.__on;
      }
    };
  }
  function _D(e, t, n) {
    return function () {
      var r = this.__on,
        i,
        o = yD(t);
      if (r) {
        for (var s = 0, u = r.length; s < u; ++s)
          if ((i = r[s]).type === e.type && i.name === e.name) {
            (this.removeEventListener(i.type, i.listener, i.options),
              this.addEventListener(i.type, (i.listener = o), (i.options = n)),
              (i.value = t));
            return;
          }
      }
      (this.addEventListener(e.type, o, n),
        (i = { type: e.type, name: e.name, value: t, listener: o, options: n }),
        r ? r.push(i) : (this.__on = [i]));
    };
  }
  function h7(e, t, n) {
    var r = wD(e + ""),
      i,
      o = r.length,
      s;
    if (arguments.length < 2) {
      var u = this.node().__on;
      if (u) {
        for (var a = 0, l = u.length, h; a < l; ++a)
          for (i = 0, h = u[a]; i < o; ++i)
            if ((s = r[i]).type === h.type && s.name === h.name) return h.value;
      }
      return;
    }
    for (u = t ? _D : vD, i = 0; i < o; ++i) this.each(u(r[i], t, n));
    return this;
  }
  function d7(e, t, n) {
    var r = $s(e),
      i = r.CustomEvent;
    (typeof i == "function"
      ? (i = new i(t, n))
      : ((i = r.document.createEvent("Event")),
        n
          ? (i.initEvent(t, n.bubbles, n.cancelable), (i.detail = n.detail))
          : i.initEvent(t, !1, !1)),
      e.dispatchEvent(i));
  }
  function kD(e, t) {
    return function () {
      return d7(this, e, t);
    };
  }
  function SD(e, t) {
    return function () {
      return d7(this, e, t.apply(this, arguments));
    };
  }
  function p7(e, t) {
    return this.each((typeof t == "function" ? SD : kD)(e, t));
  }
  function* m7() {
    for (var e = this._groups, t = 0, n = e.length; t < n; ++t)
      for (var r = e[t], i = 0, o = r.length, s; i < o; ++i)
        (s = r[i]) && (yield s);
  }
  var Ta = [null];
  function vt(e, t) {
    ((this._groups = e), (this._parents = t));
  }
  function g7() {
    return new vt([[document.documentElement]], Ta);
  }
  function AD() {
    return this;
  }
  vt.prototype = g7.prototype = {
    constructor: vt,
    select: Nb,
    selectAll: Db,
    selectChild: Ib,
    selectChildren: Fb,
    filter: qb,
    data: Bb,
    enter: Lb,
    exit: zb,
    join: Rb,
    merge: Pb,
    selection: AD,
    order: $b,
    sort: Hb,
    call: Ub,
    nodes: Vb,
    node: jb,
    size: Gb,
    empty: Yb,
    each: Xb,
    attr: Wb,
    style: Kb,
    property: Zb,
    classed: n7,
    text: r7,
    html: i7,
    raise: o7,
    lower: s7,
    append: u7,
    insert: a7,
    remove: l7,
    clone: c7,
    datum: f7,
    on: h7,
    dispatch: p7,
    [Symbol.iterator]: m7,
  };
  var Qr = g7;
  function Tt(e) {
    return typeof e == "string"
      ? new vt([[document.querySelector(e)]], [document.documentElement])
      : new vt([[e]], Ta);
  }
  function b7(e) {
    return Tt(So(e).call(document.documentElement));
  }
  var MD = 0;
  function uf() {
    return new Ym();
  }
  function Ym() {
    this._ = "@" + (++MD).toString(36);
  }
  Ym.prototype = uf.prototype = {
    constructor: Ym,
    get: function (e) {
      for (var t = this._; !(t in e); ) if (!(e = e.parentNode)) return;
      return e[t];
    },
    set: function (e, t) {
      return (e[this._] = t);
    },
    remove: function (e) {
      return this._ in e && delete e[this._];
    },
    toString: function () {
      return this._;
    },
  };
  function af(e) {
    let t;
    for (; (t = e.sourceEvent); ) e = t;
    return e;
  }
  function en(e, t) {
    if (((e = af(e)), t === void 0 && (t = e.currentTarget), t)) {
      var n = t.ownerSVGElement || t;
      if (n.createSVGPoint) {
        var r = n.createSVGPoint();
        return (
          (r.x = e.clientX),
          (r.y = e.clientY),
          (r = r.matrixTransform(t.getScreenCTM().inverse())),
          [r.x, r.y]
        );
      }
      if (t.getBoundingClientRect) {
        var i = t.getBoundingClientRect();
        return [
          e.clientX - i.left - t.clientLeft,
          e.clientY - i.top - t.clientTop,
        ];
      }
    }
    return [e.pageX, e.pageY];
  }
  function x7(e, t) {
    return (
      e.target &&
        ((e = af(e)),
        t === void 0 && (t = e.currentTarget),
        (e = e.touches || [e])),
      Array.from(e, (n) => en(n, t))
    );
  }
  function y7(e) {
    return typeof e == "string"
      ? new vt([document.querySelectorAll(e)], [document.documentElement])
      : new vt([Aa(e)], Ta);
  }
  var w7 = { passive: !1 },
    _0 = { capture: !0, passive: !1 };
  function lf(e) {
    e.stopImmediatePropagation();
  }
  function Mo(e) {
    (e.preventDefault(), e.stopImmediatePropagation());
  }
  function To(e) {
    var t = e.document.documentElement,
      n = Tt(e).on("dragstart.drag", Mo, _0);
    "onselectstart" in t
      ? n.on("selectstart.drag", Mo, _0)
      : ((t.__noselect = t.style.MozUserSelect),
        (t.style.MozUserSelect = "none"));
  }
  function Eo(e, t) {
    var n = e.document.documentElement,
      r = Tt(e).on("dragstart.drag", null);
    (t &&
      (r.on("click.drag", Mo, _0),
      setTimeout(function () {
        r.on("click.drag", null);
      }, 0)),
      "onselectstart" in n
        ? r.on("selectstart.drag", null)
        : ((n.style.MozUserSelect = n.__noselect), delete n.__noselect));
  }
  var Ea = (e) => () => e;
  function Ca(
    e,
    {
      sourceEvent: t,
      subject: n,
      target: r,
      identifier: i,
      active: o,
      x: s,
      y: u,
      dx: a,
      dy: l,
      dispatch: h,
    },
  ) {
    Object.defineProperties(this, {
      type: { value: e, enumerable: !0, configurable: !0 },
      sourceEvent: { value: t, enumerable: !0, configurable: !0 },
      subject: { value: n, enumerable: !0, configurable: !0 },
      target: { value: r, enumerable: !0, configurable: !0 },
      identifier: { value: i, enumerable: !0, configurable: !0 },
      active: { value: o, enumerable: !0, configurable: !0 },
      x: { value: s, enumerable: !0, configurable: !0 },
      y: { value: u, enumerable: !0, configurable: !0 },
      dx: { value: a, enumerable: !0, configurable: !0 },
      dy: { value: l, enumerable: !0, configurable: !0 },
      _: { value: h },
    });
  }
  Ca.prototype.on = function () {
    var e = this._.on.apply(this._, arguments);
    return e === this._ ? this : e;
  };
  function TD(e) {
    return !e.ctrlKey && !e.button;
  }
  function ED() {
    return this.parentNode;
  }
  function CD(e, t) {
    return t ?? { x: e.x, y: e.y };
  }
  function ND() {
    return navigator.maxTouchPoints || "ontouchstart" in this;
  }
  function v7() {
    var e = TD,
      t = ED,
      n = CD,
      r = ND,
      i = {},
      o = ur("start", "drag", "end"),
      s = 0,
      u,
      a,
      l,
      h,
      m = 0;
    function p(M) {
      M.on("mousedown.drag", b)
        .filter(r)
        .on("touchstart.drag", v)
        .on("touchmove.drag", k, w7)
        .on("touchend.drag touchcancel.drag", T)
        .style("touch-action", "none")
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
    }
    function b(M, D) {
      if (!(h || !e.call(this, M, D))) {
        var I = E(this, t.call(this, M, D), M, D, "mouse");
        I &&
          (Tt(M.view).on("mousemove.drag", x, _0).on("mouseup.drag", y, _0),
          To(M.view),
          lf(M),
          (l = !1),
          (u = M.clientX),
          (a = M.clientY),
          I("start", M));
      }
    }
    function x(M) {
      if ((Mo(M), !l)) {
        var D = M.clientX - u,
          I = M.clientY - a;
        l = D * D + I * I > m;
      }
      i.mouse("drag", M);
    }
    function y(M) {
      (Tt(M.view).on("mousemove.drag mouseup.drag", null),
        Eo(M.view, l),
        Mo(M),
        i.mouse("end", M));
    }
    function v(M, D) {
      if (e.call(this, M, D)) {
        var I = M.changedTouches,
          P = t.call(this, M, D),
          O = I.length,
          H,
          U;
        for (H = 0; H < O; ++H)
          (U = E(this, P, M, D, I[H].identifier, I[H])) &&
            (lf(M), U("start", M, I[H]));
      }
    }
    function k(M) {
      var D = M.changedTouches,
        I = D.length,
        P,
        O;
      for (P = 0; P < I; ++P)
        (O = i[D[P].identifier]) && (Mo(M), O("drag", M, D[P]));
    }
    function T(M) {
      var D = M.changedTouches,
        I = D.length,
        P,
        O;
      for (
        h && clearTimeout(h),
          h = setTimeout(function () {
            h = null;
          }, 500),
          P = 0;
        P < I;
        ++P
      )
        (O = i[D[P].identifier]) && (lf(M), O("end", M, D[P]));
    }
    function E(M, D, I, P, O, H) {
      var U = o.copy(),
        j = en(H || I, D),
        Z,
        Q,
        B;
      if (
        (B = n.call(
          M,
          new Ca("beforestart", {
            sourceEvent: I,
            target: p,
            identifier: O,
            active: s,
            x: j[0],
            y: j[1],
            dx: 0,
            dy: 0,
            dispatch: U,
          }),
          P,
        )) != null
      )
        return (
          (Z = B.x - j[0] || 0),
          (Q = B.y - j[1] || 0),
          function V(G, ne, te) {
            var ie = j,
              ce;
            switch (G) {
              case "start":
                ((i[O] = V), (ce = s++));
                break;
              case "end":
                (delete i[O], --s);
              case "drag":
                ((j = en(te || ne, D)), (ce = s));
                break;
            }
            U.call(
              G,
              M,
              new Ca(G, {
                sourceEvent: ne,
                subject: B,
                target: p,
                identifier: O,
                active: ce,
                x: j[0] + Z,
                y: j[1] + Q,
                dx: j[0] - ie[0],
                dy: j[1] - ie[1],
                dispatch: U,
              }),
              P,
            );
          }
        );
    }
    return (
      (p.filter = function (M) {
        return arguments.length
          ? ((e = typeof M == "function" ? M : Ea(!!M)), p)
          : e;
      }),
      (p.container = function (M) {
        return arguments.length
          ? ((t = typeof M == "function" ? M : Ea(M)), p)
          : t;
      }),
      (p.subject = function (M) {
        return arguments.length
          ? ((n = typeof M == "function" ? M : Ea(M)), p)
          : n;
      }),
      (p.touchable = function (M) {
        return arguments.length
          ? ((r = typeof M == "function" ? M : Ea(!!M)), p)
          : r;
      }),
      (p.on = function () {
        var M = o.on.apply(o, arguments);
        return M === o ? p : M;
      }),
      (p.clickDistance = function (M) {
        return arguments.length ? ((m = (M = +M) * M), p) : Math.sqrt(m);
      }),
      p
    );
  }
  function Gi(e, t, n) {
    ((e.prototype = t.prototype = n), (n.constructor = e));
  }
  function Co(e, t) {
    var n = Object.create(e.prototype);
    for (var r in t) n[r] = t[r];
    return n;
  }
  function ti() {}
  var No = 0.7,
    A0 = 1 / No,
    Hs = "\\s*([+-]?\\d+)\\s*",
    Na = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
    ei = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
    DD = /^#([0-9a-f]{3,8})$/,
    ID = new RegExp(`^rgb\\(${Hs},${Hs},${Hs}\\)$`),
    FD = new RegExp(`^rgb\\(${ei},${ei},${ei}\\)$`),
    qD = new RegExp(`^rgba\\(${Hs},${Hs},${Hs},${Na}\\)$`),
    LD = new RegExp(`^rgba\\(${ei},${ei},${ei},${Na}\\)$`),
    OD = new RegExp(`^hsl\\(${Na},${ei},${ei}\\)$`),
    BD = new RegExp(`^hsla\\(${Na},${ei},${ei},${Na}\\)$`),
    _7 = {
      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,
    };
  Gi(ti, ar, {
    copy(e) {
      return Object.assign(new this.constructor(), this, e);
    },
    displayable() {
      return this.rgb().displayable();
    },
    hex: k7,
    formatHex: k7,
    formatHex8: zD,
    formatHsl: RD,
    formatRgb: S7,
    toString: S7,
  });
  function k7() {
    return this.rgb().formatHex();
  }
  function zD() {
    return this.rgb().formatHex8();
  }
  function RD() {
    return N7(this).formatHsl();
  }
  function S7() {
    return this.rgb().formatRgb();
  }
  function ar(e) {
    var t, n;
    return (
      (e = (e + "").trim().toLowerCase()),
      (t = DD.exec(e))
        ? ((n = t[1].length),
          (t = parseInt(t[1], 16)),
          n === 6
            ? A7(t)
            : n === 3
              ? new Gt(
                  ((t >> 8) & 15) | ((t >> 4) & 240),
                  ((t >> 4) & 15) | (t & 240),
                  ((t & 15) << 4) | (t & 15),
                  1,
                )
              : n === 8
                ? cf(
                    (t >> 24) & 255,
                    (t >> 16) & 255,
                    (t >> 8) & 255,
                    (t & 255) / 255,
                  )
                : n === 4
                  ? cf(
                      ((t >> 12) & 15) | ((t >> 8) & 240),
                      ((t >> 8) & 15) | ((t >> 4) & 240),
                      ((t >> 4) & 15) | (t & 240),
                      (((t & 15) << 4) | (t & 15)) / 255,
                    )
                  : null)
        : (t = ID.exec(e))
          ? new Gt(t[1], t[2], t[3], 1)
          : (t = FD.exec(e))
            ? new Gt(
                (t[1] * 255) / 100,
                (t[2] * 255) / 100,
                (t[3] * 255) / 100,
                1,
              )
            : (t = qD.exec(e))
              ? cf(t[1], t[2], t[3], t[4])
              : (t = LD.exec(e))
                ? cf(
                    (t[1] * 255) / 100,
                    (t[2] * 255) / 100,
                    (t[3] * 255) / 100,
                    t[4],
                  )
                : (t = OD.exec(e))
                  ? E7(t[1], t[2] / 100, t[3] / 100, 1)
                  : (t = BD.exec(e))
                    ? E7(t[1], t[2] / 100, t[3] / 100, t[4])
                    : _7.hasOwnProperty(e)
                      ? A7(_7[e])
                      : e === "transparent"
                        ? new Gt(NaN, NaN, NaN, 0)
                        : null
    );
  }
  function A7(e) {
    return new Gt((e >> 16) & 255, (e >> 8) & 255, e & 255, 1);
  }
  function cf(e, t, n, r) {
    return (r <= 0 && (e = t = n = NaN), new Gt(e, t, n, r));
  }
  function Da(e) {
    return (
      e instanceof ti || (e = ar(e)),
      e ? ((e = e.rgb()), new Gt(e.r, e.g, e.b, e.opacity)) : new Gt()
    );
  }
  function Yi(e, t, n, r) {
    return arguments.length === 1 ? Da(e) : new Gt(e, t, n, r ?? 1);
  }
  function Gt(e, t, n, r) {
    ((this.r = +e), (this.g = +t), (this.b = +n), (this.opacity = +r));
  }
  Gi(
    Gt,
    Yi,
    Co(ti, {
      brighter(e) {
        return (
          (e = e == null ? A0 : Math.pow(A0, e)),
          new Gt(this.r * e, this.g * e, this.b * e, this.opacity)
        );
      },
      darker(e) {
        return (
          (e = e == null ? No : Math.pow(No, e)),
          new Gt(this.r * e, this.g * e, this.b * e, this.opacity)
        );
      },
      rgb() {
        return this;
      },
      clamp() {
        return new Gt(S0(this.r), S0(this.g), S0(this.b), hf(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: M7,
      formatHex: M7,
      formatHex8: PD,
      formatRgb: T7,
      toString: T7,
    }),
  );
  function M7() {
    return `#${k0(this.r)}${k0(this.g)}${k0(this.b)}`;
  }
  function PD() {
    return `#${k0(this.r)}${k0(this.g)}${k0(this.b)}${k0((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
  }
  function T7() {
    let e = hf(this.opacity);
    return `${e === 1 ? "rgb(" : "rgba("}${S0(this.r)}, ${S0(this.g)}, ${S0(this.b)}${e === 1 ? ")" : `, ${e})`}`;
  }
  function hf(e) {
    return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));
  }
  function S0(e) {
    return Math.max(0, Math.min(255, Math.round(e) || 0));
  }
  function k0(e) {
    return ((e = S0(e)), (e < 16 ? "0" : "") + e.toString(16));
  }
  function E7(e, t, n, r) {
    return (
      r <= 0
        ? (e = t = n = NaN)
        : n <= 0 || n >= 1
          ? (e = t = NaN)
          : t <= 0 && (e = NaN),
      new Mr(e, t, n, r)
    );
  }
  function N7(e) {
    if (e instanceof Mr) return new Mr(e.h, e.s, e.l, e.opacity);
    if ((e instanceof ti || (e = ar(e)), !e)) return new Mr();
    if (e instanceof Mr) return e;
    e = e.rgb();
    var t = e.r / 255,
      n = e.g / 255,
      r = e.b / 255,
      i = Math.min(t, n, r),
      o = Math.max(t, n, r),
      s = NaN,
      u = o - i,
      a = (o + i) / 2;
    return (
      u
        ? (t === o
            ? (s = (n - r) / u + (n < r) * 6)
            : n === o
              ? (s = (r - t) / u + 2)
              : (s = (t - n) / u + 4),
          (u /= a < 0.5 ? o + i : 2 - o - i),
          (s *= 60))
        : (u = a > 0 && a < 1 ? 0 : s),
      new Mr(s, u, a, e.opacity)
    );
  }
  function Us(e, t, n, r) {
    return arguments.length === 1 ? N7(e) : new Mr(e, t, n, r ?? 1);
  }
  function Mr(e, t, n, r) {
    ((this.h = +e), (this.s = +t), (this.l = +n), (this.opacity = +r));
  }
  Gi(
    Mr,
    Us,
    Co(ti, {
      brighter(e) {
        return (
          (e = e == null ? A0 : Math.pow(A0, e)),
          new Mr(this.h, this.s, this.l * e, this.opacity)
        );
      },
      darker(e) {
        return (
          (e = e == null ? No : Math.pow(No, e)),
          new Mr(this.h, this.s, this.l * e, this.opacity)
        );
      },
      rgb() {
        var e = (this.h % 360) + (this.h < 0) * 360,
          t = isNaN(e) || isNaN(this.s) ? 0 : this.s,
          n = this.l,
          r = n + (n < 0.5 ? n : 1 - n) * t,
          i = 2 * n - r;
        return new Gt(
          Xm(e >= 240 ? e - 240 : e + 120, i, r),
          Xm(e, i, r),
          Xm(e < 120 ? e + 240 : e - 120, i, r),
          this.opacity,
        );
      },
      clamp() {
        return new Mr(C7(this.h), ff(this.s), ff(this.l), hf(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() {
        let e = hf(this.opacity);
        return `${e === 1 ? "hsl(" : "hsla("}${C7(this.h)}, ${ff(this.s) * 100}%, ${ff(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`;
      },
    }),
  );
  function C7(e) {
    return ((e = (e || 0) % 360), e < 0 ? e + 360 : e);
  }
  function ff(e) {
    return Math.max(0, Math.min(1, e || 0));
  }
  function Xm(e, t, n) {
    return (
      (e < 60
        ? t + ((n - t) * e) / 60
        : e < 180
          ? n
          : e < 240
            ? t + ((n - t) * (240 - e)) / 60
            : t) * 255
    );
  }
  var df = Math.PI / 180,
    pf = 180 / Math.PI;
  var mf = 18,
    D7 = 0.96422,
    I7 = 1,
    F7 = 0.82521,
    q7 = 4 / 29,
    Vs = 6 / 29,
    L7 = 3 * Vs * Vs,
    $D = Vs * Vs * Vs;
  function O7(e) {
    if (e instanceof Tr) return new Tr(e.l, e.a, e.b, e.opacity);
    if (e instanceof ni) return P7(e);
    e instanceof Gt || (e = Da(e));
    var t = Jm(e.r),
      n = Jm(e.g),
      r = Jm(e.b),
      i = Wm((0.2225045 * t + 0.7168786 * n + 0.0606169 * r) / I7),
      o,
      s;
    return (
      t === n && n === r
        ? (o = s = i)
        : ((o = Wm((0.4360747 * t + 0.3850649 * n + 0.1430804 * r) / D7)),
          (s = Wm((0.0139322 * t + 0.0971045 * n + 0.7141733 * r) / F7))),
      new Tr(116 * i - 16, 500 * (o - i), 200 * (i - s), e.opacity)
    );
  }
  function B7(e, t) {
    return new Tr(e, 0, 0, t ?? 1);
  }
  function M0(e, t, n, r) {
    return arguments.length === 1 ? O7(e) : new Tr(e, t, n, r ?? 1);
  }
  function Tr(e, t, n, r) {
    ((this.l = +e), (this.a = +t), (this.b = +n), (this.opacity = +r));
  }
  Gi(
    Tr,
    M0,
    Co(ti, {
      brighter(e) {
        return new Tr(this.l + mf * (e ?? 1), this.a, this.b, this.opacity);
      },
      darker(e) {
        return new Tr(this.l - mf * (e ?? 1), this.a, this.b, this.opacity);
      },
      rgb() {
        var e = (this.l + 16) / 116,
          t = isNaN(this.a) ? e : e + this.a / 500,
          n = isNaN(this.b) ? e : e - this.b / 200;
        return (
          (t = D7 * Km(t)),
          (e = I7 * Km(e)),
          (n = F7 * Km(n)),
          new Gt(
            Zm(3.1338561 * t - 1.6168667 * e - 0.4906146 * n),
            Zm(-0.9787684 * t + 1.9161415 * e + 0.033454 * n),
            Zm(0.0719453 * t - 0.2289914 * e + 1.4052427 * n),
            this.opacity,
          )
        );
      },
    }),
  );
  function Wm(e) {
    return e > $D ? Math.pow(e, 1 / 3) : e / L7 + q7;
  }
  function Km(e) {
    return e > Vs ? e * e * e : L7 * (e - q7);
  }
  function Zm(e) {
    return (
      255 * (e <= 0.0031308 ? 12.92 * e : 1.055 * Math.pow(e, 1 / 2.4) - 0.055)
    );
  }
  function Jm(e) {
    return (e /= 255) <= 0.04045
      ? e / 12.92
      : Math.pow((e + 0.055) / 1.055, 2.4);
  }
  function z7(e) {
    if (e instanceof ni) return new ni(e.h, e.c, e.l, e.opacity);
    if ((e instanceof Tr || (e = O7(e)), e.a === 0 && e.b === 0))
      return new ni(NaN, 0 < e.l && e.l < 100 ? 0 : NaN, e.l, e.opacity);
    var t = Math.atan2(e.b, e.a) * pf;
    return new ni(
      t < 0 ? t + 360 : t,
      Math.sqrt(e.a * e.a + e.b * e.b),
      e.l,
      e.opacity,
    );
  }
  function R7(e, t, n, r) {
    return arguments.length === 1 ? z7(e) : new ni(n, t, e, r ?? 1);
  }
  function js(e, t, n, r) {
    return arguments.length === 1 ? z7(e) : new ni(e, t, n, r ?? 1);
  }
  function ni(e, t, n, r) {
    ((this.h = +e), (this.c = +t), (this.l = +n), (this.opacity = +r));
  }
  function P7(e) {
    if (isNaN(e.h)) return new Tr(e.l, 0, 0, e.opacity);
    var t = e.h * df;
    return new Tr(e.l, Math.cos(t) * e.c, Math.sin(t) * e.c, e.opacity);
  }
  Gi(
    ni,
    js,
    Co(ti, {
      brighter(e) {
        return new ni(this.h, this.c, this.l + mf * (e ?? 1), this.opacity);
      },
      darker(e) {
        return new ni(this.h, this.c, this.l - mf * (e ?? 1), this.opacity);
      },
      rgb() {
        return P7(this).rgb();
      },
    }),
  );
  var V7 = -0.14861,
    Qm = 1.78277,
    e2 = -0.29227,
    gf = -0.90649,
    Ia = 1.97294,
    $7 = Ia * gf,
    H7 = Ia * Qm,
    U7 = Qm * e2 - gf * V7;
  function HD(e) {
    if (e instanceof T0) return new T0(e.h, e.s, e.l, e.opacity);
    e instanceof Gt || (e = Da(e));
    var t = e.r / 255,
      n = e.g / 255,
      r = e.b / 255,
      i = (U7 * r + $7 * t - H7 * n) / (U7 + $7 - H7),
      o = r - i,
      s = (Ia * (n - i) - e2 * o) / gf,
      u = Math.sqrt(s * s + o * o) / (Ia * i * (1 - i)),
      a = u ? Math.atan2(s, o) * pf - 120 : NaN;
    return new T0(a < 0 ? a + 360 : a, u, i, e.opacity);
  }
  function gn(e, t, n, r) {
    return arguments.length === 1 ? HD(e) : new T0(e, t, n, r ?? 1);
  }
  function T0(e, t, n, r) {
    ((this.h = +e), (this.s = +t), (this.l = +n), (this.opacity = +r));
  }
  Gi(
    T0,
    gn,
    Co(ti, {
      brighter(e) {
        return (
          (e = e == null ? A0 : Math.pow(A0, e)),
          new T0(this.h, this.s, this.l * e, this.opacity)
        );
      },
      darker(e) {
        return (
          (e = e == null ? No : Math.pow(No, e)),
          new T0(this.h, this.s, this.l * e, this.opacity)
        );
      },
      rgb() {
        var e = isNaN(this.h) ? 0 : (this.h + 120) * df,
          t = +this.l,
          n = isNaN(this.s) ? 0 : this.s * t * (1 - t),
          r = Math.cos(e),
          i = Math.sin(e);
        return new Gt(
          255 * (t + n * (V7 * r + Qm * i)),
          255 * (t + n * (e2 * r + gf * i)),
          255 * (t + n * (Ia * r)),
          this.opacity,
        );
      },
    }),
  );
  function t2(e, t, n, r, i) {
    var o = e * e,
      s = o * e;
    return (
      ((1 - 3 * e + 3 * o - s) * t +
        (4 - 6 * o + 3 * s) * n +
        (1 + 3 * e + 3 * o - 3 * s) * r +
        s * i) /
      6
    );
  }
  function bf(e) {
    var t = e.length - 1;
    return function (n) {
      var r = n <= 0 ? (n = 0) : n >= 1 ? ((n = 1), t - 1) : Math.floor(n * t),
        i = e[r],
        o = e[r + 1],
        s = r > 0 ? e[r - 1] : 2 * i - o,
        u = r < t - 1 ? e[r + 2] : 2 * o - i;
      return t2((n - r / t) * t, s, i, o, u);
    };
  }
  function xf(e) {
    var t = e.length;
    return function (n) {
      var r = Math.floor(((n %= 1) < 0 ? ++n : n) * t),
        i = e[(r + t - 1) % t],
        o = e[r % t],
        s = e[(r + 1) % t],
        u = e[(r + 2) % t];
      return t2((n - r / t) * t, i, o, s, u);
    };
  }
  var Gs = (e) => () => e;
  function j7(e, t) {
    return function (n) {
      return e + n * t;
    };
  }
  function UD(e, t, n) {
    return (
      (e = Math.pow(e, n)),
      (t = Math.pow(t, n) - e),
      (n = 1 / n),
      function (r) {
        return Math.pow(e + r * t, n);
      }
    );
  }
  function Do(e, t) {
    var n = t - e;
    return n
      ? j7(e, n > 180 || n < -180 ? n - 360 * Math.round(n / 360) : n)
      : Gs(isNaN(e) ? t : e);
  }
  function G7(e) {
    return (e = +e) == 1
      ? Et
      : function (t, n) {
          return n - t ? UD(t, n, e) : Gs(isNaN(t) ? n : t);
        };
  }
  function Et(e, t) {
    var n = t - e;
    return n ? j7(e, n) : Gs(isNaN(e) ? t : e);
  }
  var Io = (function e(t) {
    var n = G7(t);
    function r(i, o) {
      var s = n((i = Yi(i)).r, (o = Yi(o)).r),
        u = n(i.g, o.g),
        a = n(i.b, o.b),
        l = Et(i.opacity, o.opacity);
      return function (h) {
        return (
          (i.r = s(h)),
          (i.g = u(h)),
          (i.b = a(h)),
          (i.opacity = l(h)),
          i + ""
        );
      };
    }
    return ((r.gamma = e), r);
  })(1);
  function Y7(e) {
    return function (t) {
      var n = t.length,
        r = new Array(n),
        i = new Array(n),
        o = new Array(n),
        s,
        u;
      for (s = 0; s < n; ++s)
        ((u = Yi(t[s])),
          (r[s] = u.r || 0),
          (i[s] = u.g || 0),
          (o[s] = u.b || 0));
      return (
        (r = e(r)),
        (i = e(i)),
        (o = e(o)),
        (u.opacity = 1),
        function (a) {
          return ((u.r = r(a)), (u.g = i(a)), (u.b = o(a)), u + "");
        }
      );
    };
  }
  var yf = Y7(bf),
    X7 = Y7(xf);
  function Ys(e, t) {
    t || (t = []);
    var n = e ? Math.min(t.length, e.length) : 0,
      r = t.slice(),
      i;
    return function (o) {
      for (i = 0; i < n; ++i) r[i] = e[i] * (1 - o) + t[i] * o;
      return r;
    };
  }
  function wf(e) {
    return ArrayBuffer.isView(e) && !(e instanceof DataView);
  }
  function W7(e, t) {
    return (wf(t) ? Ys : n2)(e, t);
  }
  function n2(e, t) {
    var n = t ? t.length : 0,
      r = e ? Math.min(n, e.length) : 0,
      i = new Array(r),
      o = new Array(n),
      s;
    for (s = 0; s < r; ++s) i[s] = bn(e[s], t[s]);
    for (; s < n; ++s) o[s] = t[s];
    return function (u) {
      for (s = 0; s < r; ++s) o[s] = i[s](u);
      return o;
    };
  }
  function vf(e, t) {
    var n = new Date();
    return (
      (e = +e),
      (t = +t),
      function (r) {
        return (n.setTime(e * (1 - r) + t * r), n);
      }
    );
  }
  function tn(e, t) {
    return (
      (e = +e),
      (t = +t),
      function (n) {
        return e * (1 - n) + t * n;
      }
    );
  }
  function _f(e, t) {
    var n = {},
      r = {},
      i;
    ((e === null || typeof e != "object") && (e = {}),
      (t === null || typeof t != "object") && (t = {}));
    for (i in t) i in e ? (n[i] = bn(e[i], t[i])) : (r[i] = t[i]);
    return function (o) {
      for (i in n) r[i] = n[i](o);
      return r;
    };
  }
  var i2 = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
    r2 = new RegExp(i2.source, "g");
  function VD(e) {
    return function () {
      return e;
    };
  }
  function jD(e) {
    return function (t) {
      return e(t) + "";
    };
  }
  function Xs(e, t) {
    var n = (i2.lastIndex = r2.lastIndex = 0),
      r,
      i,
      o,
      s = -1,
      u = [],
      a = [];
    for (e = e + "", t = t + ""; (r = i2.exec(e)) && (i = r2.exec(t)); )
      ((o = i.index) > n &&
        ((o = t.slice(n, o)), u[s] ? (u[s] += o) : (u[++s] = o)),
        (r = r[0]) === (i = i[0])
          ? u[s]
            ? (u[s] += i)
            : (u[++s] = i)
          : ((u[++s] = null), a.push({ i: s, x: tn(r, i) })),
        (n = r2.lastIndex));
    return (
      n < t.length && ((o = t.slice(n)), u[s] ? (u[s] += o) : (u[++s] = o)),
      u.length < 2
        ? a[0]
          ? jD(a[0].x)
          : VD(t)
        : ((t = a.length),
          function (l) {
            for (var h = 0, m; h < t; ++h) u[(m = a[h]).i] = m.x(l);
            return u.join("");
          })
    );
  }
  function bn(e, t) {
    var n = typeof t,
      r;
    return t == null || n === "boolean"
      ? Gs(t)
      : (n === "number"
          ? tn
          : n === "string"
            ? (r = ar(t))
              ? ((t = r), Io)
              : Xs
            : t instanceof ar
              ? Io
              : t instanceof Date
                ? vf
                : wf(t)
                  ? Ys
                  : Array.isArray(t)
                    ? n2
                    : (typeof t.valueOf != "function" &&
                          typeof t.toString != "function") ||
                        isNaN(t)
                      ? _f
                      : tn)(e, t);
  }
  function K7(e) {
    var t = e.length;
    return function (n) {
      return e[Math.max(0, Math.min(t - 1, Math.floor(n * t)))];
    };
  }
  function Z7(e, t) {
    var n = Do(+e, +t);
    return function (r) {
      var i = n(r);
      return i - 360 * Math.floor(i / 360);
    };
  }
  function Fo(e, t) {
    return (
      (e = +e),
      (t = +t),
      function (n) {
        return Math.round(e * (1 - n) + t * n);
      }
    );
  }
  var J7 = 180 / Math.PI,
    kf = {
      translateX: 0,
      translateY: 0,
      rotate: 0,
      skewX: 0,
      scaleX: 1,
      scaleY: 1,
    };
  function o2(e, t, n, r, i, o) {
    var s, u, a;
    return (
      (s = Math.sqrt(e * e + t * t)) && ((e /= s), (t /= s)),
      (a = e * n + t * r) && ((n -= e * a), (r -= t * a)),
      (u = Math.sqrt(n * n + r * r)) && ((n /= u), (r /= u), (a /= u)),
      e * r < t * n && ((e = -e), (t = -t), (a = -a), (s = -s)),
      {
        translateX: i,
        translateY: o,
        rotate: Math.atan2(t, e) * J7,
        skewX: Math.atan(a) * J7,
        scaleX: s,
        scaleY: u,
      }
    );
  }
  var Sf;
  function Q7(e) {
    let t = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(
      e + "",
    );
    return t.isIdentity ? kf : o2(t.a, t.b, t.c, t.d, t.e, t.f);
  }
  function e9(e) {
    return e == null
      ? kf
      : (Sf ||
          (Sf = document.createElementNS("http://www.w3.org/2000/svg", "g")),
        Sf.setAttribute("transform", e),
        (e = Sf.transform.baseVal.consolidate())
          ? ((e = e.matrix), o2(e.a, e.b, e.c, e.d, e.e, e.f))
          : kf);
  }
  function t9(e, t, n, r) {
    function i(l) {
      return l.length ? l.pop() + " " : "";
    }
    function o(l, h, m, p, b, x) {
      if (l !== m || h !== p) {
        var y = b.push("translate(", null, t, null, n);
        x.push({ i: y - 4, x: tn(l, m) }, { i: y - 2, x: tn(h, p) });
      } else (m || p) && b.push("translate(" + m + t + p + n);
    }
    function s(l, h, m, p) {
      l !== h
        ? (l - h > 180 ? (h += 360) : h - l > 180 && (l += 360),
          p.push({ i: m.push(i(m) + "rotate(", null, r) - 2, x: tn(l, h) }))
        : h && m.push(i(m) + "rotate(" + h + r);
    }
    function u(l, h, m, p) {
      l !== h
        ? p.push({ i: m.push(i(m) + "skewX(", null, r) - 2, x: tn(l, h) })
        : h && m.push(i(m) + "skewX(" + h + r);
    }
    function a(l, h, m, p, b, x) {
      if (l !== m || h !== p) {
        var y = b.push(i(b) + "scale(", null, ",", null, ")");
        x.push({ i: y - 4, x: tn(l, m) }, { i: y - 2, x: tn(h, p) });
      } else
        (m !== 1 || p !== 1) && b.push(i(b) + "scale(" + m + "," + p + ")");
    }
    return function (l, h) {
      var m = [],
        p = [];
      return (
        (l = e(l)),
        (h = e(h)),
        o(l.translateX, l.translateY, h.translateX, h.translateY, m, p),
        s(l.rotate, h.rotate, m, p),
        u(l.skewX, h.skewX, m, p),
        a(l.scaleX, l.scaleY, h.scaleX, h.scaleY, m, p),
        (l = h = null),
        function (b) {
          for (var x = -1, y = p.length, v; ++x < y; ) m[(v = p[x]).i] = v.x(b);
          return m.join("");
        }
      );
    };
  }
  var Af = t9(Q7, "px, ", "px)", "deg)"),
    Mf = t9(e9, ", ", ")", ")");
  var GD = 1e-12;
  function n9(e) {
    return ((e = Math.exp(e)) + 1 / e) / 2;
  }
  function YD(e) {
    return ((e = Math.exp(e)) - 1 / e) / 2;
  }
  function XD(e) {
    return ((e = Math.exp(2 * e)) - 1) / (e + 1);
  }
  var Tf = (function e(t, n, r) {
    function i(o, s) {
      var u = o[0],
        a = o[1],
        l = o[2],
        h = s[0],
        m = s[1],
        p = s[2],
        b = h - u,
        x = m - a,
        y = b * b + x * x,
        v,
        k;
      if (y < GD)
        ((k = Math.log(p / l) / t),
          (v = function (P) {
            return [u + P * b, a + P * x, l * Math.exp(t * P * k)];
          }));
      else {
        var T = Math.sqrt(y),
          E = (p * p - l * l + r * y) / (2 * l * n * T),
          M = (p * p - l * l - r * y) / (2 * p * n * T),
          D = Math.log(Math.sqrt(E * E + 1) - E),
          I = Math.log(Math.sqrt(M * M + 1) - M);
        ((k = (I - D) / t),
          (v = function (P) {
            var O = P * k,
              H = n9(D),
              U = (l / (n * T)) * (H * XD(t * O + D) - YD(D));
            return [u + U * b, a + U * x, (l * H) / n9(t * O + D)];
          }));
      }
      return ((v.duration = (k * 1e3 * t) / Math.SQRT2), v);
    }
    return (
      (i.rho = function (o) {
        var s = Math.max(0.001, +o),
          u = s * s,
          a = u * u;
        return e(s, u, a);
      }),
      i
    );
  })(Math.SQRT2, 2, 4);
  function r9(e) {
    return function (t, n) {
      var r = e((t = Us(t)).h, (n = Us(n)).h),
        i = Et(t.s, n.s),
        o = Et(t.l, n.l),
        s = Et(t.opacity, n.opacity);
      return function (u) {
        return (
          (t.h = r(u)),
          (t.s = i(u)),
          (t.l = o(u)),
          (t.opacity = s(u)),
          t + ""
        );
      };
    };
  }
  var i9 = r9(Do),
    o9 = r9(Et);
  function s2(e, t) {
    var n = Et((e = M0(e)).l, (t = M0(t)).l),
      r = Et(e.a, t.a),
      i = Et(e.b, t.b),
      o = Et(e.opacity, t.opacity);
    return function (s) {
      return (
        (e.l = n(s)),
        (e.a = r(s)),
        (e.b = i(s)),
        (e.opacity = o(s)),
        e + ""
      );
    };
  }
  function s9(e) {
    return function (t, n) {
      var r = e((t = js(t)).h, (n = js(n)).h),
        i = Et(t.c, n.c),
        o = Et(t.l, n.l),
        s = Et(t.opacity, n.opacity);
      return function (u) {
        return (
          (t.h = r(u)),
          (t.c = i(u)),
          (t.l = o(u)),
          (t.opacity = s(u)),
          t + ""
        );
      };
    };
  }
  var u9 = s9(Do),
    a9 = s9(Et);
  function l9(e) {
    return (function t(n) {
      n = +n;
      function r(i, o) {
        var s = e((i = gn(i)).h, (o = gn(o)).h),
          u = Et(i.s, o.s),
          a = Et(i.l, o.l),
          l = Et(i.opacity, o.opacity);
        return function (h) {
          return (
            (i.h = s(h)),
            (i.s = u(h)),
            (i.l = a(Math.pow(h, n))),
            (i.opacity = l(h)),
            i + ""
          );
        };
      }
      return ((r.gamma = t), r);
    })(1);
  }
  var c9 = l9(Do),
    E0 = l9(Et);
  function Fa(e, t) {
    t === void 0 && ((t = e), (e = bn));
    for (
      var n = 0, r = t.length - 1, i = t[0], o = new Array(r < 0 ? 0 : r);
      n < r;
    )
      o[n] = e(i, (i = t[++n]));
    return function (s) {
      var u = Math.max(0, Math.min(r - 1, Math.floor((s *= r))));
      return o[u](s - u);
    };
  }
  function f9(e, t) {
    for (var n = new Array(t), r = 0; r < t; ++r) n[r] = e(r / (t - 1));
    return n;
  }
  var Ws = 0,
    La = 0,
    qa = 0,
    d9 = 1e3,
    Ef,
    Oa,
    Cf = 0,
    C0 = 0,
    Nf = 0,
    Ba = typeof performance == "object" && performance.now ? performance : Date,
    p9 =
      typeof window == "object" && window.requestAnimationFrame
        ? window.requestAnimationFrame.bind(window)
        : function (e) {
            setTimeout(e, 17);
          };
  function qo() {
    return C0 || (p9(WD), (C0 = Ba.now() + Nf));
  }
  function WD() {
    C0 = 0;
  }
  function N0() {
    this._call = this._time = this._next = null;
  }
  N0.prototype = D0.prototype = {
    constructor: N0,
    restart: function (e, t, n) {
      if (typeof e != "function")
        throw new TypeError("callback is not a function");
      ((n = (n == null ? qo() : +n) + (t == null ? 0 : +t)),
        !this._next &&
          Oa !== this &&
          (Oa ? (Oa._next = this) : (Ef = this), (Oa = this)),
        (this._call = e),
        (this._time = n),
        u2());
    },
    stop: function () {
      this._call && ((this._call = null), (this._time = 1 / 0), u2());
    },
  };
  function D0(e, t, n) {
    var r = new N0();
    return (r.restart(e, t, n), r);
  }
  function a2() {
    (qo(), ++Ws);
    for (var e = Ef, t; e; )
      ((t = C0 - e._time) >= 0 && e._call.call(void 0, t), (e = e._next));
    --Ws;
  }
  function h9() {
    ((C0 = (Cf = Ba.now()) + Nf), (Ws = La = 0));
    try {
      a2();
    } finally {
      ((Ws = 0), ZD(), (C0 = 0));
    }
  }
  function KD() {
    var e = Ba.now(),
      t = e - Cf;
    t > d9 && ((Nf -= t), (Cf = e));
  }
  function ZD() {
    for (var e, t = Ef, n, r = 1 / 0; t; )
      t._call
        ? (r > t._time && (r = t._time), (e = t), (t = t._next))
        : ((n = t._next), (t._next = null), (t = e ? (e._next = n) : (Ef = n)));
    ((Oa = e), u2(r));
  }
  function u2(e) {
    if (!Ws) {
      La && (La = clearTimeout(La));
      var t = e - C0;
      t > 24
        ? (e < 1 / 0 && (La = setTimeout(h9, e - Ba.now() - Nf)),
          qa && (qa = clearInterval(qa)))
        : (qa || ((Cf = Ba.now()), (qa = setInterval(KD, d9))),
          (Ws = 1),
          p9(h9));
    }
  }
  function za(e, t, n) {
    var r = new N0();
    return (
      (t = t == null ? 0 : +t),
      r.restart(
        (i) => {
          (r.stop(), e(i + t));
        },
        t,
        n,
      ),
      r
    );
  }
  function m9(e, t, n) {
    var r = new N0(),
      i = t;
    return t == null
      ? (r.restart(e, t, n), r)
      : ((r._restart = r.restart),
        (r.restart = function (o, s, u) {
          ((s = +s),
            (u = u == null ? qo() : +u),
            r._restart(
              function a(l) {
                ((l += i), r._restart(a, (i += s), u), o(l));
              },
              s,
              u,
            ));
        }),
        r.restart(e, t, n),
        r);
  }
  var JD = ur("start", "end", "cancel", "interrupt"),
    QD = [],
    b9 = 0,
    If = 1,
    Ff = 2,
    Df = 3,
    g9 = 4,
    qf = 5,
    Ra = 6;
  function Lo(e, t, n, r, i, o) {
    var s = e.__transition;
    if (!s) e.__transition = {};
    else if (n in s) return;
    eI(e, n, {
      name: t,
      index: r,
      group: i,
      on: JD,
      tween: QD,
      time: o.time,
      delay: o.delay,
      duration: o.duration,
      ease: o.ease,
      timer: null,
      state: b9,
    });
  }
  function Pa(e, t) {
    var n = Kt(e, t);
    if (n.state > b9) throw new Error("too late; already scheduled");
    return n;
  }
  function hn(e, t) {
    var n = Kt(e, t);
    if (n.state > Df) throw new Error("too late; already running");
    return n;
  }
  function Kt(e, t) {
    var n = e.__transition;
    if (!n || !(n = n[t])) throw new Error("transition not found");
    return n;
  }
  function eI(e, t, n) {
    var r = e.__transition,
      i;
    ((r[t] = n), (n.timer = D0(o, 0, n.time)));
    function o(l) {
      ((n.state = If),
        n.timer.restart(s, n.delay, n.time),
        n.delay <= l && s(l - n.delay));
    }
    function s(l) {
      var h, m, p, b;
      if (n.state !== If) return a();
      for (h in r)
        if (((b = r[h]), b.name === n.name)) {
          if (b.state === Df) return za(s);
          b.state === g9
            ? ((b.state = Ra),
              b.timer.stop(),
              b.on.call("interrupt", e, e.__data__, b.index, b.group),
              delete r[h])
            : +h < t &&
              ((b.state = Ra),
              b.timer.stop(),
              b.on.call("cancel", e, e.__data__, b.index, b.group),
              delete r[h]);
        }
      if (
        (za(function () {
          n.state === Df &&
            ((n.state = g9), n.timer.restart(u, n.delay, n.time), u(l));
        }),
        (n.state = Ff),
        n.on.call("start", e, e.__data__, n.index, n.group),
        n.state === Ff)
      ) {
        for (
          n.state = Df, i = new Array((p = n.tween.length)), h = 0, m = -1;
          h < p;
          ++h
        )
          (b = n.tween[h].value.call(e, e.__data__, n.index, n.group)) &&
            (i[++m] = b);
        i.length = m + 1;
      }
    }
    function u(l) {
      for (
        var h =
            l < n.duration
              ? n.ease.call(null, l / n.duration)
              : (n.timer.restart(a), (n.state = qf), 1),
          m = -1,
          p = i.length;
        ++m < p;
      )
        i[m].call(e, h);
      n.state === qf &&
        (n.on.call("end", e, e.__data__, n.index, n.group), a());
    }
    function a() {
      ((n.state = Ra), n.timer.stop(), delete r[t]);
      for (var l in r) return;
      delete e.__transition;
    }
  }
  function Er(e, t) {
    var n = e.__transition,
      r,
      i,
      o = !0,
      s;
    if (n) {
      t = t == null ? null : t + "";
      for (s in n) {
        if ((r = n[s]).name !== t) {
          o = !1;
          continue;
        }
        ((i = r.state > Ff && r.state < qf),
          (r.state = Ra),
          r.timer.stop(),
          r.on.call(
            i ? "interrupt" : "cancel",
            e,
            e.__data__,
            r.index,
            r.group,
          ),
          delete n[s]);
      }
      o && delete e.__transition;
    }
  }
  function x9(e) {
    return this.each(function () {
      Er(this, e);
    });
  }
  function tI(e, t) {
    var n, r;
    return function () {
      var i = hn(this, e),
        o = i.tween;
      if (o !== n) {
        r = n = o;
        for (var s = 0, u = r.length; s < u; ++s)
          if (r[s].name === t) {
            ((r = r.slice()), r.splice(s, 1));
            break;
          }
      }
      i.tween = r;
    };
  }
  function nI(e, t, n) {
    var r, i;
    if (typeof n != "function") throw new Error();
    return function () {
      var o = hn(this, e),
        s = o.tween;
      if (s !== r) {
        i = (r = s).slice();
        for (var u = { name: t, value: n }, a = 0, l = i.length; a < l; ++a)
          if (i[a].name === t) {
            i[a] = u;
            break;
          }
        a === l && i.push(u);
      }
      o.tween = i;
    };
  }
  function y9(e, t) {
    var n = this._id;
    if (((e += ""), arguments.length < 2)) {
      for (var r = Kt(this.node(), n).tween, i = 0, o = r.length, s; i < o; ++i)
        if ((s = r[i]).name === e) return s.value;
      return null;
    }
    return this.each((t == null ? tI : nI)(n, e, t));
  }
  function Ks(e, t, n) {
    var r = e._id;
    return (
      e.each(function () {
        var i = hn(this, r);
        (i.value || (i.value = {}))[t] = n.apply(this, arguments);
      }),
      function (i) {
        return Kt(i, r).value[t];
      }
    );
  }
  function Lf(e, t) {
    var n;
    return (
      typeof t == "number"
        ? tn
        : t instanceof ar
          ? Io
          : (n = ar(t))
            ? ((t = n), Io)
            : Xs
    )(e, t);
  }
  function rI(e) {
    return function () {
      this.removeAttribute(e);
    };
  }
  function iI(e) {
    return function () {
      this.removeAttributeNS(e.space, e.local);
    };
  }
  function oI(e, t, n) {
    var r,
      i = n + "",
      o;
    return function () {
      var s = this.getAttribute(e);
      return s === i ? null : s === r ? o : (o = t((r = s), n));
    };
  }
  function sI(e, t, n) {
    var r,
      i = n + "",
      o;
    return function () {
      var s = this.getAttributeNS(e.space, e.local);
      return s === i ? null : s === r ? o : (o = t((r = s), n));
    };
  }
  function uI(e, t, n) {
    var r, i, o;
    return function () {
      var s,
        u = n(this),
        a;
      return u == null
        ? void this.removeAttribute(e)
        : ((s = this.getAttribute(e)),
          (a = u + ""),
          s === a
            ? null
            : s === r && a === i
              ? o
              : ((i = a), (o = t((r = s), u))));
    };
  }
  function aI(e, t, n) {
    var r, i, o;
    return function () {
      var s,
        u = n(this),
        a;
      return u == null
        ? void this.removeAttributeNS(e.space, e.local)
        : ((s = this.getAttributeNS(e.space, e.local)),
          (a = u + ""),
          s === a
            ? null
            : s === r && a === i
              ? o
              : ((i = a), (o = t((r = s), u))));
    };
  }
  function w9(e, t) {
    var n = Jr(e),
      r = n === "transform" ? Mf : Lf;
    return this.attrTween(
      e,
      typeof t == "function"
        ? (n.local ? aI : uI)(n, r, Ks(this, "attr." + e, t))
        : t == null
          ? (n.local ? iI : rI)(n)
          : (n.local ? sI : oI)(n, r, t),
    );
  }
  function lI(e, t) {
    return function (n) {
      this.setAttribute(e, t.call(this, n));
    };
  }
  function cI(e, t) {
    return function (n) {
      this.setAttributeNS(e.space, e.local, t.call(this, n));
    };
  }
  function fI(e, t) {
    var n, r;
    function i() {
      var o = t.apply(this, arguments);
      return (o !== r && (n = (r = o) && cI(e, o)), n);
    }
    return ((i._value = t), i);
  }
  function hI(e, t) {
    var n, r;
    function i() {
      var o = t.apply(this, arguments);
      return (o !== r && (n = (r = o) && lI(e, o)), n);
    }
    return ((i._value = t), i);
  }
  function v9(e, t) {
    var n = "attr." + e;
    if (arguments.length < 2) return (n = this.tween(n)) && n._value;
    if (t == null) return this.tween(n, null);
    if (typeof t != "function") throw new Error();
    var r = Jr(e);
    return this.tween(n, (r.local ? fI : hI)(r, t));
  }
  function dI(e, t) {
    return function () {
      Pa(this, e).delay = +t.apply(this, arguments);
    };
  }
  function pI(e, t) {
    return (
      (t = +t),
      function () {
        Pa(this, e).delay = t;
      }
    );
  }
  function _9(e) {
    var t = this._id;
    return arguments.length
      ? this.each((typeof e == "function" ? dI : pI)(t, e))
      : Kt(this.node(), t).delay;
  }
  function mI(e, t) {
    return function () {
      hn(this, e).duration = +t.apply(this, arguments);
    };
  }
  function gI(e, t) {
    return (
      (t = +t),
      function () {
        hn(this, e).duration = t;
      }
    );
  }
  function k9(e) {
    var t = this._id;
    return arguments.length
      ? this.each((typeof e == "function" ? mI : gI)(t, e))
      : Kt(this.node(), t).duration;
  }
  function bI(e, t) {
    if (typeof t != "function") throw new Error();
    return function () {
      hn(this, e).ease = t;
    };
  }
  function S9(e) {
    var t = this._id;
    return arguments.length ? this.each(bI(t, e)) : Kt(this.node(), t).ease;
  }
  function xI(e, t) {
    return function () {
      var n = t.apply(this, arguments);
      if (typeof n != "function") throw new Error();
      hn(this, e).ease = n;
    };
  }
  function A9(e) {
    if (typeof e != "function") throw new Error();
    return this.each(xI(this._id, e));
  }
  function M9(e) {
    typeof e != "function" && (e = Ps(e));
    for (
      var t = this._groups, n = t.length, r = new Array(n), i = 0;
      i < n;
      ++i
    )
      for (var o = t[i], s = o.length, u = (r[i] = []), a, l = 0; l < s; ++l)
        (a = o[l]) && e.call(a, a.__data__, l, o) && u.push(a);
    return new dn(r, this._parents, this._name, this._id);
  }
  function T9(e) {
    if (e._id !== this._id) throw new Error();
    for (
      var t = this._groups,
        n = e._groups,
        r = t.length,
        i = n.length,
        o = Math.min(r, i),
        s = new Array(r),
        u = 0;
      u < o;
      ++u
    )
      for (
        var a = t[u],
          l = n[u],
          h = a.length,
          m = (s[u] = new Array(h)),
          p,
          b = 0;
        b < h;
        ++b
      )
        (p = a[b] || l[b]) && (m[b] = p);
    for (; u < r; ++u) s[u] = t[u];
    return new dn(s, this._parents, this._name, this._id);
  }
  function yI(e) {
    return (e + "")
      .trim()
      .split(/^|\s+/)
      .every(function (t) {
        var n = t.indexOf(".");
        return (n >= 0 && (t = t.slice(0, n)), !t || t === "start");
      });
  }
  function wI(e, t, n) {
    var r,
      i,
      o = yI(t) ? Pa : hn;
    return function () {
      var s = o(this, e),
        u = s.on;
      (u !== r && (i = (r = u).copy()).on(t, n), (s.on = i));
    };
  }
  function E9(e, t) {
    var n = this._id;
    return arguments.length < 2
      ? Kt(this.node(), n).on.on(e)
      : this.each(wI(n, e, t));
  }
  function vI(e) {
    return function () {
      var t = this.parentNode;
      for (var n in this.__transition) if (+n !== e) return;
      t && t.removeChild(this);
    };
  }
  function C9() {
    return this.on("end.remove", vI(this._id));
  }
  function N9(e) {
    var t = this._name,
      n = this._id;
    typeof e != "function" && (e = Ao(e));
    for (
      var r = this._groups, i = r.length, o = new Array(i), s = 0;
      s < i;
      ++s
    )
      for (
        var u = r[s], a = u.length, l = (o[s] = new Array(a)), h, m, p = 0;
        p < a;
        ++p
      )
        (h = u[p]) &&
          (m = e.call(h, h.__data__, p, u)) &&
          ("__data__" in h && (m.__data__ = h.__data__),
          (l[p] = m),
          Lo(l[p], t, n, p, l, Kt(h, n)));
    return new dn(o, this._parents, t, n);
  }
  function D9(e) {
    var t = this._name,
      n = this._id;
    typeof e != "function" && (e = Rs(e));
    for (var r = this._groups, i = r.length, o = [], s = [], u = 0; u < i; ++u)
      for (var a = r[u], l = a.length, h, m = 0; m < l; ++m)
        if ((h = a[m])) {
          for (
            var p = e.call(h, h.__data__, m, a),
              b,
              x = Kt(h, n),
              y = 0,
              v = p.length;
            y < v;
            ++y
          )
            (b = p[y]) && Lo(b, t, n, y, p, x);
          (o.push(p), s.push(h));
        }
    return new dn(o, s, t, n);
  }
  var _I = Qr.prototype.constructor;
  function I9() {
    return new _I(this._groups, this._parents);
  }
  function kI(e, t) {
    var n, r, i;
    return function () {
      var o = ji(this, e),
        s = (this.style.removeProperty(e), ji(this, e));
      return o === s
        ? null
        : o === n && s === r
          ? i
          : (i = t((n = o), (r = s)));
    };
  }
  function F9(e) {
    return function () {
      this.style.removeProperty(e);
    };
  }
  function SI(e, t, n) {
    var r,
      i = n + "",
      o;
    return function () {
      var s = ji(this, e);
      return s === i ? null : s === r ? o : (o = t((r = s), n));
    };
  }
  function AI(e, t, n) {
    var r, i, o;
    return function () {
      var s = ji(this, e),
        u = n(this),
        a = u + "";
      return (
        u == null && (a = u = (this.style.removeProperty(e), ji(this, e))),
        s === a ? null : s === r && a === i ? o : ((i = a), (o = t((r = s), u)))
      );
    };
  }
  function MI(e, t) {
    var n,
      r,
      i,
      o = "style." + t,
      s = "end." + o,
      u;
    return function () {
      var a = hn(this, e),
        l = a.on,
        h = a.value[o] == null ? u || (u = F9(t)) : void 0;
      ((l !== n || i !== h) && (r = (n = l).copy()).on(s, (i = h)), (a.on = r));
    };
  }
  function q9(e, t, n) {
    var r = (e += "") == "transform" ? Af : Lf;
    return t == null
      ? this.styleTween(e, kI(e, r)).on("end.style." + e, F9(e))
      : typeof t == "function"
        ? this.styleTween(e, AI(e, r, Ks(this, "style." + e, t))).each(
            MI(this._id, e),
          )
        : this.styleTween(e, SI(e, r, t), n).on("end.style." + e, null);
  }
  function TI(e, t, n) {
    return function (r) {
      this.style.setProperty(e, t.call(this, r), n);
    };
  }
  function EI(e, t, n) {
    var r, i;
    function o() {
      var s = t.apply(this, arguments);
      return (s !== i && (r = (i = s) && TI(e, s, n)), r);
    }
    return ((o._value = t), o);
  }
  function L9(e, t, n) {
    var r = "style." + (e += "");
    if (arguments.length < 2) return (r = this.tween(r)) && r._value;
    if (t == null) return this.tween(r, null);
    if (typeof t != "function") throw new Error();
    return this.tween(r, EI(e, t, n ?? ""));
  }
  function CI(e) {
    return function () {
      this.textContent = e;
    };
  }
  function NI(e) {
    return function () {
      var t = e(this);
      this.textContent = t ?? "";
    };
  }
  function O9(e) {
    return this.tween(
      "text",
      typeof e == "function"
        ? NI(Ks(this, "text", e))
        : CI(e == null ? "" : e + ""),
    );
  }
  function DI(e) {
    return function (t) {
      this.textContent = e.call(this, t);
    };
  }
  function II(e) {
    var t, n;
    function r() {
      var i = e.apply(this, arguments);
      return (i !== n && (t = (n = i) && DI(i)), t);
    }
    return ((r._value = e), r);
  }
  function B9(e) {
    var t = "text";
    if (arguments.length < 1) return (t = this.tween(t)) && t._value;
    if (e == null) return this.tween(t, null);
    if (typeof e != "function") throw new Error();
    return this.tween(t, II(e));
  }
  function z9() {
    for (
      var e = this._name,
        t = this._id,
        n = Of(),
        r = this._groups,
        i = r.length,
        o = 0;
      o < i;
      ++o
    )
      for (var s = r[o], u = s.length, a, l = 0; l < u; ++l)
        if ((a = s[l])) {
          var h = Kt(a, t);
          Lo(a, e, n, l, s, {
            time: h.time + h.delay + h.duration,
            delay: 0,
            duration: h.duration,
            ease: h.ease,
          });
        }
    return new dn(r, this._parents, e, n);
  }
  function R9() {
    var e,
      t,
      n = this,
      r = n._id,
      i = n.size();
    return new Promise(function (o, s) {
      var u = { value: s },
        a = {
          value: function () {
            --i === 0 && o();
          },
        };
      (n.each(function () {
        var l = hn(this, r),
          h = l.on;
        (h !== e &&
          ((t = (e = h).copy()),
          t._.cancel.push(u),
          t._.interrupt.push(u),
          t._.end.push(a)),
          (l.on = t));
      }),
        i === 0 && o());
    });
  }
  var FI = 0;
  function dn(e, t, n, r) {
    ((this._groups = e), (this._parents = t), (this._name = n), (this._id = r));
  }
  function Bf(e) {
    return Qr().transition(e);
  }
  function Of() {
    return ++FI;
  }
  var Xi = Qr.prototype;
  dn.prototype = Bf.prototype = {
    constructor: dn,
    select: N9,
    selectAll: D9,
    selectChild: Xi.selectChild,
    selectChildren: Xi.selectChildren,
    filter: M9,
    merge: T9,
    selection: I9,
    transition: z9,
    call: Xi.call,
    nodes: Xi.nodes,
    node: Xi.node,
    size: Xi.size,
    empty: Xi.empty,
    each: Xi.each,
    on: E9,
    attr: w9,
    attrTween: v9,
    style: q9,
    styleTween: L9,
    text: O9,
    textTween: B9,
    remove: C9,
    tween: y9,
    delay: _9,
    duration: k9,
    ease: S9,
    easeVarying: A9,
    end: R9,
    [Symbol.iterator]: Xi[Symbol.iterator],
  };
  var P9 = (e) => +e;
  function $9(e) {
    return e * e;
  }
  function H9(e) {
    return e * (2 - e);
  }
  function l2(e) {
    return ((e *= 2) <= 1 ? e * e : --e * (2 - e) + 1) / 2;
  }
  function U9(e) {
    return e * e * e;
  }
  function V9(e) {
    return --e * e * e + 1;
  }
  function $a(e) {
    return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;
  }
  var c2 = 3,
    j9 = (function e(t) {
      t = +t;
      function n(r) {
        return Math.pow(r, t);
      }
      return ((n.exponent = e), n);
    })(c2),
    G9 = (function e(t) {
      t = +t;
      function n(r) {
        return 1 - Math.pow(1 - r, t);
      }
      return ((n.exponent = e), n);
    })(c2),
    f2 = (function e(t) {
      t = +t;
      function n(r) {
        return ((r *= 2) <= 1 ? Math.pow(r, t) : 2 - Math.pow(2 - r, t)) / 2;
      }
      return ((n.exponent = e), n);
    })(c2);
  var Y9 = Math.PI,
    X9 = Y9 / 2;
  function W9(e) {
    return +e == 1 ? 1 : 1 - Math.cos(e * X9);
  }
  function K9(e) {
    return Math.sin(e * X9);
  }
  function h2(e) {
    return (1 - Math.cos(Y9 * e)) / 2;
  }
  function ri(e) {
    return (Math.pow(2, -10 * e) - 0.0009765625) * 1.0009775171065494;
  }
  function Z9(e) {
    return ri(1 - +e);
  }
  function J9(e) {
    return 1 - ri(e);
  }
  function d2(e) {
    return ((e *= 2) <= 1 ? ri(1 - e) : 2 - ri(e - 1)) / 2;
  }
  function Q9(e) {
    return 1 - Math.sqrt(1 - e * e);
  }
  function ex(e) {
    return Math.sqrt(1 - --e * e);
  }
  function p2(e) {
    return (
      ((e *= 2) <= 1
        ? 1 - Math.sqrt(1 - e * e)
        : Math.sqrt(1 - (e -= 2) * e) + 1) / 2
    );
  }
  var m2 = 0.36363636363636365,
    qI = 6 / 11,
    LI = 8 / 11,
    OI = 3 / 4,
    BI = 9 / 11,
    zI = 10 / 11,
    RI = 15 / 16,
    PI = 21 / 22,
    $I = 63 / 64,
    zf = 1 / m2 / m2;
  function tx(e) {
    return 1 - Zs(1 - e);
  }
  function Zs(e) {
    return (e = +e) < m2
      ? zf * e * e
      : e < LI
        ? zf * (e -= qI) * e + OI
        : e < zI
          ? zf * (e -= BI) * e + RI
          : zf * (e -= PI) * e + $I;
  }
  function nx(e) {
    return ((e *= 2) <= 1 ? 1 - Zs(1 - e) : Zs(e - 1) + 1) / 2;
  }
  var g2 = 1.70158,
    rx = (function e(t) {
      t = +t;
      function n(r) {
        return (r = +r) * r * (t * (r - 1) + r);
      }
      return ((n.overshoot = e), n);
    })(g2),
    ix = (function e(t) {
      t = +t;
      function n(r) {
        return --r * r * ((r + 1) * t + r) + 1;
      }
      return ((n.overshoot = e), n);
    })(g2),
    b2 = (function e(t) {
      t = +t;
      function n(r) {
        return (
          ((r *= 2) < 1
            ? r * r * ((t + 1) * r - t)
            : (r -= 2) * r * ((t + 1) * r + t) + 2) / 2
        );
      }
      return ((n.overshoot = e), n);
    })(g2);
  var Js = 2 * Math.PI,
    x2 = 1,
    y2 = 0.3,
    ox = (function e(t, n) {
      var r = Math.asin(1 / (t = Math.max(1, t))) * (n /= Js);
      function i(o) {
        return t * ri(-(--o)) * Math.sin((r - o) / n);
      }
      return (
        (i.amplitude = function (o) {
          return e(o, n * Js);
        }),
        (i.period = function (o) {
          return e(t, o);
        }),
        i
      );
    })(x2, y2),
    w2 = (function e(t, n) {
      var r = Math.asin(1 / (t = Math.max(1, t))) * (n /= Js);
      function i(o) {
        return 1 - t * ri((o = +o)) * Math.sin((o + r) / n);
      }
      return (
        (i.amplitude = function (o) {
          return e(o, n * Js);
        }),
        (i.period = function (o) {
          return e(t, o);
        }),
        i
      );
    })(x2, y2),
    sx = (function e(t, n) {
      var r = Math.asin(1 / (t = Math.max(1, t))) * (n /= Js);
      function i(o) {
        return (
          ((o = o * 2 - 1) < 0
            ? t * ri(-o) * Math.sin((r - o) / n)
            : 2 - t * ri(o) * Math.sin((r + o) / n)) / 2
        );
      }
      return (
        (i.amplitude = function (o) {
          return e(o, n * Js);
        }),
        (i.period = function (o) {
          return e(t, o);
        }),
        i
      );
    })(x2, y2);
  var HI = { time: null, delay: 0, duration: 250, ease: $a };
  function UI(e, t) {
    for (var n; !(n = e.__transition) || !(n = n[t]); )
      if (!(e = e.parentNode)) throw new Error(`transition ${t} not found`);
    return n;
  }
  function ux(e) {
    var t, n;
    e instanceof dn
      ? ((t = e._id), (e = e._name))
      : ((t = Of()), ((n = HI).time = qo()), (e = e == null ? null : e + ""));
    for (var r = this._groups, i = r.length, o = 0; o < i; ++o)
      for (var s = r[o], u = s.length, a, l = 0; l < u; ++l)
        (a = s[l]) && Lo(a, e, t, l, s, n || UI(a, t));
    return new dn(r, this._parents, e, t);
  }
  Qr.prototype.interrupt = x9;
  Qr.prototype.transition = ux;
  var VI = [null];
  function ax(e, t) {
    var n = e.__transition,
      r,
      i;
    if (n) {
      t = t == null ? null : t + "";
      for (i in n)
        if ((r = n[i]).state > If && r.name === t)
          return new dn([[e]], VI, t, +i);
    }
    return null;
  }
  var Rf = (e) => () => e;
  function v2(
    e,
    { sourceEvent: t, target: n, selection: r, mode: i, dispatch: o },
  ) {
    Object.defineProperties(this, {
      type: { value: e, enumerable: !0, configurable: !0 },
      sourceEvent: { value: t, enumerable: !0, configurable: !0 },
      target: { value: n, enumerable: !0, configurable: !0 },
      selection: { value: r, enumerable: !0, configurable: !0 },
      mode: { value: i, enumerable: !0, configurable: !0 },
      _: { value: o },
    });
  }
  function lx(e) {
    e.stopImmediatePropagation();
  }
  function Pf(e) {
    (e.preventDefault(), e.stopImmediatePropagation());
  }
  var cx = { name: "drag" },
    _2 = { name: "space" },
    Qs = { name: "handle" },
    eu = { name: "center" },
    { abs: fx, max: xn, min: yn } = Math;
  function hx(e) {
    return [+e[0], +e[1]];
  }
  function S2(e) {
    return [hx(e[0]), hx(e[1])];
  }
  var $f = {
      name: "x",
      handles: ["w", "e"].map(Ha),
      input: function (e, t) {
        return e == null
          ? null
          : [
              [+e[0], t[0][1]],
              [+e[1], t[1][1]],
            ];
      },
      output: function (e) {
        return e && [e[0][0], e[1][0]];
      },
    },
    Hf = {
      name: "y",
      handles: ["n", "s"].map(Ha),
      input: function (e, t) {
        return e == null
          ? null
          : [
              [t[0][0], +e[0]],
              [t[1][0], +e[1]],
            ];
      },
      output: function (e) {
        return e && [e[0][1], e[1][1]];
      },
    },
    jI = {
      name: "xy",
      handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(Ha),
      input: function (e) {
        return e == null ? null : S2(e);
      },
      output: function (e) {
        return e;
      },
    },
    Wi = {
      overlay: "crosshair",
      selection: "move",
      n: "ns-resize",
      e: "ew-resize",
      s: "ns-resize",
      w: "ew-resize",
      nw: "nwse-resize",
      ne: "nesw-resize",
      se: "nwse-resize",
      sw: "nesw-resize",
    },
    dx = { e: "w", w: "e", nw: "ne", ne: "nw", se: "sw", sw: "se" },
    px = { n: "s", s: "n", nw: "sw", ne: "se", se: "ne", sw: "nw" },
    GI = {
      overlay: 1,
      selection: 1,
      n: null,
      e: 1,
      s: null,
      w: -1,
      nw: -1,
      ne: 1,
      se: 1,
      sw: -1,
    },
    YI = {
      overlay: 1,
      selection: 1,
      n: -1,
      e: null,
      s: 1,
      w: null,
      nw: -1,
      ne: -1,
      se: 1,
      sw: 1,
    };
  function Ha(e) {
    return { type: e };
  }
  function XI(e) {
    return !e.ctrlKey && !e.button;
  }
  function WI() {
    var e = this.ownerSVGElement || this;
    return e.hasAttribute("viewBox")
      ? ((e = e.viewBox.baseVal),
        [
          [e.x, e.y],
          [e.x + e.width, e.y + e.height],
        ])
      : [
          [0, 0],
          [e.width.baseVal.value, e.height.baseVal.value],
        ];
  }
  function KI() {
    return navigator.maxTouchPoints || "ontouchstart" in this;
  }
  function k2(e) {
    for (; !e.__brush; ) if (!(e = e.parentNode)) return;
    return e.__brush;
  }
  function ZI(e) {
    return e[0][0] === e[1][0] || e[0][1] === e[1][1];
  }
  function mx(e) {
    var t = e.__brush;
    return t ? t.dim.output(t.selection) : null;
  }
  function gx() {
    return A2($f);
  }
  function bx() {
    return A2(Hf);
  }
  function xx() {
    return A2(jI);
  }
  function A2(e) {
    var t = WI,
      n = XI,
      r = KI,
      i = !0,
      o = ur("start", "brush", "end"),
      s = 6,
      u;
    function a(v) {
      var k = v
        .property("__brush", y)
        .selectAll(".overlay")
        .data([Ha("overlay")]);
      (k
        .enter()
        .append("rect")
        .attr("class", "overlay")
        .attr("pointer-events", "all")
        .attr("cursor", Wi.overlay)
        .merge(k)
        .each(function () {
          var E = k2(this).extent;
          Tt(this)
            .attr("x", E[0][0])
            .attr("y", E[0][1])
            .attr("width", E[1][0] - E[0][0])
            .attr("height", E[1][1] - E[0][1]);
        }),
        v
          .selectAll(".selection")
          .data([Ha("selection")])
          .enter()
          .append("rect")
          .attr("class", "selection")
          .attr("cursor", Wi.selection)
          .attr("fill", "#777")
          .attr("fill-opacity", 0.3)
          .attr("stroke", "#fff")
          .attr("shape-rendering", "crispEdges"));
      var T = v.selectAll(".handle").data(e.handles, function (E) {
        return E.type;
      });
      (T.exit().remove(),
        T.enter()
          .append("rect")
          .attr("class", function (E) {
            return "handle handle--" + E.type;
          })
          .attr("cursor", function (E) {
            return Wi[E.type];
          }),
        v
          .each(l)
          .attr("fill", "none")
          .attr("pointer-events", "all")
          .on("mousedown.brush", p)
          .filter(r)
          .on("touchstart.brush", p)
          .on("touchmove.brush", b)
          .on("touchend.brush touchcancel.brush", x)
          .style("touch-action", "none")
          .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"));
    }
    ((a.move = function (v, k, T) {
      v.tween
        ? v
            .on("start.brush", function (E) {
              h(this, arguments).beforestart().start(E);
            })
            .on("interrupt.brush end.brush", function (E) {
              h(this, arguments).end(E);
            })
            .tween("brush", function () {
              var E = this,
                M = E.__brush,
                D = h(E, arguments),
                I = M.selection,
                P = e.input(
                  typeof k == "function" ? k.apply(this, arguments) : k,
                  M.extent,
                ),
                O = bn(I, P);
              function H(U) {
                ((M.selection = U === 1 && P === null ? null : O(U)),
                  l.call(E),
                  D.brush());
              }
              return I !== null && P !== null ? H : H(1);
            })
        : v.each(function () {
            var E = this,
              M = arguments,
              D = E.__brush,
              I = e.input(typeof k == "function" ? k.apply(E, M) : k, D.extent),
              P = h(E, M).beforestart();
            (Er(E),
              (D.selection = I === null ? null : I),
              l.call(E),
              P.start(T).brush(T).end(T));
          });
    }),
      (a.clear = function (v, k) {
        a.move(v, null, k);
      }));
    function l() {
      var v = Tt(this),
        k = k2(this).selection;
      k
        ? (v
            .selectAll(".selection")
            .style("display", null)
            .attr("x", k[0][0])
            .attr("y", k[0][1])
            .attr("width", k[1][0] - k[0][0])
            .attr("height", k[1][1] - k[0][1]),
          v
            .selectAll(".handle")
            .style("display", null)
            .attr("x", function (T) {
              return T.type[T.type.length - 1] === "e"
                ? k[1][0] - s / 2
                : k[0][0] - s / 2;
            })
            .attr("y", function (T) {
              return T.type[0] === "s" ? k[1][1] - s / 2 : k[0][1] - s / 2;
            })
            .attr("width", function (T) {
              return T.type === "n" || T.type === "s"
                ? k[1][0] - k[0][0] + s
                : s;
            })
            .attr("height", function (T) {
              return T.type === "e" || T.type === "w"
                ? k[1][1] - k[0][1] + s
                : s;
            }))
        : v
            .selectAll(".selection,.handle")
            .style("display", "none")
            .attr("x", null)
            .attr("y", null)
            .attr("width", null)
            .attr("height", null);
    }
    function h(v, k, T) {
      var E = v.__brush.emitter;
      return E && (!T || !E.clean) ? E : new m(v, k, T);
    }
    function m(v, k, T) {
      ((this.that = v),
        (this.args = k),
        (this.state = v.__brush),
        (this.active = 0),
        (this.clean = T));
    }
    m.prototype = {
      beforestart: function () {
        return (
          ++this.active === 1 &&
            ((this.state.emitter = this), (this.starting = !0)),
          this
        );
      },
      start: function (v, k) {
        return (
          this.starting
            ? ((this.starting = !1), this.emit("start", v, k))
            : this.emit("brush", v),
          this
        );
      },
      brush: function (v, k) {
        return (this.emit("brush", v, k), this);
      },
      end: function (v, k) {
        return (
          --this.active === 0 &&
            (delete this.state.emitter, this.emit("end", v, k)),
          this
        );
      },
      emit: function (v, k, T) {
        var E = Tt(this.that).datum();
        o.call(
          v,
          this.that,
          new v2(v, {
            sourceEvent: k,
            target: a,
            selection: e.output(this.state.selection),
            mode: T,
            dispatch: o,
          }),
          E,
        );
      },
    };
    function p(v) {
      if ((u && !v.touches) || !n.apply(this, arguments)) return;
      var k = this,
        T = v.target.__data__.type,
        E =
          (i && v.metaKey ? (T = "overlay") : T) === "selection"
            ? cx
            : i && v.altKey
              ? eu
              : Qs,
        M = e === Hf ? null : GI[T],
        D = e === $f ? null : YI[T],
        I = k2(k),
        P = I.extent,
        O = I.selection,
        H = P[0][0],
        U,
        j,
        Z = P[0][1],
        Q,
        B,
        V = P[1][0],
        G,
        ne,
        te = P[1][1],
        ie,
        ce,
        xe = 0,
        X = 0,
        he,
        Ae = M && D && i && v.shiftKey,
        Be,
        kt,
        Ke = Array.from(v.touches || [v], (Te) => {
          let St = Te.identifier;
          return (
            (Te = en(Te, k)),
            (Te.point0 = Te.slice()),
            (Te.identifier = St),
            Te
          );
        });
      Er(k);
      var Nt = h(k, arguments, !0).beforestart();
      if (T === "overlay") {
        O && (he = !0);
        let Te = [Ke[0], Ke[1] || Ke[0]];
        ((I.selection = O =
          [
            [
              (U = e === Hf ? H : yn(Te[0][0], Te[1][0])),
              (Q = e === $f ? Z : yn(Te[0][1], Te[1][1])),
            ],
            [
              (G = e === Hf ? V : xn(Te[0][0], Te[1][0])),
              (ie = e === $f ? te : xn(Te[0][1], Te[1][1])),
            ],
          ]),
          Ke.length > 1 && yt(v));
      } else ((U = O[0][0]), (Q = O[0][1]), (G = O[1][0]), (ie = O[1][1]));
      ((j = U), (B = Q), (ne = G), (ce = ie));
      var ge = Tt(k).attr("pointer-events", "none"),
        qe = ge.selectAll(".overlay").attr("cursor", Wi[T]);
      if (v.touches) ((Nt.moved = le), (Nt.ended = ot));
      else {
        var Pe = Tt(v.view)
          .on("mousemove.brush", le, !0)
          .on("mouseup.brush", ot, !0);
        (i && Pe.on("keydown.brush", bt, !0).on("keyup.brush", Vt, !0),
          To(v.view));
      }
      (l.call(k), Nt.start(v, E.name));
      function le(Te) {
        for (let St of Te.changedTouches || [Te])
          for (let Ii of Ke)
            Ii.identifier === St.identifier && (Ii.cur = en(St, k));
        if (Ae && !Be && !kt && Ke.length === 1) {
          let St = Ke[0];
          fx(St.cur[0] - St[0]) > fx(St.cur[1] - St[1]) ? (kt = !0) : (Be = !0);
        }
        for (let St of Ke) St.cur && ((St[0] = St.cur[0]), (St[1] = St.cur[1]));
        ((he = !0), Pf(Te), yt(Te));
      }
      function yt(Te) {
        let St = Ke[0],
          Ii = St.point0;
        var er;
        switch (((xe = St[0] - Ii[0]), (X = St[1] - Ii[1]), E)) {
          case _2:
          case cx: {
            (M &&
              ((xe = xn(H - U, yn(V - G, xe))), (j = U + xe), (ne = G + xe)),
              D &&
                ((X = xn(Z - Q, yn(te - ie, X))), (B = Q + X), (ce = ie + X)));
            break;
          }
          case Qs: {
            Ke[1]
              ? (M &&
                  ((j = xn(H, yn(V, Ke[0][0]))),
                  (ne = xn(H, yn(V, Ke[1][0]))),
                  (M = 1)),
                D &&
                  ((B = xn(Z, yn(te, Ke[0][1]))),
                  (ce = xn(Z, yn(te, Ke[1][1]))),
                  (D = 1)))
              : (M < 0
                  ? ((xe = xn(H - U, yn(V - U, xe))), (j = U + xe), (ne = G))
                  : M > 0 &&
                    ((xe = xn(H - G, yn(V - G, xe))), (j = U), (ne = G + xe)),
                D < 0
                  ? ((X = xn(Z - Q, yn(te - Q, X))), (B = Q + X), (ce = ie))
                  : D > 0 &&
                    ((X = xn(Z - ie, yn(te - ie, X))), (B = Q), (ce = ie + X)));
            break;
          }
          case eu: {
            (M &&
              ((j = xn(H, yn(V, U - xe * M))), (ne = xn(H, yn(V, G + xe * M)))),
              D &&
                ((B = xn(Z, yn(te, Q - X * D))),
                (ce = xn(Z, yn(te, ie + X * D)))));
            break;
          }
        }
        (ne < j &&
          ((M *= -1),
          (er = U),
          (U = G),
          (G = er),
          (er = j),
          (j = ne),
          (ne = er),
          T in dx && qe.attr("cursor", Wi[(T = dx[T])])),
          ce < B &&
            ((D *= -1),
            (er = Q),
            (Q = ie),
            (ie = er),
            (er = B),
            (B = ce),
            (ce = er),
            T in px && qe.attr("cursor", Wi[(T = px[T])])),
          I.selection && (O = I.selection),
          Be && ((j = O[0][0]), (ne = O[1][0])),
          kt && ((B = O[0][1]), (ce = O[1][1])),
          (O[0][0] !== j ||
            O[0][1] !== B ||
            O[1][0] !== ne ||
            O[1][1] !== ce) &&
            ((I.selection = [
              [j, B],
              [ne, ce],
            ]),
            l.call(k),
            Nt.brush(Te, E.name)));
      }
      function ot(Te) {
        if ((lx(Te), Te.touches)) {
          if (Te.touches.length) return;
          (u && clearTimeout(u),
            (u = setTimeout(function () {
              u = null;
            }, 500)));
        } else
          (Eo(Te.view, he),
            Pe.on(
              "keydown.brush keyup.brush mousemove.brush mouseup.brush",
              null,
            ));
        (ge.attr("pointer-events", "all"),
          qe.attr("cursor", Wi.overlay),
          I.selection && (O = I.selection),
          ZI(O) && ((I.selection = null), l.call(k)),
          Nt.end(Te, E.name));
      }
      function bt(Te) {
        switch (Te.keyCode) {
          case 16: {
            Ae = M && D;
            break;
          }
          case 18: {
            E === Qs &&
              (M && ((G = ne - xe * M), (U = j + xe * M)),
              D && ((ie = ce - X * D), (Q = B + X * D)),
              (E = eu),
              yt(Te));
            break;
          }
          case 32: {
            (E === Qs || E === eu) &&
              (M < 0 ? (G = ne - xe) : M > 0 && (U = j - xe),
              D < 0 ? (ie = ce - X) : D > 0 && (Q = B - X),
              (E = _2),
              qe.attr("cursor", Wi.selection),
              yt(Te));
            break;
          }
          default:
            return;
        }
        Pf(Te);
      }
      function Vt(Te) {
        switch (Te.keyCode) {
          case 16: {
            Ae && ((Be = kt = Ae = !1), yt(Te));
            break;
          }
          case 18: {
            E === eu &&
              (M < 0 ? (G = ne) : M > 0 && (U = j),
              D < 0 ? (ie = ce) : D > 0 && (Q = B),
              (E = Qs),
              yt(Te));
            break;
          }
          case 32: {
            E === _2 &&
              (Te.altKey
                ? (M && ((G = ne - xe * M), (U = j + xe * M)),
                  D && ((ie = ce - X * D), (Q = B + X * D)),
                  (E = eu))
                : (M < 0 ? (G = ne) : M > 0 && (U = j),
                  D < 0 ? (ie = ce) : D > 0 && (Q = B),
                  (E = Qs)),
              qe.attr("cursor", Wi[T]),
              yt(Te));
            break;
          }
          default:
            return;
        }
        Pf(Te);
      }
    }
    function b(v) {
      h(this, arguments).moved(v);
    }
    function x(v) {
      h(this, arguments).ended(v);
    }
    function y() {
      var v = this.__brush || { selection: null };
      return ((v.extent = S2(t.apply(this, arguments))), (v.dim = e), v);
    }
    return (
      (a.extent = function (v) {
        return arguments.length
          ? ((t = typeof v == "function" ? v : Rf(S2(v))), a)
          : t;
      }),
      (a.filter = function (v) {
        return arguments.length
          ? ((n = typeof v == "function" ? v : Rf(!!v)), a)
          : n;
      }),
      (a.touchable = function (v) {
        return arguments.length
          ? ((r = typeof v == "function" ? v : Rf(!!v)), a)
          : r;
      }),
      (a.handleSize = function (v) {
        return arguments.length ? ((s = +v), a) : s;
      }),
      (a.keyModifiers = function (v) {
        return arguments.length ? ((i = !!v), a) : i;
      }),
      (a.on = function () {
        var v = o.on.apply(o, arguments);
        return v === o ? a : v;
      }),
      a
    );
  }
  var M2 = Math.abs,
    I0 = Math.cos,
    F0 = Math.sin,
    yx = Math.PI,
    Ua = yx / 2,
    T2 = yx * 2,
    E2 = Math.max,
    Uf = 1e-12;
  function C2(e, t) {
    return Array.from({ length: t - e }, (n, r) => e + r);
  }
  function JI(e) {
    return function (t, n) {
      return e(
        t.source.value + t.target.value,
        n.source.value + n.target.value,
      );
    };
  }
  function wx() {
    return N2(!1, !1);
  }
  function vx() {
    return N2(!1, !0);
  }
  function _x() {
    return N2(!0, !1);
  }
  function N2(e, t) {
    var n = 0,
      r = null,
      i = null,
      o = null;
    function s(u) {
      var a = u.length,
        l = new Array(a),
        h = C2(0, a),
        m = new Array(a * a),
        p = new Array(a),
        b = 0,
        x;
      u = Float64Array.from(
        { length: a * a },
        t ? (y, v) => u[v % a][(v / a) | 0] : (y, v) => u[(v / a) | 0][v % a],
      );
      for (let y = 0; y < a; ++y) {
        let v = 0;
        for (let k = 0; k < a; ++k) v += u[y * a + k] + e * u[k * a + y];
        b += l[y] = v;
      }
      ((b = E2(0, T2 - n * a) / b), (x = b ? n : T2 / a));
      {
        let y = 0;
        r && h.sort((v, k) => r(l[v], l[k]));
        for (let v of h) {
          let k = y;
          if (e) {
            let T = C2(~a + 1, a).filter((E) =>
              E < 0 ? u[~E * a + v] : u[v * a + E],
            );
            i &&
              T.sort((E, M) =>
                i(
                  E < 0 ? -u[~E * a + v] : u[v * a + E],
                  M < 0 ? -u[~M * a + v] : u[v * a + M],
                ),
              );
            for (let E of T)
              if (E < 0) {
                let M =
                  m[~E * a + v] ||
                  (m[~E * a + v] = { source: null, target: null });
                M.target = {
                  index: v,
                  startAngle: y,
                  endAngle: (y += u[~E * a + v] * b),
                  value: u[~E * a + v],
                };
              } else {
                let M =
                  m[v * a + E] ||
                  (m[v * a + E] = { source: null, target: null });
                M.source = {
                  index: v,
                  startAngle: y,
                  endAngle: (y += u[v * a + E] * b),
                  value: u[v * a + E],
                };
              }
            p[v] = { index: v, startAngle: k, endAngle: y, value: l[v] };
          } else {
            let T = C2(0, a).filter((E) => u[v * a + E] || u[E * a + v]);
            i && T.sort((E, M) => i(u[v * a + E], u[v * a + M]));
            for (let E of T) {
              let M;
              if (
                (v < E
                  ? ((M =
                      m[v * a + E] ||
                      (m[v * a + E] = { source: null, target: null })),
                    (M.source = {
                      index: v,
                      startAngle: y,
                      endAngle: (y += u[v * a + E] * b),
                      value: u[v * a + E],
                    }))
                  : ((M =
                      m[E * a + v] ||
                      (m[E * a + v] = { source: null, target: null })),
                    (M.target = {
                      index: v,
                      startAngle: y,
                      endAngle: (y += u[v * a + E] * b),
                      value: u[v * a + E],
                    }),
                    v === E && (M.source = M.target)),
                M.source && M.target && M.source.value < M.target.value)
              ) {
                let D = M.source;
                ((M.source = M.target), (M.target = D));
              }
            }
            p[v] = { index: v, startAngle: k, endAngle: y, value: l[v] };
          }
          y += x;
        }
      }
      return ((m = Object.values(m)), (m.groups = p), o ? m.sort(o) : m);
    }
    return (
      (s.padAngle = function (u) {
        return arguments.length ? ((n = E2(0, u)), s) : n;
      }),
      (s.sortGroups = function (u) {
        return arguments.length ? ((r = u), s) : r;
      }),
      (s.sortSubgroups = function (u) {
        return arguments.length ? ((i = u), s) : i;
      }),
      (s.sortChords = function (u) {
        return arguments.length
          ? (u == null ? (o = null) : ((o = JI(u))._ = u), s)
          : o && o._;
      }),
      s
    );
  }
  var D2 = Math.PI,
    I2 = 2 * D2,
    q0 = 1e-6,
    QI = I2 - q0;
  function kx(e) {
    this._ += e[0];
    for (let t = 1, n = e.length; t < n; ++t) this._ += arguments[t] + e[t];
  }
  function eF(e) {
    let t = Math.floor(e);
    if (!(t >= 0)) throw new Error(`invalid digits: ${e}`);
    if (t > 15) return kx;
    let n = 10 ** t;
    return function (r) {
      this._ += r[0];
      for (let i = 1, o = r.length; i < o; ++i)
        this._ += Math.round(arguments[i] * n) / n + r[i];
    };
  }
  var Ki = class {
    constructor(t) {
      ((this._x0 = this._y0 = this._x1 = this._y1 = null),
        (this._ = ""),
        (this._append = t == null ? kx : eF(t)));
    }
    moveTo(t, n) {
      this
        ._append`M${(this._x0 = this._x1 = +t)},${(this._y0 = this._y1 = +n)}`;
    }
    closePath() {
      this._x1 !== null &&
        ((this._x1 = this._x0), (this._y1 = this._y0), this._append`Z`);
    }
    lineTo(t, n) {
      this._append`L${(this._x1 = +t)},${(this._y1 = +n)}`;
    }
    quadraticCurveTo(t, n, r, i) {
      this._append`Q${+t},${+n},${(this._x1 = +r)},${(this._y1 = +i)}`;
    }
    bezierCurveTo(t, n, r, i, o, s) {
      this
        ._append`C${+t},${+n},${+r},${+i},${(this._x1 = +o)},${(this._y1 = +s)}`;
    }
    arcTo(t, n, r, i, o) {
      if (((t = +t), (n = +n), (r = +r), (i = +i), (o = +o), o < 0))
        throw new Error(`negative radius: ${o}`);
      let s = this._x1,
        u = this._y1,
        a = r - t,
        l = i - n,
        h = s - t,
        m = u - n,
        p = h * h + m * m;
      if (this._x1 === null) this._append`M${(this._x1 = t)},${(this._y1 = n)}`;
      else if (p > q0)
        if (!(Math.abs(m * a - l * h) > q0) || !o)
          this._append`L${(this._x1 = t)},${(this._y1 = n)}`;
        else {
          let b = r - s,
            x = i - u,
            y = a * a + l * l,
            v = b * b + x * x,
            k = Math.sqrt(y),
            T = Math.sqrt(p),
            E = o * Math.tan((D2 - Math.acos((y + p - v) / (2 * k * T))) / 2),
            M = E / T,
            D = E / k;
          (Math.abs(M - 1) > q0 && this._append`L${t + M * h},${n + M * m}`,
            this
              ._append`A${o},${o},0,0,${+(m * b > h * x)},${(this._x1 = t + D * a)},${(this._y1 = n + D * l)}`);
        }
    }
    arc(t, n, r, i, o, s) {
      if (((t = +t), (n = +n), (r = +r), (s = !!s), r < 0))
        throw new Error(`negative radius: ${r}`);
      let u = r * Math.cos(i),
        a = r * Math.sin(i),
        l = t + u,
        h = n + a,
        m = 1 ^ s,
        p = s ? i - o : o - i;
      (this._x1 === null
        ? this._append`M${l},${h}`
        : (Math.abs(this._x1 - l) > q0 || Math.abs(this._y1 - h) > q0) &&
          this._append`L${l},${h}`,
        r &&
          (p < 0 && (p = (p % I2) + I2),
          p > QI
            ? this
                ._append`A${r},${r},0,1,${m},${t - u},${n - a}A${r},${r},0,1,${m},${(this._x1 = l)},${(this._y1 = h)}`
            : p > q0 &&
              this
                ._append`A${r},${r},0,${+(p >= D2)},${m},${(this._x1 = t + r * Math.cos(o))},${(this._y1 = n + r * Math.sin(o))}`));
    }
    rect(t, n, r, i) {
      this
        ._append`M${(this._x0 = this._x1 = +t)},${(this._y0 = this._y1 = +n)}h${(r = +r)}v${+i}h${-r}Z`;
    }
    toString() {
      return this._;
    }
  };
  function Va() {
    return new Ki();
  }
  Va.prototype = Ki.prototype;
  function Sx(e = 3) {
    return new Ki(+e);
  }
  var Ax = Array.prototype.slice;
  function Oo(e) {
    return function () {
      return e;
    };
  }
  function tF(e) {
    return e.source;
  }
  function nF(e) {
    return e.target;
  }
  function Mx(e) {
    return e.radius;
  }
  function rF(e) {
    return e.startAngle;
  }
  function iF(e) {
    return e.endAngle;
  }
  function oF() {
    return 0;
  }
  function sF() {
    return 10;
  }
  function Tx(e) {
    var t = tF,
      n = nF,
      r = Mx,
      i = Mx,
      o = rF,
      s = iF,
      u = oF,
      a = null;
    function l() {
      var h,
        m = t.apply(this, arguments),
        p = n.apply(this, arguments),
        b = u.apply(this, arguments) / 2,
        x = Ax.call(arguments),
        y = +r.apply(this, ((x[0] = m), x)),
        v = o.apply(this, x) - Ua,
        k = s.apply(this, x) - Ua,
        T = +i.apply(this, ((x[0] = p), x)),
        E = o.apply(this, x) - Ua,
        M = s.apply(this, x) - Ua;
      if (
        (a || (a = h = Va()),
        b > Uf &&
          (M2(k - v) > b * 2 + Uf
            ? k > v
              ? ((v += b), (k -= b))
              : ((v -= b), (k += b))
            : (v = k = (v + k) / 2),
          M2(M - E) > b * 2 + Uf
            ? M > E
              ? ((E += b), (M -= b))
              : ((E -= b), (M += b))
            : (E = M = (E + M) / 2)),
        a.moveTo(y * I0(v), y * F0(v)),
        a.arc(0, 0, y, v, k),
        v !== E || k !== M)
      )
        if (e) {
          var D = +e.apply(this, arguments),
            I = T - D,
            P = (E + M) / 2;
          (a.quadraticCurveTo(0, 0, I * I0(E), I * F0(E)),
            a.lineTo(T * I0(P), T * F0(P)),
            a.lineTo(I * I0(M), I * F0(M)));
        } else
          (a.quadraticCurveTo(0, 0, T * I0(E), T * F0(E)),
            a.arc(0, 0, T, E, M));
      if ((a.quadraticCurveTo(0, 0, y * I0(v), y * F0(v)), a.closePath(), h))
        return ((a = null), h + "" || null);
    }
    return (
      e &&
        (l.headRadius = function (h) {
          return arguments.length
            ? ((e = typeof h == "function" ? h : Oo(+h)), l)
            : e;
        }),
      (l.radius = function (h) {
        return arguments.length
          ? ((r = i = typeof h == "function" ? h : Oo(+h)), l)
          : r;
      }),
      (l.sourceRadius = function (h) {
        return arguments.length
          ? ((r = typeof h == "function" ? h : Oo(+h)), l)
          : r;
      }),
      (l.targetRadius = function (h) {
        return arguments.length
          ? ((i = typeof h == "function" ? h : Oo(+h)), l)
          : i;
      }),
      (l.startAngle = function (h) {
        return arguments.length
          ? ((o = typeof h == "function" ? h : Oo(+h)), l)
          : o;
      }),
      (l.endAngle = function (h) {
        return arguments.length
          ? ((s = typeof h == "function" ? h : Oo(+h)), l)
          : s;
      }),
      (l.padAngle = function (h) {
        return arguments.length
          ? ((u = typeof h == "function" ? h : Oo(+h)), l)
          : u;
      }),
      (l.source = function (h) {
        return arguments.length ? ((t = h), l) : t;
      }),
      (l.target = function (h) {
        return arguments.length ? ((n = h), l) : n;
      }),
      (l.context = function (h) {
        return arguments.length ? ((a = h ?? null), l) : a;
      }),
      l
    );
  }
  function Ex() {
    return Tx();
  }
  function Cx() {
    return Tx(sF);
  }
  var uF = Array.prototype,
    Vf = uF.slice;
  function Nx(e, t) {
    return e - t;
  }
  function Dx(e) {
    for (
      var t = 0,
        n = e.length,
        r = e[n - 1][1] * e[0][0] - e[n - 1][0] * e[0][1];
      ++t < n;
    )
      r += e[t - 1][1] * e[t][0] - e[t - 1][0] * e[t][1];
    return r;
  }
  var ii = (e) => () => e;
  function Ix(e, t) {
    for (var n = -1, r = t.length, i; ++n < r; )
      if ((i = aF(e, t[n]))) return i;
    return 0;
  }
  function aF(e, t) {
    for (
      var n = t[0], r = t[1], i = -1, o = 0, s = e.length, u = s - 1;
      o < s;
      u = o++
    ) {
      var a = e[o],
        l = a[0],
        h = a[1],
        m = e[u],
        p = m[0],
        b = m[1];
      if (lF(a, m, t)) return 0;
      h > r != b > r && n < ((p - l) * (r - h)) / (b - h) + l && (i = -i);
    }
    return i;
  }
  function lF(e, t, n) {
    var r;
    return cF(e, t, n) && fF(e[(r = +(e[0] === t[0]))], n[r], t[r]);
  }
  function cF(e, t, n) {
    return (t[0] - e[0]) * (n[1] - e[1]) === (n[0] - e[0]) * (t[1] - e[1]);
  }
  function fF(e, t, n) {
    return (e <= t && t <= n) || (n <= t && t <= e);
  }
  function Fx() {}
  var Zi = [
    [],
    [
      [
        [1, 1.5],
        [0.5, 1],
      ],
    ],
    [
      [
        [1.5, 1],
        [1, 1.5],
      ],
    ],
    [
      [
        [1.5, 1],
        [0.5, 1],
      ],
    ],
    [
      [
        [1, 0.5],
        [1.5, 1],
      ],
    ],
    [
      [
        [1, 1.5],
        [0.5, 1],
      ],
      [
        [1, 0.5],
        [1.5, 1],
      ],
    ],
    [
      [
        [1, 0.5],
        [1, 1.5],
      ],
    ],
    [
      [
        [1, 0.5],
        [0.5, 1],
      ],
    ],
    [
      [
        [0.5, 1],
        [1, 0.5],
      ],
    ],
    [
      [
        [1, 1.5],
        [1, 0.5],
      ],
    ],
    [
      [
        [0.5, 1],
        [1, 0.5],
      ],
      [
        [1.5, 1],
        [1, 1.5],
      ],
    ],
    [
      [
        [1.5, 1],
        [1, 0.5],
      ],
    ],
    [
      [
        [0.5, 1],
        [1.5, 1],
      ],
    ],
    [
      [
        [1, 1.5],
        [1.5, 1],
      ],
    ],
    [
      [
        [0.5, 1],
        [1, 1.5],
      ],
    ],
    [],
  ];
  function ja() {
    var e = 1,
      t = 1,
      n = x0,
      r = a;
    function i(l) {
      var h = n(l);
      if (Array.isArray(h)) h = h.slice().sort(Nx);
      else {
        let m = $i(l, hF);
        for (h = zn(...b0(m[0], m[1], h), h); h[h.length - 1] >= m[1]; )
          h.pop();
        for (; h[1] < m[0]; ) h.shift();
      }
      return h.map((m) => o(l, m));
    }
    function o(l, h) {
      let m = h == null ? NaN : +h;
      if (isNaN(m)) throw new Error(`invalid value: ${h}`);
      var p = [],
        b = [];
      return (
        s(l, m, function (x) {
          (r(x, l, m), Dx(x) > 0 ? p.push([x]) : b.push(x));
        }),
        b.forEach(function (x) {
          for (var y = 0, v = p.length, k; y < v; ++y)
            if (Ix((k = p[y])[0], x) !== -1) {
              k.push(x);
              return;
            }
        }),
        { type: "MultiPolygon", value: h, coordinates: p }
      );
    }
    function s(l, h, m) {
      var p = new Array(),
        b = new Array(),
        x,
        y,
        v,
        k,
        T,
        E;
      for (x = y = -1, k = L0(l[0], h), Zi[k << 1].forEach(M); ++x < e - 1; )
        ((v = k), (k = L0(l[x + 1], h)), Zi[v | (k << 1)].forEach(M));
      for (Zi[k << 0].forEach(M); ++y < t - 1; ) {
        for (
          x = -1,
            k = L0(l[y * e + e], h),
            T = L0(l[y * e], h),
            Zi[(k << 1) | (T << 2)].forEach(M);
          ++x < e - 1;
        )
          ((v = k),
            (k = L0(l[y * e + e + x + 1], h)),
            (E = T),
            (T = L0(l[y * e + x + 1], h)),
            Zi[v | (k << 1) | (T << 2) | (E << 3)].forEach(M));
        Zi[k | (T << 3)].forEach(M);
      }
      for (x = -1, T = l[y * e] >= h, Zi[T << 2].forEach(M); ++x < e - 1; )
        ((E = T),
          (T = L0(l[y * e + x + 1], h)),
          Zi[(T << 2) | (E << 3)].forEach(M));
      Zi[T << 3].forEach(M);
      function M(D) {
        var I = [D[0][0] + x, D[0][1] + y],
          P = [D[1][0] + x, D[1][1] + y],
          O = u(I),
          H = u(P),
          U,
          j;
        (U = b[O])
          ? (j = p[H])
            ? (delete b[U.end],
              delete p[j.start],
              U === j
                ? (U.ring.push(P), m(U.ring))
                : (p[U.start] = b[j.end] =
                    {
                      start: U.start,
                      end: j.end,
                      ring: U.ring.concat(j.ring),
                    }))
            : (delete b[U.end], U.ring.push(P), (b[(U.end = H)] = U))
          : (U = p[H])
            ? (j = b[O])
              ? (delete p[U.start],
                delete b[j.end],
                U === j
                  ? (U.ring.push(P), m(U.ring))
                  : (p[j.start] = b[U.end] =
                      {
                        start: j.start,
                        end: U.end,
                        ring: j.ring.concat(U.ring),
                      }))
              : (delete p[U.start], U.ring.unshift(I), (p[(U.start = O)] = U))
            : (p[O] = b[H] = { start: O, end: H, ring: [I, P] });
      }
    }
    function u(l) {
      return l[0] * 2 + l[1] * (e + 1) * 4;
    }
    function a(l, h, m) {
      l.forEach(function (p) {
        var b = p[0],
          x = p[1],
          y = b | 0,
          v = x | 0,
          k = F2(h[v * e + y]);
        (b > 0 &&
          b < e &&
          y === b &&
          (p[0] = qx(b, F2(h[v * e + y - 1]), k, m)),
          x > 0 &&
            x < t &&
            v === x &&
            (p[1] = qx(x, F2(h[(v - 1) * e + y]), k, m)));
      });
    }
    return (
      (i.contour = o),
      (i.size = function (l) {
        if (!arguments.length) return [e, t];
        var h = Math.floor(l[0]),
          m = Math.floor(l[1]);
        if (!(h >= 0 && m >= 0)) throw new Error("invalid size");
        return ((e = h), (t = m), i);
      }),
      (i.thresholds = function (l) {
        return arguments.length
          ? ((n =
              typeof l == "function"
                ? l
                : Array.isArray(l)
                  ? ii(Vf.call(l))
                  : ii(l)),
            i)
          : n;
      }),
      (i.smooth = function (l) {
        return arguments.length ? ((r = l ? a : Fx), i) : r === a;
      }),
      i
    );
  }
  function hF(e) {
    return isFinite(e) ? e : NaN;
  }
  function L0(e, t) {
    return e == null ? !1 : +e >= t;
  }
  function F2(e) {
    return e == null || isNaN((e = +e)) ? -1 / 0 : e;
  }
  function qx(e, t, n, r) {
    let i = r - t,
      o = n - t,
      s = isFinite(i) || isFinite(o) ? i / o : Math.sign(i) / Math.sign(o);
    return isNaN(s) ? e : e + s - 0.5;
  }
  function dF(e) {
    return e[0];
  }
  function pF(e) {
    return e[1];
  }
  function mF() {
    return 1;
  }
  function Lx() {
    var e = dF,
      t = pF,
      n = mF,
      r = 960,
      i = 500,
      o = 20,
      s = 2,
      u = o * 3,
      a = (r + u * 2) >> s,
      l = (i + u * 2) >> s,
      h = ii(20);
    function m(T) {
      var E = new Float32Array(a * l),
        M = Math.pow(2, -s),
        D = -1;
      for (let Q of T) {
        var I = (e(Q, ++D, T) + u) * M,
          P = (t(Q, D, T) + u) * M,
          O = +n(Q, D, T);
        if (O && I >= 0 && I < a && P >= 0 && P < l) {
          var H = Math.floor(I),
            U = Math.floor(P),
            j = I - H - 0.5,
            Z = P - U - 0.5;
          ((E[H + U * a] += (1 - j) * (1 - Z) * O),
            (E[H + 1 + U * a] += j * (1 - Z) * O),
            (E[H + 1 + (U + 1) * a] += j * Z * O),
            (E[H + (U + 1) * a] += (1 - j) * Z * O));
        }
      }
      return (Yc({ data: E, width: a, height: l }, o * M), E);
    }
    function p(T) {
      var E = m(T),
        M = h(E),
        D = Math.pow(2, 2 * s);
      return (
        Array.isArray(M) || (M = zn(Number.MIN_VALUE, or(E) / D, M)),
        ja()
          .size([a, l])
          .thresholds(M.map((I) => I * D))(E)
          .map((I, P) => ((I.value = +M[P]), b(I)))
      );
    }
    p.contours = function (T) {
      var E = m(T),
        M = ja().size([a, l]),
        D = Math.pow(2, 2 * s),
        I = (P) => {
          P = +P;
          var O = b(M.contour(E, P * D));
          return ((O.value = P), O);
        };
      return (Object.defineProperty(I, "max", { get: () => or(E) / D }), I);
    };
    function b(T) {
      return (T.coordinates.forEach(x), T);
    }
    function x(T) {
      T.forEach(y);
    }
    function y(T) {
      T.forEach(v);
    }
    function v(T) {
      ((T[0] = T[0] * Math.pow(2, s) - u), (T[1] = T[1] * Math.pow(2, s) - u));
    }
    function k() {
      return ((u = o * 3), (a = (r + u * 2) >> s), (l = (i + u * 2) >> s), p);
    }
    return (
      (p.x = function (T) {
        return arguments.length
          ? ((e = typeof T == "function" ? T : ii(+T)), p)
          : e;
      }),
      (p.y = function (T) {
        return arguments.length
          ? ((t = typeof T == "function" ? T : ii(+T)), p)
          : t;
      }),
      (p.weight = function (T) {
        return arguments.length
          ? ((n = typeof T == "function" ? T : ii(+T)), p)
          : n;
      }),
      (p.size = function (T) {
        if (!arguments.length) return [r, i];
        var E = +T[0],
          M = +T[1];
        if (!(E >= 0 && M >= 0)) throw new Error("invalid size");
        return ((r = E), (i = M), k());
      }),
      (p.cellSize = function (T) {
        if (!arguments.length) return 1 << s;
        if (!((T = +T) >= 1)) throw new Error("invalid cell size");
        return ((s = Math.floor(Math.log(T) / Math.LN2)), k());
      }),
      (p.thresholds = function (T) {
        return arguments.length
          ? ((h =
              typeof T == "function"
                ? T
                : Array.isArray(T)
                  ? ii(Vf.call(T))
                  : ii(T)),
            p)
          : h;
      }),
      (p.bandwidth = function (T) {
        if (!arguments.length) return Math.sqrt(o * (o + 1));
        if (!((T = +T) >= 0)) throw new Error("invalid bandwidth");
        return ((o = (Math.sqrt(4 * T * T + 1) - 1) / 2), k());
      }),
      p
    );
  }
  var Je = 11102230246251565e-32,
    Yt = 134217729,
    Ga = (3 + 8 * Je) * Je;
  function O0(e, t, n, r, i) {
    let o,
      s,
      u,
      a,
      l = t[0],
      h = r[0],
      m = 0,
      p = 0;
    h > l == h > -l ? ((o = l), (l = t[++m])) : ((o = h), (h = r[++p]));
    let b = 0;
    if (m < e && p < n)
      for (
        h > l == h > -l
          ? ((s = l + o), (u = o - (s - l)), (l = t[++m]))
          : ((s = h + o), (u = o - (s - h)), (h = r[++p])),
          o = s,
          u !== 0 && (i[b++] = u);
        m < e && p < n;
      )
        (h > l == h > -l
          ? ((s = o + l),
            (a = s - o),
            (u = o - (s - a) + (l - a)),
            (l = t[++m]))
          : ((s = o + h),
            (a = s - o),
            (u = o - (s - a) + (h - a)),
            (h = r[++p])),
          (o = s),
          u !== 0 && (i[b++] = u));
    for (; m < e; )
      ((s = o + l),
        (a = s - o),
        (u = o - (s - a) + (l - a)),
        (l = t[++m]),
        (o = s),
        u !== 0 && (i[b++] = u));
    for (; p < n; )
      ((s = o + h),
        (a = s - o),
        (u = o - (s - a) + (h - a)),
        (h = r[++p]),
        (o = s),
        u !== 0 && (i[b++] = u));
    return ((o !== 0 || b === 0) && (i[b++] = o), b);
  }
  function Ya(e, t) {
    let n = t[0];
    for (let r = 1; r < e; r++) n += t[r];
    return n;
  }
  function oe(e) {
    return new Float64Array(e);
  }
  var gF = (3 + 16 * Je) * Je,
    bF = (2 + 12 * Je) * Je,
    xF = (9 + 64 * Je) * Je * Je,
    tu = oe(4),
    Ox = oe(8),
    Bx = oe(12),
    zx = oe(16),
    Mn = oe(4);
  function yF(e, t, n, r, i, o, s) {
    let u,
      a,
      l,
      h,
      m,
      p,
      b,
      x,
      y,
      v,
      k,
      T,
      E,
      M,
      D,
      I,
      P,
      O,
      H = e - i,
      U = n - i,
      j = t - o,
      Z = r - o;
    ((M = H * Z),
      (p = Yt * H),
      (b = p - (p - H)),
      (x = H - b),
      (p = Yt * Z),
      (y = p - (p - Z)),
      (v = Z - y),
      (D = x * v - (M - b * y - x * y - b * v)),
      (I = j * U),
      (p = Yt * j),
      (b = p - (p - j)),
      (x = j - b),
      (p = Yt * U),
      (y = p - (p - U)),
      (v = U - y),
      (P = x * v - (I - b * y - x * y - b * v)),
      (k = D - P),
      (m = D - k),
      (tu[0] = D - (k + m) + (m - P)),
      (T = M + k),
      (m = T - M),
      (E = M - (T - m) + (k - m)),
      (k = E - I),
      (m = E - k),
      (tu[1] = E - (k + m) + (m - I)),
      (O = T + k),
      (m = O - T),
      (tu[2] = T - (O - m) + (k - m)),
      (tu[3] = O));
    let Q = Ya(4, tu),
      B = bF * s;
    if (
      Q >= B ||
      -Q >= B ||
      ((m = e - H),
      (u = e - (H + m) + (m - i)),
      (m = n - U),
      (l = n - (U + m) + (m - i)),
      (m = t - j),
      (a = t - (j + m) + (m - o)),
      (m = r - Z),
      (h = r - (Z + m) + (m - o)),
      u === 0 && a === 0 && l === 0 && h === 0) ||
      ((B = xF * s + Ga * Math.abs(Q)),
      (Q += H * h + Z * u - (j * l + U * a)),
      Q >= B || -Q >= B)
    )
      return Q;
    ((M = u * Z),
      (p = Yt * u),
      (b = p - (p - u)),
      (x = u - b),
      (p = Yt * Z),
      (y = p - (p - Z)),
      (v = Z - y),
      (D = x * v - (M - b * y - x * y - b * v)),
      (I = a * U),
      (p = Yt * a),
      (b = p - (p - a)),
      (x = a - b),
      (p = Yt * U),
      (y = p - (p - U)),
      (v = U - y),
      (P = x * v - (I - b * y - x * y - b * v)),
      (k = D - P),
      (m = D - k),
      (Mn[0] = D - (k + m) + (m - P)),
      (T = M + k),
      (m = T - M),
      (E = M - (T - m) + (k - m)),
      (k = E - I),
      (m = E - k),
      (Mn[1] = E - (k + m) + (m - I)),
      (O = T + k),
      (m = O - T),
      (Mn[2] = T - (O - m) + (k - m)),
      (Mn[3] = O));
    let V = O0(4, tu, 4, Mn, Ox);
    ((M = H * h),
      (p = Yt * H),
      (b = p - (p - H)),
      (x = H - b),
      (p = Yt * h),
      (y = p - (p - h)),
      (v = h - y),
      (D = x * v - (M - b * y - x * y - b * v)),
      (I = j * l),
      (p = Yt * j),
      (b = p - (p - j)),
      (x = j - b),
      (p = Yt * l),
      (y = p - (p - l)),
      (v = l - y),
      (P = x * v - (I - b * y - x * y - b * v)),
      (k = D - P),
      (m = D - k),
      (Mn[0] = D - (k + m) + (m - P)),
      (T = M + k),
      (m = T - M),
      (E = M - (T - m) + (k - m)),
      (k = E - I),
      (m = E - k),
      (Mn[1] = E - (k + m) + (m - I)),
      (O = T + k),
      (m = O - T),
      (Mn[2] = T - (O - m) + (k - m)),
      (Mn[3] = O));
    let G = O0(V, Ox, 4, Mn, Bx);
    ((M = u * h),
      (p = Yt * u),
      (b = p - (p - u)),
      (x = u - b),
      (p = Yt * h),
      (y = p - (p - h)),
      (v = h - y),
      (D = x * v - (M - b * y - x * y - b * v)),
      (I = a * l),
      (p = Yt * a),
      (b = p - (p - a)),
      (x = a - b),
      (p = Yt * l),
      (y = p - (p - l)),
      (v = l - y),
      (P = x * v - (I - b * y - x * y - b * v)),
      (k = D - P),
      (m = D - k),
      (Mn[0] = D - (k + m) + (m - P)),
      (T = M + k),
      (m = T - M),
      (E = M - (T - m) + (k - m)),
      (k = E - I),
      (m = E - k),
      (Mn[1] = E - (k + m) + (m - I)),
      (O = T + k),
      (m = O - T),
      (Mn[2] = T - (O - m) + (k - m)),
      (Mn[3] = O));
    let ne = O0(G, Bx, 4, Mn, zx);
    return zx[ne - 1];
  }
  function nu(e, t, n, r, i, o) {
    let s = (t - o) * (n - i),
      u = (e - i) * (r - o),
      a = s - u,
      l = Math.abs(s + u);
    return Math.abs(a) >= gF * l ? a : -yF(e, t, n, r, i, o, l);
  }
  var Bne = (7 + 56 * Je) * Je,
    zne = (3 + 28 * Je) * Je,
    Rne = (26 + 288 * Je) * Je * Je,
    Pne = oe(4),
    $ne = oe(4),
    Hne = oe(4),
    Une = oe(4),
    Vne = oe(4),
    jne = oe(4),
    Gne = oe(4),
    Yne = oe(4),
    Xne = oe(4),
    Wne = oe(8),
    Kne = oe(8),
    Zne = oe(8),
    Jne = oe(4),
    Qne = oe(8),
    ere = oe(8),
    tre = oe(8),
    nre = oe(12),
    rre = oe(192),
    ire = oe(192);
  var ure = (10 + 96 * Je) * Je,
    are = (4 + 48 * Je) * Je,
    lre = (44 + 576 * Je) * Je * Je,
    cre = oe(4),
    fre = oe(4),
    hre = oe(4),
    dre = oe(4),
    pre = oe(4),
    mre = oe(4),
    gre = oe(4),
    bre = oe(4),
    xre = oe(8),
    yre = oe(8),
    wre = oe(8),
    vre = oe(8),
    _re = oe(8),
    kre = oe(8),
    Sre = oe(8),
    Are = oe(8),
    Mre = oe(8),
    Tre = oe(4),
    Ere = oe(4),
    Cre = oe(4),
    Nre = oe(8),
    Dre = oe(16),
    Ire = oe(16),
    Fre = oe(16),
    qre = oe(32),
    Lre = oe(32),
    Ore = oe(48),
    Bre = oe(64),
    zre = oe(1152),
    Rre = oe(1152);
  var Ure = (16 + 224 * Je) * Je,
    Vre = (5 + 72 * Je) * Je,
    jre = (71 + 1408 * Je) * Je * Je,
    Gre = oe(4),
    Yre = oe(4),
    Xre = oe(4),
    Wre = oe(4),
    Kre = oe(4),
    Zre = oe(4),
    Jre = oe(4),
    Qre = oe(4),
    eie = oe(4),
    tie = oe(4),
    nie = oe(24),
    rie = oe(24),
    iie = oe(24),
    oie = oe(24),
    sie = oe(24),
    uie = oe(24),
    aie = oe(24),
    lie = oe(24),
    cie = oe(24),
    fie = oe(24),
    hie = oe(1152),
    die = oe(1152),
    pie = oe(1152),
    mie = oe(1152),
    gie = oe(1152),
    bie = oe(2304),
    xie = oe(2304),
    yie = oe(3456),
    wie = oe(5760),
    vie = oe(8),
    _ie = oe(8),
    kie = oe(8),
    Sie = oe(16),
    Aie = oe(24),
    Mie = oe(48),
    Tie = oe(48),
    Eie = oe(96),
    Cie = oe(192),
    Nie = oe(384),
    Die = oe(384),
    Iie = oe(384),
    Fie = oe(768);
  var qie = oe(96),
    Lie = oe(96),
    Oie = oe(96),
    Bie = oe(1152);
  var Px = Math.pow(2, -52),
    jf = new Uint32Array(512),
    iu = class e {
      static from(t, n = AF, r = MF) {
        let i = t.length,
          o = new Float64Array(i * 2);
        for (let s = 0; s < i; s++) {
          let u = t[s];
          ((o[2 * s] = n(u)), (o[2 * s + 1] = r(u)));
        }
        return new e(o);
      }
      constructor(t) {
        let n = t.length >> 1;
        if (n > 0 && typeof t[0] != "number")
          throw new Error("Expected coords to contain numbers.");
        this.coords = t;
        let r = Math.max(2 * n - 5, 0);
        ((this._triangles = new Uint32Array(r * 3)),
          (this._halfedges = new Int32Array(r * 3)),
          (this._hashSize = Math.ceil(Math.sqrt(n))),
          (this._hullPrev = new Uint32Array(n)),
          (this._hullNext = new Uint32Array(n)),
          (this._hullTri = new Uint32Array(n)),
          (this._hullHash = new Int32Array(this._hashSize)),
          (this._ids = new Uint32Array(n)),
          (this._dists = new Float64Array(n)),
          this.update());
      }
      update() {
        let {
            coords: t,
            _hullPrev: n,
            _hullNext: r,
            _hullTri: i,
            _hullHash: o,
          } = this,
          s = t.length >> 1,
          u = 1 / 0,
          a = 1 / 0,
          l = -1 / 0,
          h = -1 / 0;
        for (let H = 0; H < s; H++) {
          let U = t[2 * H],
            j = t[2 * H + 1];
          (U < u && (u = U),
            j < a && (a = j),
            U > l && (l = U),
            j > h && (h = j),
            (this._ids[H] = H));
        }
        let m = (u + l) / 2,
          p = (a + h) / 2,
          b,
          x,
          y;
        for (let H = 0, U = 1 / 0; H < s; H++) {
          let j = q2(m, p, t[2 * H], t[2 * H + 1]);
          j < U && ((b = H), (U = j));
        }
        let v = t[2 * b],
          k = t[2 * b + 1];
        for (let H = 0, U = 1 / 0; H < s; H++) {
          if (H === b) continue;
          let j = q2(v, k, t[2 * H], t[2 * H + 1]);
          j < U && j > 0 && ((x = H), (U = j));
        }
        let T = t[2 * x],
          E = t[2 * x + 1],
          M = 1 / 0;
        for (let H = 0; H < s; H++) {
          if (H === b || H === x) continue;
          let U = kF(v, k, T, E, t[2 * H], t[2 * H + 1]);
          U < M && ((y = H), (M = U));
        }
        let D = t[2 * y],
          I = t[2 * y + 1];
        if (M === 1 / 0) {
          for (let j = 0; j < s; j++)
            this._dists[j] = t[2 * j] - t[0] || t[2 * j + 1] - t[1];
          ru(this._ids, this._dists, 0, s - 1);
          let H = new Uint32Array(s),
            U = 0;
          for (let j = 0, Z = -1 / 0; j < s; j++) {
            let Q = this._ids[j],
              B = this._dists[Q];
            B > Z && ((H[U++] = Q), (Z = B));
          }
          ((this.hull = H.subarray(0, U)),
            (this.triangles = new Uint32Array(0)),
            (this.halfedges = new Uint32Array(0)));
          return;
        }
        if (nu(v, k, T, E, D, I) < 0) {
          let H = x,
            U = T,
            j = E;
          ((x = y), (T = D), (E = I), (y = H), (D = U), (I = j));
        }
        let P = SF(v, k, T, E, D, I);
        ((this._cx = P.x), (this._cy = P.y));
        for (let H = 0; H < s; H++)
          this._dists[H] = q2(t[2 * H], t[2 * H + 1], P.x, P.y);
        (ru(this._ids, this._dists, 0, s - 1), (this._hullStart = b));
        let O = 3;
        ((r[b] = n[y] = x),
          (r[x] = n[b] = y),
          (r[y] = n[x] = b),
          (i[b] = 0),
          (i[x] = 1),
          (i[y] = 2),
          o.fill(-1),
          (o[this._hashKey(v, k)] = b),
          (o[this._hashKey(T, E)] = x),
          (o[this._hashKey(D, I)] = y),
          (this.trianglesLen = 0),
          this._addTriangle(b, x, y, -1, -1, -1));
        for (let H = 0, U, j; H < this._ids.length; H++) {
          let Z = this._ids[H],
            Q = t[2 * Z],
            B = t[2 * Z + 1];
          if (
            (H > 0 && Math.abs(Q - U) <= Px && Math.abs(B - j) <= Px) ||
            ((U = Q), (j = B), Z === b || Z === x || Z === y)
          )
            continue;
          let V = 0;
          for (
            let ce = 0, xe = this._hashKey(Q, B);
            ce < this._hashSize &&
            ((V = o[(xe + ce) % this._hashSize]), !(V !== -1 && V !== r[V]));
            ce++
          );
          V = n[V];
          let G = V,
            ne;
          for (
            ;
            (ne = r[G]),
              nu(Q, B, t[2 * G], t[2 * G + 1], t[2 * ne], t[2 * ne + 1]) >= 0;
          )
            if (((G = ne), G === V)) {
              G = -1;
              break;
            }
          if (G === -1) continue;
          let te = this._addTriangle(G, Z, r[G], -1, -1, i[G]);
          ((i[Z] = this._legalize(te + 2)), (i[G] = te), O++);
          let ie = r[G];
          for (
            ;
            (ne = r[ie]),
              nu(Q, B, t[2 * ie], t[2 * ie + 1], t[2 * ne], t[2 * ne + 1]) < 0;
          )
            ((te = this._addTriangle(ie, Z, ne, i[Z], -1, i[ie])),
              (i[Z] = this._legalize(te + 2)),
              (r[ie] = ie),
              O--,
              (ie = ne));
          if (G === V)
            for (
              ;
              (ne = n[G]),
                nu(Q, B, t[2 * ne], t[2 * ne + 1], t[2 * G], t[2 * G + 1]) < 0;
            )
              ((te = this._addTriangle(ne, Z, G, -1, i[G], i[ne])),
                this._legalize(te + 2),
                (i[ne] = te),
                (r[G] = G),
                O--,
                (G = ne));
          ((this._hullStart = n[Z] = G),
            (r[G] = n[ie] = Z),
            (r[Z] = ie),
            (o[this._hashKey(Q, B)] = Z),
            (o[this._hashKey(t[2 * G], t[2 * G + 1])] = G));
        }
        this.hull = new Uint32Array(O);
        for (let H = 0, U = this._hullStart; H < O; H++)
          ((this.hull[H] = U), (U = r[U]));
        ((this.triangles = this._triangles.subarray(0, this.trianglesLen)),
          (this.halfedges = this._halfedges.subarray(0, this.trianglesLen)));
      }
      _hashKey(t, n) {
        return (
          Math.floor(vF(t - this._cx, n - this._cy) * this._hashSize) %
          this._hashSize
        );
      }
      _legalize(t) {
        let { _triangles: n, _halfedges: r, coords: i } = this,
          o = 0,
          s = 0;
        for (;;) {
          let u = r[t],
            a = t - (t % 3);
          if (((s = a + ((t + 2) % 3)), u === -1)) {
            if (o === 0) break;
            t = jf[--o];
            continue;
          }
          let l = u - (u % 3),
            h = a + ((t + 1) % 3),
            m = l + ((u + 2) % 3),
            p = n[s],
            b = n[t],
            x = n[h],
            y = n[m];
          if (
            _F(
              i[2 * p],
              i[2 * p + 1],
              i[2 * b],
              i[2 * b + 1],
              i[2 * x],
              i[2 * x + 1],
              i[2 * y],
              i[2 * y + 1],
            )
          ) {
            ((n[t] = y), (n[u] = p));
            let k = r[m];
            if (k === -1) {
              let E = this._hullStart;
              do {
                if (this._hullTri[E] === m) {
                  this._hullTri[E] = t;
                  break;
                }
                E = this._hullPrev[E];
              } while (E !== this._hullStart);
            }
            (this._link(t, k), this._link(u, r[s]), this._link(s, m));
            let T = l + ((u + 1) % 3);
            o < jf.length && (jf[o++] = T);
          } else {
            if (o === 0) break;
            t = jf[--o];
          }
        }
        return s;
      }
      _link(t, n) {
        ((this._halfedges[t] = n), n !== -1 && (this._halfedges[n] = t));
      }
      _addTriangle(t, n, r, i, o, s) {
        let u = this.trianglesLen;
        return (
          (this._triangles[u] = t),
          (this._triangles[u + 1] = n),
          (this._triangles[u + 2] = r),
          this._link(u, i),
          this._link(u + 1, o),
          this._link(u + 2, s),
          (this.trianglesLen += 3),
          u
        );
      }
    };
  function vF(e, t) {
    let n = e / (Math.abs(e) + Math.abs(t));
    return (t > 0 ? 3 - n : 1 + n) / 4;
  }
  function q2(e, t, n, r) {
    let i = e - n,
      o = t - r;
    return i * i + o * o;
  }
  function _F(e, t, n, r, i, o, s, u) {
    let a = e - s,
      l = t - u,
      h = n - s,
      m = r - u,
      p = i - s,
      b = o - u,
      x = a * a + l * l,
      y = h * h + m * m,
      v = p * p + b * b;
    return a * (m * v - y * b) - l * (h * v - y * p) + x * (h * b - m * p) < 0;
  }
  function kF(e, t, n, r, i, o) {
    let s = n - e,
      u = r - t,
      a = i - e,
      l = o - t,
      h = s * s + u * u,
      m = a * a + l * l,
      p = 0.5 / (s * l - u * a),
      b = (l * h - u * m) * p,
      x = (s * m - a * h) * p;
    return b * b + x * x;
  }
  function SF(e, t, n, r, i, o) {
    let s = n - e,
      u = r - t,
      a = i - e,
      l = o - t,
      h = s * s + u * u,
      m = a * a + l * l,
      p = 0.5 / (s * l - u * a),
      b = e + (l * h - u * m) * p,
      x = t + (s * m - a * h) * p;
    return { x: b, y: x };
  }
  function ru(e, t, n, r) {
    if (r - n <= 20)
      for (let i = n + 1; i <= r; i++) {
        let o = e[i],
          s = t[o],
          u = i - 1;
        for (; u >= n && t[e[u]] > s; ) e[u + 1] = e[u--];
        e[u + 1] = o;
      }
    else {
      let i = (n + r) >> 1,
        o = n + 1,
        s = r;
      (Xa(e, i, o),
        t[e[n]] > t[e[r]] && Xa(e, n, r),
        t[e[o]] > t[e[r]] && Xa(e, o, r),
        t[e[n]] > t[e[o]] && Xa(e, n, o));
      let u = e[o],
        a = t[u];
      for (;;) {
        do o++;
        while (t[e[o]] < a);
        do s--;
        while (t[e[s]] > a);
        if (s < o) break;
        Xa(e, o, s);
      }
      ((e[n + 1] = e[s]),
        (e[s] = u),
        r - o + 1 >= s - n
          ? (ru(e, t, o, r), ru(e, t, n, s - 1))
          : (ru(e, t, n, s - 1), ru(e, t, o, r)));
    }
  }
  function Xa(e, t, n) {
    let r = e[t];
    ((e[t] = e[n]), (e[n] = r));
  }
  function AF(e) {
    return e[0];
  }
  function MF(e) {
    return e[1];
  }
  var lr = class {
    constructor() {
      ((this._x0 = this._y0 = this._x1 = this._y1 = null), (this._ = ""));
    }
    moveTo(t, n) {
      this._ += `M${(this._x0 = this._x1 = +t)},${(this._y0 = this._y1 = +n)}`;
    }
    closePath() {
      this._x1 !== null &&
        ((this._x1 = this._x0), (this._y1 = this._y0), (this._ += "Z"));
    }
    lineTo(t, n) {
      this._ += `L${(this._x1 = +t)},${(this._y1 = +n)}`;
    }
    arc(t, n, r) {
      ((t = +t), (n = +n), (r = +r));
      let i = t + r,
        o = n;
      if (r < 0) throw new Error("negative radius");
      (this._x1 === null
        ? (this._ += `M${i},${o}`)
        : (Math.abs(this._x1 - i) > 1e-6 || Math.abs(this._y1 - o) > 1e-6) &&
          (this._ += "L" + i + "," + o),
        r &&
          (this._ += `A${r},${r},0,1,1,${t - r},${n}A${r},${r},0,1,1,${(this._x1 = i)},${(this._y1 = o)}`));
    }
    rect(t, n, r, i) {
      this._ += `M${(this._x0 = this._x1 = +t)},${(this._y0 = this._y1 = +n)}h${+r}v${+i}h${-r}Z`;
    }
    value() {
      return this._ || null;
    }
  };
  var Bo = class {
    constructor() {
      this._ = [];
    }
    moveTo(t, n) {
      this._.push([t, n]);
    }
    closePath() {
      this._.push(this._[0].slice());
    }
    lineTo(t, n) {
      this._.push([t, n]);
    }
    value() {
      return this._.length ? this._ : null;
    }
  };
  var B0 = class {
    constructor(t, [n, r, i, o] = [0, 0, 960, 500]) {
      if (!((i = +i) >= (n = +n)) || !((o = +o) >= (r = +r)))
        throw new Error("invalid bounds");
      ((this.delaunay = t),
        (this._circumcenters = new Float64Array(t.points.length * 2)),
        (this.vectors = new Float64Array(t.points.length * 2)),
        (this.xmax = i),
        (this.xmin = n),
        (this.ymax = o),
        (this.ymin = r),
        this._init());
    }
    update() {
      return (this.delaunay.update(), this._init(), this);
    }
    _init() {
      let {
          delaunay: { points: t, hull: n, triangles: r },
          vectors: i,
        } = this,
        o,
        s,
        u = (this.circumcenters = this._circumcenters.subarray(
          0,
          (r.length / 3) * 2,
        ));
      for (let y = 0, v = 0, k = r.length, T, E; y < k; y += 3, v += 2) {
        let M = r[y] * 2,
          D = r[y + 1] * 2,
          I = r[y + 2] * 2,
          P = t[M],
          O = t[M + 1],
          H = t[D],
          U = t[D + 1],
          j = t[I],
          Z = t[I + 1],
          Q = H - P,
          B = U - O,
          V = j - P,
          G = Z - O,
          ne = (Q * G - B * V) * 2;
        if (Math.abs(ne) < 1e-9) {
          if (o === void 0) {
            o = s = 0;
            for (let ie of n) ((o += t[ie * 2]), (s += t[ie * 2 + 1]));
            ((o /= n.length), (s /= n.length));
          }
          let te = 1e9 * Math.sign((o - P) * G - (s - O) * V);
          ((T = (P + j) / 2 - te * G), (E = (O + Z) / 2 + te * V));
        } else {
          let te = 1 / ne,
            ie = Q * Q + B * B,
            ce = V * V + G * G;
          ((T = P + (G * ie - B * ce) * te), (E = O + (Q * ce - V * ie) * te));
        }
        ((u[v] = T), (u[v + 1] = E));
      }
      let a = n[n.length - 1],
        l,
        h = a * 4,
        m,
        p = t[2 * a],
        b,
        x = t[2 * a + 1];
      i.fill(0);
      for (let y = 0; y < n.length; ++y)
        ((a = n[y]),
          (l = h),
          (m = p),
          (b = x),
          (h = a * 4),
          (p = t[2 * a]),
          (x = t[2 * a + 1]),
          (i[l + 2] = i[h] = b - x),
          (i[l + 3] = i[h + 1] = p - m));
    }
    render(t) {
      let n = t == null ? (t = new lr()) : void 0,
        {
          delaunay: { halfedges: r, inedges: i, hull: o },
          circumcenters: s,
          vectors: u,
        } = this;
      if (o.length <= 1) return null;
      for (let h = 0, m = r.length; h < m; ++h) {
        let p = r[h];
        if (p < h) continue;
        let b = Math.floor(h / 3) * 2,
          x = Math.floor(p / 3) * 2,
          y = s[b],
          v = s[b + 1],
          k = s[x],
          T = s[x + 1];
        this._renderSegment(y, v, k, T, t);
      }
      let a,
        l = o[o.length - 1];
      for (let h = 0; h < o.length; ++h) {
        ((a = l), (l = o[h]));
        let m = Math.floor(i[l] / 3) * 2,
          p = s[m],
          b = s[m + 1],
          x = a * 4,
          y = this._project(p, b, u[x + 2], u[x + 3]);
        y && this._renderSegment(p, b, y[0], y[1], t);
      }
      return n && n.value();
    }
    renderBounds(t) {
      let n = t == null ? (t = new lr()) : void 0;
      return (
        t.rect(
          this.xmin,
          this.ymin,
          this.xmax - this.xmin,
          this.ymax - this.ymin,
        ),
        n && n.value()
      );
    }
    renderCell(t, n) {
      let r = n == null ? (n = new lr()) : void 0,
        i = this._clip(t);
      if (i === null || !i.length) return;
      n.moveTo(i[0], i[1]);
      let o = i.length;
      for (; i[0] === i[o - 2] && i[1] === i[o - 1] && o > 1; ) o -= 2;
      for (let s = 2; s < o; s += 2)
        (i[s] !== i[s - 2] || i[s + 1] !== i[s - 1]) &&
          n.lineTo(i[s], i[s + 1]);
      return (n.closePath(), r && r.value());
    }
    *cellPolygons() {
      let {
        delaunay: { points: t },
      } = this;
      for (let n = 0, r = t.length / 2; n < r; ++n) {
        let i = this.cellPolygon(n);
        i && ((i.index = n), yield i);
      }
    }
    cellPolygon(t) {
      let n = new Bo();
      return (this.renderCell(t, n), n.value());
    }
    _renderSegment(t, n, r, i, o) {
      let s,
        u = this._regioncode(t, n),
        a = this._regioncode(r, i);
      u === 0 && a === 0
        ? (o.moveTo(t, n), o.lineTo(r, i))
        : (s = this._clipSegment(t, n, r, i, u, a)) &&
          (o.moveTo(s[0], s[1]), o.lineTo(s[2], s[3]));
    }
    contains(t, n, r) {
      return (
        (n = +n),
        n !== n || ((r = +r), r !== r) ? !1 : this.delaunay._step(t, n, r) === t
      );
    }
    *neighbors(t) {
      let n = this._clip(t);
      if (n)
        for (let r of this.delaunay.neighbors(t)) {
          let i = this._clip(r);
          if (i) {
            e: for (let o = 0, s = n.length; o < s; o += 2)
              for (let u = 0, a = i.length; u < a; u += 2)
                if (
                  n[o] === i[u] &&
                  n[o + 1] === i[u + 1] &&
                  n[(o + 2) % s] === i[(u + a - 2) % a] &&
                  n[(o + 3) % s] === i[(u + a - 1) % a]
                ) {
                  yield r;
                  break e;
                }
          }
        }
    }
    _cell(t) {
      let {
          circumcenters: n,
          delaunay: { inedges: r, halfedges: i, triangles: o },
        } = this,
        s = r[t];
      if (s === -1) return null;
      let u = [],
        a = s;
      do {
        let l = Math.floor(a / 3);
        if (
          (u.push(n[l * 2], n[l * 2 + 1]),
          (a = a % 3 === 2 ? a - 2 : a + 1),
          o[a] !== t)
        )
          break;
        a = i[a];
      } while (a !== s && a !== -1);
      return u;
    }
    _clip(t) {
      if (t === 0 && this.delaunay.hull.length === 1)
        return [
          this.xmax,
          this.ymin,
          this.xmax,
          this.ymax,
          this.xmin,
          this.ymax,
          this.xmin,
          this.ymin,
        ];
      let n = this._cell(t);
      if (n === null) return null;
      let { vectors: r } = this,
        i = t * 4;
      return this._simplify(
        r[i] || r[i + 1]
          ? this._clipInfinite(t, n, r[i], r[i + 1], r[i + 2], r[i + 3])
          : this._clipFinite(t, n),
      );
    }
    _clipFinite(t, n) {
      let r = n.length,
        i = null,
        o,
        s,
        u = n[r - 2],
        a = n[r - 1],
        l,
        h = this._regioncode(u, a),
        m,
        p = 0;
      for (let b = 0; b < r; b += 2)
        if (
          ((o = u),
          (s = a),
          (u = n[b]),
          (a = n[b + 1]),
          (l = h),
          (h = this._regioncode(u, a)),
          l === 0 && h === 0)
        )
          ((m = p), (p = 0), i ? i.push(u, a) : (i = [u, a]));
        else {
          let x, y, v, k, T;
          if (l === 0) {
            if ((x = this._clipSegment(o, s, u, a, l, h)) === null) continue;
            [y, v, k, T] = x;
          } else {
            if ((x = this._clipSegment(u, a, o, s, h, l)) === null) continue;
            (([k, T, y, v] = x),
              (m = p),
              (p = this._edgecode(y, v)),
              m && p && this._edge(t, m, p, i, i.length),
              i ? i.push(y, v) : (i = [y, v]));
          }
          ((m = p),
            (p = this._edgecode(k, T)),
            m && p && this._edge(t, m, p, i, i.length),
            i ? i.push(k, T) : (i = [k, T]));
        }
      if (i)
        ((m = p),
          (p = this._edgecode(i[0], i[1])),
          m && p && this._edge(t, m, p, i, i.length));
      else if (
        this.contains(
          t,
          (this.xmin + this.xmax) / 2,
          (this.ymin + this.ymax) / 2,
        )
      )
        return [
          this.xmax,
          this.ymin,
          this.xmax,
          this.ymax,
          this.xmin,
          this.ymax,
          this.xmin,
          this.ymin,
        ];
      return i;
    }
    _clipSegment(t, n, r, i, o, s) {
      let u = o < s;
      for (u && ([t, n, r, i, o, s] = [r, i, t, n, s, o]); ; ) {
        if (o === 0 && s === 0) return u ? [r, i, t, n] : [t, n, r, i];
        if (o & s) return null;
        let a,
          l,
          h = o || s;
        (h & 8
          ? ((a = t + ((r - t) * (this.ymax - n)) / (i - n)), (l = this.ymax))
          : h & 4
            ? ((a = t + ((r - t) * (this.ymin - n)) / (i - n)), (l = this.ymin))
            : h & 2
              ? ((l = n + ((i - n) * (this.xmax - t)) / (r - t)),
                (a = this.xmax))
              : ((l = n + ((i - n) * (this.xmin - t)) / (r - t)),
                (a = this.xmin)),
          o
            ? ((t = a), (n = l), (o = this._regioncode(t, n)))
            : ((r = a), (i = l), (s = this._regioncode(r, i))));
      }
    }
    _clipInfinite(t, n, r, i, o, s) {
      let u = Array.from(n),
        a;
      if (
        ((a = this._project(u[0], u[1], r, i)) && u.unshift(a[0], a[1]),
        (a = this._project(u[u.length - 2], u[u.length - 1], o, s)) &&
          u.push(a[0], a[1]),
        (u = this._clipFinite(t, u)))
      )
        for (
          let l = 0, h = u.length, m, p = this._edgecode(u[h - 2], u[h - 1]);
          l < h;
          l += 2
        )
          ((m = p),
            (p = this._edgecode(u[l], u[l + 1])),
            m && p && ((l = this._edge(t, m, p, u, l)), (h = u.length)));
      else
        this.contains(
          t,
          (this.xmin + this.xmax) / 2,
          (this.ymin + this.ymax) / 2,
        ) &&
          (u = [
            this.xmin,
            this.ymin,
            this.xmax,
            this.ymin,
            this.xmax,
            this.ymax,
            this.xmin,
            this.ymax,
          ]);
      return u;
    }
    _edge(t, n, r, i, o) {
      for (; n !== r; ) {
        let s, u;
        switch (n) {
          case 5:
            n = 4;
            continue;
          case 4:
            ((n = 6), (s = this.xmax), (u = this.ymin));
            break;
          case 6:
            n = 2;
            continue;
          case 2:
            ((n = 10), (s = this.xmax), (u = this.ymax));
            break;
          case 10:
            n = 8;
            continue;
          case 8:
            ((n = 9), (s = this.xmin), (u = this.ymax));
            break;
          case 9:
            n = 1;
            continue;
          case 1:
            ((n = 5), (s = this.xmin), (u = this.ymin));
            break;
        }
        (i[o] !== s || i[o + 1] !== u) &&
          this.contains(t, s, u) &&
          (i.splice(o, 0, s, u), (o += 2));
      }
      return o;
    }
    _project(t, n, r, i) {
      let o = 1 / 0,
        s,
        u,
        a;
      if (i < 0) {
        if (n <= this.ymin) return null;
        (s = (this.ymin - n) / i) < o &&
          ((a = this.ymin), (u = t + (o = s) * r));
      } else if (i > 0) {
        if (n >= this.ymax) return null;
        (s = (this.ymax - n) / i) < o &&
          ((a = this.ymax), (u = t + (o = s) * r));
      }
      if (r > 0) {
        if (t >= this.xmax) return null;
        (s = (this.xmax - t) / r) < o &&
          ((u = this.xmax), (a = n + (o = s) * i));
      } else if (r < 0) {
        if (t <= this.xmin) return null;
        (s = (this.xmin - t) / r) < o &&
          ((u = this.xmin), (a = n + (o = s) * i));
      }
      return [u, a];
    }
    _edgecode(t, n) {
      return (
        (t === this.xmin ? 1 : t === this.xmax ? 2 : 0) |
        (n === this.ymin ? 4 : n === this.ymax ? 8 : 0)
      );
    }
    _regioncode(t, n) {
      return (
        (t < this.xmin ? 1 : t > this.xmax ? 2 : 0) |
        (n < this.ymin ? 4 : n > this.ymax ? 8 : 0)
      );
    }
    _simplify(t) {
      if (t && t.length > 4) {
        for (let n = 0; n < t.length; n += 2) {
          let r = (n + 2) % t.length,
            i = (n + 4) % t.length;
          ((t[n] === t[r] && t[r] === t[i]) ||
            (t[n + 1] === t[r + 1] && t[r + 1] === t[i + 1])) &&
            (t.splice(r, 2), (n -= 2));
        }
        t.length || (t = null);
      }
      return t;
    }
  };
  var TF = 2 * Math.PI,
    ou = Math.pow;
  function EF(e) {
    return e[0];
  }
  function CF(e) {
    return e[1];
  }
  function NF(e) {
    let { triangles: t, coords: n } = e;
    for (let r = 0; r < t.length; r += 3) {
      let i = 2 * t[r],
        o = 2 * t[r + 1],
        s = 2 * t[r + 2];
      if (
        (n[s] - n[i]) * (n[o + 1] - n[i + 1]) -
          (n[o] - n[i]) * (n[s + 1] - n[i + 1]) >
        1e-10
      )
        return !1;
    }
    return !0;
  }
  function DF(e, t, n) {
    return [e + Math.sin(e + t) * n, t + Math.cos(e - t) * n];
  }
  var Wa = class e {
    static from(t, n = EF, r = CF, i) {
      return new e(
        "length" in t ? IF(t, n, r, i) : Float64Array.from(FF(t, n, r, i)),
      );
    }
    constructor(t) {
      ((this._delaunator = new iu(t)),
        (this.inedges = new Int32Array(t.length / 2)),
        (this._hullIndex = new Int32Array(t.length / 2)),
        (this.points = this._delaunator.coords),
        this._init());
    }
    update() {
      return (this._delaunator.update(), this._init(), this);
    }
    _init() {
      let t = this._delaunator,
        n = this.points;
      if (t.hull && t.hull.length > 2 && NF(t)) {
        this.collinear = Int32Array.from(
          { length: n.length / 2 },
          (p, b) => b,
        ).sort((p, b) => n[2 * p] - n[2 * b] || n[2 * p + 1] - n[2 * b + 1]);
        let a = this.collinear[0],
          l = this.collinear[this.collinear.length - 1],
          h = [n[2 * a], n[2 * a + 1], n[2 * l], n[2 * l + 1]],
          m = 1e-8 * Math.hypot(h[3] - h[1], h[2] - h[0]);
        for (let p = 0, b = n.length / 2; p < b; ++p) {
          let x = DF(n[2 * p], n[2 * p + 1], m);
          ((n[2 * p] = x[0]), (n[2 * p + 1] = x[1]));
        }
        this._delaunator = new iu(n);
      } else delete this.collinear;
      let r = (this.halfedges = this._delaunator.halfedges),
        i = (this.hull = this._delaunator.hull),
        o = (this.triangles = this._delaunator.triangles),
        s = this.inedges.fill(-1),
        u = this._hullIndex.fill(-1);
      for (let a = 0, l = r.length; a < l; ++a) {
        let h = o[a % 3 === 2 ? a - 2 : a + 1];
        (r[a] === -1 || s[h] === -1) && (s[h] = a);
      }
      for (let a = 0, l = i.length; a < l; ++a) u[i[a]] = a;
      i.length <= 2 &&
        i.length > 0 &&
        ((this.triangles = new Int32Array(3).fill(-1)),
        (this.halfedges = new Int32Array(3).fill(-1)),
        (this.triangles[0] = i[0]),
        (s[i[0]] = 1),
        i.length === 2 &&
          ((s[i[1]] = 0),
          (this.triangles[1] = i[1]),
          (this.triangles[2] = i[1])));
    }
    voronoi(t) {
      return new B0(this, t);
    }
    *neighbors(t) {
      let {
        inedges: n,
        hull: r,
        _hullIndex: i,
        halfedges: o,
        triangles: s,
        collinear: u,
      } = this;
      if (u) {
        let m = u.indexOf(t);
        (m > 0 && (yield u[m - 1]), m < u.length - 1 && (yield u[m + 1]));
        return;
      }
      let a = n[t];
      if (a === -1) return;
      let l = a,
        h = -1;
      do {
        if ((yield (h = s[l]), (l = l % 3 === 2 ? l - 2 : l + 1), s[l] !== t))
          return;
        if (((l = o[l]), l === -1)) {
          let m = r[(i[t] + 1) % r.length];
          m !== h && (yield m);
          return;
        }
      } while (l !== a);
    }
    find(t, n, r = 0) {
      if (((t = +t), t !== t || ((n = +n), n !== n))) return -1;
      let i = r,
        o;
      for (; (o = this._step(r, t, n)) >= 0 && o !== r && o !== i; ) r = o;
      return o;
    }
    _step(t, n, r) {
      let {
        inedges: i,
        hull: o,
        _hullIndex: s,
        halfedges: u,
        triangles: a,
        points: l,
      } = this;
      if (i[t] === -1 || !l.length) return (t + 1) % (l.length >> 1);
      let h = t,
        m = ou(n - l[t * 2], 2) + ou(r - l[t * 2 + 1], 2),
        p = i[t],
        b = p;
      do {
        let x = a[b],
          y = ou(n - l[x * 2], 2) + ou(r - l[x * 2 + 1], 2);
        if (
          (y < m && ((m = y), (h = x)),
          (b = b % 3 === 2 ? b - 2 : b + 1),
          a[b] !== t)
        )
          break;
        if (((b = u[b]), b === -1)) {
          if (
            ((b = o[(s[t] + 1) % o.length]),
            b !== x && ou(n - l[b * 2], 2) + ou(r - l[b * 2 + 1], 2) < m)
          )
            return b;
          break;
        }
      } while (b !== p);
      return h;
    }
    render(t) {
      let n = t == null ? (t = new lr()) : void 0,
        { points: r, halfedges: i, triangles: o } = this;
      for (let s = 0, u = i.length; s < u; ++s) {
        let a = i[s];
        if (a < s) continue;
        let l = o[s] * 2,
          h = o[a] * 2;
        (t.moveTo(r[l], r[l + 1]), t.lineTo(r[h], r[h + 1]));
      }
      return (this.renderHull(t), n && n.value());
    }
    renderPoints(t, n) {
      (n === void 0 &&
        (!t || typeof t.moveTo != "function") &&
        ((n = t), (t = null)),
        (n = n == null ? 2 : +n));
      let r = t == null ? (t = new lr()) : void 0,
        { points: i } = this;
      for (let o = 0, s = i.length; o < s; o += 2) {
        let u = i[o],
          a = i[o + 1];
        (t.moveTo(u + n, a), t.arc(u, a, n, 0, TF));
      }
      return r && r.value();
    }
    renderHull(t) {
      let n = t == null ? (t = new lr()) : void 0,
        { hull: r, points: i } = this,
        o = r[0] * 2,
        s = r.length;
      t.moveTo(i[o], i[o + 1]);
      for (let u = 1; u < s; ++u) {
        let a = 2 * r[u];
        t.lineTo(i[a], i[a + 1]);
      }
      return (t.closePath(), n && n.value());
    }
    hullPolygon() {
      let t = new Bo();
      return (this.renderHull(t), t.value());
    }
    renderTriangle(t, n) {
      let r = n == null ? (n = new lr()) : void 0,
        { points: i, triangles: o } = this,
        s = o[(t *= 3)] * 2,
        u = o[t + 1] * 2,
        a = o[t + 2] * 2;
      return (
        n.moveTo(i[s], i[s + 1]),
        n.lineTo(i[u], i[u + 1]),
        n.lineTo(i[a], i[a + 1]),
        n.closePath(),
        r && r.value()
      );
    }
    *trianglePolygons() {
      let { triangles: t } = this;
      for (let n = 0, r = t.length / 3; n < r; ++n)
        yield this.trianglePolygon(n);
    }
    trianglePolygon(t) {
      let n = new Bo();
      return (this.renderTriangle(t, n), n.value());
    }
  };
  function IF(e, t, n, r) {
    let i = e.length,
      o = new Float64Array(i * 2);
    for (let s = 0; s < i; ++s) {
      let u = e[s];
      ((o[s * 2] = t.call(r, u, s, e)), (o[s * 2 + 1] = n.call(r, u, s, e)));
    }
    return o;
  }
  function* FF(e, t, n, r) {
    let i = 0;
    for (let o of e) (yield t.call(r, o, i, e), yield n.call(r, o, i, e), ++i);
  }
  var $x = {},
    L2 = {},
    O2 = 34,
    Ka = 10,
    B2 = 13;
  function Ux(e) {
    return new Function(
      "d",
      "return {" +
        e
          .map(function (t, n) {
            return JSON.stringify(t) + ": d[" + n + '] || ""';
          })
          .join(",") +
        "}",
    );
  }
  function qF(e, t) {
    var n = Ux(e);
    return function (r, i) {
      return t(n(r), i, e);
    };
  }
  function Hx(e) {
    var t = Object.create(null),
      n = [];
    return (
      e.forEach(function (r) {
        for (var i in r) i in t || n.push((t[i] = i));
      }),
      n
    );
  }
  function Rn(e, t) {
    var n = e + "",
      r = n.length;
    return r < t ? new Array(t - r + 1).join(0) + n : n;
  }
  function LF(e) {
    return e < 0 ? "-" + Rn(-e, 6) : e > 9999 ? "+" + Rn(e, 6) : Rn(e, 4);
  }
  function OF(e) {
    var t = e.getUTCHours(),
      n = e.getUTCMinutes(),
      r = e.getUTCSeconds(),
      i = e.getUTCMilliseconds();
    return isNaN(e)
      ? "Invalid Date"
      : LF(e.getUTCFullYear(), 4) +
          "-" +
          Rn(e.getUTCMonth() + 1, 2) +
          "-" +
          Rn(e.getUTCDate(), 2) +
          (i
            ? "T" +
              Rn(t, 2) +
              ":" +
              Rn(n, 2) +
              ":" +
              Rn(r, 2) +
              "." +
              Rn(i, 3) +
              "Z"
            : r
              ? "T" + Rn(t, 2) + ":" + Rn(n, 2) + ":" + Rn(r, 2) + "Z"
              : n || t
                ? "T" + Rn(t, 2) + ":" + Rn(n, 2) + "Z"
                : "");
  }
  function zo(e) {
    var t = new RegExp(
        '["' +
          e +
          `
\r]`,
      ),
      n = e.charCodeAt(0);
    function r(m, p) {
      var b,
        x,
        y = i(m, function (v, k) {
          if (b) return b(v, k - 1);
          ((x = v), (b = p ? qF(v, p) : Ux(v)));
        });
      return ((y.columns = x || []), y);
    }
    function i(m, p) {
      var b = [],
        x = m.length,
        y = 0,
        v = 0,
        k,
        T = x <= 0,
        E = !1;
      (m.charCodeAt(x - 1) === Ka && --x, m.charCodeAt(x - 1) === B2 && --x);
      function M() {
        if (T) return L2;
        if (E) return ((E = !1), $x);
        var I,
          P = y,
          O;
        if (m.charCodeAt(P) === O2) {
          for (
            ;
            (y++ < x && m.charCodeAt(y) !== O2) || m.charCodeAt(++y) === O2;
          );
          return (
            (I = y) >= x
              ? (T = !0)
              : (O = m.charCodeAt(y++)) === Ka
                ? (E = !0)
                : O === B2 && ((E = !0), m.charCodeAt(y) === Ka && ++y),
            m.slice(P + 1, I - 1).replace(/""/g, '"')
          );
        }
        for (; y < x; ) {
          if ((O = m.charCodeAt((I = y++))) === Ka) E = !0;
          else if (O === B2) ((E = !0), m.charCodeAt(y) === Ka && ++y);
          else if (O !== n) continue;
          return m.slice(P, I);
        }
        return ((T = !0), m.slice(P, x));
      }
      for (; (k = M()) !== L2; ) {
        for (var D = []; k !== $x && k !== L2; ) (D.push(k), (k = M()));
        (p && (D = p(D, v++)) == null) || b.push(D);
      }
      return b;
    }
    function o(m, p) {
      return m.map(function (b) {
        return p
          .map(function (x) {
            return h(b[x]);
          })
          .join(e);
      });
    }
    function s(m, p) {
      return (
        p == null && (p = Hx(m)),
        [p.map(h).join(e)].concat(o(m, p)).join(`
`)
      );
    }
    function u(m, p) {
      return (
        p == null && (p = Hx(m)),
        o(m, p).join(`
`)
      );
    }
    function a(m) {
      return m.map(l).join(`
`);
    }
    function l(m) {
      return m.map(h).join(e);
    }
    function h(m) {
      return m == null
        ? ""
        : m instanceof Date
          ? OF(m)
          : t.test((m += ""))
            ? '"' + m.replace(/"/g, '""') + '"'
            : m;
    }
    return {
      parse: r,
      parseRows: i,
      format: s,
      formatBody: u,
      formatRows: a,
      formatRow: l,
      formatValue: h,
    };
  }
  var z0 = zo(","),
    Gf = z0.parse,
    Vx = z0.parseRows,
    jx = z0.format,
    Gx = z0.formatBody,
    Yx = z0.formatRows,
    Xx = z0.formatRow,
    Wx = z0.formatValue;
  var R0 = zo("	"),
    Yf = R0.parse,
    Kx = R0.parseRows,
    Zx = R0.format,
    Jx = R0.formatBody,
    Qx = R0.formatRows,
    ey = R0.formatRow,
    ty = R0.formatValue;
  function z2(e) {
    for (var t in e) {
      var n = e[t].trim(),
        r,
        i;
      if (!n) n = null;
      else if (n === "true") n = !0;
      else if (n === "false") n = !1;
      else if (n === "NaN") n = NaN;
      else if (!isNaN((r = +n))) n = r;
      else if (
        (i = n.match(
          /^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/,
        ))
      )
        (BF && i[4] && !i[7] && (n = n.replace(/-/g, "/").replace(/T/, " ")),
          (n = new Date(n)));
      else continue;
      e[t] = n;
    }
    return e;
  }
  var BF =
    new Date("2019-01-01T00:00").getHours() ||
    new Date("2019-07-01T00:00").getHours();
  function zF(e) {
    if (!e.ok) throw new Error(e.status + " " + e.statusText);
    return e.blob();
  }
  function ny(e, t) {
    return fetch(e, t).then(zF);
  }
  function RF(e) {
    if (!e.ok) throw new Error(e.status + " " + e.statusText);
    return e.arrayBuffer();
  }
  function ry(e, t) {
    return fetch(e, t).then(RF);
  }
  function PF(e) {
    if (!e.ok) throw new Error(e.status + " " + e.statusText);
    return e.text();
  }
  function P0(e, t) {
    return fetch(e, t).then(PF);
  }
  function iy(e) {
    return function (t, n, r) {
      return (
        arguments.length === 2 &&
          typeof n == "function" &&
          ((r = n), (n = void 0)),
        P0(t, n).then(function (i) {
          return e(i, r);
        })
      );
    };
  }
  function R2(e, t, n, r) {
    arguments.length === 3 && typeof n == "function" && ((r = n), (n = void 0));
    var i = zo(e);
    return P0(t, n).then(function (o) {
      return i.parse(o, r);
    });
  }
  var oy = iy(Gf),
    sy = iy(Yf);
  function uy(e, t) {
    return new Promise(function (n, r) {
      var i = new Image();
      for (var o in t) i[o] = t[o];
      ((i.onerror = r),
        (i.onload = function () {
          n(i);
        }),
        (i.src = e));
    });
  }
  function $F(e) {
    if (!e.ok) throw new Error(e.status + " " + e.statusText);
    if (!(e.status === 204 || e.status === 205)) return e.json();
  }
  function ay(e, t) {
    return fetch(e, t).then($F);
  }
  function P2(e) {
    return (t, n) =>
      P0(t, n).then((r) => new DOMParser().parseFromString(r, e));
  }
  var ly = P2("application/xml"),
    cy = P2("text/html"),
    fy = P2("image/svg+xml");
  function hy(e, t) {
    var n,
      r = 1;
    (e == null && (e = 0), t == null && (t = 0));
    function i() {
      var o,
        s = n.length,
        u,
        a = 0,
        l = 0;
      for (o = 0; o < s; ++o) ((u = n[o]), (a += u.x), (l += u.y));
      for (a = (a / s - e) * r, l = (l / s - t) * r, o = 0; o < s; ++o)
        ((u = n[o]), (u.x -= a), (u.y -= l));
    }
    return (
      (i.initialize = function (o) {
        n = o;
      }),
      (i.x = function (o) {
        return arguments.length ? ((e = +o), i) : e;
      }),
      (i.y = function (o) {
        return arguments.length ? ((t = +o), i) : t;
      }),
      (i.strength = function (o) {
        return arguments.length ? ((r = +o), i) : r;
      }),
      i
    );
  }
  function dy(e) {
    let t = +this._x.call(null, e),
      n = +this._y.call(null, e);
    return py(this.cover(t, n), t, n, e);
  }
  function py(e, t, n, r) {
    if (isNaN(t) || isNaN(n)) return e;
    var i,
      o = e._root,
      s = { data: r },
      u = e._x0,
      a = e._y0,
      l = e._x1,
      h = e._y1,
      m,
      p,
      b,
      x,
      y,
      v,
      k,
      T;
    if (!o) return ((e._root = s), e);
    for (; o.length; )
      if (
        ((y = t >= (m = (u + l) / 2)) ? (u = m) : (l = m),
        (v = n >= (p = (a + h) / 2)) ? (a = p) : (h = p),
        (i = o),
        !(o = o[(k = (v << 1) | y)]))
      )
        return ((i[k] = s), e);
    if (
      ((b = +e._x.call(null, o.data)),
      (x = +e._y.call(null, o.data)),
      t === b && n === x)
    )
      return ((s.next = o), i ? (i[k] = s) : (e._root = s), e);
    do
      ((i = i ? (i[k] = new Array(4)) : (e._root = new Array(4))),
        (y = t >= (m = (u + l) / 2)) ? (u = m) : (l = m),
        (v = n >= (p = (a + h) / 2)) ? (a = p) : (h = p));
    while ((k = (v << 1) | y) === (T = ((x >= p) << 1) | (b >= m)));
    return ((i[T] = o), (i[k] = s), e);
  }
  function my(e) {
    var t,
      n,
      r = e.length,
      i,
      o,
      s = new Array(r),
      u = new Array(r),
      a = 1 / 0,
      l = 1 / 0,
      h = -1 / 0,
      m = -1 / 0;
    for (n = 0; n < r; ++n)
      isNaN((i = +this._x.call(null, (t = e[n])))) ||
        isNaN((o = +this._y.call(null, t))) ||
        ((s[n] = i),
        (u[n] = o),
        i < a && (a = i),
        i > h && (h = i),
        o < l && (l = o),
        o > m && (m = o));
    if (a > h || l > m) return this;
    for (this.cover(a, l).cover(h, m), n = 0; n < r; ++n)
      py(this, s[n], u[n], e[n]);
    return this;
  }
  function gy(e, t) {
    if (isNaN((e = +e)) || isNaN((t = +t))) return this;
    var n = this._x0,
      r = this._y0,
      i = this._x1,
      o = this._y1;
    if (isNaN(n))
      ((i = (n = Math.floor(e)) + 1), (o = (r = Math.floor(t)) + 1));
    else {
      for (
        var s = i - n || 1, u = this._root, a, l;
        n > e || e >= i || r > t || t >= o;
      )
        switch (
          ((l = ((t < r) << 1) | (e < n)),
          (a = new Array(4)),
          (a[l] = u),
          (u = a),
          (s *= 2),
          l)
        ) {
          case 0:
            ((i = n + s), (o = r + s));
            break;
          case 1:
            ((n = i - s), (o = r + s));
            break;
          case 2:
            ((i = n + s), (r = o - s));
            break;
          case 3:
            ((n = i - s), (r = o - s));
            break;
        }
      this._root && this._root.length && (this._root = u);
    }
    return (
      (this._x0 = n),
      (this._y0 = r),
      (this._x1 = i),
      (this._y1 = o),
      this
    );
  }
  function by() {
    var e = [];
    return (
      this.visit(function (t) {
        if (!t.length)
          do e.push(t.data);
          while ((t = t.next));
      }),
      e
    );
  }
  function xy(e) {
    return arguments.length
      ? this.cover(+e[0][0], +e[0][1]).cover(+e[1][0], +e[1][1])
      : isNaN(this._x0)
        ? void 0
        : [
            [this._x0, this._y0],
            [this._x1, this._y1],
          ];
  }
  function nn(e, t, n, r, i) {
    ((this.node = e),
      (this.x0 = t),
      (this.y0 = n),
      (this.x1 = r),
      (this.y1 = i));
  }
  function yy(e, t, n) {
    var r,
      i = this._x0,
      o = this._y0,
      s,
      u,
      a,
      l,
      h = this._x1,
      m = this._y1,
      p = [],
      b = this._root,
      x,
      y;
    for (
      b && p.push(new nn(b, i, o, h, m)),
        n == null
          ? (n = 1 / 0)
          : ((i = e - n), (o = t - n), (h = e + n), (m = t + n), (n *= n));
      (x = p.pop());
    )
      if (
        !(
          !(b = x.node) ||
          (s = x.x0) > h ||
          (u = x.y0) > m ||
          (a = x.x1) < i ||
          (l = x.y1) < o
        )
      )
        if (b.length) {
          var v = (s + a) / 2,
            k = (u + l) / 2;
          (p.push(
            new nn(b[3], v, k, a, l),
            new nn(b[2], s, k, v, l),
            new nn(b[1], v, u, a, k),
            new nn(b[0], s, u, v, k),
          ),
            (y = ((t >= k) << 1) | (e >= v)) &&
              ((x = p[p.length - 1]),
              (p[p.length - 1] = p[p.length - 1 - y]),
              (p[p.length - 1 - y] = x)));
        } else {
          var T = e - +this._x.call(null, b.data),
            E = t - +this._y.call(null, b.data),
            M = T * T + E * E;
          if (M < n) {
            var D = Math.sqrt((n = M));
            ((i = e - D), (o = t - D), (h = e + D), (m = t + D), (r = b.data));
          }
        }
    return r;
  }
  function wy(e) {
    if (
      isNaN((h = +this._x.call(null, e))) ||
      isNaN((m = +this._y.call(null, e)))
    )
      return this;
    var t,
      n = this._root,
      r,
      i,
      o,
      s = this._x0,
      u = this._y0,
      a = this._x1,
      l = this._y1,
      h,
      m,
      p,
      b,
      x,
      y,
      v,
      k;
    if (!n) return this;
    if (n.length)
      for (;;) {
        if (
          ((x = h >= (p = (s + a) / 2)) ? (s = p) : (a = p),
          (y = m >= (b = (u + l) / 2)) ? (u = b) : (l = b),
          (t = n),
          !(n = n[(v = (y << 1) | x)]))
        )
          return this;
        if (!n.length) break;
        (t[(v + 1) & 3] || t[(v + 2) & 3] || t[(v + 3) & 3]) &&
          ((r = t), (k = v));
      }
    for (; n.data !== e; ) if (((i = n), !(n = n.next))) return this;
    return (
      (o = n.next) && delete n.next,
      i
        ? (o ? (i.next = o) : delete i.next, this)
        : t
          ? (o ? (t[v] = o) : delete t[v],
            (n = t[0] || t[1] || t[2] || t[3]) &&
              n === (t[3] || t[2] || t[1] || t[0]) &&
              !n.length &&
              (r ? (r[k] = n) : (this._root = n)),
            this)
          : ((this._root = o), this)
    );
  }
  function vy(e) {
    for (var t = 0, n = e.length; t < n; ++t) this.remove(e[t]);
    return this;
  }
  function _y() {
    return this._root;
  }
  function ky() {
    var e = 0;
    return (
      this.visit(function (t) {
        if (!t.length)
          do ++e;
          while ((t = t.next));
      }),
      e
    );
  }
  function Sy(e) {
    var t = [],
      n,
      r = this._root,
      i,
      o,
      s,
      u,
      a;
    for (
      r && t.push(new nn(r, this._x0, this._y0, this._x1, this._y1));
      (n = t.pop());
    )
      if (
        !e((r = n.node), (o = n.x0), (s = n.y0), (u = n.x1), (a = n.y1)) &&
        r.length
      ) {
        var l = (o + u) / 2,
          h = (s + a) / 2;
        ((i = r[3]) && t.push(new nn(i, l, h, u, a)),
          (i = r[2]) && t.push(new nn(i, o, h, l, a)),
          (i = r[1]) && t.push(new nn(i, l, s, u, h)),
          (i = r[0]) && t.push(new nn(i, o, s, l, h)));
      }
    return this;
  }
  function Ay(e) {
    var t = [],
      n = [],
      r;
    for (
      this._root &&
      t.push(new nn(this._root, this._x0, this._y0, this._x1, this._y1));
      (r = t.pop());
    ) {
      var i = r.node;
      if (i.length) {
        var o,
          s = r.x0,
          u = r.y0,
          a = r.x1,
          l = r.y1,
          h = (s + a) / 2,
          m = (u + l) / 2;
        ((o = i[0]) && t.push(new nn(o, s, u, h, m)),
          (o = i[1]) && t.push(new nn(o, h, u, a, m)),
          (o = i[2]) && t.push(new nn(o, s, m, h, l)),
          (o = i[3]) && t.push(new nn(o, h, m, a, l)));
      }
      n.push(r);
    }
    for (; (r = n.pop()); ) e(r.node, r.x0, r.y0, r.x1, r.y1);
    return this;
  }
  function My(e) {
    return e[0];
  }
  function Ty(e) {
    return arguments.length ? ((this._x = e), this) : this._x;
  }
  function Ey(e) {
    return e[1];
  }
  function Cy(e) {
    return arguments.length ? ((this._y = e), this) : this._y;
  }
  function Ro(e, t, n) {
    var r = new $2(t ?? My, n ?? Ey, NaN, NaN, NaN, NaN);
    return e == null ? r : r.addAll(e);
  }
  function $2(e, t, n, r, i, o) {
    ((this._x = e),
      (this._y = t),
      (this._x0 = n),
      (this._y0 = r),
      (this._x1 = i),
      (this._y1 = o),
      (this._root = void 0));
  }
  function Ny(e) {
    for (var t = { data: e.data }, n = t; (e = e.next); )
      n = n.next = { data: e.data };
    return t;
  }
  var Tn = (Ro.prototype = $2.prototype);
  Tn.copy = function () {
    var e = new $2(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
      t = this._root,
      n,
      r;
    if (!t) return e;
    if (!t.length) return ((e._root = Ny(t)), e);
    for (n = [{ source: t, target: (e._root = new Array(4)) }]; (t = n.pop()); )
      for (var i = 0; i < 4; ++i)
        (r = t.source[i]) &&
          (r.length
            ? n.push({ source: r, target: (t.target[i] = new Array(4)) })
            : (t.target[i] = Ny(r)));
    return e;
  };
  Tn.add = dy;
  Tn.addAll = my;
  Tn.cover = gy;
  Tn.data = by;
  Tn.extent = xy;
  Tn.find = yy;
  Tn.remove = wy;
  Tn.removeAll = vy;
  Tn.root = _y;
  Tn.size = ky;
  Tn.visit = Sy;
  Tn.visitAfter = Ay;
  Tn.x = Ty;
  Tn.y = Cy;
  function _t(e) {
    return function () {
      return e;
    };
  }
  function Cr(e) {
    return (e() - 0.5) * 1e-6;
  }
  function HF(e) {
    return e.x + e.vx;
  }
  function UF(e) {
    return e.y + e.vy;
  }
  function Dy(e) {
    var t,
      n,
      r,
      i = 1,
      o = 1;
    typeof e != "function" && (e = _t(e == null ? 1 : +e));
    function s() {
      for (var l, h = t.length, m, p, b, x, y, v, k = 0; k < o; ++k)
        for (m = Ro(t, HF, UF).visitAfter(u), l = 0; l < h; ++l)
          ((p = t[l]),
            (y = n[p.index]),
            (v = y * y),
            (b = p.x + p.vx),
            (x = p.y + p.vy),
            m.visit(T));
      function T(E, M, D, I, P) {
        var O = E.data,
          H = E.r,
          U = y + H;
        if (O) {
          if (O.index > p.index) {
            var j = b - O.x - O.vx,
              Z = x - O.y - O.vy,
              Q = j * j + Z * Z;
            Q < U * U &&
              (j === 0 && ((j = Cr(r)), (Q += j * j)),
              Z === 0 && ((Z = Cr(r)), (Q += Z * Z)),
              (Q = ((U - (Q = Math.sqrt(Q))) / Q) * i),
              (p.vx += (j *= Q) * (U = (H *= H) / (v + H))),
              (p.vy += (Z *= Q) * U),
              (O.vx -= j * (U = 1 - U)),
              (O.vy -= Z * U));
          }
          return;
        }
        return M > b + U || I < b - U || D > x + U || P < x - U;
      }
    }
    function u(l) {
      if (l.data) return (l.r = n[l.data.index]);
      for (var h = (l.r = 0); h < 4; ++h)
        l[h] && l[h].r > l.r && (l.r = l[h].r);
    }
    function a() {
      if (t) {
        var l,
          h = t.length,
          m;
        for (n = new Array(h), l = 0; l < h; ++l)
          ((m = t[l]), (n[m.index] = +e(m, l, t)));
      }
    }
    return (
      (s.initialize = function (l, h) {
        ((t = l), (r = h), a());
      }),
      (s.iterations = function (l) {
        return arguments.length ? ((o = +l), s) : o;
      }),
      (s.strength = function (l) {
        return arguments.length ? ((i = +l), s) : i;
      }),
      (s.radius = function (l) {
        return arguments.length
          ? ((e = typeof l == "function" ? l : _t(+l)), a(), s)
          : e;
      }),
      s
    );
  }
  function VF(e) {
    return e.index;
  }
  function Iy(e, t) {
    var n = e.get(t);
    if (!n) throw new Error("node not found: " + t);
    return n;
  }
  function Fy(e) {
    var t = VF,
      n = m,
      r,
      i = _t(30),
      o,
      s,
      u,
      a,
      l,
      h = 1;
    e == null && (e = []);
    function m(v) {
      return 1 / Math.min(u[v.source.index], u[v.target.index]);
    }
    function p(v) {
      for (var k = 0, T = e.length; k < h; ++k)
        for (var E = 0, M, D, I, P, O, H, U; E < T; ++E)
          ((M = e[E]),
            (D = M.source),
            (I = M.target),
            (P = I.x + I.vx - D.x - D.vx || Cr(l)),
            (O = I.y + I.vy - D.y - D.vy || Cr(l)),
            (H = Math.sqrt(P * P + O * O)),
            (H = ((H - o[E]) / H) * v * r[E]),
            (P *= H),
            (O *= H),
            (I.vx -= P * (U = a[E])),
            (I.vy -= O * U),
            (D.vx += P * (U = 1 - U)),
            (D.vy += O * U));
    }
    function b() {
      if (s) {
        var v,
          k = s.length,
          T = e.length,
          E = new Map(s.map((D, I) => [t(D, I, s), D])),
          M;
        for (v = 0, u = new Array(k); v < T; ++v)
          ((M = e[v]),
            (M.index = v),
            typeof M.source != "object" && (M.source = Iy(E, M.source)),
            typeof M.target != "object" && (M.target = Iy(E, M.target)),
            (u[M.source.index] = (u[M.source.index] || 0) + 1),
            (u[M.target.index] = (u[M.target.index] || 0) + 1));
        for (v = 0, a = new Array(T); v < T; ++v)
          ((M = e[v]),
            (a[v] =
              u[M.source.index] / (u[M.source.index] + u[M.target.index])));
        ((r = new Array(T)), x(), (o = new Array(T)), y());
      }
    }
    function x() {
      if (s) for (var v = 0, k = e.length; v < k; ++v) r[v] = +n(e[v], v, e);
    }
    function y() {
      if (s) for (var v = 0, k = e.length; v < k; ++v) o[v] = +i(e[v], v, e);
    }
    return (
      (p.initialize = function (v, k) {
        ((s = v), (l = k), b());
      }),
      (p.links = function (v) {
        return arguments.length ? ((e = v), b(), p) : e;
      }),
      (p.id = function (v) {
        return arguments.length ? ((t = v), p) : t;
      }),
      (p.iterations = function (v) {
        return arguments.length ? ((h = +v), p) : h;
      }),
      (p.strength = function (v) {
        return arguments.length
          ? ((n = typeof v == "function" ? v : _t(+v)), x(), p)
          : n;
      }),
      (p.distance = function (v) {
        return arguments.length
          ? ((i = typeof v == "function" ? v : _t(+v)), y(), p)
          : i;
      }),
      p
    );
  }
  function qy() {
    let e = 1;
    return () => (e = (1664525 * e + 1013904223) % 4294967296) / 4294967296;
  }
  function Ly(e) {
    return e.x;
  }
  function Oy(e) {
    return e.y;
  }
  var jF = 10,
    GF = Math.PI * (3 - Math.sqrt(5));
  function By(e) {
    var t,
      n = 1,
      r = 0.001,
      i = 1 - Math.pow(r, 1 / 300),
      o = 0,
      s = 0.6,
      u = new Map(),
      a = D0(m),
      l = ur("tick", "end"),
      h = qy();
    e == null && (e = []);
    function m() {
      (p(), l.call("tick", t), n < r && (a.stop(), l.call("end", t)));
    }
    function p(y) {
      var v,
        k = e.length,
        T;
      y === void 0 && (y = 1);
      for (var E = 0; E < y; ++E)
        for (
          n += (o - n) * i,
            u.forEach(function (M) {
              M(n);
            }),
            v = 0;
          v < k;
          ++v
        )
          ((T = e[v]),
            T.fx == null ? (T.x += T.vx *= s) : ((T.x = T.fx), (T.vx = 0)),
            T.fy == null ? (T.y += T.vy *= s) : ((T.y = T.fy), (T.vy = 0)));
      return t;
    }
    function b() {
      for (var y = 0, v = e.length, k; y < v; ++y) {
        if (
          ((k = e[y]),
          (k.index = y),
          k.fx != null && (k.x = k.fx),
          k.fy != null && (k.y = k.fy),
          isNaN(k.x) || isNaN(k.y))
        ) {
          var T = jF * Math.sqrt(0.5 + y),
            E = y * GF;
          ((k.x = T * Math.cos(E)), (k.y = T * Math.sin(E)));
        }
        (isNaN(k.vx) || isNaN(k.vy)) && (k.vx = k.vy = 0);
      }
    }
    function x(y) {
      return (y.initialize && y.initialize(e, h), y);
    }
    return (
      b(),
      (t = {
        tick: p,
        restart: function () {
          return (a.restart(m), t);
        },
        stop: function () {
          return (a.stop(), t);
        },
        nodes: function (y) {
          return arguments.length ? ((e = y), b(), u.forEach(x), t) : e;
        },
        alpha: function (y) {
          return arguments.length ? ((n = +y), t) : n;
        },
        alphaMin: function (y) {
          return arguments.length ? ((r = +y), t) : r;
        },
        alphaDecay: function (y) {
          return arguments.length ? ((i = +y), t) : +i;
        },
        alphaTarget: function (y) {
          return arguments.length ? ((o = +y), t) : o;
        },
        velocityDecay: function (y) {
          return arguments.length ? ((s = 1 - y), t) : 1 - s;
        },
        randomSource: function (y) {
          return arguments.length ? ((h = y), u.forEach(x), t) : h;
        },
        force: function (y, v) {
          return arguments.length > 1
            ? (v == null ? u.delete(y) : u.set(y, x(v)), t)
            : u.get(y);
        },
        find: function (y, v, k) {
          var T = 0,
            E = e.length,
            M,
            D,
            I,
            P,
            O;
          for (k == null ? (k = 1 / 0) : (k *= k), T = 0; T < E; ++T)
            ((P = e[T]),
              (M = y - P.x),
              (D = v - P.y),
              (I = M * M + D * D),
              I < k && ((O = P), (k = I)));
          return O;
        },
        on: function (y, v) {
          return arguments.length > 1 ? (l.on(y, v), t) : l.on(y);
        },
      })
    );
  }
  function zy() {
    var e,
      t,
      n,
      r,
      i = _t(-30),
      o,
      s = 1,
      u = 1 / 0,
      a = 0.81;
    function l(b) {
      var x,
        y = e.length,
        v = Ro(e, Ly, Oy).visitAfter(m);
      for (r = b, x = 0; x < y; ++x) ((t = e[x]), v.visit(p));
    }
    function h() {
      if (e) {
        var b,
          x = e.length,
          y;
        for (o = new Array(x), b = 0; b < x; ++b)
          ((y = e[b]), (o[y.index] = +i(y, b, e)));
      }
    }
    function m(b) {
      var x = 0,
        y,
        v,
        k = 0,
        T,
        E,
        M;
      if (b.length) {
        for (T = E = M = 0; M < 4; ++M)
          (y = b[M]) &&
            (v = Math.abs(y.value)) &&
            ((x += y.value), (k += v), (T += v * y.x), (E += v * y.y));
        ((b.x = T / k), (b.y = E / k));
      } else {
        ((y = b), (y.x = y.data.x), (y.y = y.data.y));
        do x += o[y.data.index];
        while ((y = y.next));
      }
      b.value = x;
    }
    function p(b, x, y, v) {
      if (!b.value) return !0;
      var k = b.x - t.x,
        T = b.y - t.y,
        E = v - x,
        M = k * k + T * T;
      if ((E * E) / a < M)
        return (
          M < u &&
            (k === 0 && ((k = Cr(n)), (M += k * k)),
            T === 0 && ((T = Cr(n)), (M += T * T)),
            M < s && (M = Math.sqrt(s * M)),
            (t.vx += (k * b.value * r) / M),
            (t.vy += (T * b.value * r) / M)),
          !0
        );
      if (b.length || M >= u) return;
      (b.data !== t || b.next) &&
        (k === 0 && ((k = Cr(n)), (M += k * k)),
        T === 0 && ((T = Cr(n)), (M += T * T)),
        M < s && (M = Math.sqrt(s * M)));
      do
        b.data !== t &&
          ((E = (o[b.data.index] * r) / M), (t.vx += k * E), (t.vy += T * E));
      while ((b = b.next));
    }
    return (
      (l.initialize = function (b, x) {
        ((e = b), (n = x), h());
      }),
      (l.strength = function (b) {
        return arguments.length
          ? ((i = typeof b == "function" ? b : _t(+b)), h(), l)
          : i;
      }),
      (l.distanceMin = function (b) {
        return arguments.length ? ((s = b * b), l) : Math.sqrt(s);
      }),
      (l.distanceMax = function (b) {
        return arguments.length ? ((u = b * b), l) : Math.sqrt(u);
      }),
      (l.theta = function (b) {
        return arguments.length ? ((a = b * b), l) : Math.sqrt(a);
      }),
      l
    );
  }
  function Ry(e, t, n) {
    var r,
      i = _t(0.1),
      o,
      s;
    (typeof e != "function" && (e = _t(+e)),
      t == null && (t = 0),
      n == null && (n = 0));
    function u(l) {
      for (var h = 0, m = r.length; h < m; ++h) {
        var p = r[h],
          b = p.x - t || 1e-6,
          x = p.y - n || 1e-6,
          y = Math.sqrt(b * b + x * x),
          v = ((s[h] - y) * o[h] * l) / y;
        ((p.vx += b * v), (p.vy += x * v));
      }
    }
    function a() {
      if (r) {
        var l,
          h = r.length;
        for (o = new Array(h), s = new Array(h), l = 0; l < h; ++l)
          ((s[l] = +e(r[l], l, r)), (o[l] = isNaN(s[l]) ? 0 : +i(r[l], l, r)));
      }
    }
    return (
      (u.initialize = function (l) {
        ((r = l), a());
      }),
      (u.strength = function (l) {
        return arguments.length
          ? ((i = typeof l == "function" ? l : _t(+l)), a(), u)
          : i;
      }),
      (u.radius = function (l) {
        return arguments.length
          ? ((e = typeof l == "function" ? l : _t(+l)), a(), u)
          : e;
      }),
      (u.x = function (l) {
        return arguments.length ? ((t = +l), u) : t;
      }),
      (u.y = function (l) {
        return arguments.length ? ((n = +l), u) : n;
      }),
      u
    );
  }
  function Py(e) {
    var t = _t(0.1),
      n,
      r,
      i;
    typeof e != "function" && (e = _t(e == null ? 0 : +e));
    function o(u) {
      for (var a = 0, l = n.length, h; a < l; ++a)
        ((h = n[a]), (h.vx += (i[a] - h.x) * r[a] * u));
    }
    function s() {
      if (n) {
        var u,
          a = n.length;
        for (r = new Array(a), i = new Array(a), u = 0; u < a; ++u)
          r[u] = isNaN((i[u] = +e(n[u], u, n))) ? 0 : +t(n[u], u, n);
      }
    }
    return (
      (o.initialize = function (u) {
        ((n = u), s());
      }),
      (o.strength = function (u) {
        return arguments.length
          ? ((t = typeof u == "function" ? u : _t(+u)), s(), o)
          : t;
      }),
      (o.x = function (u) {
        return arguments.length
          ? ((e = typeof u == "function" ? u : _t(+u)), s(), o)
          : e;
      }),
      o
    );
  }
  function $y(e) {
    var t = _t(0.1),
      n,
      r,
      i;
    typeof e != "function" && (e = _t(e == null ? 0 : +e));
    function o(u) {
      for (var a = 0, l = n.length, h; a < l; ++a)
        ((h = n[a]), (h.vy += (i[a] - h.y) * r[a] * u));
    }
    function s() {
      if (n) {
        var u,
          a = n.length;
        for (r = new Array(a), i = new Array(a), u = 0; u < a; ++u)
          r[u] = isNaN((i[u] = +e(n[u], u, n))) ? 0 : +t(n[u], u, n);
      }
    }
    return (
      (o.initialize = function (u) {
        ((n = u), s());
      }),
      (o.strength = function (u) {
        return arguments.length
          ? ((t = typeof u == "function" ? u : _t(+u)), s(), o)
          : t;
      }),
      (o.y = function (u) {
        return arguments.length
          ? ((e = typeof u == "function" ? u : _t(+u)), s(), o)
          : e;
      }),
      o
    );
  }
  function Hy(e) {
    return Math.abs((e = Math.round(e))) >= 1e21
      ? e.toLocaleString("en").replace(/,/g, "")
      : e.toString(10);
  }
  function $0(e, t) {
    if (!isFinite(e) || e === 0) return null;
    var n = (e = t ? e.toExponential(t - 1) : e.toExponential()).indexOf("e"),
      r = e.slice(0, n);
    return [r.length > 1 ? r[0] + r.slice(2) : r, +e.slice(n + 1)];
  }
  function oi(e) {
    return ((e = $0(Math.abs(e))), e ? e[1] : NaN);
  }
  function Uy(e, t) {
    return function (n, r) {
      for (
        var i = n.length, o = [], s = 0, u = e[0], a = 0;
        i > 0 &&
        u > 0 &&
        (a + u + 1 > r && (u = Math.max(1, r - a)),
        o.push(n.substring((i -= u), i + u)),
        !((a += u + 1) > r));
      )
        u = e[(s = (s + 1) % e.length)];
      return o.reverse().join(t);
    };
  }
  function Vy(e) {
    return function (t) {
      return t.replace(/[0-9]/g, function (n) {
        return e[+n];
      });
    };
  }
  var YF =
    /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
  function Nr(e) {
    if (!(t = YF.exec(e))) throw new Error("invalid format: " + e);
    var t;
    return new Za({
      fill: t[1],
      align: t[2],
      sign: t[3],
      symbol: t[4],
      zero: t[5],
      width: t[6],
      comma: t[7],
      precision: t[8] && t[8].slice(1),
      trim: t[9],
      type: t[10],
    });
  }
  Nr.prototype = Za.prototype;
  function Za(e) {
    ((this.fill = e.fill === void 0 ? " " : e.fill + ""),
      (this.align = e.align === void 0 ? ">" : e.align + ""),
      (this.sign = e.sign === void 0 ? "-" : e.sign + ""),
      (this.symbol = e.symbol === void 0 ? "" : e.symbol + ""),
      (this.zero = !!e.zero),
      (this.width = e.width === void 0 ? void 0 : +e.width),
      (this.comma = !!e.comma),
      (this.precision = e.precision === void 0 ? void 0 : +e.precision),
      (this.trim = !!e.trim),
      (this.type = e.type === void 0 ? "" : e.type + ""));
  }
  Za.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 jy(e) {
    e: for (var t = e.length, n = 1, r = -1, i; n < t; ++n)
      switch (e[n]) {
        case ".":
          r = i = n;
          break;
        case "0":
          (r === 0 && (r = n), (i = n));
          break;
        default:
          if (!+e[n]) break e;
          r > 0 && (r = 0);
          break;
      }
    return r > 0 ? e.slice(0, r) + e.slice(i + 1) : e;
  }
  var Ja;
  function Gy(e, t) {
    var n = $0(e, t);
    if (!n) return ((Ja = void 0), e.toPrecision(t));
    var r = n[0],
      i = n[1],
      o = i - (Ja = Math.max(-8, Math.min(8, Math.floor(i / 3))) * 3) + 1,
      s = r.length;
    return o === s
      ? r
      : o > s
        ? r + new Array(o - s + 1).join("0")
        : o > 0
          ? r.slice(0, o) + "." + r.slice(o)
          : "0." +
            new Array(1 - o).join("0") +
            $0(e, Math.max(0, t + o - 1))[0];
  }
  function H2(e, t) {
    var n = $0(e, t);
    if (!n) return e + "";
    var r = n[0],
      i = n[1];
    return i < 0
      ? "0." + new Array(-i).join("0") + r
      : r.length > i + 1
        ? r.slice(0, i + 1) + "." + r.slice(i + 1)
        : r + new Array(i - r.length + 2).join("0");
  }
  var U2 = {
    "%": (e, t) => (e * 100).toFixed(t),
    b: (e) => Math.round(e).toString(2),
    c: (e) => e + "",
    d: Hy,
    e: (e, t) => e.toExponential(t),
    f: (e, t) => e.toFixed(t),
    g: (e, t) => e.toPrecision(t),
    o: (e) => Math.round(e).toString(8),
    p: (e, t) => H2(e * 100, t),
    r: H2,
    s: Gy,
    X: (e) => Math.round(e).toString(16).toUpperCase(),
    x: (e) => Math.round(e).toString(16),
  };
  function V2(e) {
    return e;
  }
  var Yy = Array.prototype.map,
    Xy = [
      "y",
      "z",
      "a",
      "f",
      "p",
      "n",
      "\xB5",
      "m",
      "",
      "k",
      "M",
      "G",
      "T",
      "P",
      "E",
      "Z",
      "Y",
    ];
  function Xf(e) {
    var t =
        e.grouping === void 0 || e.thousands === void 0
          ? V2
          : Uy(Yy.call(e.grouping, Number), e.thousands + ""),
      n = e.currency === void 0 ? "" : e.currency[0] + "",
      r = e.currency === void 0 ? "" : e.currency[1] + "",
      i = e.decimal === void 0 ? "." : e.decimal + "",
      o = e.numerals === void 0 ? V2 : Vy(Yy.call(e.numerals, String)),
      s = e.percent === void 0 ? "%" : e.percent + "",
      u = e.minus === void 0 ? "\u2212" : e.minus + "",
      a = e.nan === void 0 ? "NaN" : e.nan + "";
    function l(m, p) {
      m = Nr(m);
      var b = m.fill,
        x = m.align,
        y = m.sign,
        v = m.symbol,
        k = m.zero,
        T = m.width,
        E = m.comma,
        M = m.precision,
        D = m.trim,
        I = m.type;
      (I === "n"
        ? ((E = !0), (I = "g"))
        : U2[I] || (M === void 0 && (M = 12), (D = !0), (I = "g")),
        (k || (b === "0" && x === "=")) && ((k = !0), (b = "0"), (x = "=")));
      var P =
          (p && p.prefix !== void 0 ? p.prefix : "") +
          (v === "$"
            ? n
            : v === "#" && /[boxX]/.test(I)
              ? "0" + I.toLowerCase()
              : ""),
        O =
          (v === "$" ? r : /[%p]/.test(I) ? s : "") +
          (p && p.suffix !== void 0 ? p.suffix : ""),
        H = U2[I],
        U = /[defgprs%]/.test(I);
      M =
        M === void 0
          ? 6
          : /[gprs]/.test(I)
            ? Math.max(1, Math.min(21, M))
            : Math.max(0, Math.min(20, M));
      function j(Z) {
        var Q = P,
          B = O,
          V,
          G,
          ne;
        if (I === "c") ((B = H(Z) + B), (Z = ""));
        else {
          Z = +Z;
          var te = Z < 0 || 1 / Z < 0;
          if (
            ((Z = isNaN(Z) ? a : H(Math.abs(Z), M)),
            D && (Z = jy(Z)),
            te && +Z == 0 && y !== "+" && (te = !1),
            (Q =
              (te ? (y === "(" ? y : u) : y === "-" || y === "(" ? "" : y) + Q),
            (B =
              (I === "s" && !isNaN(Z) && Ja !== void 0 ? Xy[8 + Ja / 3] : "") +
              B +
              (te && y === "(" ? ")" : "")),
            U)
          ) {
            for (V = -1, G = Z.length; ++V < G; )
              if (((ne = Z.charCodeAt(V)), 48 > ne || ne > 57)) {
                ((B = (ne === 46 ? i + Z.slice(V + 1) : Z.slice(V)) + B),
                  (Z = Z.slice(0, V)));
                break;
              }
          }
        }
        E && !k && (Z = t(Z, 1 / 0));
        var ie = Q.length + Z.length + B.length,
          ce = ie < T ? new Array(T - ie + 1).join(b) : "";
        switch (
          (E &&
            k &&
            ((Z = t(ce + Z, ce.length ? T - B.length : 1 / 0)), (ce = "")),
          x)
        ) {
          case "<":
            Z = Q + Z + B + ce;
            break;
          case "=":
            Z = Q + ce + Z + B;
            break;
          case "^":
            Z = ce.slice(0, (ie = ce.length >> 1)) + Q + Z + B + ce.slice(ie);
            break;
          default:
            Z = ce + Q + Z + B;
            break;
        }
        return o(Z);
      }
      return (
        (j.toString = function () {
          return m + "";
        }),
        j
      );
    }
    function h(m, p) {
      var b = Math.max(-8, Math.min(8, Math.floor(oi(p) / 3))) * 3,
        x = Math.pow(10, -b),
        y = l(((m = Nr(m)), (m.type = "f"), m), { suffix: Xy[8 + b / 3] });
      return function (v) {
        return y(x * v);
      };
    }
    return { format: l, formatPrefix: h };
  }
  var Wf, H0, Qa;
  Kf({ thousands: ",", grouping: [3], currency: ["$", ""] });
  function Kf(e) {
    return ((Wf = Xf(e)), (H0 = Wf.format), (Qa = Wf.formatPrefix), Wf);
  }
  function Zf(e) {
    return Math.max(0, -oi(Math.abs(e)));
  }
  function Jf(e, t) {
    return Math.max(
      0,
      Math.max(-8, Math.min(8, Math.floor(oi(t) / 3))) * 3 - oi(Math.abs(e)),
    );
  }
  function Qf(e, t) {
    return (
      (e = Math.abs(e)),
      (t = Math.abs(t) - e),
      Math.max(0, oi(t) - oi(e)) + 1
    );
  }
  var ye = 1e-6,
    Ji = 1e-12,
    Le = Math.PI,
    ht = Le / 2,
    su = Le / 4,
    $t = Le * 2,
    Xe = 180 / Le,
    _e = Le / 180,
    Ce = Math.abs,
    cr = Math.atan,
    mt = Math.atan2,
    pe = Math.cos,
    el = Math.ceil,
    eh = Math.exp;
  var th = Math.hypot,
    U0 = Math.log,
    nh = Math.pow,
    fe = Math.sin,
    wn =
      Math.sign ||
      function (e) {
        return e > 0 ? 1 : e < 0 ? -1 : 0;
      },
    nt = Math.sqrt,
    uu = Math.tan;
  function rh(e) {
    return e > 1 ? 0 : e < -1 ? Le : Math.acos(e);
  }
  function gt(e) {
    return e > 1 ? ht : e < -1 ? -ht : Math.asin(e);
  }
  function j2(e) {
    return (e = fe(e / 2)) * e;
  }
  function rt() {}
  function ih(e, t) {
    e && Ky.hasOwnProperty(e.type) && Ky[e.type](e, t);
  }
  var Wy = {
      Feature: function (e, t) {
        ih(e.geometry, t);
      },
      FeatureCollection: function (e, t) {
        for (var n = e.features, r = -1, i = n.length; ++r < i; )
          ih(n[r].geometry, t);
      },
    },
    Ky = {
      Sphere: function (e, t) {
        t.sphere();
      },
      Point: function (e, t) {
        ((e = e.coordinates), t.point(e[0], e[1], e[2]));
      },
      MultiPoint: function (e, t) {
        for (var n = e.coordinates, r = -1, i = n.length; ++r < i; )
          ((e = n[r]), t.point(e[0], e[1], e[2]));
      },
      LineString: function (e, t) {
        G2(e.coordinates, t, 0);
      },
      MultiLineString: function (e, t) {
        for (var n = e.coordinates, r = -1, i = n.length; ++r < i; )
          G2(n[r], t, 0);
      },
      Polygon: function (e, t) {
        Zy(e.coordinates, t);
      },
      MultiPolygon: function (e, t) {
        for (var n = e.coordinates, r = -1, i = n.length; ++r < i; )
          Zy(n[r], t);
      },
      GeometryCollection: function (e, t) {
        for (var n = e.geometries, r = -1, i = n.length; ++r < i; ) ih(n[r], t);
      },
    };
  function G2(e, t, n) {
    var r = -1,
      i = e.length - n,
      o;
    for (t.lineStart(); ++r < i; ) ((o = e[r]), t.point(o[0], o[1], o[2]));
    t.lineEnd();
  }
  function Zy(e, t) {
    var n = -1,
      r = e.length;
    for (t.polygonStart(); ++n < r; ) G2(e[n], t, 1);
    t.polygonEnd();
  }
  function rn(e, t) {
    e && Wy.hasOwnProperty(e.type) ? Wy[e.type](e, t) : ih(e, t);
  }
  var tl = new ct(),
    oh = new ct(),
    Jy,
    Qy,
    Y2,
    X2,
    W2,
    Dr = {
      point: rt,
      lineStart: rt,
      lineEnd: rt,
      polygonStart: function () {
        ((tl = new ct()), (Dr.lineStart = XF), (Dr.lineEnd = WF));
      },
      polygonEnd: function () {
        var e = +tl;
        (oh.add(e < 0 ? $t + e : e),
          (this.lineStart = this.lineEnd = this.point = rt));
      },
      sphere: function () {
        oh.add($t);
      },
    };
  function XF() {
    Dr.point = KF;
  }
  function WF() {
    ew(Jy, Qy);
  }
  function KF(e, t) {
    ((Dr.point = ew),
      (Jy = e),
      (Qy = t),
      (e *= _e),
      (t *= _e),
      (Y2 = e),
      (X2 = pe((t = t / 2 + su))),
      (W2 = fe(t)));
  }
  function ew(e, t) {
    ((e *= _e), (t *= _e), (t = t / 2 + su));
    var n = e - Y2,
      r = n >= 0 ? 1 : -1,
      i = r * n,
      o = pe(t),
      s = fe(t),
      u = W2 * s,
      a = X2 * o + u * pe(i),
      l = u * r * fe(i);
    (tl.add(mt(l, a)), (Y2 = e), (X2 = o), (W2 = s));
  }
  function tw(e) {
    return ((oh = new ct()), rn(e, Dr), oh * 2);
  }
  function V0(e) {
    return [mt(e[1], e[0]), gt(e[2])];
  }
  function fr(e) {
    var t = e[0],
      n = e[1],
      r = pe(n);
    return [r * pe(t), r * fe(t), fe(n)];
  }
  function nl(e, t) {
    return e[0] * t[0] + e[1] * t[1] + e[2] * t[2];
  }
  function Qi(e, t) {
    return [
      e[1] * t[2] - e[2] * t[1],
      e[2] * t[0] - e[0] * t[2],
      e[0] * t[1] - e[1] * t[0],
    ];
  }
  function sh(e, t) {
    ((e[0] += t[0]), (e[1] += t[1]), (e[2] += t[2]));
  }
  function rl(e, t) {
    return [e[0] * t, e[1] * t, e[2] * t];
  }
  function j0(e) {
    var t = nt(e[0] * e[0] + e[1] * e[1] + e[2] * e[2]);
    ((e[0] /= t), (e[1] /= t), (e[2] /= t));
  }
  var Lt,
    Pn,
    zt,
    Wn,
    G0,
    ow,
    sw,
    au,
    il,
    Po,
    to,
    eo = {
      point: K2,
      lineStart: nw,
      lineEnd: rw,
      polygonStart: function () {
        ((eo.point = aw),
          (eo.lineStart = ZF),
          (eo.lineEnd = JF),
          (il = new ct()),
          Dr.polygonStart());
      },
      polygonEnd: function () {
        (Dr.polygonEnd(),
          (eo.point = K2),
          (eo.lineStart = nw),
          (eo.lineEnd = rw),
          tl < 0
            ? ((Lt = -(zt = 180)), (Pn = -(Wn = 90)))
            : il > ye
              ? (Wn = 90)
              : il < -ye && (Pn = -90),
          (to[0] = Lt),
          (to[1] = zt));
      },
      sphere: function () {
        ((Lt = -(zt = 180)), (Pn = -(Wn = 90)));
      },
    };
  function K2(e, t) {
    (Po.push((to = [(Lt = e), (zt = e)])),
      t < Pn && (Pn = t),
      t > Wn && (Wn = t));
  }
  function uw(e, t) {
    var n = fr([e * _e, t * _e]);
    if (au) {
      var r = Qi(au, n),
        i = [r[1], -r[0], 0],
        o = Qi(i, r);
      (j0(o), (o = V0(o)));
      var s = e - G0,
        u = s > 0 ? 1 : -1,
        a = o[0] * Xe * u,
        l,
        h = Ce(s) > 180;
      (h ^ (u * G0 < a && a < u * e)
        ? ((l = o[1] * Xe), l > Wn && (Wn = l))
        : ((a = ((a + 360) % 360) - 180),
          h ^ (u * G0 < a && a < u * e)
            ? ((l = -o[1] * Xe), l < Pn && (Pn = l))
            : (t < Pn && (Pn = t), t > Wn && (Wn = t))),
        h
          ? e < G0
            ? Xn(Lt, e) > Xn(Lt, zt) && (zt = e)
            : Xn(e, zt) > Xn(Lt, zt) && (Lt = e)
          : zt >= Lt
            ? (e < Lt && (Lt = e), e > zt && (zt = e))
            : e > G0
              ? Xn(Lt, e) > Xn(Lt, zt) && (zt = e)
              : Xn(e, zt) > Xn(Lt, zt) && (Lt = e));
    } else Po.push((to = [(Lt = e), (zt = e)]));
    (t < Pn && (Pn = t), t > Wn && (Wn = t), (au = n), (G0 = e));
  }
  function nw() {
    eo.point = uw;
  }
  function rw() {
    ((to[0] = Lt), (to[1] = zt), (eo.point = K2), (au = null));
  }
  function aw(e, t) {
    if (au) {
      var n = e - G0;
      il.add(Ce(n) > 180 ? n + (n > 0 ? 360 : -360) : n);
    } else ((ow = e), (sw = t));
    (Dr.point(e, t), uw(e, t));
  }
  function ZF() {
    Dr.lineStart();
  }
  function JF() {
    (aw(ow, sw),
      Dr.lineEnd(),
      Ce(il) > ye && (Lt = -(zt = 180)),
      (to[0] = Lt),
      (to[1] = zt),
      (au = null));
  }
  function Xn(e, t) {
    return (t -= e) < 0 ? t + 360 : t;
  }
  function QF(e, t) {
    return e[0] - t[0];
  }
  function iw(e, t) {
    return e[0] <= e[1] ? e[0] <= t && t <= e[1] : t < e[0] || e[1] < t;
  }
  function lw(e) {
    var t, n, r, i, o, s, u;
    if (
      ((Wn = zt = -(Lt = Pn = 1 / 0)), (Po = []), rn(e, eo), (n = Po.length))
    ) {
      for (Po.sort(QF), t = 1, r = Po[0], o = [r]; t < n; ++t)
        ((i = Po[t]),
          iw(r, i[0]) || iw(r, i[1])
            ? (Xn(r[0], i[1]) > Xn(r[0], r[1]) && (r[1] = i[1]),
              Xn(i[0], r[1]) > Xn(r[0], r[1]) && (r[0] = i[0]))
            : o.push((r = i)));
      for (s = -1 / 0, n = o.length - 1, t = 0, r = o[n]; t <= n; r = i, ++t)
        ((i = o[t]),
          (u = Xn(r[1], i[0])) > s && ((s = u), (Lt = i[0]), (zt = r[1])));
    }
    return (
      (Po = to = null),
      Lt === 1 / 0 || Pn === 1 / 0
        ? [
            [NaN, NaN],
            [NaN, NaN],
          ]
        : [
            [Lt, Pn],
            [zt, Wn],
          ]
    );
  }
  var ol,
    uh,
    ah,
    lh,
    ch,
    fh,
    hh,
    dh,
    Z2,
    J2,
    Q2,
    hw,
    dw,
    En,
    Cn,
    Nn,
    Ir = {
      sphere: rt,
      point: e4,
      lineStart: cw,
      lineEnd: fw,
      polygonStart: function () {
        ((Ir.lineStart = nq), (Ir.lineEnd = rq));
      },
      polygonEnd: function () {
        ((Ir.lineStart = cw), (Ir.lineEnd = fw));
      },
    };
  function e4(e, t) {
    ((e *= _e), (t *= _e));
    var n = pe(t);
    sl(n * pe(e), n * fe(e), fe(t));
  }
  function sl(e, t, n) {
    (++ol, (ah += (e - ah) / ol), (lh += (t - lh) / ol), (ch += (n - ch) / ol));
  }
  function cw() {
    Ir.point = eq;
  }
  function eq(e, t) {
    ((e *= _e), (t *= _e));
    var n = pe(t);
    ((En = n * pe(e)),
      (Cn = n * fe(e)),
      (Nn = fe(t)),
      (Ir.point = tq),
      sl(En, Cn, Nn));
  }
  function tq(e, t) {
    ((e *= _e), (t *= _e));
    var n = pe(t),
      r = n * pe(e),
      i = n * fe(e),
      o = fe(t),
      s = mt(
        nt(
          (s = Cn * o - Nn * i) * s +
            (s = Nn * r - En * o) * s +
            (s = En * i - Cn * r) * s,
        ),
        En * r + Cn * i + Nn * o,
      );
    ((uh += s),
      (fh += s * (En + (En = r))),
      (hh += s * (Cn + (Cn = i))),
      (dh += s * (Nn + (Nn = o))),
      sl(En, Cn, Nn));
  }
  function fw() {
    Ir.point = e4;
  }
  function nq() {
    Ir.point = iq;
  }
  function rq() {
    (pw(hw, dw), (Ir.point = e4));
  }
  function iq(e, t) {
    ((hw = e), (dw = t), (e *= _e), (t *= _e), (Ir.point = pw));
    var n = pe(t);
    ((En = n * pe(e)), (Cn = n * fe(e)), (Nn = fe(t)), sl(En, Cn, Nn));
  }
  function pw(e, t) {
    ((e *= _e), (t *= _e));
    var n = pe(t),
      r = n * pe(e),
      i = n * fe(e),
      o = fe(t),
      s = Cn * o - Nn * i,
      u = Nn * r - En * o,
      a = En * i - Cn * r,
      l = th(s, u, a),
      h = gt(l),
      m = l && -h / l;
    (Z2.add(m * s),
      J2.add(m * u),
      Q2.add(m * a),
      (uh += h),
      (fh += h * (En + (En = r))),
      (hh += h * (Cn + (Cn = i))),
      (dh += h * (Nn + (Nn = o))),
      sl(En, Cn, Nn));
  }
  function mw(e) {
    ((ol = uh = ah = lh = ch = fh = hh = dh = 0),
      (Z2 = new ct()),
      (J2 = new ct()),
      (Q2 = new ct()),
      rn(e, Ir));
    var t = +Z2,
      n = +J2,
      r = +Q2,
      i = th(t, n, r);
    return i < Ji &&
      ((t = fh),
      (n = hh),
      (r = dh),
      uh < ye && ((t = ah), (n = lh), (r = ch)),
      (i = th(t, n, r)),
      i < Ji)
      ? [NaN, NaN]
      : [mt(n, t) * Xe, gt(r / i) * Xe];
  }
  function Y0(e) {
    return function () {
      return e;
    };
  }
  function ul(e, t) {
    function n(r, i) {
      return ((r = e(r, i)), t(r[0], r[1]));
    }
    return (
      e.invert &&
        t.invert &&
        (n.invert = function (r, i) {
          return ((r = t.invert(r, i)), r && e.invert(r[0], r[1]));
        }),
      n
    );
  }
  function t4(e, t) {
    return (Ce(e) > Le && (e -= Math.round(e / $t) * $t), [e, t]);
  }
  t4.invert = t4;
  function al(e, t, n) {
    return (e %= $t)
      ? t || n
        ? ul(bw(e), xw(t, n))
        : bw(e)
      : t || n
        ? xw(t, n)
        : t4;
  }
  function gw(e) {
    return function (t, n) {
      return ((t += e), Ce(t) > Le && (t -= Math.round(t / $t) * $t), [t, n]);
    };
  }
  function bw(e) {
    var t = gw(e);
    return ((t.invert = gw(-e)), t);
  }
  function xw(e, t) {
    var n = pe(e),
      r = fe(e),
      i = pe(t),
      o = fe(t);
    function s(u, a) {
      var l = pe(a),
        h = pe(u) * l,
        m = fe(u) * l,
        p = fe(a),
        b = p * n + h * r;
      return [mt(m * i - b * o, h * n - p * r), gt(b * i + m * o)];
    }
    return (
      (s.invert = function (u, a) {
        var l = pe(a),
          h = pe(u) * l,
          m = fe(u) * l,
          p = fe(a),
          b = p * i - m * o;
        return [mt(m * i + p * o, h * n + b * r), gt(b * n - h * r)];
      }),
      s
    );
  }
  function ph(e) {
    e = al(e[0] * _e, e[1] * _e, e.length > 2 ? e[2] * _e : 0);
    function t(n) {
      return ((n = e(n[0] * _e, n[1] * _e)), (n[0] *= Xe), (n[1] *= Xe), n);
    }
    return (
      (t.invert = function (n) {
        return (
          (n = e.invert(n[0] * _e, n[1] * _e)),
          (n[0] *= Xe),
          (n[1] *= Xe),
          n
        );
      }),
      t
    );
  }
  function n4(e, t, n, r, i, o) {
    if (n) {
      var s = pe(t),
        u = fe(t),
        a = r * n;
      i == null
        ? ((i = t + r * $t), (o = t - a / 2))
        : ((i = yw(s, i)),
          (o = yw(s, o)),
          (r > 0 ? i < o : i > o) && (i += r * $t));
      for (var l, h = i; r > 0 ? h > o : h < o; h -= a)
        ((l = V0([s, -u * pe(h), -u * fe(h)])), e.point(l[0], l[1]));
    }
  }
  function yw(e, t) {
    ((t = fr(t)), (t[0] -= e), j0(t));
    var n = rh(-t[1]);
    return ((-t[2] < 0 ? -n : n) + $t - ye) % $t;
  }
  function ww() {
    var e = Y0([0, 0]),
      t = Y0(90),
      n = Y0(2),
      r,
      i,
      o = { point: s };
    function s(a, l) {
      (r.push((a = i(a, l))), (a[0] *= Xe), (a[1] *= Xe));
    }
    function u() {
      var a = e.apply(this, arguments),
        l = t.apply(this, arguments) * _e,
        h = n.apply(this, arguments) * _e;
      return (
        (r = []),
        (i = al(-a[0] * _e, -a[1] * _e, 0).invert),
        n4(o, l, h, 1),
        (a = { type: "Polygon", coordinates: [r] }),
        (r = i = null),
        a
      );
    }
    return (
      (u.center = function (a) {
        return arguments.length
          ? ((e = typeof a == "function" ? a : Y0([+a[0], +a[1]])), u)
          : e;
      }),
      (u.radius = function (a) {
        return arguments.length
          ? ((t = typeof a == "function" ? a : Y0(+a)), u)
          : t;
      }),
      (u.precision = function (a) {
        return arguments.length
          ? ((n = typeof a == "function" ? a : Y0(+a)), u)
          : n;
      }),
      u
    );
  }
  function mh() {
    var e = [],
      t;
    return {
      point: function (n, r, i) {
        t.push([n, r, i]);
      },
      lineStart: function () {
        e.push((t = []));
      },
      lineEnd: rt,
      rejoin: function () {
        e.length > 1 && e.push(e.pop().concat(e.shift()));
      },
      result: function () {
        var n = e;
        return ((e = []), (t = null), n);
      },
    };
  }
  function lu(e, t) {
    return Ce(e[0] - t[0]) < ye && Ce(e[1] - t[1]) < ye;
  }
  function gh(e, t, n, r) {
    ((this.x = e),
      (this.z = t),
      (this.o = n),
      (this.e = r),
      (this.v = !1),
      (this.n = this.p = null));
  }
  function bh(e, t, n, r, i) {
    var o = [],
      s = [],
      u,
      a;
    if (
      (e.forEach(function (x) {
        if (!((y = x.length - 1) <= 0)) {
          var y,
            v = x[0],
            k = x[y],
            T;
          if (lu(v, k)) {
            if (!v[2] && !k[2]) {
              for (i.lineStart(), u = 0; u < y; ++u)
                i.point((v = x[u])[0], v[1]);
              i.lineEnd();
              return;
            }
            k[0] += 2 * ye;
          }
          (o.push((T = new gh(v, x, null, !0))),
            s.push((T.o = new gh(v, null, T, !1))),
            o.push((T = new gh(k, x, null, !1))),
            s.push((T.o = new gh(k, null, T, !0))));
        }
      }),
      !!o.length)
    ) {
      for (s.sort(t), vw(o), vw(s), u = 0, a = s.length; u < a; ++u)
        s[u].e = n = !n;
      for (var l = o[0], h, m; ; ) {
        for (var p = l, b = !0; p.v; ) if ((p = p.n) === l) return;
        ((h = p.z), i.lineStart());
        do {
          if (((p.v = p.o.v = !0), p.e)) {
            if (b)
              for (u = 0, a = h.length; u < a; ++u)
                i.point((m = h[u])[0], m[1]);
            else r(p.x, p.n.x, 1, i);
            p = p.n;
          } else {
            if (b)
              for (h = p.p.z, u = h.length - 1; u >= 0; --u)
                i.point((m = h[u])[0], m[1]);
            else r(p.x, p.p.x, -1, i);
            p = p.p;
          }
          ((p = p.o), (h = p.z), (b = !b));
        } while (!p.v);
        i.lineEnd();
      }
    }
  }
  function vw(e) {
    if ((t = e.length)) {
      for (var t, n = 0, r = e[0], i; ++n < t; )
        ((r.n = i = e[n]), (i.p = r), (r = i));
      ((r.n = i = e[0]), (i.p = r));
    }
  }
  function r4(e) {
    return Ce(e[0]) <= Le ? e[0] : wn(e[0]) * (((Ce(e[0]) + Le) % $t) - Le);
  }
  function xh(e, t) {
    var n = r4(t),
      r = t[1],
      i = fe(r),
      o = [fe(n), -pe(n), 0],
      s = 0,
      u = 0,
      a = new ct();
    i === 1 ? (r = ht + ye) : i === -1 && (r = -ht - ye);
    for (var l = 0, h = e.length; l < h; ++l)
      if ((p = (m = e[l]).length))
        for (
          var m,
            p,
            b = m[p - 1],
            x = r4(b),
            y = b[1] / 2 + su,
            v = fe(y),
            k = pe(y),
            T = 0;
          T < p;
          ++T, x = M, v = I, k = P, b = E
        ) {
          var E = m[T],
            M = r4(E),
            D = E[1] / 2 + su,
            I = fe(D),
            P = pe(D),
            O = M - x,
            H = O >= 0 ? 1 : -1,
            U = H * O,
            j = U > Le,
            Z = v * I;
          if (
            (a.add(mt(Z * H * fe(U), k * P + Z * pe(U))),
            (s += j ? O + H * $t : O),
            j ^ (x >= n) ^ (M >= n))
          ) {
            var Q = Qi(fr(b), fr(E));
            j0(Q);
            var B = Qi(o, Q);
            j0(B);
            var V = (j ^ (O >= 0) ? -1 : 1) * gt(B[2]);
            (r > V || (r === V && (Q[0] || Q[1]))) &&
              (u += j ^ (O >= 0) ? 1 : -1);
          }
        }
    return (s < -ye || (s < ye && a < -Ji)) ^ (u & 1);
  }
  function yh(e, t, n, r) {
    return function (i) {
      var o = t(i),
        s = mh(),
        u = t(s),
        a = !1,
        l,
        h,
        m,
        p = {
          point: b,
          lineStart: y,
          lineEnd: v,
          polygonStart: function () {
            ((p.point = k),
              (p.lineStart = T),
              (p.lineEnd = E),
              (h = []),
              (l = []));
          },
          polygonEnd: function () {
            ((p.point = b), (p.lineStart = y), (p.lineEnd = v), (h = v0(h)));
            var M = xh(l, r);
            (h.length
              ? (a || (i.polygonStart(), (a = !0)), bh(h, sq, M, n, i))
              : M &&
                (a || (i.polygonStart(), (a = !0)),
                i.lineStart(),
                n(null, null, 1, i),
                i.lineEnd()),
              a && (i.polygonEnd(), (a = !1)),
              (h = l = null));
          },
          sphere: function () {
            (i.polygonStart(),
              i.lineStart(),
              n(null, null, 1, i),
              i.lineEnd(),
              i.polygonEnd());
          },
        };
      function b(M, D) {
        e(M, D) && i.point(M, D);
      }
      function x(M, D) {
        o.point(M, D);
      }
      function y() {
        ((p.point = x), o.lineStart());
      }
      function v() {
        ((p.point = b), o.lineEnd());
      }
      function k(M, D) {
        (m.push([M, D]), u.point(M, D));
      }
      function T() {
        (u.lineStart(), (m = []));
      }
      function E() {
        (k(m[0][0], m[0][1]), u.lineEnd());
        var M = u.clean(),
          D = s.result(),
          I,
          P = D.length,
          O,
          H,
          U;
        if ((m.pop(), l.push(m), (m = null), !!P)) {
          if (M & 1) {
            if (((H = D[0]), (O = H.length - 1) > 0)) {
              for (
                a || (i.polygonStart(), (a = !0)), i.lineStart(), I = 0;
                I < O;
                ++I
              )
                i.point((U = H[I])[0], U[1]);
              i.lineEnd();
            }
            return;
          }
          (P > 1 && M & 2 && D.push(D.pop().concat(D.shift())),
            h.push(D.filter(oq)));
        }
      }
      return p;
    };
  }
  function oq(e) {
    return e.length > 1;
  }
  function sq(e, t) {
    return (
      ((e = e.x)[0] < 0 ? e[1] - ht - ye : ht - e[1]) -
      ((t = t.x)[0] < 0 ? t[1] - ht - ye : ht - t[1])
    );
  }
  var ll = yh(
    function () {
      return !0;
    },
    uq,
    lq,
    [-Le, -ht],
  );
  function uq(e) {
    var t = NaN,
      n = NaN,
      r = NaN,
      i;
    return {
      lineStart: function () {
        (e.lineStart(), (i = 1));
      },
      point: function (o, s) {
        var u = o > 0 ? Le : -Le,
          a = Ce(o - t);
        (Ce(a - Le) < ye
          ? (e.point(t, (n = (n + s) / 2 > 0 ? ht : -ht)),
            e.point(r, n),
            e.lineEnd(),
            e.lineStart(),
            e.point(u, n),
            e.point(o, n),
            (i = 0))
          : r !== u &&
            a >= Le &&
            (Ce(t - r) < ye && (t -= r * ye),
            Ce(o - u) < ye && (o -= u * ye),
            (n = aq(t, n, o, s)),
            e.point(r, n),
            e.lineEnd(),
            e.lineStart(),
            e.point(u, n),
            (i = 0)),
          e.point((t = o), (n = s)),
          (r = u));
      },
      lineEnd: function () {
        (e.lineEnd(), (t = n = NaN));
      },
      clean: function () {
        return 2 - i;
      },
    };
  }
  function aq(e, t, n, r) {
    var i,
      o,
      s = fe(e - n);
    return Ce(s) > ye
      ? cr(
          (fe(t) * (o = pe(r)) * fe(n) - fe(r) * (i = pe(t)) * fe(e)) /
            (i * o * s),
        )
      : (t + r) / 2;
  }
  function lq(e, t, n, r) {
    var i;
    if (e == null)
      ((i = n * ht),
        r.point(-Le, i),
        r.point(0, i),
        r.point(Le, i),
        r.point(Le, 0),
        r.point(Le, -i),
        r.point(0, -i),
        r.point(-Le, -i),
        r.point(-Le, 0),
        r.point(-Le, i));
    else if (Ce(e[0] - t[0]) > ye) {
      var o = e[0] < t[0] ? Le : -Le;
      ((i = (n * o) / 2), r.point(-o, i), r.point(0, i), r.point(o, i));
    } else r.point(t[0], t[1]);
  }
  function wh(e) {
    var t = pe(e),
      n = 2 * _e,
      r = t > 0,
      i = Ce(t) > ye;
    function o(h, m, p, b) {
      n4(b, e, n, p, h, m);
    }
    function s(h, m) {
      return pe(h) * pe(m) > t;
    }
    function u(h) {
      var m, p, b, x, y;
      return {
        lineStart: function () {
          ((x = b = !1), (y = 1));
        },
        point: function (v, k) {
          var T = [v, k],
            E,
            M = s(v, k),
            D = r ? (M ? 0 : l(v, k)) : M ? l(v + (v < 0 ? Le : -Le), k) : 0;
          if (
            (!m && (x = b = M) && h.lineStart(),
            M !== b &&
              ((E = a(m, T)), (!E || lu(m, E) || lu(T, E)) && (T[2] = 1)),
            M !== b)
          )
            ((y = 0),
              M
                ? (h.lineStart(), (E = a(T, m)), h.point(E[0], E[1]))
                : ((E = a(m, T)), h.point(E[0], E[1], 2), h.lineEnd()),
              (m = E));
          else if (i && m && r ^ M) {
            var I;
            !(D & p) &&
              (I = a(T, m, !0)) &&
              ((y = 0),
              r
                ? (h.lineStart(),
                  h.point(I[0][0], I[0][1]),
                  h.point(I[1][0], I[1][1]),
                  h.lineEnd())
                : (h.point(I[1][0], I[1][1]),
                  h.lineEnd(),
                  h.lineStart(),
                  h.point(I[0][0], I[0][1], 3)));
          }
          (M && (!m || !lu(m, T)) && h.point(T[0], T[1]),
            (m = T),
            (b = M),
            (p = D));
        },
        lineEnd: function () {
          (b && h.lineEnd(), (m = null));
        },
        clean: function () {
          return y | ((x && b) << 1);
        },
      };
    }
    function a(h, m, p) {
      var b = fr(h),
        x = fr(m),
        y = [1, 0, 0],
        v = Qi(b, x),
        k = nl(v, v),
        T = v[0],
        E = k - T * T;
      if (!E) return !p && h;
      var M = (t * k) / E,
        D = (-t * T) / E,
        I = Qi(y, v),
        P = rl(y, M),
        O = rl(v, D);
      sh(P, O);
      var H = I,
        U = nl(P, H),
        j = nl(H, H),
        Z = U * U - j * (nl(P, P) - 1);
      if (!(Z < 0)) {
        var Q = nt(Z),
          B = rl(H, (-U - Q) / j);
        if ((sh(B, P), (B = V0(B)), !p)) return B;
        var V = h[0],
          G = m[0],
          ne = h[1],
          te = m[1],
          ie;
        G < V && ((ie = V), (V = G), (G = ie));
        var ce = G - V,
          xe = Ce(ce - Le) < ye,
          X = xe || ce < ye;
        if (
          (!xe && te < ne && ((ie = ne), (ne = te), (te = ie)),
          X
            ? xe
              ? (ne + te > 0) ^ (B[1] < (Ce(B[0] - V) < ye ? ne : te))
              : ne <= B[1] && B[1] <= te
            : (ce > Le) ^ (V <= B[0] && B[0] <= G))
        ) {
          var he = rl(H, (-U + Q) / j);
          return (sh(he, P), [B, V0(he)]);
        }
      }
    }
    function l(h, m) {
      var p = r ? e : Le - e,
        b = 0;
      return (
        h < -p ? (b |= 1) : h > p && (b |= 2),
        m < -p ? (b |= 4) : m > p && (b |= 8),
        b
      );
    }
    return yh(s, u, o, r ? [0, -e] : [-Le, e - Le]);
  }
  function _w(e, t, n, r, i, o) {
    var s = e[0],
      u = e[1],
      a = t[0],
      l = t[1],
      h = 0,
      m = 1,
      p = a - s,
      b = l - u,
      x;
    if (((x = n - s), !(!p && x > 0))) {
      if (((x /= p), p < 0)) {
        if (x < h) return;
        x < m && (m = x);
      } else if (p > 0) {
        if (x > m) return;
        x > h && (h = x);
      }
      if (((x = i - s), !(!p && x < 0))) {
        if (((x /= p), p < 0)) {
          if (x > m) return;
          x > h && (h = x);
        } else if (p > 0) {
          if (x < h) return;
          x < m && (m = x);
        }
        if (((x = r - u), !(!b && x > 0))) {
          if (((x /= b), b < 0)) {
            if (x < h) return;
            x < m && (m = x);
          } else if (b > 0) {
            if (x > m) return;
            x > h && (h = x);
          }
          if (((x = o - u), !(!b && x < 0))) {
            if (((x /= b), b < 0)) {
              if (x > m) return;
              x > h && (h = x);
            } else if (b > 0) {
              if (x < h) return;
              x < m && (m = x);
            }
            return (
              h > 0 && ((e[0] = s + h * p), (e[1] = u + h * b)),
              m < 1 && ((t[0] = s + m * p), (t[1] = u + m * b)),
              !0
            );
          }
        }
      }
    }
  }
  var cl = 1e9,
    vh = -cl;
  function no(e, t, n, r) {
    function i(l, h) {
      return e <= l && l <= n && t <= h && h <= r;
    }
    function o(l, h, m, p) {
      var b = 0,
        x = 0;
      if (
        l == null ||
        (b = s(l, m)) !== (x = s(h, m)) ||
        (a(l, h) < 0) ^ (m > 0)
      )
        do p.point(b === 0 || b === 3 ? e : n, b > 1 ? r : t);
        while ((b = (b + m + 4) % 4) !== x);
      else p.point(h[0], h[1]);
    }
    function s(l, h) {
      return Ce(l[0] - e) < ye
        ? h > 0
          ? 0
          : 3
        : Ce(l[0] - n) < ye
          ? h > 0
            ? 2
            : 1
          : Ce(l[1] - t) < ye
            ? h > 0
              ? 1
              : 0
            : h > 0
              ? 3
              : 2;
    }
    function u(l, h) {
      return a(l.x, h.x);
    }
    function a(l, h) {
      var m = s(l, 1),
        p = s(h, 1);
      return m !== p
        ? m - p
        : m === 0
          ? h[1] - l[1]
          : m === 1
            ? l[0] - h[0]
            : m === 2
              ? l[1] - h[1]
              : h[0] - l[0];
    }
    return function (l) {
      var h = l,
        m = mh(),
        p,
        b,
        x,
        y,
        v,
        k,
        T,
        E,
        M,
        D,
        I,
        P = {
          point: O,
          lineStart: Z,
          lineEnd: Q,
          polygonStart: U,
          polygonEnd: j,
        };
      function O(V, G) {
        i(V, G) && h.point(V, G);
      }
      function H() {
        for (var V = 0, G = 0, ne = b.length; G < ne; ++G)
          for (
            var te = b[G],
              ie = 1,
              ce = te.length,
              xe = te[0],
              X,
              he,
              Ae = xe[0],
              Be = xe[1];
            ie < ce;
            ++ie
          )
            ((X = Ae),
              (he = Be),
              (xe = te[ie]),
              (Ae = xe[0]),
              (Be = xe[1]),
              he <= r
                ? Be > r && (Ae - X) * (r - he) > (Be - he) * (e - X) && ++V
                : Be <= r && (Ae - X) * (r - he) < (Be - he) * (e - X) && --V);
        return V;
      }
      function U() {
        ((h = m), (p = []), (b = []), (I = !0));
      }
      function j() {
        var V = H(),
          G = I && V,
          ne = (p = v0(p)).length;
        ((G || ne) &&
          (l.polygonStart(),
          G && (l.lineStart(), o(null, null, 1, l), l.lineEnd()),
          ne && bh(p, u, V, o, l),
          l.polygonEnd()),
          (h = l),
          (p = b = x = null));
      }
      function Z() {
        ((P.point = B),
          b && b.push((x = [])),
          (D = !0),
          (M = !1),
          (T = E = NaN));
      }
      function Q() {
        (p && (B(y, v), k && M && m.rejoin(), p.push(m.result())),
          (P.point = O),
          M && h.lineEnd());
      }
      function B(V, G) {
        var ne = i(V, G);
        if ((b && x.push([V, G]), D))
          ((y = V),
            (v = G),
            (k = ne),
            (D = !1),
            ne && (h.lineStart(), h.point(V, G)));
        else if (ne && M) h.point(V, G);
        else {
          var te = [
              (T = Math.max(vh, Math.min(cl, T))),
              (E = Math.max(vh, Math.min(cl, E))),
            ],
            ie = [
              (V = Math.max(vh, Math.min(cl, V))),
              (G = Math.max(vh, Math.min(cl, G))),
            ];
          _w(te, ie, e, t, n, r)
            ? (M || (h.lineStart(), h.point(te[0], te[1])),
              h.point(ie[0], ie[1]),
              ne || h.lineEnd(),
              (I = !1))
            : ne && (h.lineStart(), h.point(V, G), (I = !1));
        }
        ((T = V), (E = G), (M = ne));
      }
      return P;
    };
  }
  function kw() {
    var e = 0,
      t = 0,
      n = 960,
      r = 500,
      i,
      o,
      s;
    return (s = {
      stream: function (u) {
        return i && o === u ? i : (i = no(e, t, n, r)((o = u)));
      },
      extent: function (u) {
        return arguments.length
          ? ((e = +u[0][0]),
            (t = +u[0][1]),
            (n = +u[1][0]),
            (r = +u[1][1]),
            (i = o = null),
            s)
          : [
              [e, t],
              [n, r],
            ];
      },
    });
  }
  var i4,
    o4,
    _h,
    kh,
    cu = {
      sphere: rt,
      point: rt,
      lineStart: cq,
      lineEnd: rt,
      polygonStart: rt,
      polygonEnd: rt,
    };
  function cq() {
    ((cu.point = hq), (cu.lineEnd = fq));
  }
  function fq() {
    cu.point = cu.lineEnd = rt;
  }
  function hq(e, t) {
    ((e *= _e),
      (t *= _e),
      (o4 = e),
      (_h = fe(t)),
      (kh = pe(t)),
      (cu.point = dq));
  }
  function dq(e, t) {
    ((e *= _e), (t *= _e));
    var n = fe(t),
      r = pe(t),
      i = Ce(e - o4),
      o = pe(i),
      s = fe(i),
      u = r * s,
      a = kh * n - _h * r * o,
      l = _h * n + kh * r * o;
    (i4.add(mt(nt(u * u + a * a), l)), (o4 = e), (_h = n), (kh = r));
  }
  function Sh(e) {
    return ((i4 = new ct()), rn(e, cu), +i4);
  }
  var s4 = [null, null],
    pq = { type: "LineString", coordinates: s4 };
  function fu(e, t) {
    return ((s4[0] = e), (s4[1] = t), Sh(pq));
  }
  var Sw = {
      Feature: function (e, t) {
        return Ah(e.geometry, t);
      },
      FeatureCollection: function (e, t) {
        for (var n = e.features, r = -1, i = n.length; ++r < i; )
          if (Ah(n[r].geometry, t)) return !0;
        return !1;
      },
    },
    Aw = {
      Sphere: function () {
        return !0;
      },
      Point: function (e, t) {
        return Mw(e.coordinates, t);
      },
      MultiPoint: function (e, t) {
        for (var n = e.coordinates, r = -1, i = n.length; ++r < i; )
          if (Mw(n[r], t)) return !0;
        return !1;
      },
      LineString: function (e, t) {
        return Tw(e.coordinates, t);
      },
      MultiLineString: function (e, t) {
        for (var n = e.coordinates, r = -1, i = n.length; ++r < i; )
          if (Tw(n[r], t)) return !0;
        return !1;
      },
      Polygon: function (e, t) {
        return Ew(e.coordinates, t);
      },
      MultiPolygon: function (e, t) {
        for (var n = e.coordinates, r = -1, i = n.length; ++r < i; )
          if (Ew(n[r], t)) return !0;
        return !1;
      },
      GeometryCollection: function (e, t) {
        for (var n = e.geometries, r = -1, i = n.length; ++r < i; )
          if (Ah(n[r], t)) return !0;
        return !1;
      },
    };
  function Ah(e, t) {
    return e && Aw.hasOwnProperty(e.type) ? Aw[e.type](e, t) : !1;
  }
  function Mw(e, t) {
    return fu(e, t) === 0;
  }
  function Tw(e, t) {
    for (var n, r, i, o = 0, s = e.length; o < s; o++) {
      if (
        ((r = fu(e[o], t)),
        r === 0 ||
          (o > 0 &&
            ((i = fu(e[o], e[o - 1])),
            i > 0 &&
              n <= i &&
              r <= i &&
              (n + r - i) * (1 - Math.pow((n - r) / i, 2)) < Ji * i)))
      )
        return !0;
      n = r;
    }
    return !1;
  }
  function Ew(e, t) {
    return !!xh(e.map(mq), Cw(t));
  }
  function mq(e) {
    return ((e = e.map(Cw)), e.pop(), e);
  }
  function Cw(e) {
    return [e[0] * _e, e[1] * _e];
  }
  function Nw(e, t) {
    return (e && Sw.hasOwnProperty(e.type) ? Sw[e.type] : Ah)(e, t);
  }
  function Dw(e, t, n) {
    var r = sr(e, t - ye, n).concat(t);
    return function (i) {
      return r.map(function (o) {
        return [i, o];
      });
    };
  }
  function Iw(e, t, n) {
    var r = sr(e, t - ye, n).concat(t);
    return function (i) {
      return r.map(function (o) {
        return [o, i];
      });
    };
  }
  function Mh() {
    var e,
      t,
      n,
      r,
      i,
      o,
      s,
      u,
      a = 10,
      l = a,
      h = 90,
      m = 360,
      p,
      b,
      x,
      y,
      v = 2.5;
    function k() {
      return { type: "MultiLineString", coordinates: T() };
    }
    function T() {
      return sr(el(r / h) * h, n, h)
        .map(x)
        .concat(sr(el(u / m) * m, s, m).map(y))
        .concat(
          sr(el(t / a) * a, e, a)
            .filter(function (E) {
              return Ce(E % h) > ye;
            })
            .map(p),
        )
        .concat(
          sr(el(o / l) * l, i, l)
            .filter(function (E) {
              return Ce(E % m) > ye;
            })
            .map(b),
        );
    }
    return (
      (k.lines = function () {
        return T().map(function (E) {
          return { type: "LineString", coordinates: E };
        });
      }),
      (k.outline = function () {
        return {
          type: "Polygon",
          coordinates: [
            x(r).concat(
              y(s).slice(1),
              x(n).reverse().slice(1),
              y(u).reverse().slice(1),
            ),
          ],
        };
      }),
      (k.extent = function (E) {
        return arguments.length
          ? k.extentMajor(E).extentMinor(E)
          : k.extentMinor();
      }),
      (k.extentMajor = function (E) {
        return arguments.length
          ? ((r = +E[0][0]),
            (n = +E[1][0]),
            (u = +E[0][1]),
            (s = +E[1][1]),
            r > n && ((E = r), (r = n), (n = E)),
            u > s && ((E = u), (u = s), (s = E)),
            k.precision(v))
          : [
              [r, u],
              [n, s],
            ];
      }),
      (k.extentMinor = function (E) {
        return arguments.length
          ? ((t = +E[0][0]),
            (e = +E[1][0]),
            (o = +E[0][1]),
            (i = +E[1][1]),
            t > e && ((E = t), (t = e), (e = E)),
            o > i && ((E = o), (o = i), (i = E)),
            k.precision(v))
          : [
              [t, o],
              [e, i],
            ];
      }),
      (k.step = function (E) {
        return arguments.length ? k.stepMajor(E).stepMinor(E) : k.stepMinor();
      }),
      (k.stepMajor = function (E) {
        return arguments.length ? ((h = +E[0]), (m = +E[1]), k) : [h, m];
      }),
      (k.stepMinor = function (E) {
        return arguments.length ? ((a = +E[0]), (l = +E[1]), k) : [a, l];
      }),
      (k.precision = function (E) {
        return arguments.length
          ? ((v = +E),
            (p = Dw(o, i, 90)),
            (b = Iw(t, e, v)),
            (x = Dw(u, s, 90)),
            (y = Iw(r, n, v)),
            k)
          : v;
      }),
      k
        .extentMajor([
          [-180, -90 + ye],
          [180, 90 - ye],
        ])
        .extentMinor([
          [-180, -80 - ye],
          [180, 80 + ye],
        ])
    );
  }
  function Fw() {
    return Mh()();
  }
  function qw(e, t) {
    var n = e[0] * _e,
      r = e[1] * _e,
      i = t[0] * _e,
      o = t[1] * _e,
      s = pe(r),
      u = fe(r),
      a = pe(o),
      l = fe(o),
      h = s * pe(n),
      m = s * fe(n),
      p = a * pe(i),
      b = a * fe(i),
      x = 2 * gt(nt(j2(o - r) + s * a * j2(i - n))),
      y = fe(x),
      v = x
        ? function (k) {
            var T = fe((k *= x)) / y,
              E = fe(x - k) / y,
              M = E * h + T * p,
              D = E * m + T * b,
              I = E * u + T * l;
            return [mt(D, M) * Xe, mt(I, nt(M * M + D * D)) * Xe];
          }
        : function () {
            return [n * Xe, r * Xe];
          };
    return ((v.distance = x), v);
  }
  var $o = (e) => e;
  var u4 = new ct(),
    a4 = new ct(),
    Lw,
    Ow,
    l4,
    c4,
    Ho = {
      point: rt,
      lineStart: rt,
      lineEnd: rt,
      polygonStart: function () {
        ((Ho.lineStart = gq), (Ho.lineEnd = xq));
      },
      polygonEnd: function () {
        ((Ho.lineStart = Ho.lineEnd = Ho.point = rt),
          u4.add(Ce(a4)),
          (a4 = new ct()));
      },
      result: function () {
        var e = u4 / 2;
        return ((u4 = new ct()), e);
      },
    };
  function gq() {
    Ho.point = bq;
  }
  function bq(e, t) {
    ((Ho.point = Bw), (Lw = l4 = e), (Ow = c4 = t));
  }
  function Bw(e, t) {
    (a4.add(c4 * e - l4 * t), (l4 = e), (c4 = t));
  }
  function xq() {
    Bw(Lw, Ow);
  }
  var f4 = Ho;
  var hu = 1 / 0,
    Th = hu,
    fl = -hu,
    Eh = fl,
    yq = {
      point: wq,
      lineStart: rt,
      lineEnd: rt,
      polygonStart: rt,
      polygonEnd: rt,
      result: function () {
        var e = [
          [hu, Th],
          [fl, Eh],
        ];
        return ((fl = Eh = -(Th = hu = 1 / 0)), e);
      },
    };
  function wq(e, t) {
    (e < hu && (hu = e),
      e > fl && (fl = e),
      t < Th && (Th = t),
      t > Eh && (Eh = t));
  }
  var du = yq;
  var h4 = 0,
    d4 = 0,
    hl = 0,
    Ch = 0,
    Nh = 0,
    pu = 0,
    p4 = 0,
    m4 = 0,
    dl = 0,
    Pw,
    $w,
    si,
    ui,
    Fr = {
      point: X0,
      lineStart: zw,
      lineEnd: Rw,
      polygonStart: function () {
        ((Fr.lineStart = kq), (Fr.lineEnd = Sq));
      },
      polygonEnd: function () {
        ((Fr.point = X0), (Fr.lineStart = zw), (Fr.lineEnd = Rw));
      },
      result: function () {
        var e = dl
          ? [p4 / dl, m4 / dl]
          : pu
            ? [Ch / pu, Nh / pu]
            : hl
              ? [h4 / hl, d4 / hl]
              : [NaN, NaN];
        return ((h4 = d4 = hl = Ch = Nh = pu = p4 = m4 = dl = 0), e);
      },
    };
  function X0(e, t) {
    ((h4 += e), (d4 += t), ++hl);
  }
  function zw() {
    Fr.point = vq;
  }
  function vq(e, t) {
    ((Fr.point = _q), X0((si = e), (ui = t)));
  }
  function _q(e, t) {
    var n = e - si,
      r = t - ui,
      i = nt(n * n + r * r);
    ((Ch += (i * (si + e)) / 2),
      (Nh += (i * (ui + t)) / 2),
      (pu += i),
      X0((si = e), (ui = t)));
  }
  function Rw() {
    Fr.point = X0;
  }
  function kq() {
    Fr.point = Aq;
  }
  function Sq() {
    Hw(Pw, $w);
  }
  function Aq(e, t) {
    ((Fr.point = Hw), X0((Pw = si = e), ($w = ui = t)));
  }
  function Hw(e, t) {
    var n = e - si,
      r = t - ui,
      i = nt(n * n + r * r);
    ((Ch += (i * (si + e)) / 2),
      (Nh += (i * (ui + t)) / 2),
      (pu += i),
      (i = ui * e - si * t),
      (p4 += i * (si + e)),
      (m4 += i * (ui + t)),
      (dl += i * 3),
      X0((si = e), (ui = t)));
  }
  var g4 = Fr;
  function Dh(e) {
    this._context = e;
  }
  Dh.prototype = {
    _radius: 4.5,
    pointRadius: function (e) {
      return ((this._radius = e), this);
    },
    polygonStart: function () {
      this._line = 0;
    },
    polygonEnd: function () {
      this._line = NaN;
    },
    lineStart: function () {
      this._point = 0;
    },
    lineEnd: function () {
      (this._line === 0 && this._context.closePath(), (this._point = NaN));
    },
    point: function (e, t) {
      switch (this._point) {
        case 0: {
          (this._context.moveTo(e, t), (this._point = 1));
          break;
        }
        case 1: {
          this._context.lineTo(e, t);
          break;
        }
        default: {
          (this._context.moveTo(e + this._radius, t),
            this._context.arc(e, t, this._radius, 0, $t));
          break;
        }
      }
    },
    result: rt,
  };
  var x4 = new ct(),
    b4,
    Uw,
    Vw,
    pl,
    ml,
    Ih = {
      point: rt,
      lineStart: function () {
        Ih.point = Mq;
      },
      lineEnd: function () {
        (b4 && jw(Uw, Vw), (Ih.point = rt));
      },
      polygonStart: function () {
        b4 = !0;
      },
      polygonEnd: function () {
        b4 = null;
      },
      result: function () {
        var e = +x4;
        return ((x4 = new ct()), e);
      },
    };
  function Mq(e, t) {
    ((Ih.point = jw), (Uw = pl = e), (Vw = ml = t));
  }
  function jw(e, t) {
    ((pl -= e), (ml -= t), x4.add(nt(pl * pl + ml * ml)), (pl = e), (ml = t));
  }
  var y4 = Ih;
  var Gw,
    Fh,
    Yw,
    Xw,
    mu = class {
      constructor(t) {
        ((this._append = t == null ? Ww : Tq(t)),
          (this._radius = 4.5),
          (this._ = ""));
      }
      pointRadius(t) {
        return ((this._radius = +t), this);
      }
      polygonStart() {
        this._line = 0;
      }
      polygonEnd() {
        this._line = NaN;
      }
      lineStart() {
        this._point = 0;
      }
      lineEnd() {
        (this._line === 0 && (this._ += "Z"), (this._point = NaN));
      }
      point(t, n) {
        switch (this._point) {
          case 0: {
            (this._append`M${t},${n}`, (this._point = 1));
            break;
          }
          case 1: {
            this._append`L${t},${n}`;
            break;
          }
          default: {
            if (
              (this._append`M${t},${n}`,
              this._radius !== Yw || this._append !== Fh)
            ) {
              let r = this._radius,
                i = this._;
              ((this._ = ""),
                this
                  ._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`,
                (Yw = r),
                (Fh = this._append),
                (Xw = this._),
                (this._ = i));
            }
            this._ += Xw;
            break;
          }
        }
      }
      result() {
        let t = this._;
        return ((this._ = ""), t.length ? t : null);
      }
    };
  function Ww(e) {
    let t = 1;
    this._ += e[0];
    for (let n = e.length; t < n; ++t) this._ += arguments[t] + e[t];
  }
  function Tq(e) {
    let t = Math.floor(e);
    if (!(t >= 0)) throw new RangeError(`invalid digits: ${e}`);
    if (t > 15) return Ww;
    if (t !== Gw) {
      let n = 10 ** t;
      ((Gw = t),
        (Fh = function (i) {
          let o = 1;
          this._ += i[0];
          for (let s = i.length; o < s; ++o)
            this._ += Math.round(arguments[o] * n) / n + i[o];
        }));
    }
    return Fh;
  }
  function Kw(e, t) {
    let n = 3,
      r = 4.5,
      i,
      o;
    function s(u) {
      return (
        u &&
          (typeof r == "function" && o.pointRadius(+r.apply(this, arguments)),
          rn(u, i(o))),
        o.result()
      );
    }
    return (
      (s.area = function (u) {
        return (rn(u, i(f4)), f4.result());
      }),
      (s.measure = function (u) {
        return (rn(u, i(y4)), y4.result());
      }),
      (s.bounds = function (u) {
        return (rn(u, i(du)), du.result());
      }),
      (s.centroid = function (u) {
        return (rn(u, i(g4)), g4.result());
      }),
      (s.projection = function (u) {
        return arguments.length
          ? ((i = u == null ? ((e = null), $o) : (e = u).stream), s)
          : e;
      }),
      (s.context = function (u) {
        return arguments.length
          ? ((o = u == null ? ((t = null), new mu(n)) : new Dh((t = u))),
            typeof r != "function" && o.pointRadius(r),
            s)
          : t;
      }),
      (s.pointRadius = function (u) {
        return arguments.length
          ? ((r = typeof u == "function" ? u : (o.pointRadius(+u), +u)), s)
          : r;
      }),
      (s.digits = function (u) {
        if (!arguments.length) return n;
        if (u == null) n = null;
        else {
          let a = Math.floor(u);
          if (!(a >= 0)) throw new RangeError(`invalid digits: ${u}`);
          n = a;
        }
        return (t === null && (o = new mu(n)), s);
      }),
      s.projection(e).digits(n).context(t)
    );
  }
  function Zw(e) {
    return { stream: Uo(e) };
  }
  function Uo(e) {
    return function (t) {
      var n = new w4();
      for (var r in e) n[r] = e[r];
      return ((n.stream = t), n);
    };
  }
  function w4() {}
  w4.prototype = {
    constructor: w4,
    point: function (e, t) {
      this.stream.point(e, t);
    },
    sphere: function () {
      this.stream.sphere();
    },
    lineStart: function () {
      this.stream.lineStart();
    },
    lineEnd: function () {
      this.stream.lineEnd();
    },
    polygonStart: function () {
      this.stream.polygonStart();
    },
    polygonEnd: function () {
      this.stream.polygonEnd();
    },
  };
  function v4(e, t, n) {
    var r = e.clipExtent && e.clipExtent();
    return (
      e.scale(150).translate([0, 0]),
      r != null && e.clipExtent(null),
      rn(n, e.stream(du)),
      t(du.result()),
      r != null && e.clipExtent(r),
      e
    );
  }
  function W0(e, t, n) {
    return v4(
      e,
      function (r) {
        var i = t[1][0] - t[0][0],
          o = t[1][1] - t[0][1],
          s = Math.min(i / (r[1][0] - r[0][0]), o / (r[1][1] - r[0][1])),
          u = +t[0][0] + (i - s * (r[1][0] + r[0][0])) / 2,
          a = +t[0][1] + (o - s * (r[1][1] + r[0][1])) / 2;
        e.scale(150 * s).translate([u, a]);
      },
      n,
    );
  }
  function gu(e, t, n) {
    return W0(e, [[0, 0], t], n);
  }
  function bu(e, t, n) {
    return v4(
      e,
      function (r) {
        var i = +t,
          o = i / (r[1][0] - r[0][0]),
          s = (i - o * (r[1][0] + r[0][0])) / 2,
          u = -o * r[0][1];
        e.scale(150 * o).translate([s, u]);
      },
      n,
    );
  }
  function xu(e, t, n) {
    return v4(
      e,
      function (r) {
        var i = +t,
          o = i / (r[1][1] - r[0][1]),
          s = -o * r[0][0],
          u = (i - o * (r[1][1] + r[0][1])) / 2;
        e.scale(150 * o).translate([s, u]);
      },
      n,
    );
  }
  var Jw = 16,
    Eq = pe(30 * _e);
  function _4(e, t) {
    return +t ? Nq(e, t) : Cq(e);
  }
  function Cq(e) {
    return Uo({
      point: function (t, n) {
        ((t = e(t, n)), this.stream.point(t[0], t[1]));
      },
    });
  }
  function Nq(e, t) {
    function n(r, i, o, s, u, a, l, h, m, p, b, x, y, v) {
      var k = l - r,
        T = h - i,
        E = k * k + T * T;
      if (E > 4 * t && y--) {
        var M = s + p,
          D = u + b,
          I = a + x,
          P = nt(M * M + D * D + I * I),
          O = gt((I /= P)),
          H = Ce(Ce(I) - 1) < ye || Ce(o - m) < ye ? (o + m) / 2 : mt(D, M),
          U = e(H, O),
          j = U[0],
          Z = U[1],
          Q = j - r,
          B = Z - i,
          V = T * Q - k * B;
        ((V * V) / E > t ||
          Ce((k * Q + T * B) / E - 0.5) > 0.3 ||
          s * p + u * b + a * x < Eq) &&
          (n(r, i, o, s, u, a, j, Z, H, (M /= P), (D /= P), I, y, v),
          v.point(j, Z),
          n(j, Z, H, M, D, I, l, h, m, p, b, x, y, v));
      }
    }
    return function (r) {
      var i,
        o,
        s,
        u,
        a,
        l,
        h,
        m,
        p,
        b,
        x,
        y,
        v = {
          point: k,
          lineStart: T,
          lineEnd: M,
          polygonStart: function () {
            (r.polygonStart(), (v.lineStart = D));
          },
          polygonEnd: function () {
            (r.polygonEnd(), (v.lineStart = T));
          },
        };
      function k(O, H) {
        ((O = e(O, H)), r.point(O[0], O[1]));
      }
      function T() {
        ((m = NaN), (v.point = E), r.lineStart());
      }
      function E(O, H) {
        var U = fr([O, H]),
          j = e(O, H);
        (n(
          m,
          p,
          h,
          b,
          x,
          y,
          (m = j[0]),
          (p = j[1]),
          (h = O),
          (b = U[0]),
          (x = U[1]),
          (y = U[2]),
          Jw,
          r,
        ),
          r.point(m, p));
      }
      function M() {
        ((v.point = k), r.lineEnd());
      }
      function D() {
        (T(), (v.point = I), (v.lineEnd = P));
      }
      function I(O, H) {
        (E((i = O), H),
          (o = m),
          (s = p),
          (u = b),
          (a = x),
          (l = y),
          (v.point = E));
      }
      function P() {
        (n(m, p, h, b, x, y, o, s, i, u, a, l, Jw, r), (v.lineEnd = M), M());
      }
      return v;
    };
  }
  var Dq = Uo({
    point: function (e, t) {
      this.stream.point(e * _e, t * _e);
    },
  });
  function Iq(e) {
    return Uo({
      point: function (t, n) {
        var r = e(t, n);
        return this.stream.point(r[0], r[1]);
      },
    });
  }
  function Fq(e, t, n, r, i) {
    function o(s, u) {
      return ((s *= r), (u *= i), [t + e * s, n - e * u]);
    }
    return (
      (o.invert = function (s, u) {
        return [((s - t) / e) * r, ((n - u) / e) * i];
      }),
      o
    );
  }
  function Qw(e, t, n, r, i, o) {
    if (!o) return Fq(e, t, n, r, i);
    var s = pe(o),
      u = fe(o),
      a = s * e,
      l = u * e,
      h = s / e,
      m = u / e,
      p = (u * n - s * t) / e,
      b = (u * t + s * n) / e;
    function x(y, v) {
      return ((y *= r), (v *= i), [a * y - l * v + t, n - l * y - a * v]);
    }
    return (
      (x.invert = function (y, v) {
        return [r * (h * y - m * v + p), i * (b - m * y - h * v)];
      }),
      x
    );
  }
  function Ht(e) {
    return gl(function () {
      return e;
    })();
  }
  function gl(e) {
    var t,
      n = 150,
      r = 480,
      i = 250,
      o = 0,
      s = 0,
      u = 0,
      a = 0,
      l = 0,
      h,
      m = 0,
      p = 1,
      b = 1,
      x = null,
      y = ll,
      v = null,
      k,
      T,
      E,
      M = $o,
      D = 0.5,
      I,
      P,
      O,
      H,
      U;
    function j(V) {
      return O(V[0] * _e, V[1] * _e);
    }
    function Z(V) {
      return ((V = O.invert(V[0], V[1])), V && [V[0] * Xe, V[1] * Xe]);
    }
    ((j.stream = function (V) {
      return H && U === V ? H : (H = Dq(Iq(h)(y(I(M((U = V)))))));
    }),
      (j.preclip = function (V) {
        return arguments.length ? ((y = V), (x = void 0), B()) : y;
      }),
      (j.postclip = function (V) {
        return arguments.length ? ((M = V), (v = k = T = E = null), B()) : M;
      }),
      (j.clipAngle = function (V) {
        return arguments.length
          ? ((y = +V ? wh((x = V * _e)) : ((x = null), ll)), B())
          : x * Xe;
      }),
      (j.clipExtent = function (V) {
        return arguments.length
          ? ((M =
              V == null
                ? ((v = k = T = E = null), $o)
                : no(
                    (v = +V[0][0]),
                    (k = +V[0][1]),
                    (T = +V[1][0]),
                    (E = +V[1][1]),
                  )),
            B())
          : v == null
            ? null
            : [
                [v, k],
                [T, E],
              ];
      }),
      (j.scale = function (V) {
        return arguments.length ? ((n = +V), Q()) : n;
      }),
      (j.translate = function (V) {
        return arguments.length ? ((r = +V[0]), (i = +V[1]), Q()) : [r, i];
      }),
      (j.center = function (V) {
        return arguments.length
          ? ((o = (V[0] % 360) * _e), (s = (V[1] % 360) * _e), Q())
          : [o * Xe, s * Xe];
      }),
      (j.rotate = function (V) {
        return arguments.length
          ? ((u = (V[0] % 360) * _e),
            (a = (V[1] % 360) * _e),
            (l = V.length > 2 ? (V[2] % 360) * _e : 0),
            Q())
          : [u * Xe, a * Xe, l * Xe];
      }),
      (j.angle = function (V) {
        return arguments.length ? ((m = (V % 360) * _e), Q()) : m * Xe;
      }),
      (j.reflectX = function (V) {
        return arguments.length ? ((p = V ? -1 : 1), Q()) : p < 0;
      }),
      (j.reflectY = function (V) {
        return arguments.length ? ((b = V ? -1 : 1), Q()) : b < 0;
      }),
      (j.precision = function (V) {
        return arguments.length ? ((I = _4(P, (D = V * V))), B()) : nt(D);
      }),
      (j.fitExtent = function (V, G) {
        return W0(j, V, G);
      }),
      (j.fitSize = function (V, G) {
        return gu(j, V, G);
      }),
      (j.fitWidth = function (V, G) {
        return bu(j, V, G);
      }),
      (j.fitHeight = function (V, G) {
        return xu(j, V, G);
      }));
    function Q() {
      var V = Qw(n, 0, 0, p, b, m).apply(null, t(o, s)),
        G = Qw(n, r - V[0], i - V[1], p, b, m);
      return (
        (h = al(u, a, l)),
        (P = ul(t, G)),
        (O = ul(h, P)),
        (I = _4(P, D)),
        B()
      );
    }
    function B() {
      return ((H = U = null), j);
    }
    return function () {
      return ((t = e.apply(this, arguments)), (j.invert = t.invert && Z), Q());
    };
  }
  function yu(e) {
    var t = 0,
      n = Le / 3,
      r = gl(e),
      i = r(t, n);
    return (
      (i.parallels = function (o) {
        return arguments.length
          ? r((t = o[0] * _e), (n = o[1] * _e))
          : [t * Xe, n * Xe];
      }),
      i
    );
  }
  function ev(e) {
    var t = pe(e);
    function n(r, i) {
      return [r * t, fe(i) / t];
    }
    return (
      (n.invert = function (r, i) {
        return [r / t, gt(i * t)];
      }),
      n
    );
  }
  function k4(e, t) {
    var n = fe(e),
      r = (n + fe(t)) / 2;
    if (Ce(r) < ye) return ev(e);
    var i = 1 + n * (2 * r - n),
      o = nt(i) / r;
    function s(u, a) {
      var l = nt(i - 2 * r * fe(a)) / r;
      return [l * fe((u *= r)), o - l * pe(u)];
    }
    return (
      (s.invert = function (u, a) {
        var l = o - a,
          h = mt(u, Ce(l)) * wn(l);
        return (
          l * r < 0 && (h -= Le * wn(u) * wn(l)),
          [h / r, gt((i - (u * u + l * l) * r * r) / (2 * r))]
        );
      }),
      s
    );
  }
  function K0() {
    return yu(k4).scale(155.424).center([0, 33.6442]);
  }
  function qh() {
    return K0()
      .parallels([29.5, 45.5])
      .scale(1070)
      .translate([480, 250])
      .rotate([96, 0])
      .center([-0.6, 38.7]);
  }
  function qq(e) {
    var t = e.length;
    return {
      point: function (n, r) {
        for (var i = -1; ++i < t; ) e[i].point(n, r);
      },
      sphere: function () {
        for (var n = -1; ++n < t; ) e[n].sphere();
      },
      lineStart: function () {
        for (var n = -1; ++n < t; ) e[n].lineStart();
      },
      lineEnd: function () {
        for (var n = -1; ++n < t; ) e[n].lineEnd();
      },
      polygonStart: function () {
        for (var n = -1; ++n < t; ) e[n].polygonStart();
      },
      polygonEnd: function () {
        for (var n = -1; ++n < t; ) e[n].polygonEnd();
      },
    };
  }
  function tv() {
    var e,
      t,
      n = qh(),
      r,
      i = K0().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),
      o,
      s = K0().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),
      u,
      a,
      l = {
        point: function (p, b) {
          a = [p, b];
        },
      };
    function h(p) {
      var b = p[0],
        x = p[1];
      return (
        (a = null),
        r.point(b, x),
        a || (o.point(b, x), a) || (u.point(b, x), a)
      );
    }
    ((h.invert = function (p) {
      var b = n.scale(),
        x = n.translate(),
        y = (p[0] - x[0]) / b,
        v = (p[1] - x[1]) / b;
      return (
        v >= 0.12 && v < 0.234 && y >= -0.425 && y < -0.214
          ? i
          : v >= 0.166 && v < 0.234 && y >= -0.214 && y < -0.115
            ? s
            : n
      ).invert(p);
    }),
      (h.stream = function (p) {
        return e && t === p
          ? e
          : (e = qq([n.stream((t = p)), i.stream(p), s.stream(p)]));
      }),
      (h.precision = function (p) {
        return arguments.length
          ? (n.precision(p), i.precision(p), s.precision(p), m())
          : n.precision();
      }),
      (h.scale = function (p) {
        return arguments.length
          ? (n.scale(p),
            i.scale(p * 0.35),
            s.scale(p),
            h.translate(n.translate()))
          : n.scale();
      }),
      (h.translate = function (p) {
        if (!arguments.length) return n.translate();
        var b = n.scale(),
          x = +p[0],
          y = +p[1];
        return (
          (r = n
            .translate(p)
            .clipExtent([
              [x - 0.455 * b, y - 0.238 * b],
              [x + 0.455 * b, y + 0.238 * b],
            ])
            .stream(l)),
          (o = i
            .translate([x - 0.307 * b, y + 0.201 * b])
            .clipExtent([
              [x - 0.425 * b + ye, y + 0.12 * b + ye],
              [x - 0.214 * b - ye, y + 0.234 * b - ye],
            ])
            .stream(l)),
          (u = s
            .translate([x - 0.205 * b, y + 0.212 * b])
            .clipExtent([
              [x - 0.214 * b + ye, y + 0.166 * b + ye],
              [x - 0.115 * b - ye, y + 0.234 * b - ye],
            ])
            .stream(l)),
          m()
        );
      }),
      (h.fitExtent = function (p, b) {
        return W0(h, p, b);
      }),
      (h.fitSize = function (p, b) {
        return gu(h, p, b);
      }),
      (h.fitWidth = function (p, b) {
        return bu(h, p, b);
      }),
      (h.fitHeight = function (p, b) {
        return xu(h, p, b);
      }));
    function m() {
      return ((e = t = null), h);
    }
    return h.scale(1070);
  }
  function Lh(e) {
    return function (t, n) {
      var r = pe(t),
        i = pe(n),
        o = e(r * i);
      return o === 1 / 0 ? [2, 0] : [o * i * fe(t), o * fe(n)];
    };
  }
  function ai(e) {
    return function (t, n) {
      var r = nt(t * t + n * n),
        i = e(r),
        o = fe(i),
        s = pe(i);
      return [mt(t * o, r * s), gt(r && (n * o) / r)];
    };
  }
  var Oh = Lh(function (e) {
    return nt(2 / (1 + e));
  });
  Oh.invert = ai(function (e) {
    return 2 * gt(e / 2);
  });
  function nv() {
    return Ht(Oh)
      .scale(124.75)
      .clipAngle(180 - 0.001);
  }
  var Bh = Lh(function (e) {
    return (e = rh(e)) && e / fe(e);
  });
  Bh.invert = ai(function (e) {
    return e;
  });
  function rv() {
    return Ht(Bh)
      .scale(79.4188)
      .clipAngle(180 - 0.001);
  }
  function Z0(e, t) {
    return [e, U0(uu((ht + t) / 2))];
  }
  Z0.invert = function (e, t) {
    return [e, 2 * cr(eh(t)) - ht];
  };
  function iv() {
    return S4(Z0).scale(961 / $t);
  }
  function S4(e) {
    var t = Ht(e),
      n = t.center,
      r = t.scale,
      i = t.translate,
      o = t.clipExtent,
      s = null,
      u,
      a,
      l;
    ((t.scale = function (m) {
      return arguments.length ? (r(m), h()) : r();
    }),
      (t.translate = function (m) {
        return arguments.length ? (i(m), h()) : i();
      }),
      (t.center = function (m) {
        return arguments.length ? (n(m), h()) : n();
      }),
      (t.clipExtent = function (m) {
        return arguments.length
          ? (m == null
              ? (s = u = a = l = null)
              : ((s = +m[0][0]),
                (u = +m[0][1]),
                (a = +m[1][0]),
                (l = +m[1][1])),
            h())
          : s == null
            ? null
            : [
                [s, u],
                [a, l],
              ];
      }));
    function h() {
      var m = Le * r(),
        p = t(ph(t.rotate()).invert([0, 0]));
      return o(
        s == null
          ? [
              [p[0] - m, p[1] - m],
              [p[0] + m, p[1] + m],
            ]
          : e === Z0
            ? [
                [Math.max(p[0] - m, s), u],
                [Math.min(p[0] + m, a), l],
              ]
            : [
                [s, Math.max(p[1] - m, u)],
                [a, Math.min(p[1] + m, l)],
              ],
      );
    }
    return h();
  }
  function zh(e) {
    return uu((ht + e) / 2);
  }
  function A4(e, t) {
    var n = pe(e),
      r = e === t ? fe(e) : U0(n / pe(t)) / U0(zh(t) / zh(e)),
      i = (n * nh(zh(e), r)) / r;
    if (!r) return Z0;
    function o(s, u) {
      i > 0 ? u < -ht + ye && (u = -ht + ye) : u > ht - ye && (u = ht - ye);
      var a = i / nh(zh(u), r);
      return [a * fe(r * s), i - a * pe(r * s)];
    }
    return (
      (o.invert = function (s, u) {
        var a = i - u,
          l = wn(r) * nt(s * s + a * a),
          h = mt(s, Ce(a)) * wn(a);
        return (
          a * r < 0 && (h -= Le * wn(s) * wn(a)),
          [h / r, 2 * cr(nh(i / l, 1 / r)) - ht]
        );
      }),
      o
    );
  }
  function ov() {
    return yu(A4).scale(109.5).parallels([30, 30]);
  }
  function J0(e, t) {
    return [e, t];
  }
  J0.invert = J0;
  function sv() {
    return Ht(J0).scale(152.63);
  }
  function M4(e, t) {
    var n = pe(e),
      r = e === t ? fe(e) : (n - pe(t)) / (t - e),
      i = n / r + e;
    if (Ce(r) < ye) return J0;
    function o(s, u) {
      var a = i - u,
        l = r * s;
      return [a * fe(l), i - a * pe(l)];
    }
    return (
      (o.invert = function (s, u) {
        var a = i - u,
          l = mt(s, Ce(a)) * wn(a);
        return (
          a * r < 0 && (l -= Le * wn(s) * wn(a)),
          [l / r, i - wn(r) * nt(s * s + a * a)]
        );
      }),
      o
    );
  }
  function uv() {
    return yu(M4).scale(131.154).center([0, 13.9389]);
  }
  var bl = 1.340264,
    xl = -0.081106,
    yl = 893e-6,
    wl = 0.003796,
    Rh = nt(3) / 2,
    Lq = 12;
  function Ph(e, t) {
    var n = gt(Rh * fe(t)),
      r = n * n,
      i = r * r * r;
    return [
      (e * pe(n)) / (Rh * (bl + 3 * xl * r + i * (7 * yl + 9 * wl * r))),
      n * (bl + xl * r + i * (yl + wl * r)),
    ];
  }
  Ph.invert = function (e, t) {
    for (
      var n = t, r = n * n, i = r * r * r, o = 0, s, u, a;
      o < Lq &&
      ((u = n * (bl + xl * r + i * (yl + wl * r)) - t),
      (a = bl + 3 * xl * r + i * (7 * yl + 9 * wl * r)),
      (n -= s = u / a),
      (r = n * n),
      (i = r * r * r),
      !(Ce(s) < Ji));
      ++o
    );
    return [
      (Rh * e * (bl + 3 * xl * r + i * (7 * yl + 9 * wl * r))) / pe(n),
      gt(fe(n) / Rh),
    ];
  };
  function av() {
    return Ht(Ph).scale(177.158);
  }
  function $h(e, t) {
    var n = pe(t),
      r = pe(e) * n;
    return [(n * fe(e)) / r, fe(t) / r];
  }
  $h.invert = ai(cr);
  function lv() {
    return Ht($h).scale(144.049).clipAngle(60);
  }
  function cv() {
    var e = 1,
      t = 0,
      n = 0,
      r = 1,
      i = 1,
      o = 0,
      s,
      u,
      a = null,
      l,
      h,
      m,
      p = 1,
      b = 1,
      x = Uo({
        point: function (M, D) {
          var I = E([M, D]);
          this.stream.point(I[0], I[1]);
        },
      }),
      y = $o,
      v,
      k;
    function T() {
      return ((p = e * r), (b = e * i), (v = k = null), E);
    }
    function E(M) {
      var D = M[0] * p,
        I = M[1] * b;
      if (o) {
        var P = I * s - D * u;
        ((D = D * s + I * u), (I = P));
      }
      return [D + t, I + n];
    }
    return (
      (E.invert = function (M) {
        var D = M[0] - t,
          I = M[1] - n;
        if (o) {
          var P = I * s + D * u;
          ((D = D * s - I * u), (I = P));
        }
        return [D / p, I / b];
      }),
      (E.stream = function (M) {
        return v && k === M ? v : (v = x(y((k = M))));
      }),
      (E.postclip = function (M) {
        return arguments.length ? ((y = M), (a = l = h = m = null), T()) : y;
      }),
      (E.clipExtent = function (M) {
        return arguments.length
          ? ((y =
              M == null
                ? ((a = l = h = m = null), $o)
                : no(
                    (a = +M[0][0]),
                    (l = +M[0][1]),
                    (h = +M[1][0]),
                    (m = +M[1][1]),
                  )),
            T())
          : a == null
            ? null
            : [
                [a, l],
                [h, m],
              ];
      }),
      (E.scale = function (M) {
        return arguments.length ? ((e = +M), T()) : e;
      }),
      (E.translate = function (M) {
        return arguments.length ? ((t = +M[0]), (n = +M[1]), T()) : [t, n];
      }),
      (E.angle = function (M) {
        return arguments.length
          ? ((o = (M % 360) * _e), (u = fe(o)), (s = pe(o)), T())
          : o * Xe;
      }),
      (E.reflectX = function (M) {
        return arguments.length ? ((r = M ? -1 : 1), T()) : r < 0;
      }),
      (E.reflectY = function (M) {
        return arguments.length ? ((i = M ? -1 : 1), T()) : i < 0;
      }),
      (E.fitExtent = function (M, D) {
        return W0(E, M, D);
      }),
      (E.fitSize = function (M, D) {
        return gu(E, M, D);
      }),
      (E.fitWidth = function (M, D) {
        return bu(E, M, D);
      }),
      (E.fitHeight = function (M, D) {
        return xu(E, M, D);
      }),
      E
    );
  }
  function Hh(e, t) {
    var n = t * t,
      r = n * n;
    return [
      e *
        (0.8707 -
          0.131979 * n +
          r * (-0.013791 + r * (0.003971 * n - 0.001529 * r))),
      t *
        (1.007226 +
          n * (0.015085 + r * (-0.044475 + 0.028874 * n - 0.005916 * r))),
    ];
  }
  Hh.invert = function (e, t) {
    var n = t,
      r = 25,
      i;
    do {
      var o = n * n,
        s = o * o;
      n -= i =
        (n *
          (1.007226 +
            o * (0.015085 + s * (-0.044475 + 0.028874 * o - 0.005916 * s))) -
          t) /
        (1.007226 +
          o *
            (0.015085 * 3 +
              s * (-0.044475 * 7 + 0.028874 * 9 * o - 0.005916 * 11 * s)));
    } while (Ce(i) > ye && --r > 0);
    return [
      e /
        (0.8707 +
          (o = n * n) *
            (-0.131979 +
              o * (-0.013791 + o * o * o * (0.003971 - 0.001529 * o)))),
      n,
    ];
  };
  function fv() {
    return Ht(Hh).scale(175.295);
  }
  function Uh(e, t) {
    return [pe(t) * fe(e), fe(t)];
  }
  Uh.invert = ai(gt);
  function hv() {
    return Ht(Uh)
      .scale(249.5)
      .clipAngle(90 + ye);
  }
  function Vh(e, t) {
    var n = pe(t),
      r = 1 + pe(e) * n;
    return [(n * fe(e)) / r, fe(t) / r];
  }
  Vh.invert = ai(function (e) {
    return 2 * cr(e);
  });
  function dv() {
    return Ht(Vh).scale(250).clipAngle(142);
  }
  function jh(e, t) {
    return [U0(uu((ht + t) / 2)), -e];
  }
  jh.invert = function (e, t) {
    return [-t, 2 * cr(eh(e)) - ht];
  };
  function pv() {
    var e = S4(jh),
      t = e.center,
      n = e.rotate;
    return (
      (e.center = function (r) {
        return arguments.length ? t([-r[1], r[0]]) : ((r = t()), [r[1], -r[0]]);
      }),
      (e.rotate = function (r) {
        return arguments.length
          ? n([r[0], r[1], r.length > 2 ? r[2] + 90 : 90])
          : ((r = n()), [r[0], r[1], r[2] - 90]);
      }),
      n([0, 0, 90]).scale(159.155)
    );
  }
  function Oq(e, t) {
    return e.parent === t.parent ? 1 : 2;
  }
  function Bq(e) {
    return e.reduce(zq, 0) / e.length;
  }
  function zq(e, t) {
    return e + t.x;
  }
  function Rq(e) {
    return 1 + e.reduce(Pq, 0);
  }
  function Pq(e, t) {
    return Math.max(e, t.y);
  }
  function $q(e) {
    for (var t; (t = e.children); ) e = t[0];
    return e;
  }
  function Hq(e) {
    for (var t; (t = e.children); ) e = t[t.length - 1];
    return e;
  }
  function mv() {
    var e = Oq,
      t = 1,
      n = 1,
      r = !1;
    function i(o) {
      var s,
        u = 0;
      o.eachAfter(function (p) {
        var b = p.children;
        b
          ? ((p.x = Bq(b)), (p.y = Rq(b)))
          : ((p.x = s ? (u += e(p, s)) : 0), (p.y = 0), (s = p));
      });
      var a = $q(o),
        l = Hq(o),
        h = a.x - e(a, l) / 2,
        m = l.x + e(l, a) / 2;
      return o.eachAfter(
        r
          ? function (p) {
              ((p.x = (p.x - o.x) * t), (p.y = (o.y - p.y) * n));
            }
          : function (p) {
              ((p.x = ((p.x - h) / (m - h)) * t),
                (p.y = (1 - (o.y ? p.y / o.y : 1)) * n));
            },
      );
    }
    return (
      (i.separation = function (o) {
        return arguments.length ? ((e = o), i) : e;
      }),
      (i.size = function (o) {
        return arguments.length
          ? ((r = !1), (t = +o[0]), (n = +o[1]), i)
          : r
            ? null
            : [t, n];
      }),
      (i.nodeSize = function (o) {
        return arguments.length
          ? ((r = !0), (t = +o[0]), (n = +o[1]), i)
          : r
            ? [t, n]
            : null;
      }),
      i
    );
  }
  function Uq(e) {
    var t = 0,
      n = e.children,
      r = n && n.length;
    if (!r) t = 1;
    else for (; --r >= 0; ) t += n[r].value;
    e.value = t;
  }
  function gv() {
    return this.eachAfter(Uq);
  }
  function bv(e, t) {
    let n = -1;
    for (let r of this) e.call(t, r, ++n, this);
    return this;
  }
  function xv(e, t) {
    for (var n = this, r = [n], i, o, s = -1; (n = r.pop()); )
      if ((e.call(t, n, ++s, this), (i = n.children)))
        for (o = i.length - 1; o >= 0; --o) r.push(i[o]);
    return this;
  }
  function yv(e, t) {
    for (var n = this, r = [n], i = [], o, s, u, a = -1; (n = r.pop()); )
      if ((i.push(n), (o = n.children)))
        for (s = 0, u = o.length; s < u; ++s) r.push(o[s]);
    for (; (n = i.pop()); ) e.call(t, n, ++a, this);
    return this;
  }
  function wv(e, t) {
    let n = -1;
    for (let r of this) if (e.call(t, r, ++n, this)) return r;
  }
  function vv(e) {
    return this.eachAfter(function (t) {
      for (
        var n = +e(t.data) || 0, r = t.children, i = r && r.length;
        --i >= 0;
      )
        n += r[i].value;
      t.value = n;
    });
  }
  function _v(e) {
    return this.eachBefore(function (t) {
      t.children && t.children.sort(e);
    });
  }
  function kv(e) {
    for (var t = this, n = Vq(t, e), r = [t]; t !== n; )
      ((t = t.parent), r.push(t));
    for (var i = r.length; e !== n; ) (r.splice(i, 0, e), (e = e.parent));
    return r;
  }
  function Vq(e, t) {
    if (e === t) return e;
    var n = e.ancestors(),
      r = t.ancestors(),
      i = null;
    for (e = n.pop(), t = r.pop(); e === t; )
      ((i = e), (e = n.pop()), (t = r.pop()));
    return i;
  }
  function Sv() {
    for (var e = this, t = [e]; (e = e.parent); ) t.push(e);
    return t;
  }
  function Av() {
    return Array.from(this);
  }
  function Mv() {
    var e = [];
    return (
      this.eachBefore(function (t) {
        t.children || e.push(t);
      }),
      e
    );
  }
  function Tv() {
    var e = this,
      t = [];
    return (
      e.each(function (n) {
        n !== e && t.push({ source: n.parent, target: n });
      }),
      t
    );
  }
  function* Ev() {
    var e = this,
      t,
      n = [e],
      r,
      i,
      o;
    do
      for (t = n.reverse(), n = []; (e = t.pop()); )
        if ((yield e, (r = e.children)))
          for (i = 0, o = r.length; i < o; ++i) n.push(r[i]);
    while (n.length);
  }
  function vl(e, t) {
    e instanceof Map
      ? ((e = [void 0, e]), t === void 0 && (t = Yq))
      : t === void 0 && (t = Gq);
    for (var n = new li(e), r, i = [n], o, s, u, a; (r = i.pop()); )
      if ((s = t(r.data)) && (a = (s = Array.from(s)).length))
        for (r.children = s, u = a - 1; u >= 0; --u)
          (i.push((o = s[u] = new li(s[u]))),
            (o.parent = r),
            (o.depth = r.depth + 1));
    return n.eachBefore(T4);
  }
  function jq() {
    return vl(this).eachBefore(Xq);
  }
  function Gq(e) {
    return e.children;
  }
  function Yq(e) {
    return Array.isArray(e) ? e[1] : null;
  }
  function Xq(e) {
    (e.data.value !== void 0 && (e.value = e.data.value),
      (e.data = e.data.data));
  }
  function T4(e) {
    var t = 0;
    do e.height = t;
    while ((e = e.parent) && e.height < ++t);
  }
  function li(e) {
    ((this.data = e), (this.depth = this.height = 0), (this.parent = null));
  }
  li.prototype = vl.prototype = {
    constructor: li,
    count: gv,
    each: bv,
    eachAfter: yv,
    eachBefore: xv,
    find: wv,
    sum: vv,
    sort: _v,
    path: kv,
    ancestors: Sv,
    descendants: Av,
    leaves: Mv,
    links: Tv,
    copy: jq,
    [Symbol.iterator]: Ev,
  };
  function wu(e) {
    return e == null ? null : E4(e);
  }
  function E4(e) {
    if (typeof e != "function") throw new Error();
    return e;
  }
  function ro() {
    return 0;
  }
  function Vo(e) {
    return function () {
      return e;
    };
  }
  function vu() {
    let e = 1;
    return () => (e = (1664525 * e + 1013904223) % 4294967296) / 4294967296;
  }
  function Cv(e) {
    return typeof e == "object" && "length" in e ? e : Array.from(e);
  }
  function Nv(e, t) {
    let n = e.length,
      r,
      i;
    for (; n; ) ((i = (t() * n--) | 0), (r = e[n]), (e[n] = e[i]), (e[i] = r));
    return e;
  }
  function Dv(e) {
    return N4(e, vu());
  }
  function N4(e, t) {
    for (
      var n = 0, r = (e = Nv(Array.from(e), t)).length, i = [], o, s;
      n < r;
    )
      ((o = e[n]), s && Iv(s, o) ? ++n : ((s = Kq((i = Wq(i, o)))), (n = 0)));
    return s;
  }
  function Wq(e, t) {
    var n, r;
    if (C4(t, e)) return [t];
    for (n = 0; n < e.length; ++n)
      if (Gh(t, e[n]) && C4(_l(e[n], t), e)) return [e[n], t];
    for (n = 0; n < e.length - 1; ++n)
      for (r = n + 1; r < e.length; ++r)
        if (
          Gh(_l(e[n], e[r]), t) &&
          Gh(_l(e[n], t), e[r]) &&
          Gh(_l(e[r], t), e[n]) &&
          C4(Fv(e[n], e[r], t), e)
        )
          return [e[n], e[r], t];
    throw new Error();
  }
  function Gh(e, t) {
    var n = e.r - t.r,
      r = t.x - e.x,
      i = t.y - e.y;
    return n < 0 || n * n < r * r + i * i;
  }
  function Iv(e, t) {
    var n = e.r - t.r + Math.max(e.r, t.r, 1) * 1e-9,
      r = t.x - e.x,
      i = t.y - e.y;
    return n > 0 && n * n > r * r + i * i;
  }
  function C4(e, t) {
    for (var n = 0; n < t.length; ++n) if (!Iv(e, t[n])) return !1;
    return !0;
  }
  function Kq(e) {
    switch (e.length) {
      case 1:
        return Zq(e[0]);
      case 2:
        return _l(e[0], e[1]);
      case 3:
        return Fv(e[0], e[1], e[2]);
    }
  }
  function Zq(e) {
    return { x: e.x, y: e.y, r: e.r };
  }
  function _l(e, t) {
    var n = e.x,
      r = e.y,
      i = e.r,
      o = t.x,
      s = t.y,
      u = t.r,
      a = o - n,
      l = s - r,
      h = u - i,
      m = Math.sqrt(a * a + l * l);
    return {
      x: (n + o + (a / m) * h) / 2,
      y: (r + s + (l / m) * h) / 2,
      r: (m + i + u) / 2,
    };
  }
  function Fv(e, t, n) {
    var r = e.x,
      i = e.y,
      o = e.r,
      s = t.x,
      u = t.y,
      a = t.r,
      l = n.x,
      h = n.y,
      m = n.r,
      p = r - s,
      b = r - l,
      x = i - u,
      y = i - h,
      v = a - o,
      k = m - o,
      T = r * r + i * i - o * o,
      E = T - s * s - u * u + a * a,
      M = T - l * l - h * h + m * m,
      D = b * x - p * y,
      I = (x * M - y * E) / (D * 2) - r,
      P = (y * v - x * k) / D,
      O = (b * E - p * M) / (D * 2) - i,
      H = (p * k - b * v) / D,
      U = P * P + H * H - 1,
      j = 2 * (o + I * P + O * H),
      Z = I * I + O * O - o * o,
      Q = -(Math.abs(U) > 1e-6
        ? (j + Math.sqrt(j * j - 4 * U * Z)) / (2 * U)
        : Z / j);
    return { x: r + I + P * Q, y: i + O + H * Q, r: Q };
  }
  function qv(e, t, n) {
    var r = e.x - t.x,
      i,
      o,
      s = e.y - t.y,
      u,
      a,
      l = r * r + s * s;
    l
      ? ((o = t.r + n.r),
        (o *= o),
        (a = e.r + n.r),
        (a *= a),
        o > a
          ? ((i = (l + a - o) / (2 * l)),
            (u = Math.sqrt(Math.max(0, a / l - i * i))),
            (n.x = e.x - i * r - u * s),
            (n.y = e.y - i * s + u * r))
          : ((i = (l + o - a) / (2 * l)),
            (u = Math.sqrt(Math.max(0, o / l - i * i))),
            (n.x = t.x + i * r - u * s),
            (n.y = t.y + i * s + u * r)))
      : ((n.x = t.x + n.r), (n.y = t.y));
  }
  function Lv(e, t) {
    var n = e.r + t.r - 1e-6,
      r = t.x - e.x,
      i = t.y - e.y;
    return n > 0 && n * n > r * r + i * i;
  }
  function Ov(e) {
    var t = e._,
      n = e.next._,
      r = t.r + n.r,
      i = (t.x * n.r + n.x * t.r) / r,
      o = (t.y * n.r + n.y * t.r) / r;
    return i * i + o * o;
  }
  function Yh(e) {
    ((this._ = e), (this.next = null), (this.previous = null));
  }
  function D4(e, t) {
    if (!(o = (e = Cv(e)).length)) return 0;
    var n, r, i, o, s, u, a, l, h, m, p;
    if (((n = e[0]), (n.x = 0), (n.y = 0), !(o > 1))) return n.r;
    if (((r = e[1]), (n.x = -r.r), (r.x = n.r), (r.y = 0), !(o > 2)))
      return n.r + r.r;
    (qv(r, n, (i = e[2])),
      (n = new Yh(n)),
      (r = new Yh(r)),
      (i = new Yh(i)),
      (n.next = i.previous = r),
      (r.next = n.previous = i),
      (i.next = r.previous = n));
    e: for (a = 3; a < o; ++a) {
      (qv(n._, r._, (i = e[a])),
        (i = new Yh(i)),
        (l = r.next),
        (h = n.previous),
        (m = r._.r),
        (p = n._.r));
      do
        if (m <= p) {
          if (Lv(l._, i._)) {
            ((r = l), (n.next = r), (r.previous = n), --a);
            continue e;
          }
          ((m += l._.r), (l = l.next));
        } else {
          if (Lv(h._, i._)) {
            ((n = h), (n.next = r), (r.previous = n), --a);
            continue e;
          }
          ((p += h._.r), (h = h.previous));
        }
      while (l !== h.next);
      for (
        i.previous = n, i.next = r, n.next = r.previous = r = i, s = Ov(n);
        (i = i.next) !== r;
      )
        (u = Ov(i)) < s && ((n = i), (s = u));
      r = n.next;
    }
    for (n = [r._], i = r; (i = i.next) !== r; ) n.push(i._);
    for (i = N4(n, t), a = 0; a < o; ++a)
      ((n = e[a]), (n.x -= i.x), (n.y -= i.y));
    return i.r;
  }
  function Bv(e) {
    return (D4(e, vu()), e);
  }
  function Jq(e) {
    return Math.sqrt(e.value);
  }
  function Pv() {
    var e = null,
      t = 1,
      n = 1,
      r = ro;
    function i(o) {
      let s = vu();
      return (
        (o.x = t / 2),
        (o.y = n / 2),
        e
          ? o
              .eachBefore(zv(e))
              .eachAfter(I4(r, 0.5, s))
              .eachBefore(Rv(1))
          : o
              .eachBefore(zv(Jq))
              .eachAfter(I4(ro, 1, s))
              .eachAfter(I4(r, o.r / Math.min(t, n), s))
              .eachBefore(Rv(Math.min(t, n) / (2 * o.r))),
        o
      );
    }
    return (
      (i.radius = function (o) {
        return arguments.length ? ((e = wu(o)), i) : e;
      }),
      (i.size = function (o) {
        return arguments.length ? ((t = +o[0]), (n = +o[1]), i) : [t, n];
      }),
      (i.padding = function (o) {
        return arguments.length
          ? ((r = typeof o == "function" ? o : Vo(+o)), i)
          : r;
      }),
      i
    );
  }
  function zv(e) {
    return function (t) {
      t.children || (t.r = Math.max(0, +e(t) || 0));
    };
  }
  function I4(e, t, n) {
    return function (r) {
      if ((i = r.children)) {
        var i,
          o,
          s = i.length,
          u = e(r) * t || 0,
          a;
        if (u) for (o = 0; o < s; ++o) i[o].r += u;
        if (((a = D4(i, n)), u)) for (o = 0; o < s; ++o) i[o].r -= u;
        r.r = a + u;
      }
    };
  }
  function Rv(e) {
    return function (t) {
      var n = t.parent;
      ((t.r *= e), n && ((t.x = n.x + e * t.x), (t.y = n.y + e * t.y)));
    };
  }
  function Xh(e) {
    ((e.x0 = Math.round(e.x0)),
      (e.y0 = Math.round(e.y0)),
      (e.x1 = Math.round(e.x1)),
      (e.y1 = Math.round(e.y1)));
  }
  function ci(e, t, n, r, i) {
    for (
      var o = e.children,
        s,
        u = -1,
        a = o.length,
        l = e.value && (r - t) / e.value;
      ++u < a;
    )
      ((s = o[u]),
        (s.y0 = n),
        (s.y1 = i),
        (s.x0 = t),
        (s.x1 = t += s.value * l));
  }
  function $v() {
    var e = 1,
      t = 1,
      n = 0,
      r = !1;
    function i(s) {
      var u = s.height + 1;
      return (
        (s.x0 = s.y0 = n),
        (s.x1 = e),
        (s.y1 = t / u),
        s.eachBefore(o(t, u)),
        r && s.eachBefore(Xh),
        s
      );
    }
    function o(s, u) {
      return function (a) {
        a.children &&
          ci(a, a.x0, (s * (a.depth + 1)) / u, a.x1, (s * (a.depth + 2)) / u);
        var l = a.x0,
          h = a.y0,
          m = a.x1 - n,
          p = a.y1 - n;
        (m < l && (l = m = (l + m) / 2),
          p < h && (h = p = (h + p) / 2),
          (a.x0 = l),
          (a.y0 = h),
          (a.x1 = m),
          (a.y1 = p));
      };
    }
    return (
      (i.round = function (s) {
        return arguments.length ? ((r = !!s), i) : r;
      }),
      (i.size = function (s) {
        return arguments.length ? ((e = +s[0]), (t = +s[1]), i) : [e, t];
      }),
      (i.padding = function (s) {
        return arguments.length ? ((n = +s), i) : n;
      }),
      i
    );
  }
  var Qq = { depth: -1 },
    Hv = {},
    F4 = {};
  function eL(e) {
    return e.id;
  }
  function tL(e) {
    return e.parentId;
  }
  function Vv() {
    var e = eL,
      t = tL,
      n;
    function r(i) {
      var o = Array.from(i),
        s = e,
        u = t,
        a,
        l,
        h,
        m,
        p,
        b,
        x,
        y,
        v = new Map();
      if (n != null) {
        let k = o.map((M, D) => nL(n(M, D, i))),
          T = k.map(Uv),
          E = new Set(k).add("");
        for (let M of T)
          E.has(M) || (E.add(M), k.push(M), T.push(Uv(M)), o.push(F4));
        ((s = (M, D) => k[D]), (u = (M, D) => T[D]));
      }
      for (h = 0, a = o.length; h < a; ++h)
        ((l = o[h]),
          (b = o[h] = new li(l)),
          (x = s(l, h, i)) != null &&
            (x += "") &&
            ((y = b.id = x), v.set(y, v.has(y) ? Hv : b)),
          (x = u(l, h, i)) != null && (x += "") && (b.parent = x));
      for (h = 0; h < a; ++h)
        if (((b = o[h]), (x = b.parent))) {
          if (((p = v.get(x)), !p)) throw new Error("missing: " + x);
          if (p === Hv) throw new Error("ambiguous: " + x);
          (p.children ? p.children.push(b) : (p.children = [b]),
            (b.parent = p));
        } else {
          if (m) throw new Error("multiple roots");
          m = b;
        }
      if (!m) throw new Error("no root");
      if (n != null) {
        for (; m.data === F4 && m.children.length === 1; )
          ((m = m.children[0]), --a);
        for (let k = o.length - 1; k >= 0 && ((b = o[k]), b.data === F4); --k)
          b.data = null;
      }
      if (
        ((m.parent = Qq),
        m
          .eachBefore(function (k) {
            ((k.depth = k.parent.depth + 1), --a);
          })
          .eachBefore(T4),
        (m.parent = null),
        a > 0)
      )
        throw new Error("cycle");
      return m;
    }
    return (
      (r.id = function (i) {
        return arguments.length ? ((e = wu(i)), r) : e;
      }),
      (r.parentId = function (i) {
        return arguments.length ? ((t = wu(i)), r) : t;
      }),
      (r.path = function (i) {
        return arguments.length ? ((n = wu(i)), r) : n;
      }),
      r
    );
  }
  function nL(e) {
    e = `${e}`;
    let t = e.length;
    return (
      q4(e, t - 1) && !q4(e, t - 2) && (e = e.slice(0, -1)),
      e[0] === "/" ? e : `/${e}`
    );
  }
  function Uv(e) {
    let t = e.length;
    if (t < 2) return "";
    for (; --t > 1 && !q4(e, t); );
    return e.slice(0, t);
  }
  function q4(e, t) {
    if (e[t] === "/") {
      let n = 0;
      for (; t > 0 && e[--t] === "\\"; ) ++n;
      if ((n & 1) === 0) return !0;
    }
    return !1;
  }
  function rL(e, t) {
    return e.parent === t.parent ? 1 : 2;
  }
  function L4(e) {
    var t = e.children;
    return t ? t[0] : e.t;
  }
  function O4(e) {
    var t = e.children;
    return t ? t[t.length - 1] : e.t;
  }
  function iL(e, t, n) {
    var r = n / (t.i - e.i);
    ((t.c -= r), (t.s += n), (e.c += r), (t.z += n), (t.m += n));
  }
  function oL(e) {
    for (var t = 0, n = 0, r = e.children, i = r.length, o; --i >= 0; )
      ((o = r[i]), (o.z += t), (o.m += t), (t += o.s + (n += o.c)));
  }
  function sL(e, t, n) {
    return e.a.parent === t.parent ? e.a : n;
  }
  function Wh(e, t) {
    ((this._ = e),
      (this.parent = null),
      (this.children = null),
      (this.A = null),
      (this.a = this),
      (this.z = 0),
      (this.m = 0),
      (this.c = 0),
      (this.s = 0),
      (this.t = null),
      (this.i = t));
  }
  Wh.prototype = Object.create(li.prototype);
  function uL(e) {
    for (var t = new Wh(e, 0), n, r = [t], i, o, s, u; (n = r.pop()); )
      if ((o = n._.children))
        for (n.children = new Array((u = o.length)), s = u - 1; s >= 0; --s)
          (r.push((i = n.children[s] = new Wh(o[s], s))), (i.parent = n));
    return (((t.parent = new Wh(null, 0)).children = [t]), t);
  }
  function jv() {
    var e = rL,
      t = 1,
      n = 1,
      r = null;
    function i(l) {
      var h = uL(l);
      if ((h.eachAfter(o), (h.parent.m = -h.z), h.eachBefore(s), r))
        l.eachBefore(a);
      else {
        var m = l,
          p = l,
          b = l;
        l.eachBefore(function (T) {
          (T.x < m.x && (m = T),
            T.x > p.x && (p = T),
            T.depth > b.depth && (b = T));
        });
        var x = m === p ? 1 : e(m, p) / 2,
          y = x - m.x,
          v = t / (p.x + x + y),
          k = n / (b.depth || 1);
        l.eachBefore(function (T) {
          ((T.x = (T.x + y) * v), (T.y = T.depth * k));
        });
      }
      return l;
    }
    function o(l) {
      var h = l.children,
        m = l.parent.children,
        p = l.i ? m[l.i - 1] : null;
      if (h) {
        oL(l);
        var b = (h[0].z + h[h.length - 1].z) / 2;
        p ? ((l.z = p.z + e(l._, p._)), (l.m = l.z - b)) : (l.z = b);
      } else p && (l.z = p.z + e(l._, p._));
      l.parent.A = u(l, p, l.parent.A || m[0]);
    }
    function s(l) {
      ((l._.x = l.z + l.parent.m), (l.m += l.parent.m));
    }
    function u(l, h, m) {
      if (h) {
        for (
          var p = l,
            b = l,
            x = h,
            y = p.parent.children[0],
            v = p.m,
            k = b.m,
            T = x.m,
            E = y.m,
            M;
          (x = O4(x)), (p = L4(p)), x && p;
        )
          ((y = L4(y)),
            (b = O4(b)),
            (b.a = l),
            (M = x.z + T - p.z - v + e(x._, p._)),
            M > 0 && (iL(sL(x, l, m), l, M), (v += M), (k += M)),
            (T += x.m),
            (v += p.m),
            (E += y.m),
            (k += b.m));
        (x && !O4(b) && ((b.t = x), (b.m += T - k)),
          p && !L4(y) && ((y.t = p), (y.m += v - E), (m = l)));
      }
      return m;
    }
    function a(l) {
      ((l.x *= t), (l.y = l.depth * n));
    }
    return (
      (i.separation = function (l) {
        return arguments.length ? ((e = l), i) : e;
      }),
      (i.size = function (l) {
        return arguments.length
          ? ((r = !1), (t = +l[0]), (n = +l[1]), i)
          : r
            ? null
            : [t, n];
      }),
      (i.nodeSize = function (l) {
        return arguments.length
          ? ((r = !0), (t = +l[0]), (n = +l[1]), i)
          : r
            ? [t, n]
            : null;
      }),
      i
    );
  }
  function jo(e, t, n, r, i) {
    for (
      var o = e.children,
        s,
        u = -1,
        a = o.length,
        l = e.value && (i - n) / e.value;
      ++u < a;
    )
      ((s = o[u]),
        (s.x0 = t),
        (s.x1 = r),
        (s.y0 = n),
        (s.y1 = n += s.value * l));
  }
  var B4 = (1 + Math.sqrt(5)) / 2;
  function z4(e, t, n, r, i, o) {
    for (
      var s = [],
        u = t.children,
        a,
        l,
        h = 0,
        m = 0,
        p = u.length,
        b,
        x,
        y = t.value,
        v,
        k,
        T,
        E,
        M,
        D,
        I;
      h < p;
    ) {
      ((b = i - n), (x = o - r));
      do v = u[m++].value;
      while (!v && m < p);
      for (
        k = T = v,
          D = Math.max(x / b, b / x) / (y * e),
          I = v * v * D,
          M = Math.max(T / I, I / k);
        m < p;
        ++m
      ) {
        if (
          ((v += l = u[m].value),
          l < k && (k = l),
          l > T && (T = l),
          (I = v * v * D),
          (E = Math.max(T / I, I / k)),
          E > M)
        ) {
          v -= l;
          break;
        }
        M = E;
      }
      (s.push((a = { value: v, dice: b < x, children: u.slice(h, m) })),
        a.dice
          ? ci(a, n, r, i, y ? (r += (x * v) / y) : o)
          : jo(a, n, r, y ? (n += (b * v) / y) : i, o),
        (y -= v),
        (h = m));
    }
    return s;
  }
  var Kh = (function e(t) {
    function n(r, i, o, s, u) {
      z4(t, r, i, o, s, u);
    }
    return (
      (n.ratio = function (r) {
        return e((r = +r) > 1 ? r : 1);
      }),
      n
    );
  })(B4);
  function Gv() {
    var e = Kh,
      t = !1,
      n = 1,
      r = 1,
      i = [0],
      o = ro,
      s = ro,
      u = ro,
      a = ro,
      l = ro;
    function h(p) {
      return (
        (p.x0 = p.y0 = 0),
        (p.x1 = n),
        (p.y1 = r),
        p.eachBefore(m),
        (i = [0]),
        t && p.eachBefore(Xh),
        p
      );
    }
    function m(p) {
      var b = i[p.depth],
        x = p.x0 + b,
        y = p.y0 + b,
        v = p.x1 - b,
        k = p.y1 - b;
      (v < x && (x = v = (x + v) / 2),
        k < y && (y = k = (y + k) / 2),
        (p.x0 = x),
        (p.y0 = y),
        (p.x1 = v),
        (p.y1 = k),
        p.children &&
          ((b = i[p.depth + 1] = o(p) / 2),
          (x += l(p) - b),
          (y += s(p) - b),
          (v -= u(p) - b),
          (k -= a(p) - b),
          v < x && (x = v = (x + v) / 2),
          k < y && (y = k = (y + k) / 2),
          e(p, x, y, v, k)));
    }
    return (
      (h.round = function (p) {
        return arguments.length ? ((t = !!p), h) : t;
      }),
      (h.size = function (p) {
        return arguments.length ? ((n = +p[0]), (r = +p[1]), h) : [n, r];
      }),
      (h.tile = function (p) {
        return arguments.length ? ((e = E4(p)), h) : e;
      }),
      (h.padding = function (p) {
        return arguments.length
          ? h.paddingInner(p).paddingOuter(p)
          : h.paddingInner();
      }),
      (h.paddingInner = function (p) {
        return arguments.length
          ? ((o = typeof p == "function" ? p : Vo(+p)), h)
          : o;
      }),
      (h.paddingOuter = function (p) {
        return arguments.length
          ? h.paddingTop(p).paddingRight(p).paddingBottom(p).paddingLeft(p)
          : h.paddingTop();
      }),
      (h.paddingTop = function (p) {
        return arguments.length
          ? ((s = typeof p == "function" ? p : Vo(+p)), h)
          : s;
      }),
      (h.paddingRight = function (p) {
        return arguments.length
          ? ((u = typeof p == "function" ? p : Vo(+p)), h)
          : u;
      }),
      (h.paddingBottom = function (p) {
        return arguments.length
          ? ((a = typeof p == "function" ? p : Vo(+p)), h)
          : a;
      }),
      (h.paddingLeft = function (p) {
        return arguments.length
          ? ((l = typeof p == "function" ? p : Vo(+p)), h)
          : l;
      }),
      h
    );
  }
  function Yv(e, t, n, r, i) {
    var o = e.children,
      s,
      u = o.length,
      a,
      l = new Array(u + 1);
    for (l[0] = a = s = 0; s < u; ++s) l[s + 1] = a += o[s].value;
    h(0, u, e.value, t, n, r, i);
    function h(m, p, b, x, y, v, k) {
      if (m >= p - 1) {
        var T = o[m];
        ((T.x0 = x), (T.y0 = y), (T.x1 = v), (T.y1 = k));
        return;
      }
      for (var E = l[m], M = b / 2 + E, D = m + 1, I = p - 1; D < I; ) {
        var P = (D + I) >>> 1;
        l[P] < M ? (D = P + 1) : (I = P);
      }
      M - l[D - 1] < l[D] - M && m + 1 < D && --D;
      var O = l[D] - E,
        H = b - O;
      if (v - x > k - y) {
        var U = b ? (x * H + v * O) / b : v;
        (h(m, D, O, x, y, U, k), h(D, p, H, U, y, v, k));
      } else {
        var j = b ? (y * H + k * O) / b : k;
        (h(m, D, O, x, y, v, j), h(D, p, H, x, j, v, k));
      }
    }
  }
  function Xv(e, t, n, r, i) {
    (e.depth & 1 ? jo : ci)(e, t, n, r, i);
  }
  var Wv = (function e(t) {
    function n(r, i, o, s, u) {
      if ((a = r._squarify) && a.ratio === t)
        for (var a, l, h, m, p = -1, b, x = a.length, y = r.value; ++p < x; ) {
          for (
            l = a[p], h = l.children, m = l.value = 0, b = h.length;
            m < b;
            ++m
          )
            l.value += h[m].value;
          (l.dice
            ? ci(l, i, o, s, y ? (o += ((u - o) * l.value) / y) : u)
            : jo(l, i, o, y ? (i += ((s - i) * l.value) / y) : s, u),
            (y -= l.value));
        }
      else ((r._squarify = a = z4(t, r, i, o, s, u)), (a.ratio = t));
    }
    return (
      (n.ratio = function (r) {
        return e((r = +r) > 1 ? r : 1);
      }),
      n
    );
  })(B4);
  function Kv(e) {
    for (var t = -1, n = e.length, r, i = e[n - 1], o = 0; ++t < n; )
      ((r = i), (i = e[t]), (o += r[1] * i[0] - r[0] * i[1]));
    return o / 2;
  }
  function Zv(e) {
    for (
      var t = -1, n = e.length, r = 0, i = 0, o, s = e[n - 1], u, a = 0;
      ++t < n;
    )
      ((o = s),
        (s = e[t]),
        (a += u = o[0] * s[1] - s[0] * o[1]),
        (r += (o[0] + s[0]) * u),
        (i += (o[1] + s[1]) * u));
    return ((a *= 3), [r / a, i / a]);
  }
  function Jv(e, t, n) {
    return (t[0] - e[0]) * (n[1] - e[1]) - (t[1] - e[1]) * (n[0] - e[0]);
  }
  function aL(e, t) {
    return e[0] - t[0] || e[1] - t[1];
  }
  function Qv(e) {
    let t = e.length,
      n = [0, 1],
      r = 2,
      i;
    for (i = 2; i < t; ++i) {
      for (; r > 1 && Jv(e[n[r - 2]], e[n[r - 1]], e[i]) <= 0; ) --r;
      n[r++] = i;
    }
    return n.slice(0, r);
  }
  function e_(e) {
    if ((n = e.length) < 3) return null;
    var t,
      n,
      r = new Array(n),
      i = new Array(n);
    for (t = 0; t < n; ++t) r[t] = [+e[t][0], +e[t][1], t];
    for (r.sort(aL), t = 0; t < n; ++t) i[t] = [r[t][0], -r[t][1]];
    var o = Qv(r),
      s = Qv(i),
      u = s[0] === o[0],
      a = s[s.length - 1] === o[o.length - 1],
      l = [];
    for (t = o.length - 1; t >= 0; --t) l.push(e[r[o[t]][2]]);
    for (t = +u; t < s.length - a; ++t) l.push(e[r[s[t]][2]]);
    return l;
  }
  function t_(e, t) {
    for (
      var n = e.length,
        r = e[n - 1],
        i = t[0],
        o = t[1],
        s = r[0],
        u = r[1],
        a,
        l,
        h = !1,
        m = 0;
      m < n;
      ++m
    )
      ((r = e[m]),
        (a = r[0]),
        (l = r[1]),
        l > o != u > o && i < ((s - a) * (o - l)) / (u - l) + a && (h = !h),
        (s = a),
        (u = l));
    return h;
  }
  function n_(e) {
    for (
      var t = -1, n = e.length, r = e[n - 1], i, o, s = r[0], u = r[1], a = 0;
      ++t < n;
    )
      ((i = s),
        (o = u),
        (r = e[t]),
        (s = r[0]),
        (u = r[1]),
        (i -= s),
        (o -= u),
        (a += Math.hypot(i, o)));
    return a;
  }
  var Qe = Math.random;
  var r_ = (function e(t) {
    function n(r, i) {
      return (
        (r = r == null ? 0 : +r),
        (i = i == null ? 1 : +i),
        arguments.length === 1 ? ((i = r), (r = 0)) : (i -= r),
        function () {
          return t() * i + r;
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var i_ = (function e(t) {
    function n(r, i) {
      return (
        arguments.length < 2 && ((i = r), (r = 0)),
        (r = Math.floor(r)),
        (i = Math.floor(i) - r),
        function () {
          return Math.floor(t() * i + r);
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var _u = (function e(t) {
    function n(r, i) {
      var o, s;
      return (
        (r = r == null ? 0 : +r),
        (i = i == null ? 1 : +i),
        function () {
          var u;
          if (o != null) ((u = o), (o = null));
          else
            do ((o = t() * 2 - 1), (u = t() * 2 - 1), (s = o * o + u * u));
            while (!s || s > 1);
          return r + i * u * Math.sqrt((-2 * Math.log(s)) / s);
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var o_ = (function e(t) {
    var n = _u.source(t);
    function r() {
      var i = n.apply(this, arguments);
      return function () {
        return Math.exp(i());
      };
    }
    return ((r.source = e), r);
  })(Qe);
  var Zh = (function e(t) {
    function n(r) {
      return (r = +r) <= 0
        ? () => 0
        : function () {
            for (var i = 0, o = r; o > 1; --o) i += t();
            return i + o * t();
          };
    }
    return ((n.source = e), n);
  })(Qe);
  var s_ = (function e(t) {
    var n = Zh.source(t);
    function r(i) {
      if ((i = +i) == 0) return t;
      var o = n(i);
      return function () {
        return o() / i;
      };
    }
    return ((r.source = e), r);
  })(Qe);
  var u_ = (function e(t) {
    function n(r) {
      return function () {
        return -Math.log1p(-t()) / r;
      };
    }
    return ((n.source = e), n);
  })(Qe);
  var a_ = (function e(t) {
    function n(r) {
      if ((r = +r) < 0) throw new RangeError("invalid alpha");
      return (
        (r = 1 / -r),
        function () {
          return Math.pow(1 - t(), r);
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var l_ = (function e(t) {
    function n(r) {
      if ((r = +r) < 0 || r > 1) throw new RangeError("invalid p");
      return function () {
        return Math.floor(t() + r);
      };
    }
    return ((n.source = e), n);
  })(Qe);
  var Jh = (function e(t) {
    function n(r) {
      if ((r = +r) < 0 || r > 1) throw new RangeError("invalid p");
      return r === 0
        ? () => 1 / 0
        : r === 1
          ? () => 1
          : ((r = Math.log1p(-r)),
            function () {
              return 1 + Math.floor(Math.log1p(-t()) / r);
            });
    }
    return ((n.source = e), n);
  })(Qe);
  var ku = (function e(t) {
    var n = _u.source(t)();
    function r(i, o) {
      if ((i = +i) < 0) throw new RangeError("invalid k");
      if (i === 0) return () => 0;
      if (((o = o == null ? 1 : +o), i === 1))
        return () => -Math.log1p(-t()) * o;
      var s = (i < 1 ? i + 1 : i) - 1 / 3,
        u = 1 / (3 * Math.sqrt(s)),
        a = i < 1 ? () => Math.pow(t(), 1 / i) : () => 1;
      return function () {
        do {
          do
            var l = n(),
              h = 1 + u * l;
          while (h <= 0);
          h *= h * h;
          var m = 1 - t();
        } while (
          m >= 1 - 0.0331 * l * l * l * l &&
          Math.log(m) >= 0.5 * l * l + s * (1 - h + Math.log(h))
        );
        return s * h * a() * o;
      };
    }
    return ((r.source = e), r);
  })(Qe);
  var Qh = (function e(t) {
    var n = ku.source(t);
    function r(i, o) {
      var s = n(i),
        u = n(o);
      return function () {
        var a = s();
        return a === 0 ? 0 : a / (a + u());
      };
    }
    return ((r.source = e), r);
  })(Qe);
  var e1 = (function e(t) {
    var n = Jh.source(t),
      r = Qh.source(t);
    function i(o, s) {
      return (
        (o = +o),
        (s = +s) >= 1
          ? () => o
          : s <= 0
            ? () => 0
            : function () {
                for (
                  var u = 0, a = o, l = s;
                  a * l > 16 && a * (1 - l) > 16;
                ) {
                  var h = Math.floor((a + 1) * l),
                    m = r(h, a - h + 1)();
                  m <= l
                    ? ((u += h), (a -= h), (l = (l - m) / (1 - m)))
                    : ((a = h - 1), (l /= m));
                }
                for (
                  var p = l < 0.5, b = p ? l : 1 - l, x = n(b), y = x(), v = 0;
                  y <= a;
                  ++v
                )
                  y += x();
                return u + (p ? v : a - v);
              }
      );
    }
    return ((i.source = e), i);
  })(Qe);
  var c_ = (function e(t) {
    function n(r, i, o) {
      var s;
      return (
        (r = +r) == 0
          ? (s = (u) => -Math.log(u))
          : ((r = 1 / r), (s = (u) => Math.pow(u, r))),
        (i = i == null ? 0 : +i),
        (o = o == null ? 1 : +o),
        function () {
          return i + o * s(-Math.log1p(-t()));
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var f_ = (function e(t) {
    function n(r, i) {
      return (
        (r = r == null ? 0 : +r),
        (i = i == null ? 1 : +i),
        function () {
          return r + i * Math.tan(Math.PI * t());
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var h_ = (function e(t) {
    function n(r, i) {
      return (
        (r = r == null ? 0 : +r),
        (i = i == null ? 1 : +i),
        function () {
          var o = t();
          return r + i * Math.log(o / (1 - o));
        }
      );
    }
    return ((n.source = e), n);
  })(Qe);
  var d_ = (function e(t) {
    var n = ku.source(t),
      r = e1.source(t);
    function i(o) {
      return function () {
        for (var s = 0, u = o; u > 16; ) {
          var a = Math.floor(0.875 * u),
            l = n(a)();
          if (l > u) return s + r(a - 1, u / l)();
          ((s += a), (u -= l));
        }
        for (var h = -Math.log1p(-t()), m = 0; h <= u; ++m)
          h -= Math.log1p(-t());
        return s + m;
      };
    }
    return ((i.source = e), i);
  })(Qe);
  var p_ = 23283064365386963e-26;
  function R4(e = Math.random()) {
    let t = (0 <= e && e < 1 ? e / p_ : Math.abs(e)) | 0;
    return () => ((t = (1664525 * t + 1013904223) | 0), p_ * (t >>> 0));
  }
  function Ct(e, t) {
    switch (arguments.length) {
      case 0:
        break;
      case 1:
        this.range(e);
        break;
      default:
        this.range(t).domain(e);
        break;
    }
    return this;
  }
  function hr(e, t) {
    switch (arguments.length) {
      case 0:
        break;
      case 1: {
        typeof e == "function" ? this.interpolator(e) : this.range(e);
        break;
      }
      default: {
        (this.domain(e),
          typeof t == "function" ? this.interpolator(t) : this.range(t));
        break;
      }
    }
    return this;
  }
  var t1 = Symbol("implicit");
  function Go() {
    var e = new kr(),
      t = [],
      n = [],
      r = t1;
    function i(o) {
      let s = e.get(o);
      if (s === void 0) {
        if (r !== t1) return r;
        e.set(o, (s = t.push(o) - 1));
      }
      return n[s % n.length];
    }
    return (
      (i.domain = function (o) {
        if (!arguments.length) return t.slice();
        ((t = []), (e = new kr()));
        for (let s of o) e.has(s) || e.set(s, t.push(s) - 1);
        return i;
      }),
      (i.range = function (o) {
        return arguments.length ? ((n = Array.from(o)), i) : n.slice();
      }),
      (i.unknown = function (o) {
        return arguments.length ? ((r = o), i) : r;
      }),
      (i.copy = function () {
        return Go(t, n).unknown(r);
      }),
      Ct.apply(i, arguments),
      i
    );
  }
  function kl() {
    var e = Go().unknown(void 0),
      t = e.domain,
      n = e.range,
      r = 0,
      i = 1,
      o,
      s,
      u = !1,
      a = 0,
      l = 0,
      h = 0.5;
    delete e.unknown;
    function m() {
      var p = t().length,
        b = i < r,
        x = b ? i : r,
        y = b ? r : i;
      ((o = (y - x) / Math.max(1, p - a + l * 2)),
        u && (o = Math.floor(o)),
        (x += (y - x - o * (p - a)) * h),
        (s = o * (1 - a)),
        u && ((x = Math.round(x)), (s = Math.round(s))));
      var v = sr(p).map(function (k) {
        return x + o * k;
      });
      return n(b ? v.reverse() : v);
    }
    return (
      (e.domain = function (p) {
        return arguments.length ? (t(p), m()) : t();
      }),
      (e.range = function (p) {
        return arguments.length
          ? (([r, i] = p), (r = +r), (i = +i), m())
          : [r, i];
      }),
      (e.rangeRound = function (p) {
        return (([r, i] = p), (r = +r), (i = +i), (u = !0), m());
      }),
      (e.bandwidth = function () {
        return s;
      }),
      (e.step = function () {
        return o;
      }),
      (e.round = function (p) {
        return arguments.length ? ((u = !!p), m()) : u;
      }),
      (e.padding = function (p) {
        return arguments.length ? ((a = Math.min(1, (l = +p))), m()) : a;
      }),
      (e.paddingInner = function (p) {
        return arguments.length ? ((a = Math.min(1, p)), m()) : a;
      }),
      (e.paddingOuter = function (p) {
        return arguments.length ? ((l = +p), m()) : l;
      }),
      (e.align = function (p) {
        return arguments.length ? ((h = Math.max(0, Math.min(1, p))), m()) : h;
      }),
      (e.copy = function () {
        return kl(t(), [r, i])
          .round(u)
          .paddingInner(a)
          .paddingOuter(l)
          .align(h);
      }),
      Ct.apply(m(), arguments)
    );
  }
  function m_(e) {
    var t = e.copy;
    return (
      (e.padding = e.paddingOuter),
      delete e.paddingInner,
      delete e.paddingOuter,
      (e.copy = function () {
        return m_(t());
      }),
      e
    );
  }
  function g_() {
    return m_(kl.apply(null, arguments).paddingInner(1));
  }
  function P4(e) {
    return function () {
      return e;
    };
  }
  function Yo(e) {
    return +e;
  }
  var b_ = [0, 1];
  function Zt(e) {
    return e;
  }
  function $4(e, t) {
    return (t -= e = +e)
      ? function (n) {
          return (n - e) / t;
        }
      : P4(isNaN(t) ? NaN : 0.5);
  }
  function lL(e, t) {
    var n;
    return (
      e > t && ((n = e), (e = t), (t = n)),
      function (r) {
        return Math.max(e, Math.min(t, r));
      }
    );
  }
  function cL(e, t, n) {
    var r = e[0],
      i = e[1],
      o = t[0],
      s = t[1];
    return (
      i < r ? ((r = $4(i, r)), (o = n(s, o))) : ((r = $4(r, i)), (o = n(o, s))),
      function (u) {
        return o(r(u));
      }
    );
  }
  function fL(e, t, n) {
    var r = Math.min(e.length, t.length) - 1,
      i = new Array(r),
      o = new Array(r),
      s = -1;
    for (
      e[r] < e[0] && ((e = e.slice().reverse()), (t = t.slice().reverse()));
      ++s < r;
    )
      ((i[s] = $4(e[s], e[s + 1])), (o[s] = n(t[s], t[s + 1])));
    return function (u) {
      var a = On(e, u, 1, r) - 1;
      return o[a](i[a](u));
    };
  }
  function fi(e, t) {
    return t
      .domain(e.domain())
      .range(e.range())
      .interpolate(e.interpolate())
      .clamp(e.clamp())
      .unknown(e.unknown());
  }
  function Q0() {
    var e = b_,
      t = b_,
      n = bn,
      r,
      i,
      o,
      s = Zt,
      u,
      a,
      l;
    function h() {
      var p = Math.min(e.length, t.length);
      return (
        s !== Zt && (s = lL(e[0], e[p - 1])),
        (u = p > 2 ? fL : cL),
        (a = l = null),
        m
      );
    }
    function m(p) {
      return p == null || isNaN((p = +p))
        ? o
        : (a || (a = u(e.map(r), t, n)))(r(s(p)));
    }
    return (
      (m.invert = function (p) {
        return s(i((l || (l = u(t, e.map(r), tn)))(p)));
      }),
      (m.domain = function (p) {
        return arguments.length ? ((e = Array.from(p, Yo)), h()) : e.slice();
      }),
      (m.range = function (p) {
        return arguments.length ? ((t = Array.from(p)), h()) : t.slice();
      }),
      (m.rangeRound = function (p) {
        return ((t = Array.from(p)), (n = Fo), h());
      }),
      (m.clamp = function (p) {
        return arguments.length ? ((s = p ? !0 : Zt), h()) : s !== Zt;
      }),
      (m.interpolate = function (p) {
        return arguments.length ? ((n = p), h()) : n;
      }),
      (m.unknown = function (p) {
        return arguments.length ? ((o = p), m) : o;
      }),
      function (p, b) {
        return ((r = p), (i = b), h());
      }
    );
  }
  function es() {
    return Q0()(Zt, Zt);
  }
  function Sl(e, t, n, r) {
    var i = g0(e, t, n),
      o;
    switch (((r = Nr(r ?? ",f")), r.type)) {
      case "s": {
        var s = Math.max(Math.abs(e), Math.abs(t));
        return (
          r.precision == null && !isNaN((o = Jf(i, s))) && (r.precision = o),
          Qa(r, s)
        );
      }
      case "":
      case "e":
      case "g":
      case "p":
      case "r": {
        r.precision == null &&
          !isNaN((o = Qf(i, Math.max(Math.abs(e), Math.abs(t))))) &&
          (r.precision = o - (r.type === "e"));
        break;
      }
      case "f":
      case "%": {
        r.precision == null &&
          !isNaN((o = Zf(i))) &&
          (r.precision = o - (r.type === "%") * 2);
        break;
      }
    }
    return H0(r);
  }
  function Dn(e) {
    var t = e.domain;
    return (
      (e.ticks = function (n) {
        var r = t();
        return zn(r[0], r[r.length - 1], n ?? 10);
      }),
      (e.tickFormat = function (n, r) {
        var i = t();
        return Sl(i[0], i[i.length - 1], n ?? 10, r);
      }),
      (e.nice = function (n) {
        n == null && (n = 10);
        var r = t(),
          i = 0,
          o = r.length - 1,
          s = r[i],
          u = r[o],
          a,
          l,
          h = 10;
        for (
          u < s && ((l = s), (s = u), (u = l), (l = i), (i = o), (o = l));
          h-- > 0;
        ) {
          if (((l = Sr(s, u, n)), l === a))
            return ((r[i] = s), (r[o] = u), t(r));
          if (l > 0) ((s = Math.floor(s / l) * l), (u = Math.ceil(u / l) * l));
          else if (l < 0)
            ((s = Math.ceil(s * l) / l), (u = Math.floor(u * l) / l));
          else break;
          a = l;
        }
        return e;
      }),
      e
    );
  }
  function n1() {
    var e = es();
    return (
      (e.copy = function () {
        return fi(e, n1());
      }),
      Ct.apply(e, arguments),
      Dn(e)
    );
  }
  function r1(e) {
    var t;
    function n(r) {
      return r == null || isNaN((r = +r)) ? t : r;
    }
    return (
      (n.invert = n),
      (n.domain = n.range =
        function (r) {
          return arguments.length ? ((e = Array.from(r, Yo)), n) : e.slice();
        }),
      (n.unknown = function (r) {
        return arguments.length ? ((t = r), n) : t;
      }),
      (n.copy = function () {
        return r1(e).unknown(t);
      }),
      (e = arguments.length ? Array.from(e, Yo) : [0, 1]),
      Dn(n)
    );
  }
  function Al(e, t) {
    e = e.slice();
    var n = 0,
      r = e.length - 1,
      i = e[n],
      o = e[r],
      s;
    return (
      o < i && ((s = n), (n = r), (r = s), (s = i), (i = o), (o = s)),
      (e[n] = t.floor(i)),
      (e[r] = t.ceil(o)),
      e
    );
  }
  function x_(e) {
    return Math.log(e);
  }
  function y_(e) {
    return Math.exp(e);
  }
  function hL(e) {
    return -Math.log(-e);
  }
  function dL(e) {
    return -Math.exp(-e);
  }
  function pL(e) {
    return isFinite(e) ? +("1e" + e) : e < 0 ? 0 : e;
  }
  function mL(e) {
    return e === 10 ? pL : e === Math.E ? Math.exp : (t) => Math.pow(e, t);
  }
  function gL(e) {
    return e === Math.E
      ? Math.log
      : (e === 10 && Math.log10) ||
          (e === 2 && Math.log2) ||
          ((e = Math.log(e)), (t) => Math.log(t) / e);
  }
  function w_(e) {
    return (t, n) => -e(-t, n);
  }
  function Ml(e) {
    let t = e(x_, y_),
      n = t.domain,
      r = 10,
      i,
      o;
    function s() {
      return (
        (i = gL(r)),
        (o = mL(r)),
        n()[0] < 0 ? ((i = w_(i)), (o = w_(o)), e(hL, dL)) : e(x_, y_),
        t
      );
    }
    return (
      (t.base = function (u) {
        return arguments.length ? ((r = +u), s()) : r;
      }),
      (t.domain = function (u) {
        return arguments.length ? (n(u), s()) : n();
      }),
      (t.ticks = (u) => {
        let a = n(),
          l = a[0],
          h = a[a.length - 1],
          m = h < l;
        m && ([l, h] = [h, l]);
        let p = i(l),
          b = i(h),
          x,
          y,
          v = u == null ? 10 : +u,
          k = [];
        if (!(r % 1) && b - p < v) {
          if (((p = Math.floor(p)), (b = Math.ceil(b)), l > 0)) {
            for (; p <= b; ++p)
              for (x = 1; x < r; ++x)
                if (((y = p < 0 ? x / o(-p) : x * o(p)), !(y < l))) {
                  if (y > h) break;
                  k.push(y);
                }
          } else
            for (; p <= b; ++p)
              for (x = r - 1; x >= 1; --x)
                if (((y = p > 0 ? x / o(-p) : x * o(p)), !(y < l))) {
                  if (y > h) break;
                  k.push(y);
                }
          k.length * 2 < v && (k = zn(l, h, v));
        } else k = zn(p, b, Math.min(b - p, v)).map(o);
        return m ? k.reverse() : k;
      }),
      (t.tickFormat = (u, a) => {
        if (
          (u == null && (u = 10),
          a == null && (a = r === 10 ? "s" : ","),
          typeof a != "function" &&
            (!(r % 1) && (a = Nr(a)).precision == null && (a.trim = !0),
            (a = H0(a))),
          u === 1 / 0)
        )
          return a;
        let l = Math.max(1, (r * u) / t.ticks().length);
        return (h) => {
          let m = h / o(Math.round(i(h)));
          return (m * r < r - 0.5 && (m *= r), m <= l ? a(h) : "");
        };
      }),
      (t.nice = () =>
        n(
          Al(n(), {
            floor: (u) => o(Math.floor(i(u))),
            ceil: (u) => o(Math.ceil(i(u))),
          }),
        )),
      t
    );
  }
  function i1() {
    let e = Ml(Q0()).domain([1, 10]);
    return (
      (e.copy = () => fi(e, i1()).base(e.base())),
      Ct.apply(e, arguments),
      e
    );
  }
  function v_(e) {
    return function (t) {
      return Math.sign(t) * Math.log1p(Math.abs(t / e));
    };
  }
  function __(e) {
    return function (t) {
      return Math.sign(t) * Math.expm1(Math.abs(t)) * e;
    };
  }
  function Tl(e) {
    var t = 1,
      n = e(v_(t), __(t));
    return (
      (n.constant = function (r) {
        return arguments.length ? e(v_((t = +r)), __(t)) : t;
      }),
      Dn(n)
    );
  }
  function o1() {
    var e = Tl(Q0());
    return (
      (e.copy = function () {
        return fi(e, o1()).constant(e.constant());
      }),
      Ct.apply(e, arguments)
    );
  }
  function k_(e) {
    return function (t) {
      return t < 0 ? -Math.pow(-t, e) : Math.pow(t, e);
    };
  }
  function bL(e) {
    return e < 0 ? -Math.sqrt(-e) : Math.sqrt(e);
  }
  function xL(e) {
    return e < 0 ? -e * e : e * e;
  }
  function El(e) {
    var t = e(Zt, Zt),
      n = 1;
    function r() {
      return n === 1 ? e(Zt, Zt) : n === 0.5 ? e(bL, xL) : e(k_(n), k_(1 / n));
    }
    return (
      (t.exponent = function (i) {
        return arguments.length ? ((n = +i), r()) : n;
      }),
      Dn(t)
    );
  }
  function Cl() {
    var e = El(Q0());
    return (
      (e.copy = function () {
        return fi(e, Cl()).exponent(e.exponent());
      }),
      Ct.apply(e, arguments),
      e
    );
  }
  function S_() {
    return Cl.apply(null, arguments).exponent(0.5);
  }
  function A_(e) {
    return Math.sign(e) * e * e;
  }
  function yL(e) {
    return Math.sign(e) * Math.sqrt(Math.abs(e));
  }
  function s1() {
    var e = es(),
      t = [0, 1],
      n = !1,
      r;
    function i(o) {
      var s = yL(e(o));
      return isNaN(s) ? r : n ? Math.round(s) : s;
    }
    return (
      (i.invert = function (o) {
        return e.invert(A_(o));
      }),
      (i.domain = function (o) {
        return arguments.length ? (e.domain(o), i) : e.domain();
      }),
      (i.range = function (o) {
        return arguments.length
          ? (e.range((t = Array.from(o, Yo)).map(A_)), i)
          : t.slice();
      }),
      (i.rangeRound = function (o) {
        return i.range(o).round(!0);
      }),
      (i.round = function (o) {
        return arguments.length ? ((n = !!o), i) : n;
      }),
      (i.clamp = function (o) {
        return arguments.length ? (e.clamp(o), i) : e.clamp();
      }),
      (i.unknown = function (o) {
        return arguments.length ? ((r = o), i) : r;
      }),
      (i.copy = function () {
        return s1(e.domain(), t).round(n).clamp(e.clamp()).unknown(r);
      }),
      Ct.apply(i, arguments),
      Dn(i)
    );
  }
  function u1() {
    var e = [],
      t = [],
      n = [],
      r;
    function i() {
      var s = 0,
        u = Math.max(1, t.length);
      for (n = new Array(u - 1); ++s < u; ) n[s - 1] = Zc(e, s / u);
      return o;
    }
    function o(s) {
      return s == null || isNaN((s = +s)) ? r : t[On(n, s)];
    }
    return (
      (o.invertExtent = function (s) {
        var u = t.indexOf(s);
        return u < 0
          ? [NaN, NaN]
          : [u > 0 ? n[u - 1] : e[0], u < n.length ? n[u] : e[e.length - 1]];
      }),
      (o.domain = function (s) {
        if (!arguments.length) return e.slice();
        e = [];
        for (let u of s) u != null && !isNaN((u = +u)) && e.push(u);
        return (e.sort(je), i());
      }),
      (o.range = function (s) {
        return arguments.length ? ((t = Array.from(s)), i()) : t.slice();
      }),
      (o.unknown = function (s) {
        return arguments.length ? ((r = s), o) : r;
      }),
      (o.quantiles = function () {
        return n.slice();
      }),
      (o.copy = function () {
        return u1().domain(e).range(t).unknown(r);
      }),
      Ct.apply(o, arguments)
    );
  }
  function a1() {
    var e = 0,
      t = 1,
      n = 1,
      r = [0.5],
      i = [0, 1],
      o;
    function s(a) {
      return a != null && a <= a ? i[On(r, a, 0, n)] : o;
    }
    function u() {
      var a = -1;
      for (r = new Array(n); ++a < n; )
        r[a] = ((a + 1) * t - (a - n) * e) / (n + 1);
      return s;
    }
    return (
      (s.domain = function (a) {
        return arguments.length
          ? (([e, t] = a), (e = +e), (t = +t), u())
          : [e, t];
      }),
      (s.range = function (a) {
        return arguments.length
          ? ((n = (i = Array.from(a)).length - 1), u())
          : i.slice();
      }),
      (s.invertExtent = function (a) {
        var l = i.indexOf(a);
        return l < 0
          ? [NaN, NaN]
          : l < 1
            ? [e, r[0]]
            : l >= n
              ? [r[n - 1], t]
              : [r[l - 1], r[l]];
      }),
      (s.unknown = function (a) {
        return (arguments.length && (o = a), s);
      }),
      (s.thresholds = function () {
        return r.slice();
      }),
      (s.copy = function () {
        return a1().domain([e, t]).range(i).unknown(o);
      }),
      Ct.apply(Dn(s), arguments)
    );
  }
  function l1() {
    var e = [0.5],
      t = [0, 1],
      n,
      r = 1;
    function i(o) {
      return o != null && o <= o ? t[On(e, o, 0, r)] : n;
    }
    return (
      (i.domain = function (o) {
        return arguments.length
          ? ((e = Array.from(o)), (r = Math.min(e.length, t.length - 1)), i)
          : e.slice();
      }),
      (i.range = function (o) {
        return arguments.length
          ? ((t = Array.from(o)), (r = Math.min(e.length, t.length - 1)), i)
          : t.slice();
      }),
      (i.invertExtent = function (o) {
        var s = t.indexOf(o);
        return [e[s - 1], e[s]];
      }),
      (i.unknown = function (o) {
        return arguments.length ? ((n = o), i) : n;
      }),
      (i.copy = function () {
        return l1().domain(e).range(t).unknown(n);
      }),
      Ct.apply(i, arguments)
    );
  }
  var H4 = new Date(),
    U4 = new Date();
  function ft(e, t, n, r) {
    function i(o) {
      return (e((o = arguments.length === 0 ? new Date() : new Date(+o))), o);
    }
    return (
      (i.floor = (o) => (e((o = new Date(+o))), o)),
      (i.ceil = (o) => (e((o = new Date(o - 1))), t(o, 1), e(o), o)),
      (i.round = (o) => {
        let s = i(o),
          u = i.ceil(o);
        return o - s < u - o ? s : u;
      }),
      (i.offset = (o, s) => (
        t((o = new Date(+o)), s == null ? 1 : Math.floor(s)),
        o
      )),
      (i.range = (o, s, u) => {
        let a = [];
        if (
          ((o = i.ceil(o)),
          (u = u == null ? 1 : Math.floor(u)),
          !(o < s) || !(u > 0))
        )
          return a;
        let l;
        do (a.push((l = new Date(+o))), t(o, u), e(o));
        while (l < o && o < s);
        return a;
      }),
      (i.filter = (o) =>
        ft(
          (s) => {
            if (s >= s) for (; e(s), !o(s); ) s.setTime(s - 1);
          },
          (s, u) => {
            if (s >= s)
              if (u < 0) for (; ++u <= 0; ) for (; t(s, -1), !o(s); );
              else for (; --u >= 0; ) for (; t(s, 1), !o(s); );
          },
        )),
      n &&
        ((i.count = (o, s) => (
          H4.setTime(+o),
          U4.setTime(+s),
          e(H4),
          e(U4),
          Math.floor(n(H4, U4))
        )),
        (i.every = (o) => (
          (o = Math.floor(o)),
          !isFinite(o) || !(o > 0)
            ? null
            : o > 1
              ? i.filter(
                  r ? (s) => r(s) % o === 0 : (s) => i.count(0, s) % o === 0,
                )
              : i
        ))),
      i
    );
  }
  var Xo = ft(
    () => {},
    (e, t) => {
      e.setTime(+e + t);
    },
    (e, t) => t - e,
  );
  Xo.every = (e) => (
    (e = Math.floor(e)),
    !isFinite(e) || !(e > 0)
      ? null
      : e > 1
        ? ft(
            (t) => {
              t.setTime(Math.floor(t / e) * e);
            },
            (t, n) => {
              t.setTime(+t + n * e);
            },
            (t, n) => (n - t) / e,
          )
        : Xo
  );
  var V4 = Xo.range;
  var Kn = ft(
      (e) => {
        e.setTime(e - e.getMilliseconds());
      },
      (e, t) => {
        e.setTime(+e + t * 1e3);
      },
      (e, t) => (t - e) / 1e3,
      (e) => e.getUTCSeconds(),
    ),
    j4 = Kn.range;
  var ns = ft(
      (e) => {
        e.setTime(e - e.getMilliseconds() - e.getSeconds() * 1e3);
      },
      (e, t) => {
        e.setTime(+e + t * 6e4);
      },
      (e, t) => (t - e) / 6e4,
      (e) => e.getMinutes(),
    ),
    M_ = ns.range,
    rs = ft(
      (e) => {
        e.setUTCSeconds(0, 0);
      },
      (e, t) => {
        e.setTime(+e + t * 6e4);
      },
      (e, t) => (t - e) / 6e4,
      (e) => e.getUTCMinutes(),
    ),
    T_ = rs.range;
  var os = ft(
      (e) => {
        e.setTime(
          e - e.getMilliseconds() - e.getSeconds() * 1e3 - e.getMinutes() * 6e4,
        );
      },
      (e, t) => {
        e.setTime(+e + t * 36e5);
      },
      (e, t) => (t - e) / 36e5,
      (e) => e.getHours(),
    ),
    E_ = os.range,
    ss = ft(
      (e) => {
        e.setUTCMinutes(0, 0, 0);
      },
      (e, t) => {
        e.setTime(+e + t * 36e5);
      },
      (e, t) => (t - e) / 36e5,
      (e) => e.getUTCHours(),
    ),
    C_ = ss.range;
  var di = ft(
      (e) => e.setHours(0, 0, 0, 0),
      (e, t) => e.setDate(e.getDate() + t),
      (e, t) =>
        (t - e - (t.getTimezoneOffset() - e.getTimezoneOffset()) * 6e4) / 864e5,
      (e) => e.getDate() - 1,
    ),
    N_ = di.range,
    Wo = ft(
      (e) => {
        e.setUTCHours(0, 0, 0, 0);
      },
      (e, t) => {
        e.setUTCDate(e.getUTCDate() + t);
      },
      (e, t) => (t - e) / 864e5,
      (e) => e.getUTCDate() - 1,
    ),
    D_ = Wo.range,
    Dl = ft(
      (e) => {
        e.setUTCHours(0, 0, 0, 0);
      },
      (e, t) => {
        e.setUTCDate(e.getUTCDate() + t);
      },
      (e, t) => (t - e) / 864e5,
      (e) => Math.floor(e / 864e5),
    ),
    I_ = Dl.range;
  function us(e) {
    return ft(
      (t) => {
        (t.setDate(t.getDate() - ((t.getDay() + 7 - e) % 7)),
          t.setHours(0, 0, 0, 0));
      },
      (t, n) => {
        t.setDate(t.getDate() + n * 7);
      },
      (t, n) =>
        (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * 6e4) /
        6048e5,
    );
  }
  var pi = us(0),
    as = us(1),
    G4 = us(2),
    Y4 = us(3),
    io = us(4),
    X4 = us(5),
    W4 = us(6),
    K4 = pi.range,
    q_ = as.range,
    L_ = G4.range,
    O_ = Y4.range,
    B_ = io.range,
    z_ = X4.range,
    R_ = W4.range;
  function ls(e) {
    return ft(
      (t) => {
        (t.setUTCDate(t.getUTCDate() - ((t.getUTCDay() + 7 - e) % 7)),
          t.setUTCHours(0, 0, 0, 0));
      },
      (t, n) => {
        t.setUTCDate(t.getUTCDate() + n * 7);
      },
      (t, n) => (n - t) / 6048e5,
    );
  }
  var mi = ls(0),
    cs = ls(1),
    Z4 = ls(2),
    J4 = ls(3),
    oo = ls(4),
    Q4 = ls(5),
    e3 = ls(6),
    t3 = mi.range,
    P_ = cs.range,
    $_ = Z4.range,
    H_ = J4.range,
    U_ = oo.range,
    V_ = Q4.range,
    j_ = e3.range;
  var fs = ft(
      (e) => {
        (e.setDate(1), e.setHours(0, 0, 0, 0));
      },
      (e, t) => {
        e.setMonth(e.getMonth() + t);
      },
      (e, t) =>
        t.getMonth() - e.getMonth() + (t.getFullYear() - e.getFullYear()) * 12,
      (e) => e.getMonth(),
    ),
    G_ = fs.range,
    hs = ft(
      (e) => {
        (e.setUTCDate(1), e.setUTCHours(0, 0, 0, 0));
      },
      (e, t) => {
        e.setUTCMonth(e.getUTCMonth() + t);
      },
      (e, t) =>
        t.getUTCMonth() -
        e.getUTCMonth() +
        (t.getUTCFullYear() - e.getUTCFullYear()) * 12,
      (e) => e.getUTCMonth(),
    ),
    Y_ = hs.range;
  var $n = ft(
    (e) => {
      (e.setMonth(0, 1), e.setHours(0, 0, 0, 0));
    },
    (e, t) => {
      e.setFullYear(e.getFullYear() + t);
    },
    (e, t) => t.getFullYear() - e.getFullYear(),
    (e) => e.getFullYear(),
  );
  $n.every = (e) =>
    !isFinite((e = Math.floor(e))) || !(e > 0)
      ? null
      : ft(
          (t) => {
            (t.setFullYear(Math.floor(t.getFullYear() / e) * e),
              t.setMonth(0, 1),
              t.setHours(0, 0, 0, 0));
          },
          (t, n) => {
            t.setFullYear(t.getFullYear() + n * e);
          },
        );
  var X_ = $n.range,
    Hn = ft(
      (e) => {
        (e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0));
      },
      (e, t) => {
        e.setUTCFullYear(e.getUTCFullYear() + t);
      },
      (e, t) => t.getUTCFullYear() - e.getUTCFullYear(),
      (e) => e.getUTCFullYear(),
    );
  Hn.every = (e) =>
    !isFinite((e = Math.floor(e))) || !(e > 0)
      ? null
      : ft(
          (t) => {
            (t.setUTCFullYear(Math.floor(t.getUTCFullYear() / e) * e),
              t.setUTCMonth(0, 1),
              t.setUTCHours(0, 0, 0, 0));
          },
          (t, n) => {
            t.setUTCFullYear(t.getUTCFullYear() + n * e);
          },
        );
  var W_ = Hn.range;
  function Z_(e, t, n, r, i, o) {
    let s = [
      [Kn, 1, 1e3],
      [Kn, 5, 5 * 1e3],
      [Kn, 15, 15 * 1e3],
      [Kn, 30, 30 * 1e3],
      [o, 1, 6e4],
      [o, 5, 5 * 6e4],
      [o, 15, 15 * 6e4],
      [o, 30, 30 * 6e4],
      [i, 1, 36e5],
      [i, 3, 3 * 36e5],
      [i, 6, 6 * 36e5],
      [i, 12, 12 * 36e5],
      [r, 1, 864e5],
      [r, 2, 2 * 864e5],
      [n, 1, 6048e5],
      [t, 1, 2592e6],
      [t, 3, 3 * 2592e6],
      [e, 1, 31536e6],
    ];
    function u(l, h, m) {
      let p = h < l;
      p && ([l, h] = [h, l]);
      let b = m && typeof m.range == "function" ? m : a(l, h, m),
        x = b ? b.range(l, +h + 1) : [];
      return p ? x.reverse() : x;
    }
    function a(l, h, m) {
      let p = Math.abs(h - l) / m,
        b = ko(([, , v]) => v).right(s, p);
      if (b === s.length) return e.every(g0(l / 31536e6, h / 31536e6, m));
      if (b === 0) return Xo.every(Math.max(g0(l, h, m), 1));
      let [x, y] = s[p / s[b - 1][2] < s[b][2] / p ? b - 1 : b];
      return x.every(y);
    }
    return [u, a];
  }
  var [c1, f1] = Z_(Hn, hs, mi, Dl, ss, rs),
    [h1, d1] = Z_($n, fs, pi, di, os, ns);
  function n3(e) {
    if (0 <= e.y && e.y < 100) {
      var t = new Date(-1, e.m, e.d, e.H, e.M, e.S, e.L);
      return (t.setFullYear(e.y), t);
    }
    return new Date(e.y, e.m, e.d, e.H, e.M, e.S, e.L);
  }
  function r3(e) {
    if (0 <= e.y && e.y < 100) {
      var t = new Date(Date.UTC(-1, e.m, e.d, e.H, e.M, e.S, e.L));
      return (t.setUTCFullYear(e.y), t);
    }
    return new Date(Date.UTC(e.y, e.m, e.d, e.H, e.M, e.S, e.L));
  }
  function Il(e, t, n) {
    return { y: e, m: t, d: n, H: 0, M: 0, S: 0, L: 0 };
  }
  function Ll(e) {
    var t = e.dateTime,
      n = e.date,
      r = e.time,
      i = e.periods,
      o = e.days,
      s = e.shortDays,
      u = e.months,
      a = e.shortMonths,
      l = Fl(i),
      h = ql(i),
      m = Fl(o),
      p = ql(o),
      b = Fl(s),
      x = ql(s),
      y = Fl(u),
      v = ql(u),
      k = Fl(a),
      T = ql(a),
      E = {
        a: ne,
        A: te,
        b: ie,
        B: ce,
        c: null,
        d: rk,
        e: rk,
        f: UL,
        g: QL,
        G: tO,
        H: PL,
        I: $L,
        j: HL,
        L: ak,
        m: VL,
        M: jL,
        p: xe,
        q: X,
        Q: sk,
        s: uk,
        S: GL,
        u: YL,
        U: XL,
        V: WL,
        w: KL,
        W: ZL,
        x: null,
        X: null,
        y: JL,
        Y: eO,
        Z: nO,
        "%": ok,
      },
      M = {
        a: he,
        A: Ae,
        b: Be,
        B: kt,
        c: null,
        d: ik,
        e: ik,
        f: sO,
        g: gO,
        G: xO,
        H: rO,
        I: iO,
        j: oO,
        L: ck,
        m: uO,
        M: aO,
        p: Ke,
        q: Nt,
        Q: sk,
        s: uk,
        S: lO,
        u: cO,
        U: fO,
        V: hO,
        w: dO,
        W: pO,
        x: null,
        X: null,
        y: mO,
        Y: bO,
        Z: yO,
        "%": ok,
      },
      D = {
        a: U,
        A: j,
        b: Z,
        B: Q,
        c: B,
        d: tk,
        e: tk,
        f: OL,
        g: ek,
        G: Q_,
        H: nk,
        I: nk,
        j: IL,
        L: LL,
        m: DL,
        M: FL,
        p: H,
        q: NL,
        Q: zL,
        s: RL,
        S: qL,
        u: AL,
        U: ML,
        V: TL,
        w: SL,
        W: EL,
        x: V,
        X: G,
        y: ek,
        Y: Q_,
        Z: CL,
        "%": BL,
      };
    ((E.x = I(n, E)),
      (E.X = I(r, E)),
      (E.c = I(t, E)),
      (M.x = I(n, M)),
      (M.X = I(r, M)),
      (M.c = I(t, M)));
    function I(ge, qe) {
      return function (Pe) {
        var le = [],
          yt = -1,
          ot = 0,
          bt = ge.length,
          Vt,
          Te,
          St;
        for (Pe instanceof Date || (Pe = new Date(+Pe)); ++yt < bt; )
          ge.charCodeAt(yt) === 37 &&
            (le.push(ge.slice(ot, yt)),
            (Te = J_[(Vt = ge.charAt(++yt))]) != null
              ? (Vt = ge.charAt(++yt))
              : (Te = Vt === "e" ? " " : "0"),
            (St = qe[Vt]) && (Vt = St(Pe, Te)),
            le.push(Vt),
            (ot = yt + 1));
        return (le.push(ge.slice(ot, yt)), le.join(""));
      };
    }
    function P(ge, qe) {
      return function (Pe) {
        var le = Il(1900, void 0, 1),
          yt = O(le, ge, (Pe += ""), 0),
          ot,
          bt;
        if (yt != Pe.length) return null;
        if ("Q" in le) return new Date(le.Q);
        if ("s" in le) return new Date(le.s * 1e3 + ("L" in le ? le.L : 0));
        if (
          (qe && !("Z" in le) && (le.Z = 0),
          "p" in le && (le.H = (le.H % 12) + le.p * 12),
          le.m === void 0 && (le.m = "q" in le ? le.q : 0),
          "V" in le)
        ) {
          if (le.V < 1 || le.V > 53) return null;
          ("w" in le || (le.w = 1),
            "Z" in le
              ? ((ot = r3(Il(le.y, 0, 1))),
                (bt = ot.getUTCDay()),
                (ot = bt > 4 || bt === 0 ? cs.ceil(ot) : cs(ot)),
                (ot = Wo.offset(ot, (le.V - 1) * 7)),
                (le.y = ot.getUTCFullYear()),
                (le.m = ot.getUTCMonth()),
                (le.d = ot.getUTCDate() + ((le.w + 6) % 7)))
              : ((ot = n3(Il(le.y, 0, 1))),
                (bt = ot.getDay()),
                (ot = bt > 4 || bt === 0 ? as.ceil(ot) : as(ot)),
                (ot = di.offset(ot, (le.V - 1) * 7)),
                (le.y = ot.getFullYear()),
                (le.m = ot.getMonth()),
                (le.d = ot.getDate() + ((le.w + 6) % 7))));
        } else
          ("W" in le || "U" in le) &&
            ("w" in le || (le.w = "u" in le ? le.u % 7 : "W" in le ? 1 : 0),
            (bt =
              "Z" in le
                ? r3(Il(le.y, 0, 1)).getUTCDay()
                : n3(Il(le.y, 0, 1)).getDay()),
            (le.m = 0),
            (le.d =
              "W" in le
                ? ((le.w + 6) % 7) + le.W * 7 - ((bt + 5) % 7)
                : le.w + le.U * 7 - ((bt + 6) % 7)));
        return "Z" in le
          ? ((le.H += (le.Z / 100) | 0), (le.M += le.Z % 100), r3(le))
          : n3(le);
      };
    }
    function O(ge, qe, Pe, le) {
      for (var yt = 0, ot = qe.length, bt = Pe.length, Vt, Te; yt < ot; ) {
        if (le >= bt) return -1;
        if (((Vt = qe.charCodeAt(yt++)), Vt === 37)) {
          if (
            ((Vt = qe.charAt(yt++)),
            (Te = D[Vt in J_ ? qe.charAt(yt++) : Vt]),
            !Te || (le = Te(ge, Pe, le)) < 0)
          )
            return -1;
        } else if (Vt != Pe.charCodeAt(le++)) return -1;
      }
      return le;
    }
    function H(ge, qe, Pe) {
      var le = l.exec(qe.slice(Pe));
      return le ? ((ge.p = h.get(le[0].toLowerCase())), Pe + le[0].length) : -1;
    }
    function U(ge, qe, Pe) {
      var le = b.exec(qe.slice(Pe));
      return le ? ((ge.w = x.get(le[0].toLowerCase())), Pe + le[0].length) : -1;
    }
    function j(ge, qe, Pe) {
      var le = m.exec(qe.slice(Pe));
      return le ? ((ge.w = p.get(le[0].toLowerCase())), Pe + le[0].length) : -1;
    }
    function Z(ge, qe, Pe) {
      var le = k.exec(qe.slice(Pe));
      return le ? ((ge.m = T.get(le[0].toLowerCase())), Pe + le[0].length) : -1;
    }
    function Q(ge, qe, Pe) {
      var le = y.exec(qe.slice(Pe));
      return le ? ((ge.m = v.get(le[0].toLowerCase())), Pe + le[0].length) : -1;
    }
    function B(ge, qe, Pe) {
      return O(ge, t, qe, Pe);
    }
    function V(ge, qe, Pe) {
      return O(ge, n, qe, Pe);
    }
    function G(ge, qe, Pe) {
      return O(ge, r, qe, Pe);
    }
    function ne(ge) {
      return s[ge.getDay()];
    }
    function te(ge) {
      return o[ge.getDay()];
    }
    function ie(ge) {
      return a[ge.getMonth()];
    }
    function ce(ge) {
      return u[ge.getMonth()];
    }
    function xe(ge) {
      return i[+(ge.getHours() >= 12)];
    }
    function X(ge) {
      return 1 + ~~(ge.getMonth() / 3);
    }
    function he(ge) {
      return s[ge.getUTCDay()];
    }
    function Ae(ge) {
      return o[ge.getUTCDay()];
    }
    function Be(ge) {
      return a[ge.getUTCMonth()];
    }
    function kt(ge) {
      return u[ge.getUTCMonth()];
    }
    function Ke(ge) {
      return i[+(ge.getUTCHours() >= 12)];
    }
    function Nt(ge) {
      return 1 + ~~(ge.getUTCMonth() / 3);
    }
    return {
      format: function (ge) {
        var qe = I((ge += ""), E);
        return (
          (qe.toString = function () {
            return ge;
          }),
          qe
        );
      },
      parse: function (ge) {
        var qe = P((ge += ""), !1);
        return (
          (qe.toString = function () {
            return ge;
          }),
          qe
        );
      },
      utcFormat: function (ge) {
        var qe = I((ge += ""), M);
        return (
          (qe.toString = function () {
            return ge;
          }),
          qe
        );
      },
      utcParse: function (ge) {
        var qe = P((ge += ""), !0);
        return (
          (qe.toString = function () {
            return ge;
          }),
          qe
        );
      },
    };
  }
  var J_ = { "-": "", _: " ", 0: "0" },
    on = /^\s*\d+/,
    vL = /^%/,
    _L = /[\\^$*+?|[\]().{}]/g;
  function it(e, t, n) {
    var r = e < 0 ? "-" : "",
      i = (r ? -e : e) + "",
      o = i.length;
    return r + (o < n ? new Array(n - o + 1).join(t) + i : i);
  }
  function kL(e) {
    return e.replace(_L, "\\$&");
  }
  function Fl(e) {
    return new RegExp("^(?:" + e.map(kL).join("|") + ")", "i");
  }
  function ql(e) {
    return new Map(e.map((t, n) => [t.toLowerCase(), n]));
  }
  function SL(e, t, n) {
    var r = on.exec(t.slice(n, n + 1));
    return r ? ((e.w = +r[0]), n + r[0].length) : -1;
  }
  function AL(e, t, n) {
    var r = on.exec(t.slice(n, n + 1));
    return r ? ((e.u = +r[0]), n + r[0].length) : -1;
  }
  function ML(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.U = +r[0]), n + r[0].length) : -1;
  }
  function TL(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.V = +r[0]), n + r[0].length) : -1;
  }
  function EL(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.W = +r[0]), n + r[0].length) : -1;
  }
  function Q_(e, t, n) {
    var r = on.exec(t.slice(n, n + 4));
    return r ? ((e.y = +r[0]), n + r[0].length) : -1;
  }
  function ek(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r
      ? ((e.y = +r[0] + (+r[0] > 68 ? 1900 : 2e3)), n + r[0].length)
      : -1;
  }
  function CL(e, t, n) {
    var r = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n, n + 6));
    return r
      ? ((e.Z = r[1] ? 0 : -(r[2] + (r[3] || "00"))), n + r[0].length)
      : -1;
  }
  function NL(e, t, n) {
    var r = on.exec(t.slice(n, n + 1));
    return r ? ((e.q = r[0] * 3 - 3), n + r[0].length) : -1;
  }
  function DL(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.m = r[0] - 1), n + r[0].length) : -1;
  }
  function tk(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.d = +r[0]), n + r[0].length) : -1;
  }
  function IL(e, t, n) {
    var r = on.exec(t.slice(n, n + 3));
    return r ? ((e.m = 0), (e.d = +r[0]), n + r[0].length) : -1;
  }
  function nk(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.H = +r[0]), n + r[0].length) : -1;
  }
  function FL(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.M = +r[0]), n + r[0].length) : -1;
  }
  function qL(e, t, n) {
    var r = on.exec(t.slice(n, n + 2));
    return r ? ((e.S = +r[0]), n + r[0].length) : -1;
  }
  function LL(e, t, n) {
    var r = on.exec(t.slice(n, n + 3));
    return r ? ((e.L = +r[0]), n + r[0].length) : -1;
  }
  function OL(e, t, n) {
    var r = on.exec(t.slice(n, n + 6));
    return r ? ((e.L = Math.floor(r[0] / 1e3)), n + r[0].length) : -1;
  }
  function BL(e, t, n) {
    var r = vL.exec(t.slice(n, n + 1));
    return r ? n + r[0].length : -1;
  }
  function zL(e, t, n) {
    var r = on.exec(t.slice(n));
    return r ? ((e.Q = +r[0]), n + r[0].length) : -1;
  }
  function RL(e, t, n) {
    var r = on.exec(t.slice(n));
    return r ? ((e.s = +r[0]), n + r[0].length) : -1;
  }
  function rk(e, t) {
    return it(e.getDate(), t, 2);
  }
  function PL(e, t) {
    return it(e.getHours(), t, 2);
  }
  function $L(e, t) {
    return it(e.getHours() % 12 || 12, t, 2);
  }
  function HL(e, t) {
    return it(1 + di.count($n(e), e), t, 3);
  }
  function ak(e, t) {
    return it(e.getMilliseconds(), t, 3);
  }
  function UL(e, t) {
    return ak(e, t) + "000";
  }
  function VL(e, t) {
    return it(e.getMonth() + 1, t, 2);
  }
  function jL(e, t) {
    return it(e.getMinutes(), t, 2);
  }
  function GL(e, t) {
    return it(e.getSeconds(), t, 2);
  }
  function YL(e) {
    var t = e.getDay();
    return t === 0 ? 7 : t;
  }
  function XL(e, t) {
    return it(pi.count($n(e) - 1, e), t, 2);
  }
  function lk(e) {
    var t = e.getDay();
    return t >= 4 || t === 0 ? io(e) : io.ceil(e);
  }
  function WL(e, t) {
    return ((e = lk(e)), it(io.count($n(e), e) + ($n(e).getDay() === 4), t, 2));
  }
  function KL(e) {
    return e.getDay();
  }
  function ZL(e, t) {
    return it(as.count($n(e) - 1, e), t, 2);
  }
  function JL(e, t) {
    return it(e.getFullYear() % 100, t, 2);
  }
  function QL(e, t) {
    return ((e = lk(e)), it(e.getFullYear() % 100, t, 2));
  }
  function eO(e, t) {
    return it(e.getFullYear() % 1e4, t, 4);
  }
  function tO(e, t) {
    var n = e.getDay();
    return (
      (e = n >= 4 || n === 0 ? io(e) : io.ceil(e)),
      it(e.getFullYear() % 1e4, t, 4)
    );
  }
  function nO(e) {
    var t = e.getTimezoneOffset();
    return (
      (t > 0 ? "-" : ((t *= -1), "+")) +
      it((t / 60) | 0, "0", 2) +
      it(t % 60, "0", 2)
    );
  }
  function ik(e, t) {
    return it(e.getUTCDate(), t, 2);
  }
  function rO(e, t) {
    return it(e.getUTCHours(), t, 2);
  }
  function iO(e, t) {
    return it(e.getUTCHours() % 12 || 12, t, 2);
  }
  function oO(e, t) {
    return it(1 + Wo.count(Hn(e), e), t, 3);
  }
  function ck(e, t) {
    return it(e.getUTCMilliseconds(), t, 3);
  }
  function sO(e, t) {
    return ck(e, t) + "000";
  }
  function uO(e, t) {
    return it(e.getUTCMonth() + 1, t, 2);
  }
  function aO(e, t) {
    return it(e.getUTCMinutes(), t, 2);
  }
  function lO(e, t) {
    return it(e.getUTCSeconds(), t, 2);
  }
  function cO(e) {
    var t = e.getUTCDay();
    return t === 0 ? 7 : t;
  }
  function fO(e, t) {
    return it(mi.count(Hn(e) - 1, e), t, 2);
  }
  function fk(e) {
    var t = e.getUTCDay();
    return t >= 4 || t === 0 ? oo(e) : oo.ceil(e);
  }
  function hO(e, t) {
    return (
      (e = fk(e)),
      it(oo.count(Hn(e), e) + (Hn(e).getUTCDay() === 4), t, 2)
    );
  }
  function dO(e) {
    return e.getUTCDay();
  }
  function pO(e, t) {
    return it(cs.count(Hn(e) - 1, e), t, 2);
  }
  function mO(e, t) {
    return it(e.getUTCFullYear() % 100, t, 2);
  }
  function gO(e, t) {
    return ((e = fk(e)), it(e.getUTCFullYear() % 100, t, 2));
  }
  function bO(e, t) {
    return it(e.getUTCFullYear() % 1e4, t, 4);
  }
  function xO(e, t) {
    var n = e.getUTCDay();
    return (
      (e = n >= 4 || n === 0 ? oo(e) : oo.ceil(e)),
      it(e.getUTCFullYear() % 1e4, t, 4)
    );
  }
  function yO() {
    return "+0000";
  }
  function ok() {
    return "%";
  }
  function sk(e) {
    return +e;
  }
  function uk(e) {
    return Math.floor(+e / 1e3);
  }
  var Su, Ol, i3, ds, Bl;
  p1({
    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 p1(e) {
    return (
      (Su = Ll(e)),
      (Ol = Su.format),
      (i3 = Su.parse),
      (ds = Su.utcFormat),
      (Bl = Su.utcParse),
      Su
    );
  }
  var o3 = "%Y-%m-%dT%H:%M:%S.%LZ";
  function wO(e) {
    return e.toISOString();
  }
  var vO = Date.prototype.toISOString ? wO : ds(o3),
    hk = vO;
  function _O(e) {
    var t = new Date(e);
    return isNaN(t) ? null : t;
  }
  var kO = +new Date("2000-01-01T00:00:00.000Z") ? _O : Bl(o3),
    dk = kO;
  function SO(e) {
    return new Date(e);
  }
  function AO(e) {
    return e instanceof Date ? +e : +new Date(+e);
  }
  function m1(e, t, n, r, i, o, s, u, a, l) {
    var h = es(),
      m = h.invert,
      p = h.domain,
      b = l(".%L"),
      x = l(":%S"),
      y = l("%I:%M"),
      v = l("%I %p"),
      k = l("%a %d"),
      T = l("%b %d"),
      E = l("%B"),
      M = l("%Y");
    function D(I) {
      return (
        a(I) < I
          ? b
          : u(I) < I
            ? x
            : s(I) < I
              ? y
              : o(I) < I
                ? v
                : r(I) < I
                  ? i(I) < I
                    ? k
                    : T
                  : n(I) < I
                    ? E
                    : M
      )(I);
    }
    return (
      (h.invert = function (I) {
        return new Date(m(I));
      }),
      (h.domain = function (I) {
        return arguments.length ? p(Array.from(I, AO)) : p().map(SO);
      }),
      (h.ticks = function (I) {
        var P = p();
        return e(P[0], P[P.length - 1], I ?? 10);
      }),
      (h.tickFormat = function (I, P) {
        return P == null ? D : l(P);
      }),
      (h.nice = function (I) {
        var P = p();
        return (
          (!I || typeof I.range != "function") &&
            (I = t(P[0], P[P.length - 1], I ?? 10)),
          I ? p(Al(P, I)) : h
        );
      }),
      (h.copy = function () {
        return fi(h, m1(e, t, n, r, i, o, s, u, a, l));
      }),
      h
    );
  }
  function s3() {
    return Ct.apply(
      m1(h1, d1, $n, fs, pi, di, os, ns, Kn, Ol).domain([
        new Date(2e3, 0, 1),
        new Date(2e3, 0, 2),
      ]),
      arguments,
    );
  }
  function u3() {
    return Ct.apply(
      m1(c1, f1, Hn, hs, mi, Wo, ss, rs, Kn, ds).domain([
        Date.UTC(2e3, 0, 1),
        Date.UTC(2e3, 0, 2),
      ]),
      arguments,
    );
  }
  function g1() {
    var e = 0,
      t = 1,
      n,
      r,
      i,
      o,
      s = Zt,
      u = !1,
      a;
    function l(m) {
      return m == null || isNaN((m = +m))
        ? a
        : s(
            i === 0
              ? 0.5
              : ((m = (o(m) - n) * i), u ? Math.max(0, Math.min(1, m)) : m),
          );
    }
    ((l.domain = function (m) {
      return arguments.length
        ? (([e, t] = m),
          (n = o((e = +e))),
          (r = o((t = +t))),
          (i = n === r ? 0 : 1 / (r - n)),
          l)
        : [e, t];
    }),
      (l.clamp = function (m) {
        return arguments.length ? ((u = !!m), l) : u;
      }),
      (l.interpolator = function (m) {
        return arguments.length ? ((s = m), l) : s;
      }));
    function h(m) {
      return function (p) {
        var b, x;
        return arguments.length
          ? (([b, x] = p), (s = m(b, x)), l)
          : [s(0), s(1)];
      };
    }
    return (
      (l.range = h(bn)),
      (l.rangeRound = h(Fo)),
      (l.unknown = function (m) {
        return arguments.length ? ((a = m), l) : a;
      }),
      function (m) {
        return (
          (o = m),
          (n = m(e)),
          (r = m(t)),
          (i = n === r ? 0 : 1 / (r - n)),
          l
        );
      }
    );
  }
  function so(e, t) {
    return t
      .domain(e.domain())
      .interpolator(e.interpolator())
      .clamp(e.clamp())
      .unknown(e.unknown());
  }
  function b1() {
    var e = Dn(g1()(Zt));
    return (
      (e.copy = function () {
        return so(e, b1());
      }),
      hr.apply(e, arguments)
    );
  }
  function a3() {
    var e = Ml(g1()).domain([1, 10]);
    return (
      (e.copy = function () {
        return so(e, a3()).base(e.base());
      }),
      hr.apply(e, arguments)
    );
  }
  function l3() {
    var e = Tl(g1());
    return (
      (e.copy = function () {
        return so(e, l3()).constant(e.constant());
      }),
      hr.apply(e, arguments)
    );
  }
  function x1() {
    var e = El(g1());
    return (
      (e.copy = function () {
        return so(e, x1()).exponent(e.exponent());
      }),
      hr.apply(e, arguments)
    );
  }
  function pk() {
    return x1.apply(null, arguments).exponent(0.5);
  }
  function y1() {
    var e = [],
      t = Zt;
    function n(r) {
      if (r != null && !isNaN((r = +r)))
        return t((On(e, r, 1) - 1) / (e.length - 1));
    }
    return (
      (n.domain = function (r) {
        if (!arguments.length) return e.slice();
        e = [];
        for (let i of r) i != null && !isNaN((i = +i)) && e.push(i);
        return (e.sort(je), n);
      }),
      (n.interpolator = function (r) {
        return arguments.length ? ((t = r), n) : t;
      }),
      (n.range = function () {
        return e.map((r, i) => t(i / (e.length - 1)));
      }),
      (n.quantiles = function (r) {
        return Array.from({ length: r + 1 }, (i, o) => Zr(e, o / r));
      }),
      (n.copy = function () {
        return y1(t).domain(e);
      }),
      hr.apply(n, arguments)
    );
  }
  function w1() {
    var e = 0,
      t = 0.5,
      n = 1,
      r = 1,
      i,
      o,
      s,
      u,
      a,
      l = Zt,
      h,
      m = !1,
      p;
    function b(y) {
      return isNaN((y = +y))
        ? p
        : ((y = 0.5 + ((y = +h(y)) - o) * (r * y < r * o ? u : a)),
          l(m ? Math.max(0, Math.min(1, y)) : y));
    }
    ((b.domain = function (y) {
      return arguments.length
        ? (([e, t, n] = y),
          (i = h((e = +e))),
          (o = h((t = +t))),
          (s = h((n = +n))),
          (u = i === o ? 0 : 0.5 / (o - i)),
          (a = o === s ? 0 : 0.5 / (s - o)),
          (r = o < i ? -1 : 1),
          b)
        : [e, t, n];
    }),
      (b.clamp = function (y) {
        return arguments.length ? ((m = !!y), b) : m;
      }),
      (b.interpolator = function (y) {
        return arguments.length ? ((l = y), b) : l;
      }));
    function x(y) {
      return function (v) {
        var k, T, E;
        return arguments.length
          ? (([k, T, E] = v), (l = Fa(y, [k, T, E])), b)
          : [l(0), l(0.5), l(1)];
      };
    }
    return (
      (b.range = x(bn)),
      (b.rangeRound = x(Fo)),
      (b.unknown = function (y) {
        return arguments.length ? ((p = y), b) : p;
      }),
      function (y) {
        return (
          (h = y),
          (i = y(e)),
          (o = y(t)),
          (s = y(n)),
          (u = i === o ? 0 : 0.5 / (o - i)),
          (a = o === s ? 0 : 0.5 / (s - o)),
          (r = o < i ? -1 : 1),
          b
        );
      }
    );
  }
  function v1() {
    var e = Dn(w1()(Zt));
    return (
      (e.copy = function () {
        return so(e, v1());
      }),
      hr.apply(e, arguments)
    );
  }
  function c3() {
    var e = Ml(w1()).domain([0.1, 1, 10]);
    return (
      (e.copy = function () {
        return so(e, c3()).base(e.base());
      }),
      hr.apply(e, arguments)
    );
  }
  function f3() {
    var e = Tl(w1());
    return (
      (e.copy = function () {
        return so(e, f3()).constant(e.constant());
      }),
      hr.apply(e, arguments)
    );
  }
  function _1() {
    var e = El(w1());
    return (
      (e.copy = function () {
        return so(e, _1()).exponent(e.exponent());
      }),
      hr.apply(e, arguments)
    );
  }
  function mk() {
    return _1.apply(null, arguments).exponent(0.5);
  }
  function me(e) {
    for (var t = (e.length / 6) | 0, n = new Array(t), r = 0; r < t; )
      n[r] = "#" + e.slice(r * 6, ++r * 6);
    return n;
  }
  var k1 = me("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");
  var gk = me("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666");
  var bk = me("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666");
  var xk = me("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0");
  var yk = me(
    "a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",
  );
  var wk = me("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2");
  var vk = me("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc");
  var _k = me("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");
  var kk = me("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3");
  var Sk = me(
    "8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f",
  );
  var Ak = me("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
  var Me = (e) => yf(e[e.length - 1]);
  var h3 = new Array(3)
      .concat(
        "d8b365f5f5f55ab4ac",
        "a6611adfc27d80cdc1018571",
        "a6611adfc27df5f5f580cdc1018571",
        "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
        "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
        "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
        "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
        "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
        "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30",
      )
      .map(me),
    Mk = Me(h3);
  var d3 = new Array(3)
      .concat(
        "af8dc3f7f7f77fbf7b",
        "7b3294c2a5cfa6dba0008837",
        "7b3294c2a5cff7f7f7a6dba0008837",
        "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
        "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
        "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
        "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
        "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
        "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b",
      )
      .map(me),
    Tk = Me(d3);
  var p3 = new Array(3)
      .concat(
        "e9a3c9f7f7f7a1d76a",
        "d01c8bf1b6dab8e1864dac26",
        "d01c8bf1b6daf7f7f7b8e1864dac26",
        "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
        "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
        "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
        "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
        "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
        "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419",
      )
      .map(me),
    Ek = Me(p3);
  var m3 = new Array(3)
      .concat(
        "998ec3f7f7f7f1a340",
        "5e3c99b2abd2fdb863e66101",
        "5e3c99b2abd2f7f7f7fdb863e66101",
        "542788998ec3d8daebfee0b6f1a340b35806",
        "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
        "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
        "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
        "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
        "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08",
      )
      .map(me),
    Ck = Me(m3);
  var g3 = new Array(3)
      .concat(
        "ef8a62f7f7f767a9cf",
        "ca0020f4a58292c5de0571b0",
        "ca0020f4a582f7f7f792c5de0571b0",
        "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
        "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
        "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
        "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
        "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
        "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061",
      )
      .map(me),
    Nk = Me(g3);
  var b3 = new Array(3)
      .concat(
        "ef8a62ffffff999999",
        "ca0020f4a582bababa404040",
        "ca0020f4a582ffffffbababa404040",
        "b2182bef8a62fddbc7e0e0e09999994d4d4d",
        "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
        "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
        "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
        "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
        "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a",
      )
      .map(me),
    Dk = Me(b3);
  var x3 = new Array(3)
      .concat(
        "fc8d59ffffbf91bfdb",
        "d7191cfdae61abd9e92c7bb6",
        "d7191cfdae61ffffbfabd9e92c7bb6",
        "d73027fc8d59fee090e0f3f891bfdb4575b4",
        "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
        "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
        "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
        "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
        "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695",
      )
      .map(me),
    Ik = Me(x3);
  var y3 = new Array(3)
      .concat(
        "fc8d59ffffbf91cf60",
        "d7191cfdae61a6d96a1a9641",
        "d7191cfdae61ffffbfa6d96a1a9641",
        "d73027fc8d59fee08bd9ef8b91cf601a9850",
        "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
        "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
        "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
        "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
        "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837",
      )
      .map(me),
    Fk = Me(y3);
  var w3 = new Array(3)
      .concat(
        "fc8d59ffffbf99d594",
        "d7191cfdae61abdda42b83ba",
        "d7191cfdae61ffffbfabdda42b83ba",
        "d53e4ffc8d59fee08be6f59899d5943288bd",
        "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
        "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
        "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
        "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
        "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2",
      )
      .map(me),
    qk = Me(w3);
  var v3 = new Array(3)
      .concat(
        "e5f5f999d8c92ca25f",
        "edf8fbb2e2e266c2a4238b45",
        "edf8fbb2e2e266c2a42ca25f006d2c",
        "edf8fbccece699d8c966c2a42ca25f006d2c",
        "edf8fbccece699d8c966c2a441ae76238b45005824",
        "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
        "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b",
      )
      .map(me),
    Lk = Me(v3);
  var _3 = new Array(3)
      .concat(
        "e0ecf49ebcda8856a7",
        "edf8fbb3cde38c96c688419d",
        "edf8fbb3cde38c96c68856a7810f7c",
        "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
        "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
        "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
        "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b",
      )
      .map(me),
    Ok = Me(_3);
  var k3 = new Array(3)
      .concat(
        "e0f3dba8ddb543a2ca",
        "f0f9e8bae4bc7bccc42b8cbe",
        "f0f9e8bae4bc7bccc443a2ca0868ac",
        "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
        "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
        "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
        "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081",
      )
      .map(me),
    Bk = Me(k3);
  var S3 = new Array(3)
      .concat(
        "fee8c8fdbb84e34a33",
        "fef0d9fdcc8afc8d59d7301f",
        "fef0d9fdcc8afc8d59e34a33b30000",
        "fef0d9fdd49efdbb84fc8d59e34a33b30000",
        "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
        "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
        "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000",
      )
      .map(me),
    zk = Me(S3);
  var A3 = new Array(3)
      .concat(
        "ece2f0a6bddb1c9099",
        "f6eff7bdc9e167a9cf02818a",
        "f6eff7bdc9e167a9cf1c9099016c59",
        "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
        "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
        "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
        "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636",
      )
      .map(me),
    Rk = Me(A3);
  var M3 = new Array(3)
      .concat(
        "ece7f2a6bddb2b8cbe",
        "f1eef6bdc9e174a9cf0570b0",
        "f1eef6bdc9e174a9cf2b8cbe045a8d",
        "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
        "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
        "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
        "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858",
      )
      .map(me),
    Pk = Me(M3);
  var T3 = new Array(3)
      .concat(
        "e7e1efc994c7dd1c77",
        "f1eef6d7b5d8df65b0ce1256",
        "f1eef6d7b5d8df65b0dd1c77980043",
        "f1eef6d4b9dac994c7df65b0dd1c77980043",
        "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
        "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
        "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f",
      )
      .map(me),
    $k = Me(T3);
  var E3 = new Array(3)
      .concat(
        "fde0ddfa9fb5c51b8a",
        "feebe2fbb4b9f768a1ae017e",
        "feebe2fbb4b9f768a1c51b8a7a0177",
        "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
        "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
        "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
        "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a",
      )
      .map(me),
    Hk = Me(E3);
  var C3 = new Array(3)
      .concat(
        "edf8b17fcdbb2c7fb8",
        "ffffcca1dab441b6c4225ea8",
        "ffffcca1dab441b6c42c7fb8253494",
        "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
        "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
        "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
        "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58",
      )
      .map(me),
    Uk = Me(C3);
  var N3 = new Array(3)
      .concat(
        "f7fcb9addd8e31a354",
        "ffffccc2e69978c679238443",
        "ffffccc2e69978c67931a354006837",
        "ffffccd9f0a3addd8e78c67931a354006837",
        "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
        "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
        "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529",
      )
      .map(me),
    Vk = Me(N3);
  var D3 = new Array(3)
      .concat(
        "fff7bcfec44fd95f0e",
        "ffffd4fed98efe9929cc4c02",
        "ffffd4fed98efe9929d95f0e993404",
        "ffffd4fee391fec44ffe9929d95f0e993404",
        "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
        "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
        "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506",
      )
      .map(me),
    jk = Me(D3);
  var I3 = new Array(3)
      .concat(
        "ffeda0feb24cf03b20",
        "ffffb2fecc5cfd8d3ce31a1c",
        "ffffb2fecc5cfd8d3cf03b20bd0026",
        "ffffb2fed976feb24cfd8d3cf03b20bd0026",
        "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
        "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
        "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026",
      )
      .map(me),
    Gk = Me(I3);
  var F3 = new Array(3)
      .concat(
        "deebf79ecae13182bd",
        "eff3ffbdd7e76baed62171b5",
        "eff3ffbdd7e76baed63182bd08519c",
        "eff3ffc6dbef9ecae16baed63182bd08519c",
        "eff3ffc6dbef9ecae16baed64292c62171b5084594",
        "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
        "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b",
      )
      .map(me),
    Yk = Me(F3);
  var q3 = new Array(3)
      .concat(
        "e5f5e0a1d99b31a354",
        "edf8e9bae4b374c476238b45",
        "edf8e9bae4b374c47631a354006d2c",
        "edf8e9c7e9c0a1d99b74c47631a354006d2c",
        "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
        "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
        "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b",
      )
      .map(me),
    Xk = Me(q3);
  var L3 = new Array(3)
      .concat(
        "f0f0f0bdbdbd636363",
        "f7f7f7cccccc969696525252",
        "f7f7f7cccccc969696636363252525",
        "f7f7f7d9d9d9bdbdbd969696636363252525",
        "f7f7f7d9d9d9bdbdbd969696737373525252252525",
        "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
        "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000",
      )
      .map(me),
    Wk = Me(L3);
  var O3 = new Array(3)
      .concat(
        "efedf5bcbddc756bb1",
        "f2f0f7cbc9e29e9ac86a51a3",
        "f2f0f7cbc9e29e9ac8756bb154278f",
        "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
        "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
        "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
        "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d",
      )
      .map(me),
    Kk = Me(O3);
  var B3 = new Array(3)
      .concat(
        "fee0d2fc9272de2d26",
        "fee5d9fcae91fb6a4acb181d",
        "fee5d9fcae91fb6a4ade2d26a50f15",
        "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
        "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
        "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
        "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d",
      )
      .map(me),
    Zk = Me(B3);
  var z3 = new Array(3)
      .concat(
        "fee6cefdae6be6550d",
        "feeddefdbe85fd8d3cd94701",
        "feeddefdbe85fd8d3ce6550da63603",
        "feeddefdd0a2fdae6bfd8d3ce6550da63603",
        "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
        "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
        "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704",
      )
      .map(me),
    Jk = Me(z3);
  function Qk(e) {
    return (
      (e = Math.max(0, Math.min(1, e))),
      "rgb(" +
        Math.max(
          0,
          Math.min(
            255,
            Math.round(
              -4.54 -
                e *
                  (35.34 -
                    e * (2381.73 - e * (6402.7 - e * (7024.72 - e * 2710.57)))),
            ),
          ),
        ) +
        ", " +
        Math.max(
          0,
          Math.min(
            255,
            Math.round(
              32.49 +
                e *
                  (170.73 +
                    e * (52.82 - e * (131.46 - e * (176.58 - e * 67.37)))),
            ),
          ),
        ) +
        ", " +
        Math.max(
          0,
          Math.min(
            255,
            Math.round(
              81.24 +
                e *
                  (442.36 -
                    e *
                      (2482.43 - e * (6167.24 - e * (6614.94 - e * 2475.67)))),
            ),
          ),
        ) +
        ")"
    );
  }
  var eS = E0(gn(300, 0.5, 0), gn(-240, 0.5, 1));
  var tS = E0(gn(-100, 0.75, 0.35), gn(80, 1.5, 0.8)),
    nS = E0(gn(260, 0.75, 0.35), gn(80, 1.5, 0.8)),
    S1 = gn();
  function rS(e) {
    (e < 0 || e > 1) && (e -= Math.floor(e));
    var t = Math.abs(e - 0.5);
    return (
      (S1.h = 360 * e - 100),
      (S1.s = 1.5 - 1.5 * t),
      (S1.l = 0.8 - 0.9 * t),
      S1 + ""
    );
  }
  var A1 = Yi(),
    MO = Math.PI / 3,
    TO = (Math.PI * 2) / 3;
  function iS(e) {
    var t;
    return (
      (e = (0.5 - e) * Math.PI),
      (A1.r = 255 * (t = Math.sin(e)) * t),
      (A1.g = 255 * (t = Math.sin(e + MO)) * t),
      (A1.b = 255 * (t = Math.sin(e + TO)) * t),
      A1 + ""
    );
  }
  function oS(e) {
    return (
      (e = Math.max(0, Math.min(1, e))),
      "rgb(" +
        Math.max(
          0,
          Math.min(
            255,
            Math.round(
              34.61 +
                e *
                  (1172.33 -
                    e *
                      (10793.56 -
                        e * (33300.12 - e * (38394.49 - e * 14825.05)))),
            ),
          ),
        ) +
        ", " +
        Math.max(
          0,
          Math.min(
            255,
            Math.round(
              23.31 +
                e *
                  (557.33 +
                    e * (1225.33 - e * (3574.96 - e * (1073.77 + e * 707.56)))),
            ),
          ),
        ) +
        ", " +
        Math.max(
          0,
          Math.min(
            255,
            Math.round(
              27.2 +
                e *
                  (3211.1 -
                    e *
                      (15327.97 - e * (27814 - e * (22569.18 - e * 6838.66)))),
            ),
          ),
        ) +
        ")"
    );
  }
  function M1(e) {
    var t = e.length;
    return function (n) {
      return e[Math.max(0, Math.min(t - 1, Math.floor(n * t)))];
    };
  }
  var sS = M1(
      me(
        "44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725",
      ),
    ),
    uS = M1(
      me(
        "00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf",
      ),
    ),
    aS = M1(
      me(
        "00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4",
      ),
    ),
    lS = M1(
      me(
        "0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921",
      ),
    );
  function Ie(e) {
    return function () {
      return e;
    };
  }
  var R3 = Math.abs,
    pn = Math.atan2,
    qr = Math.cos,
    cS = Math.max,
    gi = Math.min,
    vn = Math.sin,
    $e = Math.sqrt,
    sn = 1e-12,
    Lr = Math.PI,
    zl = Lr / 2,
    dr = 2 * Lr;
  function fS(e) {
    return e > 1 ? 0 : e < -1 ? Lr : Math.acos(e);
  }
  function P3(e) {
    return e >= 1 ? zl : e <= -1 ? -zl : Math.asin(e);
  }
  function bi(e) {
    let t = 3;
    return (
      (e.digits = function (n) {
        if (!arguments.length) return t;
        if (n == null) t = null;
        else {
          let r = Math.floor(n);
          if (!(r >= 0)) throw new RangeError(`invalid digits: ${n}`);
          t = r;
        }
        return e;
      }),
      () => new Ki(t)
    );
  }
  function EO(e) {
    return e.innerRadius;
  }
  function CO(e) {
    return e.outerRadius;
  }
  function NO(e) {
    return e.startAngle;
  }
  function DO(e) {
    return e.endAngle;
  }
  function IO(e) {
    return e && e.padAngle;
  }
  function FO(e, t, n, r, i, o, s, u) {
    var a = n - e,
      l = r - t,
      h = s - i,
      m = u - o,
      p = m * a - h * l;
    if (!(p * p < sn))
      return ((p = (h * (t - o) - m * (e - i)) / p), [e + p * a, t + p * l]);
  }
  function T1(e, t, n, r, i, o, s) {
    var u = e - n,
      a = t - r,
      l = (s ? o : -o) / $e(u * u + a * a),
      h = l * a,
      m = -l * u,
      p = e + h,
      b = t + m,
      x = n + h,
      y = r + m,
      v = (p + x) / 2,
      k = (b + y) / 2,
      T = x - p,
      E = y - b,
      M = T * T + E * E,
      D = i - o,
      I = p * y - x * b,
      P = (E < 0 ? -1 : 1) * $e(cS(0, D * D * M - I * I)),
      O = (I * E - T * P) / M,
      H = (-I * T - E * P) / M,
      U = (I * E + T * P) / M,
      j = (-I * T + E * P) / M,
      Z = O - v,
      Q = H - k,
      B = U - v,
      V = j - k;
    return (
      Z * Z + Q * Q > B * B + V * V && ((O = U), (H = j)),
      {
        cx: O,
        cy: H,
        x01: -h,
        y01: -m,
        x11: O * (i / D - 1),
        y11: H * (i / D - 1),
      }
    );
  }
  function hS() {
    var e = EO,
      t = CO,
      n = Ie(0),
      r = null,
      i = NO,
      o = DO,
      s = IO,
      u = null,
      a = bi(l);
    function l() {
      var h,
        m,
        p = +e.apply(this, arguments),
        b = +t.apply(this, arguments),
        x = i.apply(this, arguments) - zl,
        y = o.apply(this, arguments) - zl,
        v = R3(y - x),
        k = y > x;
      if ((u || (u = h = a()), b < p && ((m = b), (b = p), (p = m)), !(b > sn)))
        u.moveTo(0, 0);
      else if (v > dr - sn)
        (u.moveTo(b * qr(x), b * vn(x)),
          u.arc(0, 0, b, x, y, !k),
          p > sn && (u.moveTo(p * qr(y), p * vn(y)), u.arc(0, 0, p, y, x, k)));
      else {
        var T = x,
          E = y,
          M = x,
          D = y,
          I = v,
          P = v,
          O = s.apply(this, arguments) / 2,
          H = O > sn && (r ? +r.apply(this, arguments) : $e(p * p + b * b)),
          U = gi(R3(b - p) / 2, +n.apply(this, arguments)),
          j = U,
          Z = U,
          Q,
          B;
        if (H > sn) {
          var V = P3((H / p) * vn(O)),
            G = P3((H / b) * vn(O));
          ((I -= V * 2) > sn
            ? ((V *= k ? 1 : -1), (M += V), (D -= V))
            : ((I = 0), (M = D = (x + y) / 2)),
            (P -= G * 2) > sn
              ? ((G *= k ? 1 : -1), (T += G), (E -= G))
              : ((P = 0), (T = E = (x + y) / 2)));
        }
        var ne = b * qr(T),
          te = b * vn(T),
          ie = p * qr(D),
          ce = p * vn(D);
        if (U > sn) {
          var xe = b * qr(E),
            X = b * vn(E),
            he = p * qr(M),
            Ae = p * vn(M),
            Be;
          if (v < Lr)
            if ((Be = FO(ne, te, he, Ae, xe, X, ie, ce))) {
              var kt = ne - Be[0],
                Ke = te - Be[1],
                Nt = xe - Be[0],
                ge = X - Be[1],
                qe =
                  1 /
                  vn(
                    fS(
                      (kt * Nt + Ke * ge) /
                        ($e(kt * kt + Ke * Ke) * $e(Nt * Nt + ge * ge)),
                    ) / 2,
                  ),
                Pe = $e(Be[0] * Be[0] + Be[1] * Be[1]);
              ((j = gi(U, (p - Pe) / (qe - 1))),
                (Z = gi(U, (b - Pe) / (qe + 1))));
            } else j = Z = 0;
        }
        (P > sn
          ? Z > sn
            ? ((Q = T1(he, Ae, ne, te, b, Z, k)),
              (B = T1(xe, X, ie, ce, b, Z, k)),
              u.moveTo(Q.cx + Q.x01, Q.cy + Q.y01),
              Z < U
                ? u.arc(Q.cx, Q.cy, Z, pn(Q.y01, Q.x01), pn(B.y01, B.x01), !k)
                : (u.arc(Q.cx, Q.cy, Z, pn(Q.y01, Q.x01), pn(Q.y11, Q.x11), !k),
                  u.arc(
                    0,
                    0,
                    b,
                    pn(Q.cy + Q.y11, Q.cx + Q.x11),
                    pn(B.cy + B.y11, B.cx + B.x11),
                    !k,
                  ),
                  u.arc(B.cx, B.cy, Z, pn(B.y11, B.x11), pn(B.y01, B.x01), !k)))
            : (u.moveTo(ne, te), u.arc(0, 0, b, T, E, !k))
          : u.moveTo(ne, te),
          !(p > sn) || !(I > sn)
            ? u.lineTo(ie, ce)
            : j > sn
              ? ((Q = T1(ie, ce, xe, X, p, -j, k)),
                (B = T1(ne, te, he, Ae, p, -j, k)),
                u.lineTo(Q.cx + Q.x01, Q.cy + Q.y01),
                j < U
                  ? u.arc(Q.cx, Q.cy, j, pn(Q.y01, Q.x01), pn(B.y01, B.x01), !k)
                  : (u.arc(
                      Q.cx,
                      Q.cy,
                      j,
                      pn(Q.y01, Q.x01),
                      pn(Q.y11, Q.x11),
                      !k,
                    ),
                    u.arc(
                      0,
                      0,
                      p,
                      pn(Q.cy + Q.y11, Q.cx + Q.x11),
                      pn(B.cy + B.y11, B.cx + B.x11),
                      k,
                    ),
                    u.arc(
                      B.cx,
                      B.cy,
                      j,
                      pn(B.y11, B.x11),
                      pn(B.y01, B.x01),
                      !k,
                    )))
              : u.arc(0, 0, p, D, M, k));
      }
      if ((u.closePath(), h)) return ((u = null), h + "" || null);
    }
    return (
      (l.centroid = function () {
        var h = (+e.apply(this, arguments) + +t.apply(this, arguments)) / 2,
          m =
            (+i.apply(this, arguments) + +o.apply(this, arguments)) / 2 -
            Lr / 2;
        return [qr(m) * h, vn(m) * h];
      }),
      (l.innerRadius = function (h) {
        return arguments.length
          ? ((e = typeof h == "function" ? h : Ie(+h)), l)
          : e;
      }),
      (l.outerRadius = function (h) {
        return arguments.length
          ? ((t = typeof h == "function" ? h : Ie(+h)), l)
          : t;
      }),
      (l.cornerRadius = function (h) {
        return arguments.length
          ? ((n = typeof h == "function" ? h : Ie(+h)), l)
          : n;
      }),
      (l.padRadius = function (h) {
        return arguments.length
          ? ((r = h == null ? null : typeof h == "function" ? h : Ie(+h)), l)
          : r;
      }),
      (l.startAngle = function (h) {
        return arguments.length
          ? ((i = typeof h == "function" ? h : Ie(+h)), l)
          : i;
      }),
      (l.endAngle = function (h) {
        return arguments.length
          ? ((o = typeof h == "function" ? h : Ie(+h)), l)
          : o;
      }),
      (l.padAngle = function (h) {
        return arguments.length
          ? ((s = typeof h == "function" ? h : Ie(+h)), l)
          : s;
      }),
      (l.context = function (h) {
        return arguments.length ? ((u = h ?? null), l) : u;
      }),
      l
    );
  }
  var dS = Array.prototype.slice;
  function Ko(e) {
    return typeof e == "object" && "length" in e ? e : Array.from(e);
  }
  function pS(e) {
    this._context = e;
  }
  pS.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 (e, t) {
      switch (((e = +e), (t = +t), this._point)) {
        case 0:
          ((this._point = 1),
            this._line
              ? this._context.lineTo(e, t)
              : this._context.moveTo(e, t));
          break;
        case 1:
          this._point = 2;
        default:
          this._context.lineTo(e, t);
          break;
      }
    },
  };
  function Zo(e) {
    return new pS(e);
  }
  function Au(e) {
    return e[0];
  }
  function Mu(e) {
    return e[1];
  }
  function Tu(e, t) {
    var n = Ie(!0),
      r = null,
      i = Zo,
      o = null,
      s = bi(u);
    ((e = typeof e == "function" ? e : e === void 0 ? Au : Ie(e)),
      (t = typeof t == "function" ? t : t === void 0 ? Mu : Ie(t)));
    function u(a) {
      var l,
        h = (a = Ko(a)).length,
        m,
        p = !1,
        b;
      for (r == null && (o = i((b = s()))), l = 0; l <= h; ++l)
        (!(l < h && n((m = a[l]), l, a)) === p &&
          ((p = !p) ? o.lineStart() : o.lineEnd()),
          p && o.point(+e(m, l, a), +t(m, l, a)));
      if (b) return ((o = null), b + "" || null);
    }
    return (
      (u.x = function (a) {
        return arguments.length
          ? ((e = typeof a == "function" ? a : Ie(+a)), u)
          : e;
      }),
      (u.y = function (a) {
        return arguments.length
          ? ((t = typeof a == "function" ? a : Ie(+a)), u)
          : t;
      }),
      (u.defined = function (a) {
        return arguments.length
          ? ((n = typeof a == "function" ? a : Ie(!!a)), u)
          : n;
      }),
      (u.curve = function (a) {
        return arguments.length ? ((i = a), r != null && (o = i(r)), u) : i;
      }),
      (u.context = function (a) {
        return arguments.length
          ? (a == null ? (r = o = null) : (o = i((r = a))), u)
          : r;
      }),
      u
    );
  }
  function E1(e, t, n) {
    var r = null,
      i = Ie(!0),
      o = null,
      s = Zo,
      u = null,
      a = bi(l);
    ((e = typeof e == "function" ? e : e === void 0 ? Au : Ie(+e)),
      (t = typeof t == "function" ? t : t === void 0 ? Ie(0) : Ie(+t)),
      (n = typeof n == "function" ? n : n === void 0 ? Mu : Ie(+n)));
    function l(m) {
      var p,
        b,
        x,
        y = (m = Ko(m)).length,
        v,
        k = !1,
        T,
        E = new Array(y),
        M = new Array(y);
      for (o == null && (u = s((T = a()))), p = 0; p <= y; ++p) {
        if (!(p < y && i((v = m[p]), p, m)) === k)
          if ((k = !k)) ((b = p), u.areaStart(), u.lineStart());
          else {
            for (u.lineEnd(), u.lineStart(), x = p - 1; x >= b; --x)
              u.point(E[x], M[x]);
            (u.lineEnd(), u.areaEnd());
          }
        k &&
          ((E[p] = +e(v, p, m)),
          (M[p] = +t(v, p, m)),
          u.point(r ? +r(v, p, m) : E[p], n ? +n(v, p, m) : M[p]));
      }
      if (T) return ((u = null), T + "" || null);
    }
    function h() {
      return Tu().defined(i).curve(s).context(o);
    }
    return (
      (l.x = function (m) {
        return arguments.length
          ? ((e = typeof m == "function" ? m : Ie(+m)), (r = null), l)
          : e;
      }),
      (l.x0 = function (m) {
        return arguments.length
          ? ((e = typeof m == "function" ? m : Ie(+m)), l)
          : e;
      }),
      (l.x1 = function (m) {
        return arguments.length
          ? ((r = m == null ? null : typeof m == "function" ? m : Ie(+m)), l)
          : r;
      }),
      (l.y = function (m) {
        return arguments.length
          ? ((t = typeof m == "function" ? m : Ie(+m)), (n = null), l)
          : t;
      }),
      (l.y0 = function (m) {
        return arguments.length
          ? ((t = typeof m == "function" ? m : Ie(+m)), l)
          : t;
      }),
      (l.y1 = function (m) {
        return arguments.length
          ? ((n = m == null ? null : typeof m == "function" ? m : Ie(+m)), l)
          : n;
      }),
      (l.lineX0 = l.lineY0 =
        function () {
          return h().x(e).y(t);
        }),
      (l.lineY1 = function () {
        return h().x(e).y(n);
      }),
      (l.lineX1 = function () {
        return h().x(r).y(t);
      }),
      (l.defined = function (m) {
        return arguments.length
          ? ((i = typeof m == "function" ? m : Ie(!!m)), l)
          : i;
      }),
      (l.curve = function (m) {
        return arguments.length ? ((s = m), o != null && (u = s(o)), l) : s;
      }),
      (l.context = function (m) {
        return arguments.length
          ? (m == null ? (o = u = null) : (u = s((o = m))), l)
          : o;
      }),
      l
    );
  }
  function mS(e, t) {
    return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
  }
  function gS(e) {
    return e;
  }
  function bS() {
    var e = gS,
      t = mS,
      n = null,
      r = Ie(0),
      i = Ie(dr),
      o = Ie(0);
    function s(u) {
      var a,
        l = (u = Ko(u)).length,
        h,
        m,
        p = 0,
        b = new Array(l),
        x = new Array(l),
        y = +r.apply(this, arguments),
        v = Math.min(dr, Math.max(-dr, i.apply(this, arguments) - y)),
        k,
        T = Math.min(Math.abs(v) / l, o.apply(this, arguments)),
        E = T * (v < 0 ? -1 : 1),
        M;
      for (a = 0; a < l; ++a)
        (M = x[(b[a] = a)] = +e(u[a], a, u)) > 0 && (p += M);
      for (
        t != null
          ? b.sort(function (D, I) {
              return t(x[D], x[I]);
            })
          : n != null &&
            b.sort(function (D, I) {
              return n(u[D], u[I]);
            }),
          a = 0,
          m = p ? (v - l * E) / p : 0;
        a < l;
        ++a, y = k
      )
        ((h = b[a]),
          (M = x[h]),
          (k = y + (M > 0 ? M * m : 0) + E),
          (x[h] = {
            data: u[h],
            index: a,
            value: M,
            startAngle: y,
            endAngle: k,
            padAngle: T,
          }));
      return x;
    }
    return (
      (s.value = function (u) {
        return arguments.length
          ? ((e = typeof u == "function" ? u : Ie(+u)), s)
          : e;
      }),
      (s.sortValues = function (u) {
        return arguments.length ? ((t = u), (n = null), s) : t;
      }),
      (s.sort = function (u) {
        return arguments.length ? ((n = u), (t = null), s) : n;
      }),
      (s.startAngle = function (u) {
        return arguments.length
          ? ((r = typeof u == "function" ? u : Ie(+u)), s)
          : r;
      }),
      (s.endAngle = function (u) {
        return arguments.length
          ? ((i = typeof u == "function" ? u : Ie(+u)), s)
          : i;
      }),
      (s.padAngle = function (u) {
        return arguments.length
          ? ((o = typeof u == "function" ? u : Ie(+u)), s)
          : o;
      }),
      s
    );
  }
  var C1 = Eu(Zo);
  function xS(e) {
    this._curve = e;
  }
  xS.prototype = {
    areaStart: function () {
      this._curve.areaStart();
    },
    areaEnd: function () {
      this._curve.areaEnd();
    },
    lineStart: function () {
      this._curve.lineStart();
    },
    lineEnd: function () {
      this._curve.lineEnd();
    },
    point: function (e, t) {
      this._curve.point(t * Math.sin(e), t * -Math.cos(e));
    },
  };
  function Eu(e) {
    function t(n) {
      return new xS(e(n));
    }
    return ((t._curve = e), t);
  }
  function Cu(e) {
    var t = e.curve;
    return (
      (e.angle = e.x),
      delete e.x,
      (e.radius = e.y),
      delete e.y,
      (e.curve = function (n) {
        return arguments.length ? t(Eu(n)) : t()._curve;
      }),
      e
    );
  }
  function $3() {
    return Cu(Tu().curve(C1));
  }
  function H3() {
    var e = E1().curve(C1),
      t = e.curve,
      n = e.lineX0,
      r = e.lineX1,
      i = e.lineY0,
      o = e.lineY1;
    return (
      (e.angle = e.x),
      delete e.x,
      (e.startAngle = e.x0),
      delete e.x0,
      (e.endAngle = e.x1),
      delete e.x1,
      (e.radius = e.y),
      delete e.y,
      (e.innerRadius = e.y0),
      delete e.y0,
      (e.outerRadius = e.y1),
      delete e.y1,
      (e.lineStartAngle = function () {
        return Cu(n());
      }),
      delete e.lineX0,
      (e.lineEndAngle = function () {
        return Cu(r());
      }),
      delete e.lineX1,
      (e.lineInnerRadius = function () {
        return Cu(i());
      }),
      delete e.lineY0,
      (e.lineOuterRadius = function () {
        return Cu(o());
      }),
      delete e.lineY1,
      (e.curve = function (s) {
        return arguments.length ? t(Eu(s)) : t()._curve;
      }),
      e
    );
  }
  function ps(e, t) {
    return [(t = +t) * Math.cos((e -= Math.PI / 2)), t * Math.sin(e)];
  }
  var N1 = class {
      constructor(t, n) {
        ((this._context = t), (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(t, n) {
        switch (((t = +t), (n = +n), this._point)) {
          case 0: {
            ((this._point = 1),
              this._line
                ? this._context.lineTo(t, n)
                : this._context.moveTo(t, n));
            break;
          }
          case 1:
            this._point = 2;
          default: {
            this._x
              ? this._context.bezierCurveTo(
                  (this._x0 = (this._x0 + t) / 2),
                  this._y0,
                  this._x0,
                  n,
                  t,
                  n,
                )
              : this._context.bezierCurveTo(
                  this._x0,
                  (this._y0 = (this._y0 + n) / 2),
                  t,
                  this._y0,
                  t,
                  n,
                );
            break;
          }
        }
        ((this._x0 = t), (this._y0 = n));
      }
    },
    U3 = class {
      constructor(t) {
        this._context = t;
      }
      lineStart() {
        this._point = 0;
      }
      lineEnd() {}
      point(t, n) {
        if (((t = +t), (n = +n), this._point === 0)) this._point = 1;
        else {
          let r = ps(this._x0, this._y0),
            i = ps(this._x0, (this._y0 = (this._y0 + n) / 2)),
            o = ps(t, this._y0),
            s = ps(t, n);
          (this._context.moveTo(...r),
            this._context.bezierCurveTo(...i, ...o, ...s));
        }
        ((this._x0 = t), (this._y0 = n));
      }
    };
  function D1(e) {
    return new N1(e, !0);
  }
  function I1(e) {
    return new N1(e, !1);
  }
  function yS(e) {
    return new U3(e);
  }
  function qO(e) {
    return e.source;
  }
  function LO(e) {
    return e.target;
  }
  function Rl(e) {
    let t = qO,
      n = LO,
      r = Au,
      i = Mu,
      o = null,
      s = null,
      u = bi(a);
    function a() {
      let l,
        h = dS.call(arguments),
        m = t.apply(this, h),
        p = n.apply(this, h);
      if (
        (o == null && (s = e((l = u()))),
        s.lineStart(),
        (h[0] = m),
        s.point(+r.apply(this, h), +i.apply(this, h)),
        (h[0] = p),
        s.point(+r.apply(this, h), +i.apply(this, h)),
        s.lineEnd(),
        l)
      )
        return ((s = null), l + "" || null);
    }
    return (
      (a.source = function (l) {
        return arguments.length ? ((t = l), a) : t;
      }),
      (a.target = function (l) {
        return arguments.length ? ((n = l), a) : n;
      }),
      (a.x = function (l) {
        return arguments.length
          ? ((r = typeof l == "function" ? l : Ie(+l)), a)
          : r;
      }),
      (a.y = function (l) {
        return arguments.length
          ? ((i = typeof l == "function" ? l : Ie(+l)), a)
          : i;
      }),
      (a.context = function (l) {
        return arguments.length
          ? (l == null ? (o = s = null) : (s = e((o = l))), a)
          : o;
      }),
      a
    );
  }
  function F1() {
    return Rl(D1);
  }
  function wS() {
    return Rl(I1);
  }
  function vS() {
    let e = Rl(yS);
    return ((e.angle = e.x), delete e.x, (e.radius = e.y), delete e.y, e);
  }
  var OO = $e(3),
    q1 = {
      draw(e, t) {
        let n = $e(t + gi(t / 28, 0.75)) * 0.59436,
          r = n / 2,
          i = r * OO;
        (e.moveTo(0, n),
          e.lineTo(0, -n),
          e.moveTo(-i, -r),
          e.lineTo(i, r),
          e.moveTo(-i, r),
          e.lineTo(i, -r));
      },
    };
  var Nu = {
    draw(e, t) {
      let n = $e(t / Lr);
      (e.moveTo(n, 0), e.arc(0, 0, n, 0, dr));
    },
  };
  var L1 = {
    draw(e, t) {
      let n = $e(t / 5) / 2;
      (e.moveTo(-3 * n, -n),
        e.lineTo(-n, -n),
        e.lineTo(-n, -3 * n),
        e.lineTo(n, -3 * n),
        e.lineTo(n, -n),
        e.lineTo(3 * n, -n),
        e.lineTo(3 * n, n),
        e.lineTo(n, n),
        e.lineTo(n, 3 * n),
        e.lineTo(-n, 3 * n),
        e.lineTo(-n, n),
        e.lineTo(-3 * n, n),
        e.closePath());
    },
  };
  var _S = $e(1 / 3),
    BO = _S * 2,
    O1 = {
      draw(e, t) {
        let n = $e(t / BO),
          r = n * _S;
        (e.moveTo(0, -n),
          e.lineTo(r, 0),
          e.lineTo(0, n),
          e.lineTo(-r, 0),
          e.closePath());
      },
    };
  var B1 = {
    draw(e, t) {
      let n = $e(t) * 0.62625;
      (e.moveTo(0, -n),
        e.lineTo(n, 0),
        e.lineTo(0, n),
        e.lineTo(-n, 0),
        e.closePath());
    },
  };
  var z1 = {
    draw(e, t) {
      let n = $e(t - gi(t / 7, 2)) * 0.87559;
      (e.moveTo(-n, 0), e.lineTo(n, 0), e.moveTo(0, n), e.lineTo(0, -n));
    },
  };
  var R1 = {
    draw(e, t) {
      let n = $e(t),
        r = -n / 2;
      e.rect(r, r, n, n);
    },
  };
  var P1 = {
    draw(e, t) {
      let n = $e(t) * 0.4431;
      (e.moveTo(n, n),
        e.lineTo(n, -n),
        e.lineTo(-n, -n),
        e.lineTo(-n, n),
        e.closePath());
    },
  };
  var zO = 0.8908130915292852,
    kS = vn(Lr / 10) / vn((7 * Lr) / 10),
    RO = vn(dr / 10) * kS,
    PO = -qr(dr / 10) * kS,
    $1 = {
      draw(e, t) {
        let n = $e(t * zO),
          r = RO * n,
          i = PO * n;
        (e.moveTo(0, -n), e.lineTo(r, i));
        for (let o = 1; o < 5; ++o) {
          let s = (dr * o) / 5,
            u = qr(s),
            a = vn(s);
          (e.lineTo(a * n, -u * n), e.lineTo(u * r - a * i, a * r + u * i));
        }
        e.closePath();
      },
    };
  var V3 = $e(3),
    H1 = {
      draw(e, t) {
        let n = -$e(t / (V3 * 3));
        (e.moveTo(0, n * 2),
          e.lineTo(-V3 * n, -n),
          e.lineTo(V3 * n, -n),
          e.closePath());
      },
    };
  var $O = $e(3),
    U1 = {
      draw(e, t) {
        let n = $e(t) * 0.6824,
          r = n / 2,
          i = (n * $O) / 2;
        (e.moveTo(0, -n), e.lineTo(i, r), e.lineTo(-i, r), e.closePath());
      },
    };
  var pr = -0.5,
    mr = $e(3) / 2,
    j3 = 1 / $e(12),
    HO = (j3 / 2 + 1) * 3,
    V1 = {
      draw(e, t) {
        let n = $e(t / HO),
          r = n / 2,
          i = n * j3,
          o = r,
          s = n * j3 + n,
          u = -o,
          a = s;
        (e.moveTo(r, i),
          e.lineTo(o, s),
          e.lineTo(u, a),
          e.lineTo(pr * r - mr * i, mr * r + pr * i),
          e.lineTo(pr * o - mr * s, mr * o + pr * s),
          e.lineTo(pr * u - mr * a, mr * u + pr * a),
          e.lineTo(pr * r + mr * i, pr * i - mr * r),
          e.lineTo(pr * o + mr * s, pr * s - mr * o),
          e.lineTo(pr * u + mr * a, pr * a - mr * u),
          e.closePath());
      },
    };
  var Pl = {
    draw(e, t) {
      let n = $e(t - gi(t / 6, 1.7)) * 0.6189;
      (e.moveTo(-n, -n), e.lineTo(n, n), e.moveTo(-n, n), e.lineTo(n, -n));
    },
  };
  var G3 = [Nu, L1, O1, R1, $1, H1, V1],
    SS = [Nu, z1, Pl, U1, q1, P1, B1];
  function Y3(e, t) {
    let n = null,
      r = bi(i);
    ((e = typeof e == "function" ? e : Ie(e || Nu)),
      (t = typeof t == "function" ? t : Ie(t === void 0 ? 64 : +t)));
    function i() {
      let o;
      if (
        (n || (n = o = r()),
        e.apply(this, arguments).draw(n, +t.apply(this, arguments)),
        o)
      )
        return ((n = null), o + "" || null);
    }
    return (
      (i.type = function (o) {
        return arguments.length
          ? ((e = typeof o == "function" ? o : Ie(o)), i)
          : e;
      }),
      (i.size = function (o) {
        return arguments.length
          ? ((t = typeof o == "function" ? o : Ie(+o)), i)
          : t;
      }),
      (i.context = function (o) {
        return arguments.length ? ((n = o ?? null), i) : n;
      }),
      i
    );
  }
  function gr() {}
  function Du(e, t, n) {
    e._context.bezierCurveTo(
      (2 * e._x0 + e._x1) / 3,
      (2 * e._y0 + e._y1) / 3,
      (e._x0 + 2 * e._x1) / 3,
      (e._y0 + 2 * e._y1) / 3,
      (e._x0 + 4 * e._x1 + t) / 6,
      (e._y0 + 4 * e._y1 + n) / 6,
    );
  }
  function $l(e) {
    this._context = e;
  }
  $l.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:
          Du(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 (e, t) {
      switch (((e = +e), (t = +t), this._point)) {
        case 0:
          ((this._point = 1),
            this._line
              ? this._context.lineTo(e, t)
              : this._context.moveTo(e, t));
          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:
          Du(this, e, t);
          break;
      }
      ((this._x0 = this._x1),
        (this._x1 = e),
        (this._y0 = this._y1),
        (this._y1 = t));
    },
  };
  function AS(e) {
    return new $l(e);
  }
  function MS(e) {
    this._context = e;
  }
  MS.prototype = {
    areaStart: gr,
    areaEnd: gr,
    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 (e, t) {
      switch (((e = +e), (t = +t), this._point)) {
        case 0:
          ((this._point = 1), (this._x2 = e), (this._y2 = t));
          break;
        case 1:
          ((this._point = 2), (this._x3 = e), (this._y3 = t));
          break;
        case 2:
          ((this._point = 3),
            (this._x4 = e),
            (this._y4 = t),
            this._context.moveTo(
              (this._x0 + 4 * this._x1 + e) / 6,
              (this._y0 + 4 * this._y1 + t) / 6,
            ));
          break;
        default:
          Du(this, e, t);
          break;
      }
      ((this._x0 = this._x1),
        (this._x1 = e),
        (this._y0 = this._y1),
        (this._y1 = t));
    },
  };
  function TS(e) {
    return new MS(e);
  }
  function ES(e) {
    this._context = e;
  }
  ES.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 (e, t) {
      switch (((e = +e), (t = +t), 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 + e) / 6,
            r = (this._y0 + 4 * this._y1 + t) / 6;
          this._line ? this._context.lineTo(n, r) : this._context.moveTo(n, r);
          break;
        case 3:
          this._point = 4;
        default:
          Du(this, e, t);
          break;
      }
      ((this._x0 = this._x1),
        (this._x1 = e),
        (this._y0 = this._y1),
        (this._y1 = t));
    },
  };
  function CS(e) {
    return new ES(e);
  }
  function NS(e, t) {
    ((this._basis = new $l(e)), (this._beta = t));
  }
  NS.prototype = {
    lineStart: function () {
      ((this._x = []), (this._y = []), this._basis.lineStart());
    },
    lineEnd: function () {
      var e = this._x,
        t = this._y,
        n = e.length - 1;
      if (n > 0)
        for (
          var r = e[0], i = t[0], o = e[n] - r, s = t[n] - i, u = -1, a;
          ++u <= n;
        )
          ((a = u / n),
            this._basis.point(
              this._beta * e[u] + (1 - this._beta) * (r + a * o),
              this._beta * t[u] + (1 - this._beta) * (i + a * s),
            ));
      ((this._x = this._y = null), this._basis.lineEnd());
    },
    point: function (e, t) {
      (this._x.push(+e), this._y.push(+t));
    },
  };
  var DS = (function e(t) {
    function n(r) {
      return t === 1 ? new $l(r) : new NS(r, t);
    }
    return (
      (n.beta = function (r) {
        return e(+r);
      }),
      n
    );
  })(0.85);
  function Iu(e, t, n) {
    e._context.bezierCurveTo(
      e._x1 + e._k * (e._x2 - e._x0),
      e._y1 + e._k * (e._y2 - e._y0),
      e._x2 + e._k * (e._x1 - t),
      e._y2 + e._k * (e._y1 - n),
      e._x2,
      e._y2,
    );
  }
  function j1(e, t) {
    ((this._context = e), (this._k = (1 - t) / 6));
  }
  j1.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:
          Iu(this, this._x1, this._y1);
          break;
      }
      ((this._line || (this._line !== 0 && this._point === 1)) &&
        this._context.closePath(),
        (this._line = 1 - this._line));
    },
    point: function (e, t) {
      switch (((e = +e), (t = +t), this._point)) {
        case 0:
          ((this._point = 1),
            this._line
              ? this._context.lineTo(e, t)
              : this._context.moveTo(e, t));
          break;
        case 1:
          ((this._point = 2), (this._x1 = e), (this._y1 = t));
          break;
        case 2:
          this._point = 3;
        default:
          Iu(this, e, t);
          break;
      }
      ((this._x0 = this._x1),
        (this._x1 = this._x2),
        (this._x2 = e),
        (this._y0 = this._y1),
        (this._y1 = this._y2),
        (this._y2 = t));
    },
  };
  var IS = (function e(t) {
    function n(r) {
      return new j1(r, t);
    }
    return (
      (n.tension = function (r) {
        return e(+r);
      }),
      n
    );
  })(0);
  function G1(e, t) {
    ((this._context = e), (this._k = (1 - t) / 6));
  }
  G1.prototype = {
    areaStart: gr,
    areaEnd: gr,
    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 (e, t) {
      switch (((e = +e), (t = +t), this._point)) {
        case 0:
          ((this._point = 1), (this._x3 = e), (this._y3 = t));
          break;
        case 1:
          ((this._point = 2),
            this._context.moveTo((this._x4 = e), (this._y4 = t)));
          break;
        case 2:
          ((this._point = 3), (this._x5 = e), (this._y5 = t));
          break;
        default:
          Iu(this, e, t);
          break;
      }
      ((this._x0 = this._x1),
        (this._x1 = this._x2),
        (this._x2 = e),
        (this._y0 = this._y1),
        (this._y1 = this._y2),
        (this._y2 = t));
    },
  };
  var FS = (function e(t) {
    function n(r) {
      return new G1(r, t);
    }
    return (
      (n.tension = function (r) {
        return e(+r);
      }),
      n
    );
  })(0);
  function Y1(e, t) {
    ((this._context = e), (this._k = (1 - t) / 6));
  }
  Y1.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 (e, t) {
      switch (((e = +e), (t = +t), 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:
          Iu(this, e, t);
          break;
      }
      ((this._x0 = this._x1),
        (this._x1 = this._x2),
        (this._x2 = e),
        (this._y0 = this._y1),
        (this._y1 = this._y2),
        (this._y2 = t));
    },
  };
  var qS = (function e(t) {
    function n(r) {
      return new Y1(r, t);
    }
    return (
      (n.tension = function (r) {
        return e(+r);
      }),
      n
    );
  })(0);
  function Hl(e, t, n) {
    var r = e._x1,
      i = e._y1,
      o = e._x2,
      s = e._y2;
    if (e._l01_a > sn) {
      var u = 2 * e._l01_2a + 3 * e._l01_a * e._l12_a + e._l12_2a,
        a = 3 * e._l01_a * (e._l01_a + e._l12_a);
      ((r = (r * u - e._x0 * e._l12_2a + e._x2 * e._l01_2a) / a),
        (i = (i * u - e._y0 * e._l12_2a + e._y2 * e._l01_2a) / a));
    }
    if (e._l23_a > sn) {
      var l = 2 * e._l23_2a + 3 * e._l23_a * e._l12_a + e._l12_2a,
        h = 3 * e._l23_a * (e._l23_a + e._l12_a);
      ((o = (o * l + e._x1 * e._l23_2a - t * e._l12_2a) / h),
        (s = (s * l + e._y1 * e._l23_2a - n * e._l12_2a) / h));
    }
    e._context.bezierCurveTo(r, i, o, s, e._x2, e._y2);
  }
  function LS(e, t) {
    ((this._context = e), (this._alpha = t));
  }
  LS.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 (e, t) {
      if (((e = +e), (t = +t), this._point)) {
        var n = this._x2 - e,
          r = this._y2 - t;
        this._l23_a = Math.sqrt(
          (this._l23_2a = Math.pow(n * n + r * r, this._alpha)),
        );
      }
      switch (this._point) {
        case 0:
          ((this._point = 1),
            this._line
              ? this._context.lineTo(e, t)
              : this._context.moveTo(e, t));
          break;
        case 1:
          this._point = 2;
          break;
        case 2:
          this._point = 3;
        default:
          Hl(this, e, t);
          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 = e),
        (this._y0 = this._y1),
        (this._y1 = this._y2),
        (this._y2 = t));
    },
  };
  var OS = (function e(t) {
    function n(r) {
      return t ? new LS(r, t) : new j1(r, 0);
    }
    return (
      (n.alpha = function (r) {
        return e(+r);
      }),
      n
    );
  })(0.5);
  function BS(e, t) {
    ((this._context = e), (this._alpha = t));
  }
  BS.prototype = {
    areaStart: gr,
    areaEnd: gr,
    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 (e, t) {
      if (((e = +e), (t = +t), this._point)) {
        var n = this._x2 - e,
          r = this._y2 - t;
        this._l23_a = Math.sqrt(
          (this._l23_2a = Math.pow(n * n + r * r, this._alpha)),
        );
      }
      switch (this._point) {
        case 0:
          ((this._point = 1), (this._x3 = e), (this._y3 = t));
          break;
        case 1:
          ((this._point = 2),
            this._context.moveTo((this._x4 = e), (this._y4 = t)));
          break;
        case 2:
          ((this._point = 3), (this._x5 = e), (this._y5 = t));
          break;
        default:
          Hl(this, e, t);
          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 = e),
        (this._y0 = this._y1),
        (this._y1 = this._y2),
        (this._y2 = t));
    },
  };
  var zS = (function e(t) {
    function n(r) {
      return t ? new BS(r, t) : new G1(r, 0);
    }
    return (
      (n.alpha = function (r) {
        return e(+r);
      }),
      n
    );
  })(0.5);
  function RS(e, t) {
    ((this._context = e), (this._alpha = t));
  }
  RS.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 (e, t) {
      if (((e = +e), (t = +t), this._point)) {
        var n = this._x2 - e,
          r = this._y2 - t;
        this._l23_a = Math.sqrt(
          (this._l23_2a = Math.pow(n * n + r * r, this._alpha)),
        );
      }
      switch (this._point) {
        case 0:
          this._point = 1;
          break;
        case 1:
          this._point = 2;
          break;
        case 2:
          ((this._point = 3),
            this._line
              ? this._context.lineTo(this._x2, this._y2)
              : this._context.moveTo(this._x2, this._y2));
          break;
        case 3:
          this._point = 4;
        default:
          Hl(this, e, t);
          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 = e),
        (this._y0 = this._y1),
        (this._y1 = this._y2),
        (this._y2 = t));
    },
  };
  var PS = (function e(t) {
    function n(r) {
      return t ? new RS(r, t) : new Y1(r, 0);
    }
    return (
      (n.alpha = function (r) {
        return e(+r);
      }),
      n
    );
  })(0.5);
  function $S(e) {
    this._context = e;
  }
  $S.prototype = {
    areaStart: gr,
    areaEnd: gr,
    lineStart: function () {
      this._point = 0;
    },
    lineEnd: function () {
      this._point && this._context.closePath();
    },
    point: function (e, t) {
      ((e = +e),
        (t = +t),
        this._point
          ? this._context.lineTo(e, t)
          : ((this._point = 1), this._context.moveTo(e, t)));
    },
  };
  function HS(e) {
    return new $S(e);
  }
  function US(e) {
    return e < 0 ? -1 : 1;
  }
  function VS(e, t, n) {
    var r = e._x1 - e._x0,
      i = t - e._x1,
      o = (e._y1 - e._y0) / (r || (i < 0 && -0)),
      s = (n - e._y1) / (i || (r < 0 && -0)),
      u = (o * i + s * r) / (r + i);
    return (
      (US(o) + US(s)) * Math.min(Math.abs(o), Math.abs(s), 0.5 * Math.abs(u)) ||
      0
    );
  }
  function jS(e, t) {
    var n = e._x1 - e._x0;
    return n ? ((3 * (e._y1 - e._y0)) / n - t) / 2 : t;
  }
  function X3(e, t, n) {
    var r = e._x0,
      i = e._y0,
      o = e._x1,
      s = e._y1,
      u = (o - r) / 3;
    e._context.bezierCurveTo(r + u, i + u * t, o - u, s - u * n, o, s);
  }
  function X1(e) {
    this._context = e;
  }
  X1.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:
          X3(this, this._t0, jS(this, this._t0));
          break;
      }
      ((this._line || (this._line !== 0 && this._point === 1)) &&
        this._context.closePath(),
        (this._line = 1 - this._line));
    },
    point: function (e, t) {
      var n = NaN;
      if (((e = +e), (t = +t), !(e === this._x1 && t === this._y1))) {
        switch (this._point) {
          case 0:
            ((this._point = 1),
              this._line
                ? this._context.lineTo(e, t)
                : this._context.moveTo(e, t));
            break;
          case 1:
            this._point = 2;
            break;
          case 2:
            ((this._point = 3), X3(this, jS(this, (n = VS(this, e, t))), n));
            break;
          default:
            X3(this, this._t0, (n = VS(this, e, t)));
            break;
        }
        ((this._x0 = this._x1),
          (this._x1 = e),
          (this._y0 = this._y1),
          (this._y1 = t),
          (this._t0 = n));
      }
    },
  };
  function GS(e) {
    this._context = new YS(e);
  }
  (GS.prototype = Object.create(X1.prototype)).point = function (e, t) {
    X1.prototype.point.call(this, t, e);
  };
  function YS(e) {
    this._context = e;
  }
  YS.prototype = {
    moveTo: function (e, t) {
      this._context.moveTo(t, e);
    },
    closePath: function () {
      this._context.closePath();
    },
    lineTo: function (e, t) {
      this._context.lineTo(t, e);
    },
    bezierCurveTo: function (e, t, n, r, i, o) {
      this._context.bezierCurveTo(t, e, r, n, o, i);
    },
  };
  function XS(e) {
    return new X1(e);
  }
  function WS(e) {
    return new GS(e);
  }
  function ZS(e) {
    this._context = e;
  }
  ZS.prototype = {
    areaStart: function () {
      this._line = 0;
    },
    areaEnd: function () {
      this._line = NaN;
    },
    lineStart: function () {
      ((this._x = []), (this._y = []));
    },
    lineEnd: function () {
      var e = this._x,
        t = this._y,
        n = e.length;
      if (n)
        if (
          (this._line
            ? this._context.lineTo(e[0], t[0])
            : this._context.moveTo(e[0], t[0]),
          n === 2)
        )
          this._context.lineTo(e[1], t[1]);
        else
          for (var r = KS(e), i = KS(t), o = 0, s = 1; s < n; ++o, ++s)
            this._context.bezierCurveTo(
              r[0][o],
              i[0][o],
              r[1][o],
              i[1][o],
              e[s],
              t[s],
            );
      ((this._line || (this._line !== 0 && n === 1)) &&
        this._context.closePath(),
        (this._line = 1 - this._line),
        (this._x = this._y = null));
    },
    point: function (e, t) {
      (this._x.push(+e), this._y.push(+t));
    },
  };
  function KS(e) {
    var t,
      n = e.length - 1,
      r,
      i = new Array(n),
      o = new Array(n),
      s = new Array(n);
    for (i[0] = 0, o[0] = 2, s[0] = e[0] + 2 * e[1], t = 1; t < n - 1; ++t)
      ((i[t] = 1), (o[t] = 4), (s[t] = 4 * e[t] + 2 * e[t + 1]));
    for (
      i[n - 1] = 2, o[n - 1] = 7, s[n - 1] = 8 * e[n - 1] + e[n], t = 1;
      t < n;
      ++t
    )
      ((r = i[t] / o[t - 1]), (o[t] -= r), (s[t] -= r * s[t - 1]));
    for (i[n - 1] = s[n - 1] / o[n - 1], t = n - 2; t >= 0; --t)
      i[t] = (s[t] - i[t + 1]) / o[t];
    for (o[n - 1] = (e[n] + i[n - 1]) / 2, t = 0; t < n - 1; ++t)
      o[t] = 2 * e[t + 1] - i[t + 1];
    return [i, o];
  }
  function JS(e) {
    return new ZS(e);
  }
  function W1(e, t) {
    ((this._context = e), (this._t = t));
  }
  W1.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 (e, t) {
      switch (((e = +e), (t = +t), this._point)) {
        case 0:
          ((this._point = 1),
            this._line
              ? this._context.lineTo(e, t)
              : this._context.moveTo(e, t));
          break;
        case 1:
          this._point = 2;
        default: {
          if (this._t <= 0)
            (this._context.lineTo(this._x, t), this._context.lineTo(e, t));
          else {
            var n = this._x * (1 - this._t) + e * this._t;
            (this._context.lineTo(n, this._y), this._context.lineTo(n, t));
          }
          break;
        }
      }
      ((this._x = e), (this._y = t));
    },
  };
  function QS(e) {
    return new W1(e, 0.5);
  }
  function eA(e) {
    return new W1(e, 0);
  }
  function tA(e) {
    return new W1(e, 1);
  }
  function Or(e, t) {
    if ((s = e.length) > 1)
      for (var n = 1, r, i, o = e[t[0]], s, u = o.length; n < s; ++n)
        for (i = o, o = e[t[n]], r = 0; r < u; ++r)
          o[r][1] += o[r][0] = isNaN(i[r][1]) ? i[r][0] : i[r][1];
  }
  function Br(e) {
    for (var t = e.length, n = new Array(t); --t >= 0; ) n[t] = t;
    return n;
  }
  function UO(e, t) {
    return e[t];
  }
  function VO(e) {
    let t = [];
    return ((t.key = e), t);
  }
  function nA() {
    var e = Ie([]),
      t = Br,
      n = Or,
      r = UO;
    function i(o) {
      var s = Array.from(e.apply(this, arguments), VO),
        u,
        a = s.length,
        l = -1,
        h;
      for (let m of o)
        for (u = 0, ++l; u < a; ++u)
          (s[u][l] = [0, +r(m, s[u].key, l, o)]).data = m;
      for (u = 0, h = Ko(t(s)); u < a; ++u) s[h[u]].index = u;
      return (n(s, h), s);
    }
    return (
      (i.keys = function (o) {
        return arguments.length
          ? ((e = typeof o == "function" ? o : Ie(Array.from(o))), i)
          : e;
      }),
      (i.value = function (o) {
        return arguments.length
          ? ((r = typeof o == "function" ? o : Ie(+o)), i)
          : r;
      }),
      (i.order = function (o) {
        return arguments.length
          ? ((t =
              o == null ? Br : typeof o == "function" ? o : Ie(Array.from(o))),
            i)
          : t;
      }),
      (i.offset = function (o) {
        return arguments.length ? ((n = o ?? Or), i) : n;
      }),
      i
    );
  }
  function rA(e, t) {
    if ((r = e.length) > 0) {
      for (var n, r, i = 0, o = e[0].length, s; i < o; ++i) {
        for (s = n = 0; n < r; ++n) s += e[n][i][1] || 0;
        if (s) for (n = 0; n < r; ++n) e[n][i][1] /= s;
      }
      Or(e, t);
    }
  }
  function iA(e, t) {
    if ((a = e.length) > 0)
      for (var n, r = 0, i, o, s, u, a, l = e[t[0]].length; r < l; ++r)
        for (s = u = 0, n = 0; n < a; ++n)
          (o = (i = e[t[n]][r])[1] - i[0]) > 0
            ? ((i[0] = s), (i[1] = s += o))
            : o < 0
              ? ((i[1] = u), (i[0] = u += o))
              : ((i[0] = 0), (i[1] = o));
  }
  function oA(e, t) {
    if ((i = e.length) > 0) {
      for (var n = 0, r = e[t[0]], i, o = r.length; n < o; ++n) {
        for (var s = 0, u = 0; s < i; ++s) u += e[s][n][1] || 0;
        r[n][1] += r[n][0] = -u / 2;
      }
      Or(e, t);
    }
  }
  function sA(e, t) {
    if (!(!((s = e.length) > 0) || !((o = (i = e[t[0]]).length) > 0))) {
      for (var n = 0, r = 1, i, o, s; r < o; ++r) {
        for (var u = 0, a = 0, l = 0; u < s; ++u) {
          for (
            var h = e[t[u]],
              m = h[r][1] || 0,
              p = h[r - 1][1] || 0,
              b = (m - p) / 2,
              x = 0;
            x < u;
            ++x
          ) {
            var y = e[t[x]],
              v = y[r][1] || 0,
              k = y[r - 1][1] || 0;
            b += v - k;
          }
          ((a += m), (l += b * m));
        }
        ((i[r - 1][1] += i[r - 1][0] = n), a && (n -= l / a));
      }
      ((i[r - 1][1] += i[r - 1][0] = n), Or(e, t));
    }
  }
  function K1(e) {
    var t = e.map(jO);
    return Br(e).sort(function (n, r) {
      return t[n] - t[r];
    });
  }
  function jO(e) {
    for (var t = -1, n = 0, r = e.length, i, o = -1 / 0; ++t < r; )
      (i = +e[t][1]) > o && ((o = i), (n = t));
    return n;
  }
  function Z1(e) {
    var t = e.map(W3);
    return Br(e).sort(function (n, r) {
      return t[n] - t[r];
    });
  }
  function W3(e) {
    for (var t = 0, n = -1, r = e.length, i; ++n < r; )
      (i = +e[n][1]) && (t += i);
    return t;
  }
  function uA(e) {
    return Z1(e).reverse();
  }
  function aA(e) {
    var t = e.length,
      n,
      r,
      i = e.map(W3),
      o = K1(e),
      s = 0,
      u = 0,
      a = [],
      l = [];
    for (n = 0; n < t; ++n)
      ((r = o[n]), s < u ? ((s += i[r]), a.push(r)) : ((u += i[r]), l.push(r)));
    return l.reverse().concat(a);
  }
  function lA(e) {
    return Br(e).reverse();
  }
  var Ul = (e) => () => e;
  function K3(e, { sourceEvent: t, target: n, transform: r, dispatch: i }) {
    Object.defineProperties(this, {
      type: { value: e, enumerable: !0, configurable: !0 },
      sourceEvent: { value: t, enumerable: !0, configurable: !0 },
      target: { value: n, enumerable: !0, configurable: !0 },
      transform: { value: r, enumerable: !0, configurable: !0 },
      _: { value: i },
    });
  }
  function br(e, t, n) {
    ((this.k = e), (this.x = t), (this.y = n));
  }
  br.prototype = {
    constructor: br,
    scale: function (e) {
      return e === 1 ? this : new br(this.k * e, this.x, this.y);
    },
    translate: function (e, t) {
      return (e === 0) & (t === 0)
        ? this
        : new br(this.k, this.x + this.k * e, this.y + this.k * t);
    },
    apply: function (e) {
      return [e[0] * this.k + this.x, e[1] * this.k + this.y];
    },
    applyX: function (e) {
      return e * this.k + this.x;
    },
    applyY: function (e) {
      return e * this.k + this.y;
    },
    invert: function (e) {
      return [(e[0] - this.x) / this.k, (e[1] - this.y) / this.k];
    },
    invertX: function (e) {
      return (e - this.x) / this.k;
    },
    invertY: function (e) {
      return (e - this.y) / this.k;
    },
    rescaleX: function (e) {
      return e
        .copy()
        .domain(e.range().map(this.invertX, this).map(e.invert, e));
    },
    rescaleY: function (e) {
      return e
        .copy()
        .domain(e.range().map(this.invertY, this).map(e.invert, e));
    },
    toString: function () {
      return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
    },
  };
  var Jo = new br(1, 0, 0);
  xi.prototype = br.prototype;
  function xi(e) {
    for (; !e.__zoom; ) if (!(e = e.parentNode)) return Jo;
    return e.__zoom;
  }
  function J1(e) {
    e.stopImmediatePropagation();
  }
  function Fu(e) {
    (e.preventDefault(), e.stopImmediatePropagation());
  }
  function GO(e) {
    return (!e.ctrlKey || e.type === "wheel") && !e.button;
  }
  function YO() {
    var e = this;
    return e instanceof SVGElement
      ? ((e = e.ownerSVGElement || e),
        e.hasAttribute("viewBox")
          ? ((e = e.viewBox.baseVal),
            [
              [e.x, e.y],
              [e.x + e.width, e.y + e.height],
            ])
          : [
              [0, 0],
              [e.width.baseVal.value, e.height.baseVal.value],
            ])
      : [
          [0, 0],
          [e.clientWidth, e.clientHeight],
        ];
  }
  function cA() {
    return this.__zoom || Jo;
  }
  function XO(e) {
    return (
      -e.deltaY *
      (e.deltaMode === 1 ? 0.05 : e.deltaMode ? 1 : 0.002) *
      (e.ctrlKey ? 10 : 1)
    );
  }
  function WO() {
    return navigator.maxTouchPoints || "ontouchstart" in this;
  }
  function KO(e, t, n) {
    var r = e.invertX(t[0][0]) - n[0][0],
      i = e.invertX(t[1][0]) - n[1][0],
      o = e.invertY(t[0][1]) - n[0][1],
      s = e.invertY(t[1][1]) - n[1][1];
    return e.translate(
      i > r ? (r + i) / 2 : Math.min(0, r) || Math.max(0, i),
      s > o ? (o + s) / 2 : Math.min(0, o) || Math.max(0, s),
    );
  }
  function Q1() {
    var e = GO,
      t = YO,
      n = KO,
      r = XO,
      i = WO,
      o = [0, 1 / 0],
      s = [
        [-1 / 0, -1 / 0],
        [1 / 0, 1 / 0],
      ],
      u = 250,
      a = Tf,
      l = ur("start", "zoom", "end"),
      h,
      m,
      p,
      b = 500,
      x = 150,
      y = 0,
      v = 10;
    function k(B) {
      B.property("__zoom", cA)
        .on("wheel.zoom", O, { passive: !1 })
        .on("mousedown.zoom", H)
        .on("dblclick.zoom", U)
        .filter(i)
        .on("touchstart.zoom", j)
        .on("touchmove.zoom", Z)
        .on("touchend.zoom touchcancel.zoom", Q)
        .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
    }
    ((k.transform = function (B, V, G, ne) {
      var te = B.selection ? B.selection() : B;
      (te.property("__zoom", cA),
        B !== te
          ? D(B, V, G, ne)
          : te.interrupt().each(function () {
              I(this, arguments)
                .event(ne)
                .start()
                .zoom(
                  null,
                  typeof V == "function" ? V.apply(this, arguments) : V,
                )
                .end();
            }));
    }),
      (k.scaleBy = function (B, V, G, ne) {
        k.scaleTo(
          B,
          function () {
            var te = this.__zoom.k,
              ie = typeof V == "function" ? V.apply(this, arguments) : V;
            return te * ie;
          },
          G,
          ne,
        );
      }),
      (k.scaleTo = function (B, V, G, ne) {
        k.transform(
          B,
          function () {
            var te = t.apply(this, arguments),
              ie = this.__zoom,
              ce =
                G == null
                  ? M(te)
                  : typeof G == "function"
                    ? G.apply(this, arguments)
                    : G,
              xe = ie.invert(ce),
              X = typeof V == "function" ? V.apply(this, arguments) : V;
            return n(E(T(ie, X), ce, xe), te, s);
          },
          G,
          ne,
        );
      }),
      (k.translateBy = function (B, V, G, ne) {
        k.transform(
          B,
          function () {
            return n(
              this.__zoom.translate(
                typeof V == "function" ? V.apply(this, arguments) : V,
                typeof G == "function" ? G.apply(this, arguments) : G,
              ),
              t.apply(this, arguments),
              s,
            );
          },
          null,
          ne,
        );
      }),
      (k.translateTo = function (B, V, G, ne, te) {
        k.transform(
          B,
          function () {
            var ie = t.apply(this, arguments),
              ce = this.__zoom,
              xe =
                ne == null
                  ? M(ie)
                  : typeof ne == "function"
                    ? ne.apply(this, arguments)
                    : ne;
            return n(
              Jo.translate(xe[0], xe[1])
                .scale(ce.k)
                .translate(
                  typeof V == "function" ? -V.apply(this, arguments) : -V,
                  typeof G == "function" ? -G.apply(this, arguments) : -G,
                ),
              ie,
              s,
            );
          },
          ne,
          te,
        );
      }));
    function T(B, V) {
      return (
        (V = Math.max(o[0], Math.min(o[1], V))),
        V === B.k ? B : new br(V, B.x, B.y)
      );
    }
    function E(B, V, G) {
      var ne = V[0] - G[0] * B.k,
        te = V[1] - G[1] * B.k;
      return ne === B.x && te === B.y ? B : new br(B.k, ne, te);
    }
    function M(B) {
      return [(+B[0][0] + +B[1][0]) / 2, (+B[0][1] + +B[1][1]) / 2];
    }
    function D(B, V, G, ne) {
      B.on("start.zoom", function () {
        I(this, arguments).event(ne).start();
      })
        .on("interrupt.zoom end.zoom", function () {
          I(this, arguments).event(ne).end();
        })
        .tween("zoom", function () {
          var te = this,
            ie = arguments,
            ce = I(te, ie).event(ne),
            xe = t.apply(te, ie),
            X =
              G == null ? M(xe) : typeof G == "function" ? G.apply(te, ie) : G,
            he = Math.max(xe[1][0] - xe[0][0], xe[1][1] - xe[0][1]),
            Ae = te.__zoom,
            Be = typeof V == "function" ? V.apply(te, ie) : V,
            kt = a(
              Ae.invert(X).concat(he / Ae.k),
              Be.invert(X).concat(he / Be.k),
            );
          return function (Ke) {
            if (Ke === 1) Ke = Be;
            else {
              var Nt = kt(Ke),
                ge = he / Nt[2];
              Ke = new br(ge, X[0] - Nt[0] * ge, X[1] - Nt[1] * ge);
            }
            ce.zoom(null, Ke);
          };
        });
    }
    function I(B, V, G) {
      return (!G && B.__zooming) || new P(B, V);
    }
    function P(B, V) {
      ((this.that = B),
        (this.args = V),
        (this.active = 0),
        (this.sourceEvent = null),
        (this.extent = t.apply(B, V)),
        (this.taps = 0));
    }
    P.prototype = {
      event: function (B) {
        return (B && (this.sourceEvent = B), this);
      },
      start: function () {
        return (
          ++this.active === 1 &&
            ((this.that.__zooming = this), this.emit("start")),
          this
        );
      },
      zoom: function (B, V) {
        return (
          this.mouse &&
            B !== "mouse" &&
            (this.mouse[1] = V.invert(this.mouse[0])),
          this.touch0 &&
            B !== "touch" &&
            (this.touch0[1] = V.invert(this.touch0[0])),
          this.touch1 &&
            B !== "touch" &&
            (this.touch1[1] = V.invert(this.touch1[0])),
          (this.that.__zoom = V),
          this.emit("zoom"),
          this
        );
      },
      end: function () {
        return (
          --this.active === 0 && (delete this.that.__zooming, this.emit("end")),
          this
        );
      },
      emit: function (B) {
        var V = Tt(this.that).datum();
        l.call(
          B,
          this.that,
          new K3(B, {
            sourceEvent: this.sourceEvent,
            target: k,
            type: B,
            transform: this.that.__zoom,
            dispatch: l,
          }),
          V,
        );
      },
    };
    function O(B, ...V) {
      if (!e.apply(this, arguments)) return;
      var G = I(this, V).event(B),
        ne = this.__zoom,
        te = Math.max(
          o[0],
          Math.min(o[1], ne.k * Math.pow(2, r.apply(this, arguments))),
        ),
        ie = en(B);
      if (G.wheel)
        ((G.mouse[0][0] !== ie[0] || G.mouse[0][1] !== ie[1]) &&
          (G.mouse[1] = ne.invert((G.mouse[0] = ie))),
          clearTimeout(G.wheel));
      else {
        if (ne.k === te) return;
        ((G.mouse = [ie, ne.invert(ie)]), Er(this), G.start());
      }
      (Fu(B),
        (G.wheel = setTimeout(ce, x)),
        G.zoom("mouse", n(E(T(ne, te), G.mouse[0], G.mouse[1]), G.extent, s)));
      function ce() {
        ((G.wheel = null), G.end());
      }
    }
    function H(B, ...V) {
      if (p || !e.apply(this, arguments)) return;
      var G = B.currentTarget,
        ne = I(this, V, !0).event(B),
        te = Tt(B.view).on("mousemove.zoom", X, !0).on("mouseup.zoom", he, !0),
        ie = en(B, G),
        ce = B.clientX,
        xe = B.clientY;
      (To(B.view),
        J1(B),
        (ne.mouse = [ie, this.__zoom.invert(ie)]),
        Er(this),
        ne.start());
      function X(Ae) {
        if ((Fu(Ae), !ne.moved)) {
          var Be = Ae.clientX - ce,
            kt = Ae.clientY - xe;
          ne.moved = Be * Be + kt * kt > y;
        }
        ne.event(Ae).zoom(
          "mouse",
          n(
            E(ne.that.__zoom, (ne.mouse[0] = en(Ae, G)), ne.mouse[1]),
            ne.extent,
            s,
          ),
        );
      }
      function he(Ae) {
        (te.on("mousemove.zoom mouseup.zoom", null),
          Eo(Ae.view, ne.moved),
          Fu(Ae),
          ne.event(Ae).end());
      }
    }
    function U(B, ...V) {
      if (e.apply(this, arguments)) {
        var G = this.__zoom,
          ne = en(B.changedTouches ? B.changedTouches[0] : B, this),
          te = G.invert(ne),
          ie = G.k * (B.shiftKey ? 0.5 : 2),
          ce = n(E(T(G, ie), ne, te), t.apply(this, V), s);
        (Fu(B),
          u > 0
            ? Tt(this).transition().duration(u).call(D, ce, ne, B)
            : Tt(this).call(k.transform, ce, ne, B));
      }
    }
    function j(B, ...V) {
      if (e.apply(this, arguments)) {
        var G = B.touches,
          ne = G.length,
          te = I(this, V, B.changedTouches.length === ne).event(B),
          ie,
          ce,
          xe,
          X;
        for (J1(B), ce = 0; ce < ne; ++ce)
          ((xe = G[ce]),
            (X = en(xe, this)),
            (X = [X, this.__zoom.invert(X), xe.identifier]),
            te.touch0
              ? !te.touch1 &&
                te.touch0[2] !== X[2] &&
                ((te.touch1 = X), (te.taps = 0))
              : ((te.touch0 = X), (ie = !0), (te.taps = 1 + !!h)));
        (h && (h = clearTimeout(h)),
          ie &&
            (te.taps < 2 &&
              ((m = X[0]),
              (h = setTimeout(function () {
                h = null;
              }, b))),
            Er(this),
            te.start()));
      }
    }
    function Z(B, ...V) {
      if (this.__zooming) {
        var G = I(this, V).event(B),
          ne = B.changedTouches,
          te = ne.length,
          ie,
          ce,
          xe,
          X;
        for (Fu(B), ie = 0; ie < te; ++ie)
          ((ce = ne[ie]),
            (xe = en(ce, this)),
            G.touch0 && G.touch0[2] === ce.identifier
              ? (G.touch0[0] = xe)
              : G.touch1 &&
                G.touch1[2] === ce.identifier &&
                (G.touch1[0] = xe));
        if (((ce = G.that.__zoom), G.touch1)) {
          var he = G.touch0[0],
            Ae = G.touch0[1],
            Be = G.touch1[0],
            kt = G.touch1[1],
            Ke = (Ke = Be[0] - he[0]) * Ke + (Ke = Be[1] - he[1]) * Ke,
            Nt = (Nt = kt[0] - Ae[0]) * Nt + (Nt = kt[1] - Ae[1]) * Nt;
          ((ce = T(ce, Math.sqrt(Ke / Nt))),
            (xe = [(he[0] + Be[0]) / 2, (he[1] + Be[1]) / 2]),
            (X = [(Ae[0] + kt[0]) / 2, (Ae[1] + kt[1]) / 2]));
        } else if (G.touch0) ((xe = G.touch0[0]), (X = G.touch0[1]));
        else return;
        G.zoom("touch", n(E(ce, xe, X), G.extent, s));
      }
    }
    function Q(B, ...V) {
      if (this.__zooming) {
        var G = I(this, V).event(B),
          ne = B.changedTouches,
          te = ne.length,
          ie,
          ce;
        for (
          J1(B),
            p && clearTimeout(p),
            p = setTimeout(function () {
              p = null;
            }, b),
            ie = 0;
          ie < te;
          ++ie
        )
          ((ce = ne[ie]),
            G.touch0 && G.touch0[2] === ce.identifier
              ? delete G.touch0
              : G.touch1 && G.touch1[2] === ce.identifier && delete G.touch1);
        if (
          (G.touch1 && !G.touch0 && ((G.touch0 = G.touch1), delete G.touch1),
          G.touch0)
        )
          G.touch0[1] = this.__zoom.invert(G.touch0[0]);
        else if (
          (G.end(),
          G.taps === 2 &&
            ((ce = en(ce, this)), Math.hypot(m[0] - ce[0], m[1] - ce[1]) < v))
        ) {
          var xe = Tt(this).on("dblclick.zoom");
          xe && xe.apply(this, arguments);
        }
      }
    }
    return (
      (k.wheelDelta = function (B) {
        return arguments.length
          ? ((r = typeof B == "function" ? B : Ul(+B)), k)
          : r;
      }),
      (k.filter = function (B) {
        return arguments.length
          ? ((e = typeof B == "function" ? B : Ul(!!B)), k)
          : e;
      }),
      (k.touchable = function (B) {
        return arguments.length
          ? ((i = typeof B == "function" ? B : Ul(!!B)), k)
          : i;
      }),
      (k.extent = function (B) {
        return arguments.length
          ? ((t =
              typeof B == "function"
                ? B
                : Ul([
                    [+B[0][0], +B[0][1]],
                    [+B[1][0], +B[1][1]],
                  ])),
            k)
          : t;
      }),
      (k.scaleExtent = function (B) {
        return arguments.length
          ? ((o[0] = +B[0]), (o[1] = +B[1]), k)
          : [o[0], o[1]];
      }),
      (k.translateExtent = function (B) {
        return arguments.length
          ? ((s[0][0] = +B[0][0]),
            (s[1][0] = +B[1][0]),
            (s[0][1] = +B[0][1]),
            (s[1][1] = +B[1][1]),
            k)
          : [
              [s[0][0], s[0][1]],
              [s[1][0], s[1][1]],
            ];
      }),
      (k.constrain = function (B) {
        return arguments.length ? ((n = B), k) : n;
      }),
      (k.duration = function (B) {
        return arguments.length ? ((u = +B), k) : u;
      }),
      (k.interpolate = function (B) {
        return arguments.length ? ((a = B), k) : a;
      }),
      (k.on = function () {
        var B = l.on.apply(l, arguments);
        return B === l ? k : B;
      }),
      (k.clickDistance = function (B) {
        return arguments.length ? ((y = (B = +B) * B), k) : Math.sqrt(y);
      }),
      (k.tapDistance = function (B) {
        return arguments.length ? ((v = +B), k) : v;
      }),
      k
    );
  }
  var ZO = "npm2url/dist/index.cjs",
    JO = {
      jsdelivr: (e) => `https://cdn.jsdelivr.net/npm/${e}`,
      unpkg: (e) => `https://unpkg.com/${e}`,
    };
  async function QO(e, t) {
    let n = await fetch(e, { signal: t });
    if (!n.ok) throw n;
    await n.text();
  }
  var Vl = class {
      constructor() {
        ((this.providers = { ...JO }), (this.provider = "jsdelivr"));
      }
      async getFastestProvider(t = 5e3, n = ZO) {
        let r = new AbortController(),
          i = 0;
        try {
          return await new Promise((o, s) => {
            (Promise.all(
              Object.entries(this.providers).map(async ([u, a]) => {
                try {
                  (await QO(a(n), r.signal), o(u));
                } catch {}
              }),
            ).then(() => s(new Error("All providers failed"))),
              (i = setTimeout(s, t, new Error("Timed out"))));
          });
        } finally {
          (r.abort(), clearTimeout(i));
        }
      }
      async findFastestProvider(t, n) {
        return (
          (this.provider = await this.getFastestProvider(t, n)),
          this.provider
        );
      }
      setProvider(t, n) {
        n ? (this.providers[t] = n) : delete this.providers[t];
      }
      getFullUrl(t, n = this.provider) {
        if (t.includes("://")) return t;
        let r = this.providers[n];
        if (!r) throw new Error(`Provider ${n} not found`);
        return r(t);
      }
    },
    Abe = new Vl(),
    uo = class {
      constructor() {
        this.listeners = [];
      }
      tap(t) {
        return (this.listeners.push(t), () => this.revoke(t));
      }
      revoke(t) {
        let n = this.listeners.indexOf(t);
        n >= 0 && this.listeners.splice(n, 1);
      }
      revokeAll() {
        this.listeners.splice(0);
      }
      call(...t) {
        for (let n of this.listeners) n(...t);
      }
    };
  var eB = Math.random().toString(36).slice(2, 8),
    fA = 0;
  function pA() {
    return ((fA += 1), `mm-${eB}-${fA}`);
  }
  function Qo() {}
  function ms(e, t) {
    let n = (r, i) =>
      t(
        r,
        () => {
          var o;
          return (o = r.children) == null ? void 0 : o.map((s) => n(s, r));
        },
        i,
      );
    return n(e);
  }
  function mA(e, ...t) {
    let n = (e || "").split(" ").filter(Boolean);
    return (
      t.forEach((r) => {
        r && n.indexOf(r) < 0 && n.push(r);
      }),
      n.join(" ")
    );
  }
  function e6(e, t) {
    return (...n) => t(e, ...n);
  }
  function tB() {
    let e = {};
    return (
      (e.promise = new Promise((t, n) => {
        ((e.resolve = t), (e.reject = n));
      })),
      e
    );
  }
  function nB(e) {
    let t = {};
    return function (...r) {
      let i = `${r[0]}`,
        o = t[i];
      return (o || ((o = { value: e(...r) }), (t[i] = o)), o.value);
    };
  }
  function gA(e, t) {
    let n = { timer: 0 };
    function r() {
      n.timer && (window.clearTimeout(n.timer), (n.timer = 0));
    }
    function i() {
      (r(), n.args && (n.result = e(...n.args)));
    }
    return function (...s) {
      return (r(), (n.args = s), (n.timer = window.setTimeout(i, t)), n.result);
    };
  }
  var bA = 1,
    xA = 2,
    rB = "http://www.w3.org/2000/svg",
    J3 = "http://www.w3.org/1999/xlink",
    iB = { show: J3, actuate: J3, href: J3 },
    oB = (e) => typeof e == "string" || typeof e == "number",
    sB = (e) => e?.vtype === bA,
    uB = (e) => e?.vtype === xA;
  function aB(e, t, ...n) {
    return (
      (t = Object.assign({}, t, { children: n.length === 1 ? n[0] : n })),
      lB(e, t)
    );
  }
  function lB(e, t) {
    let n;
    if (typeof e == "string") n = bA;
    else if (typeof e == "function") n = xA;
    else throw new Error("Invalid VNode type");
    return { vtype: n, type: e, props: t };
  }
  function cB(e) {
    return e.children;
  }
  var fB = { isSvg: !1 };
  function hA(e, t) {
    (Array.isArray(t) || (t = [t]),
      (t = t.filter(Boolean)),
      t.length && e.append(...t));
  }
  function hB(e, t, n) {
    for (let r in t)
      if (!(r === "key" || r === "children" || r === "ref"))
        if (r === "dangerouslySetInnerHTML") e.innerHTML = t[r].__html;
        else if (
          r === "innerHTML" ||
          r === "textContent" ||
          r === "innerText" ||
          (r === "value" && ["textarea", "select"].includes(e.tagName))
        ) {
          let i = t[r];
          i != null && (e[r] = i);
        } else
          r.startsWith("on")
            ? (e[r.toLowerCase()] = t[r])
            : pB(e, r, t[r], n.isSvg);
  }
  var dB = { className: "class", labelFor: "for" };
  function pB(e, t, n, r) {
    if (((t = dB[t] || t), n === !0)) e.setAttribute(t, "");
    else if (n === !1) e.removeAttribute(t);
    else {
      let i = r ? iB[t] : void 0;
      i !== void 0 ? e.setAttributeNS(i, t, n) : e.setAttribute(t, n);
    }
  }
  function mB(e) {
    return e.reduce((t, n) => t.concat(n), []);
  }
  function Q3(e, t) {
    return Array.isArray(e) ? mB(e.map((n) => Q3(n, t))) : t6(e, t);
  }
  function t6(e, t = fB) {
    if (e == null || typeof e == "boolean") return null;
    if (e instanceof Node) return e;
    if (uB(e)) {
      let { type: n, props: r } = e;
      if (n === cB) {
        let o = document.createDocumentFragment();
        if (r.children) {
          let s = Q3(r.children, t);
          hA(o, s);
        }
        return o;
      }
      let i = n(r);
      return t6(i, t);
    }
    if (oB(e)) return document.createTextNode(`${e}`);
    if (sB(e)) {
      let n,
        { type: r, props: i } = e;
      if (
        (!t.isSvg && r === "svg" && (t = Object.assign({}, t, { isSvg: !0 })),
        t.isSvg
          ? (n = document.createElementNS(rB, r))
          : (n = document.createElement(r)),
        hB(n, i, t),
        i.children)
      ) {
        let s = t;
        t.isSvg &&
          r === "foreignObject" &&
          (s = Object.assign({}, s, { isSvg: !1 }));
        let u = Q3(i.children, s);
        u != null && hA(n, u);
      }
      let { ref: o } = i;
      return (typeof o == "function" && o(n), n);
    }
    throw new Error("mount: Invalid Vnode!");
  }
  function gB(e) {
    return t6(e);
  }
  function yA(...e) {
    return gB(aB(...e));
  }
  var bB = nB((e) => {
      document.head.append(
        yA("link", { rel: "preload", as: "script", href: e }),
      );
    }),
    dA = {};
  async function xB(e, t) {
    var n;
    let r =
      (e.type === "script" && ((n = e.data) == null ? void 0 : n.src)) || "";
    if ((e.loaded || (e.loaded = dA[r]), !e.loaded)) {
      let i = tB();
      if (
        ((e.loaded = i.promise),
        e.type === "script" &&
          (document.head.append(
            yA("script", {
              ...e.data,
              onLoad: () => i.resolve(),
              onError: i.reject,
            }),
          ),
          r ? (dA[r] = e.loaded) : i.resolve()),
        e.type === "iife")
      ) {
        let { fn: o, getParams: s } = e.data;
        (o(...(s?.(t) || [])), i.resolve());
      }
    }
    await e.loaded;
  }
  async function ed(e, t) {
    (e.forEach((n) => {
      var r;
      n.type === "script" && (r = n.data) != null && r.src && bB(n.data.src);
    }),
      (t = { getMarkmap: () => window.markmap, ...t }));
    for (let n of e) await xB(n, t);
  }
  function td(e) {
    return { type: "script", data: { src: e } };
  }
  function n6(e) {
    return { type: "stylesheet", data: { href: e } };
  }
  var yB = { _useHtmlParser2: !1 };
  function h6(e, t) {
    if (!e) return t ?? yB;
    let n = { _useHtmlParser2: !!e.xmlMode, ...t, ...e };
    return (
      e.xml
        ? ((n._useHtmlParser2 = !0),
          (n.xmlMode = !0),
          e.xml !== !0 && Object.assign(n, e.xml))
        : e.xmlMode && (n._useHtmlParser2 = !0),
      n
    );
  }
  var ut;
  (function (e) {
    ((e.Root = "root"),
      (e.Text = "text"),
      (e.Directive = "directive"),
      (e.Comment = "comment"),
      (e.Script = "script"),
      (e.Style = "style"),
      (e.Tag = "tag"),
      (e.CDATA = "cdata"),
      (e.Doctype = "doctype"));
  })(ut || (ut = {}));
  function wB(e) {
    return e.type === ut.Tag || e.type === ut.Script || e.type === ut.Style;
  }
  var vB = ut.Root,
    _B = ut.Text,
    kB = ut.Directive,
    SB = ut.Comment,
    AB = ut.Script,
    MB = ut.Style,
    TB = ut.Tag,
    EB = ut.CDATA,
    CB = ut.Doctype,
    sd = class {
      constructor() {
        ((this.parent = null),
          (this.prev = null),
          (this.next = null),
          (this.startIndex = null),
          (this.endIndex = null));
      }
      get parentNode() {
        return this.parent;
      }
      set parentNode(t) {
        this.parent = t;
      }
      get previousSibling() {
        return this.prev;
      }
      set previousSibling(t) {
        this.prev = t;
      }
      get nextSibling() {
        return this.next;
      }
      set nextSibling(t) {
        this.next = t;
      }
      cloneNode(t = !1) {
        return Wl(this, t);
      }
    },
    Yl = class extends sd {
      constructor(t) {
        (super(), (this.data = t));
      }
      get nodeValue() {
        return this.data;
      }
      set nodeValue(t) {
        this.data = t;
      }
    },
    Ou = class extends Yl {
      constructor() {
        (super(...arguments), (this.type = ut.Text));
      }
      get nodeType() {
        return 3;
      }
    },
    ud = class extends Yl {
      constructor() {
        (super(...arguments), (this.type = ut.Comment));
      }
      get nodeType() {
        return 8;
      }
    },
    ad = class extends Yl {
      constructor(t, n) {
        (super(n), (this.name = t), (this.type = ut.Directive));
      }
      get nodeType() {
        return 1;
      }
    },
    Xl = class extends sd {
      constructor(t) {
        (super(), (this.children = t));
      }
      get firstChild() {
        var t;
        return (t = this.children[0]) !== null && t !== void 0 ? t : null;
      }
      get lastChild() {
        return this.children.length > 0
          ? this.children[this.children.length - 1]
          : null;
      }
      get childNodes() {
        return this.children;
      }
      set childNodes(t) {
        this.children = t;
      }
    },
    ld = class extends Xl {
      constructor() {
        (super(...arguments), (this.type = ut.CDATA));
      }
      get nodeType() {
        return 4;
      }
    },
    xs = class extends Xl {
      constructor() {
        (super(...arguments), (this.type = ut.Root));
      }
      get nodeType() {
        return 9;
      }
    },
    cd = class extends Xl {
      constructor(
        t,
        n,
        r = [],
        i = t === "script" ? ut.Script : t === "style" ? ut.Style : ut.Tag,
      ) {
        (super(r), (this.name = t), (this.attribs = n), (this.type = i));
      }
      get nodeType() {
        return 1;
      }
      get tagName() {
        return this.name;
      }
      set tagName(t) {
        this.name = t;
      }
      get attributes() {
        return Object.keys(this.attribs).map((t) => {
          var n, r;
          return {
            name: t,
            value: this.attribs[t],
            namespace:
              (n = this["x-attribsNamespace"]) === null || n === void 0
                ? void 0
                : n[t],
            prefix:
              (r = this["x-attribsPrefix"]) === null || r === void 0
                ? void 0
                : r[t],
          };
        });
      }
    };
  function Oe(e) {
    return wB(e);
  }
  function wd(e) {
    return e.type === ut.CDATA;
  }
  function ys(e) {
    return e.type === ut.Text;
  }
  function S6(e) {
    return e.type === ut.Comment;
  }
  function NB(e) {
    return e.type === ut.Directive;
  }
  function _s(e) {
    return e.type === ut.Root;
  }
  function ln(e) {
    return Object.prototype.hasOwnProperty.call(e, "children");
  }
  function Wl(e, t = !1) {
    let n;
    if (ys(e)) n = new Ou(e.data);
    else if (S6(e)) n = new ud(e.data);
    else if (Oe(e)) {
      let r = t ? r6(e.children) : [],
        i = new cd(e.name, { ...e.attribs }, r);
      (r.forEach((o) => (o.parent = i)),
        e.namespace != null && (i.namespace = e.namespace),
        e["x-attribsNamespace"] &&
          (i["x-attribsNamespace"] = { ...e["x-attribsNamespace"] }),
        e["x-attribsPrefix"] &&
          (i["x-attribsPrefix"] = { ...e["x-attribsPrefix"] }),
        (n = i));
    } else if (wd(e)) {
      let r = t ? r6(e.children) : [],
        i = new ld(r);
      (r.forEach((o) => (o.parent = i)), (n = i));
    } else if (_s(e)) {
      let r = t ? r6(e.children) : [],
        i = new xs(r);
      (r.forEach((o) => (o.parent = i)),
        e["x-mode"] && (i["x-mode"] = e["x-mode"]),
        (n = i));
    } else if (NB(e)) {
      let r = new ad(e.name, e.data);
      (e["x-name"] != null &&
        ((r["x-name"] = e["x-name"]),
        (r["x-publicId"] = e["x-publicId"]),
        (r["x-systemId"] = e["x-systemId"])),
        (n = r));
    } else throw new Error(`Not implemented yet: ${e.type}`);
    return (
      (n.startIndex = e.startIndex),
      (n.endIndex = e.endIndex),
      e.sourceCodeLocation != null &&
        (n.sourceCodeLocation = e.sourceCodeLocation),
      n
    );
  }
  function r6(e) {
    let t = e.map((n) => Wl(n, !0));
    for (let n = 1; n < t.length; n++)
      ((t[n].prev = t[n - 1]), (t[n - 1].next = t[n]));
    return t;
  }
  var wA = { withStartIndices: !1, withEndIndices: !1, xmlMode: !1 },
    d6 = class {
      constructor(t, n, r) {
        ((this.dom = []),
          (this.root = new xs(this.dom)),
          (this.done = !1),
          (this.tagStack = [this.root]),
          (this.lastNode = null),
          (this.parser = null),
          typeof n == "function" && ((r = n), (n = wA)),
          typeof t == "object" && ((n = t), (t = void 0)),
          (this.callback = t ?? null),
          (this.options = n ?? wA),
          (this.elementCB = r ?? null));
      }
      onparserinit(t) {
        this.parser = t;
      }
      onreset() {
        ((this.dom = []),
          (this.root = new xs(this.dom)),
          (this.done = !1),
          (this.tagStack = [this.root]),
          (this.lastNode = null),
          (this.parser = null));
      }
      onend() {
        this.done ||
          ((this.done = !0), (this.parser = null), this.handleCallback(null));
      }
      onerror(t) {
        this.handleCallback(t);
      }
      onclosetag() {
        this.lastNode = null;
        let t = this.tagStack.pop();
        (this.options.withEndIndices && (t.endIndex = this.parser.endIndex),
          this.elementCB && this.elementCB(t));
      }
      onopentag(t, n) {
        let r = this.options.xmlMode ? ut.Tag : void 0,
          i = new cd(t, n, void 0, r);
        (this.addNode(i), this.tagStack.push(i));
      }
      ontext(t) {
        let { lastNode: n } = this;
        if (n && n.type === ut.Text)
          ((n.data += t),
            this.options.withEndIndices && (n.endIndex = this.parser.endIndex));
        else {
          let r = new Ou(t);
          (this.addNode(r), (this.lastNode = r));
        }
      }
      oncomment(t) {
        if (this.lastNode && this.lastNode.type === ut.Comment) {
          this.lastNode.data += t;
          return;
        }
        let n = new ud(t);
        (this.addNode(n), (this.lastNode = n));
      }
      oncommentend() {
        this.lastNode = null;
      }
      oncdatastart() {
        let t = new Ou(""),
          n = new ld([t]);
        (this.addNode(n), (t.parent = n), (this.lastNode = t));
      }
      oncdataend() {
        this.lastNode = null;
      }
      onprocessinginstruction(t, n) {
        let r = new ad(t, n);
        this.addNode(r);
      }
      handleCallback(t) {
        if (typeof this.callback == "function") this.callback(t, this.dom);
        else if (t) throw t;
      }
      addNode(t) {
        let n = this.tagStack[this.tagStack.length - 1],
          r = n.children[n.children.length - 1];
        (this.options.withStartIndices &&
          (t.startIndex = this.parser.startIndex),
          this.options.withEndIndices && (t.endIndex = this.parser.endIndex),
          n.children.push(t),
          r && ((t.prev = r), (r.next = t)),
          (t.parent = n),
          (this.lastNode = null));
      }
    },
    $A = new Uint16Array(
      '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'
        .split("")
        .map((e) => e.charCodeAt(0)),
    ),
    HA = new Uint16Array(
      "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022"
        .split("")
        .map((e) => e.charCodeAt(0)),
    ),
    i6,
    DB = new Map([
      [0, 65533],
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376],
    ]),
    p6 =
      (i6 = String.fromCodePoint) !== null && i6 !== void 0
        ? i6
        : function (e) {
            let t = "";
            return (
              e > 65535 &&
                ((e -= 65536),
                (t += String.fromCharCode(((e >>> 10) & 1023) | 55296)),
                (e = 56320 | (e & 1023))),
              (t += String.fromCharCode(e)),
              t
            );
          };
  function IB(e) {
    var t;
    return (e >= 55296 && e <= 57343) || e > 1114111
      ? 65533
      : (t = DB.get(e)) !== null && t !== void 0
        ? t
        : e;
  }
  var an;
  (function (e) {
    ((e[(e.NUM = 35)] = "NUM"),
      (e[(e.SEMI = 59)] = "SEMI"),
      (e[(e.EQUALS = 61)] = "EQUALS"),
      (e[(e.ZERO = 48)] = "ZERO"),
      (e[(e.NINE = 57)] = "NINE"),
      (e[(e.LOWER_A = 97)] = "LOWER_A"),
      (e[(e.LOWER_F = 102)] = "LOWER_F"),
      (e[(e.LOWER_X = 120)] = "LOWER_X"),
      (e[(e.LOWER_Z = 122)] = "LOWER_Z"),
      (e[(e.UPPER_A = 65)] = "UPPER_A"),
      (e[(e.UPPER_F = 70)] = "UPPER_F"),
      (e[(e.UPPER_Z = 90)] = "UPPER_Z"));
  })(an || (an = {}));
  var FB = 32,
    e0;
  (function (e) {
    ((e[(e.VALUE_LENGTH = 49152)] = "VALUE_LENGTH"),
      (e[(e.BRANCH_LENGTH = 16256)] = "BRANCH_LENGTH"),
      (e[(e.JUMP_TABLE = 127)] = "JUMP_TABLE"));
  })(e0 || (e0 = {}));
  function m6(e) {
    return e >= an.ZERO && e <= an.NINE;
  }
  function qB(e) {
    return (
      (e >= an.UPPER_A && e <= an.UPPER_F) ||
      (e >= an.LOWER_A && e <= an.LOWER_F)
    );
  }
  function LB(e) {
    return (
      (e >= an.UPPER_A && e <= an.UPPER_Z) ||
      (e >= an.LOWER_A && e <= an.LOWER_Z) ||
      m6(e)
    );
  }
  function OB(e) {
    return e === an.EQUALS || LB(e);
  }
  var un;
  (function (e) {
    ((e[(e.EntityStart = 0)] = "EntityStart"),
      (e[(e.NumericStart = 1)] = "NumericStart"),
      (e[(e.NumericDecimal = 2)] = "NumericDecimal"),
      (e[(e.NumericHex = 3)] = "NumericHex"),
      (e[(e.NamedEntity = 4)] = "NamedEntity"));
  })(un || (un = {}));
  var yi;
  (function (e) {
    ((e[(e.Legacy = 0)] = "Legacy"),
      (e[(e.Strict = 1)] = "Strict"),
      (e[(e.Attribute = 2)] = "Attribute"));
  })(yi || (yi = {}));
  var fd = class {
    constructor(t, n, r) {
      ((this.decodeTree = t),
        (this.emitCodePoint = n),
        (this.errors = r),
        (this.state = un.EntityStart),
        (this.consumed = 1),
        (this.result = 0),
        (this.treeIndex = 0),
        (this.excess = 1),
        (this.decodeMode = yi.Strict));
    }
    startEntity(t) {
      ((this.decodeMode = t),
        (this.state = un.EntityStart),
        (this.result = 0),
        (this.treeIndex = 0),
        (this.excess = 1),
        (this.consumed = 1));
    }
    write(t, n) {
      switch (this.state) {
        case un.EntityStart:
          return t.charCodeAt(n) === an.NUM
            ? ((this.state = un.NumericStart),
              (this.consumed += 1),
              this.stateNumericStart(t, n + 1))
            : ((this.state = un.NamedEntity), this.stateNamedEntity(t, n));
        case un.NumericStart:
          return this.stateNumericStart(t, n);
        case un.NumericDecimal:
          return this.stateNumericDecimal(t, n);
        case un.NumericHex:
          return this.stateNumericHex(t, n);
        case un.NamedEntity:
          return this.stateNamedEntity(t, n);
      }
    }
    stateNumericStart(t, n) {
      return n >= t.length
        ? -1
        : (t.charCodeAt(n) | FB) === an.LOWER_X
          ? ((this.state = un.NumericHex),
            (this.consumed += 1),
            this.stateNumericHex(t, n + 1))
          : ((this.state = un.NumericDecimal), this.stateNumericDecimal(t, n));
    }
    addToNumericResult(t, n, r, i) {
      if (n !== r) {
        let o = r - n;
        ((this.result =
          this.result * Math.pow(i, o) + parseInt(t.substr(n, o), i)),
          (this.consumed += o));
      }
    }
    stateNumericHex(t, n) {
      let r = n;
      for (; n < t.length; ) {
        let i = t.charCodeAt(n);
        if (m6(i) || qB(i)) n += 1;
        else
          return (
            this.addToNumericResult(t, r, n, 16),
            this.emitNumericEntity(i, 3)
          );
      }
      return (this.addToNumericResult(t, r, n, 16), -1);
    }
    stateNumericDecimal(t, n) {
      let r = n;
      for (; n < t.length; ) {
        let i = t.charCodeAt(n);
        if (m6(i)) n += 1;
        else
          return (
            this.addToNumericResult(t, r, n, 10),
            this.emitNumericEntity(i, 2)
          );
      }
      return (this.addToNumericResult(t, r, n, 10), -1);
    }
    emitNumericEntity(t, n) {
      var r;
      if (this.consumed <= n)
        return (
          (r = this.errors) === null ||
            r === void 0 ||
            r.absenceOfDigitsInNumericCharacterReference(this.consumed),
          0
        );
      if (t === an.SEMI) this.consumed += 1;
      else if (this.decodeMode === yi.Strict) return 0;
      return (
        this.emitCodePoint(IB(this.result), this.consumed),
        this.errors &&
          (t !== an.SEMI &&
            this.errors.missingSemicolonAfterCharacterReference(),
          this.errors.validateNumericCharacterReference(this.result)),
        this.consumed
      );
    }
    stateNamedEntity(t, n) {
      let { decodeTree: r } = this,
        i = r[this.treeIndex],
        o = (i & e0.VALUE_LENGTH) >> 14;
      for (; n < t.length; n++, this.excess++) {
        let s = t.charCodeAt(n);
        if (
          ((this.treeIndex = BB(r, i, this.treeIndex + Math.max(1, o), s)),
          this.treeIndex < 0)
        )
          return this.result === 0 ||
            (this.decodeMode === yi.Attribute && (o === 0 || OB(s)))
            ? 0
            : this.emitNotTerminatedNamedEntity();
        if (
          ((i = r[this.treeIndex]), (o = (i & e0.VALUE_LENGTH) >> 14), o !== 0)
        ) {
          if (s === an.SEMI)
            return this.emitNamedEntityData(
              this.treeIndex,
              o,
              this.consumed + this.excess,
            );
          this.decodeMode !== yi.Strict &&
            ((this.result = this.treeIndex),
            (this.consumed += this.excess),
            (this.excess = 0));
        }
      }
      return -1;
    }
    emitNotTerminatedNamedEntity() {
      var t;
      let { result: n, decodeTree: r } = this,
        i = (r[n] & e0.VALUE_LENGTH) >> 14;
      return (
        this.emitNamedEntityData(n, i, this.consumed),
        (t = this.errors) === null ||
          t === void 0 ||
          t.missingSemicolonAfterCharacterReference(),
        this.consumed
      );
    }
    emitNamedEntityData(t, n, r) {
      let { decodeTree: i } = this;
      return (
        this.emitCodePoint(n === 1 ? i[t] & ~e0.VALUE_LENGTH : i[t + 1], r),
        n === 3 && this.emitCodePoint(i[t + 2], r),
        r
      );
    }
    end() {
      var t;
      switch (this.state) {
        case un.NamedEntity:
          return this.result !== 0 &&
            (this.decodeMode !== yi.Attribute || this.result === this.treeIndex)
            ? this.emitNotTerminatedNamedEntity()
            : 0;
        case un.NumericDecimal:
          return this.emitNumericEntity(0, 2);
        case un.NumericHex:
          return this.emitNumericEntity(0, 3);
        case un.NumericStart:
          return (
            (t = this.errors) === null ||
              t === void 0 ||
              t.absenceOfDigitsInNumericCharacterReference(this.consumed),
            0
          );
        case un.EntityStart:
          return 0;
      }
    }
  };
  function UA(e) {
    let t = "",
      n = new fd(e, (r) => (t += p6(r)));
    return function (i, o) {
      let s = 0,
        u = 0;
      for (; (u = i.indexOf("&", u)) >= 0; ) {
        ((t += i.slice(s, u)), n.startEntity(o));
        let l = n.write(i, u + 1);
        if (l < 0) {
          s = u + n.end();
          break;
        }
        ((s = u + l), (u = l === 0 ? s + 1 : s));
      }
      let a = t + i.slice(s);
      return ((t = ""), a);
    };
  }
  function BB(e, t, n, r) {
    let i = (t & e0.BRANCH_LENGTH) >> 7,
      o = t & e0.JUMP_TABLE;
    if (i === 0) return o !== 0 && r === o ? n : -1;
    if (o) {
      let a = r - o;
      return a < 0 || a >= i ? -1 : e[n + a] - 1;
    }
    let s = n,
      u = s + i - 1;
    for (; s <= u; ) {
      let a = (s + u) >>> 1,
        l = e[a];
      if (l < r) s = a + 1;
      else if (l > r) u = a - 1;
      else return e[a + i];
    }
    return -1;
  }
  UA($A);
  UA(HA);
  var vA = /["&'<>$\x80-\uFFFF]/g,
    zB = new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [39, "&apos;"],
      [60, "&lt;"],
      [62, "&gt;"],
    ]),
    RB =
      String.prototype.codePointAt != null
        ? (e, t) => e.codePointAt(t)
        : (e, t) =>
            (e.charCodeAt(t) & 64512) === 55296
              ? (e.charCodeAt(t) - 55296) * 1024 +
                e.charCodeAt(t + 1) -
                56320 +
                65536
              : e.charCodeAt(t);
  function VA(e) {
    let t = "",
      n = 0,
      r;
    for (; (r = vA.exec(e)) !== null; ) {
      let i = r.index,
        o = e.charCodeAt(i),
        s = zB.get(o);
      s !== void 0
        ? ((t += e.substring(n, i) + s), (n = i + 1))
        : ((t += `${e.substring(n, i)}&#x${RB(e, i).toString(16)};`),
          (n = vA.lastIndex += +((o & 64512) === 55296)));
    }
    return t + e.substr(n);
  }
  function jA(e, t) {
    return function (r) {
      let i,
        o = 0,
        s = "";
      for (; (i = e.exec(r)); )
        (o !== i.index && (s += r.substring(o, i.index)),
          (s += t.get(i[0].charCodeAt(0))),
          (o = i.index + 1));
      return s + r.substring(o);
    };
  }
  var PB = jA(
      /["&\u00A0]/g,
      new Map([
        [34, "&quot;"],
        [38, "&amp;"],
        [160, "&nbsp;"],
      ]),
    ),
    $B = jA(
      /[&<>\u00A0]/g,
      new Map([
        [38, "&amp;"],
        [60, "&lt;"],
        [62, "&gt;"],
        [160, "&nbsp;"],
      ]),
    ),
    HB = new Map(
      [
        "altGlyph",
        "altGlyphDef",
        "altGlyphItem",
        "animateColor",
        "animateMotion",
        "animateTransform",
        "clipPath",
        "feBlend",
        "feColorMatrix",
        "feComponentTransfer",
        "feComposite",
        "feConvolveMatrix",
        "feDiffuseLighting",
        "feDisplacementMap",
        "feDistantLight",
        "feDropShadow",
        "feFlood",
        "feFuncA",
        "feFuncB",
        "feFuncG",
        "feFuncR",
        "feGaussianBlur",
        "feImage",
        "feMerge",
        "feMergeNode",
        "feMorphology",
        "feOffset",
        "fePointLight",
        "feSpecularLighting",
        "feSpotLight",
        "feTile",
        "feTurbulence",
        "foreignObject",
        "glyphRef",
        "linearGradient",
        "radialGradient",
        "textPath",
      ].map((e) => [e.toLowerCase(), e]),
    ),
    UB = new Map(
      [
        "definitionURL",
        "attributeName",
        "attributeType",
        "baseFrequency",
        "baseProfile",
        "calcMode",
        "clipPathUnits",
        "diffuseConstant",
        "edgeMode",
        "filterUnits",
        "glyphRef",
        "gradientTransform",
        "gradientUnits",
        "kernelMatrix",
        "kernelUnitLength",
        "keyPoints",
        "keySplines",
        "keyTimes",
        "lengthAdjust",
        "limitingConeAngle",
        "markerHeight",
        "markerUnits",
        "markerWidth",
        "maskContentUnits",
        "maskUnits",
        "numOctaves",
        "pathLength",
        "patternContentUnits",
        "patternTransform",
        "patternUnits",
        "pointsAtX",
        "pointsAtY",
        "pointsAtZ",
        "preserveAlpha",
        "preserveAspectRatio",
        "primitiveUnits",
        "refX",
        "refY",
        "repeatCount",
        "repeatDur",
        "requiredExtensions",
        "requiredFeatures",
        "specularConstant",
        "specularExponent",
        "spreadMethod",
        "startOffset",
        "stdDeviation",
        "stitchTiles",
        "surfaceScale",
        "systemLanguage",
        "tableValues",
        "targetX",
        "targetY",
        "textLength",
        "viewBox",
        "viewTarget",
        "xChannelSelector",
        "yChannelSelector",
        "zoomAndPan",
      ].map((e) => [e.toLowerCase(), e]),
    ),
    VB = new Set([
      "style",
      "script",
      "xmp",
      "iframe",
      "noembed",
      "noframes",
      "plaintext",
      "noscript",
    ]);
  function jB(e) {
    return e.replace(/"/g, "&quot;");
  }
  function GB(e, t) {
    var n;
    if (!e) return;
    let r =
      ((n = t.encodeEntities) !== null && n !== void 0
        ? n
        : t.decodeEntities) === !1
        ? jB
        : t.xmlMode || t.encodeEntities !== "utf8"
          ? VA
          : PB;
    return Object.keys(e)
      .map((i) => {
        var o, s;
        let u = (o = e[i]) !== null && o !== void 0 ? o : "";
        return (
          t.xmlMode === "foreign" &&
            (i = (s = UB.get(i)) !== null && s !== void 0 ? s : i),
          !t.emptyAttrs && !t.xmlMode && u === "" ? i : `${i}="${r(u)}"`
        );
      })
      .join(" ");
  }
  var _A = new Set([
    "area",
    "base",
    "basefont",
    "br",
    "col",
    "command",
    "embed",
    "frame",
    "hr",
    "img",
    "input",
    "isindex",
    "keygen",
    "link",
    "meta",
    "param",
    "source",
    "track",
    "wbr",
  ]);
  function vd(e, t = {}) {
    let n = "length" in e ? e : [e],
      r = "";
    for (let i = 0; i < n.length; i++) r += YB(n[i], t);
    return r;
  }
  function YB(e, t) {
    switch (e.type) {
      case vB:
        return vd(e.children, t);
      case CB:
      case kB:
        return ZB(e);
      case SB:
        return ez(e);
      case EB:
        return QB(e);
      case AB:
      case MB:
      case TB:
        return KB(e, t);
      case _B:
        return JB(e, t);
    }
  }
  var XB = new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignObject",
      "desc",
      "title",
    ]),
    WB = new Set(["svg", "math"]);
  function KB(e, t) {
    var n;
    (t.xmlMode === "foreign" &&
      ((e.name = (n = HB.get(e.name)) !== null && n !== void 0 ? n : e.name),
      e.parent && XB.has(e.parent.name) && (t = { ...t, xmlMode: !1 })),
      !t.xmlMode && WB.has(e.name) && (t = { ...t, xmlMode: "foreign" }));
    let r = `<${e.name}`,
      i = GB(e.attribs, t);
    return (
      i && (r += ` ${i}`),
      e.children.length === 0 &&
      (t.xmlMode
        ? t.selfClosingTags !== !1
        : t.selfClosingTags && _A.has(e.name))
        ? (t.xmlMode || (r += " "), (r += "/>"))
        : ((r += ">"),
          e.children.length > 0 && (r += vd(e.children, t)),
          (t.xmlMode || !_A.has(e.name)) && (r += `</${e.name}>`)),
      r
    );
  }
  function ZB(e) {
    return `<${e.data}>`;
  }
  function JB(e, t) {
    var n;
    let r = e.data || "";
    return (
      ((n = t.encodeEntities) !== null && n !== void 0
        ? n
        : t.decodeEntities) !== !1 &&
        !(!t.xmlMode && e.parent && VB.has(e.parent.name)) &&
        (r = t.xmlMode || t.encodeEntities !== "utf8" ? VA(r) : $B(r)),
      r
    );
  }
  function QB(e) {
    return `<![CDATA[${e.children[0].data}]]>`;
  }
  function ez(e) {
    return `<!--${e.data}-->`;
  }
  function GA(e, t) {
    return vd(e, t);
  }
  function tz(e, t) {
    return ln(e) ? e.children.map((n) => GA(n, t)).join("") : "";
  }
  function od(e) {
    return Array.isArray(e)
      ? e.map(od).join("")
      : Oe(e)
        ? e.name === "br"
          ? `
`
          : od(e.children)
        : wd(e)
          ? od(e.children)
          : ys(e)
            ? e.data
            : "";
  }
  function Bu(e) {
    return Array.isArray(e)
      ? e.map(Bu).join("")
      : ln(e) && !S6(e)
        ? Bu(e.children)
        : ys(e)
          ? e.data
          : "";
  }
  function hd(e) {
    return Array.isArray(e)
      ? e.map(hd).join("")
      : ln(e) && (e.type === ut.Tag || wd(e))
        ? hd(e.children)
        : ys(e)
          ? e.data
          : "";
  }
  function _d(e) {
    return ln(e) ? e.children : [];
  }
  function YA(e) {
    return e.parent || null;
  }
  function XA(e) {
    let t = YA(e);
    if (t != null) return _d(t);
    let n = [e],
      { prev: r, next: i } = e;
    for (; r != null; ) (n.unshift(r), ({ prev: r } = r));
    for (; i != null; ) (n.push(i), ({ next: i } = i));
    return n;
  }
  function nz(e, t) {
    var n;
    return (n = e.attribs) === null || n === void 0 ? void 0 : n[t];
  }
  function rz(e, t) {
    return (
      e.attribs != null &&
      Object.prototype.hasOwnProperty.call(e.attribs, t) &&
      e.attribs[t] != null
    );
  }
  function iz(e) {
    return e.name;
  }
  function A6(e) {
    let { next: t } = e;
    for (; t !== null && !Oe(t); ) ({ next: t } = t);
    return t;
  }
  function M6(e) {
    let { prev: t } = e;
    for (; t !== null && !Oe(t); ) ({ prev: t } = t);
    return t;
  }
  function ks(e) {
    if (
      (e.prev && (e.prev.next = e.next),
      e.next && (e.next.prev = e.prev),
      e.parent)
    ) {
      let t = e.parent.children,
        n = t.lastIndexOf(e);
      n >= 0 && t.splice(n, 1);
    }
    ((e.next = null), (e.prev = null), (e.parent = null));
  }
  function oz(e, t) {
    let n = (t.prev = e.prev);
    n && (n.next = t);
    let r = (t.next = e.next);
    r && (r.prev = t);
    let i = (t.parent = e.parent);
    if (i) {
      let o = i.children;
      ((o[o.lastIndexOf(e)] = t), (e.parent = null));
    }
  }
  function sz(e, t) {
    if ((ks(t), (t.next = null), (t.parent = e), e.children.push(t) > 1)) {
      let n = e.children[e.children.length - 2];
      ((n.next = t), (t.prev = n));
    } else t.prev = null;
  }
  function uz(e, t) {
    ks(t);
    let { parent: n } = e,
      r = e.next;
    if (((t.next = r), (t.prev = e), (e.next = t), (t.parent = n), r)) {
      if (((r.prev = t), n)) {
        let i = n.children;
        i.splice(i.lastIndexOf(r), 0, t);
      }
    } else n && n.children.push(t);
  }
  function az(e, t) {
    if ((ks(t), (t.parent = e), (t.prev = null), e.children.unshift(t) !== 1)) {
      let n = e.children[1];
      ((n.prev = t), (t.next = n));
    } else t.next = null;
  }
  function lz(e, t) {
    ks(t);
    let { parent: n } = e;
    if (n) {
      let r = n.children;
      r.splice(r.indexOf(e), 0, t);
    }
    (e.prev && (e.prev.next = t),
      (t.parent = n),
      (t.prev = e.prev),
      (t.next = e),
      (e.prev = t));
  }
  function kd(e, t, n = !0, r = 1 / 0) {
    return T6(e, Array.isArray(t) ? t : [t], n, r);
  }
  function T6(e, t, n, r) {
    let i = [],
      o = [t],
      s = [0];
    for (;;) {
      if (s[0] >= o[0].length) {
        if (s.length === 1) return i;
        (o.shift(), s.shift());
        continue;
      }
      let u = o[0][s[0]++];
      if (e(u) && (i.push(u), --r <= 0)) return i;
      n &&
        ln(u) &&
        u.children.length > 0 &&
        (s.unshift(0), o.unshift(u.children));
    }
  }
  function cz(e, t) {
    return t.find(e);
  }
  function E6(e, t, n = !0) {
    let r = null;
    for (let i = 0; i < t.length && !r; i++) {
      let o = t[i];
      if (Oe(o))
        e(o)
          ? (r = o)
          : n && o.children.length > 0 && (r = E6(e, o.children, !0));
      else continue;
    }
    return r;
  }
  function WA(e, t) {
    return t.some((n) => Oe(n) && (e(n) || WA(e, n.children)));
  }
  function fz(e, t) {
    let n = [],
      r = [t],
      i = [0];
    for (;;) {
      if (i[0] >= r[0].length) {
        if (r.length === 1) return n;
        (r.shift(), i.shift());
        continue;
      }
      let o = r[0][i[0]++];
      Oe(o) &&
        (e(o) && n.push(o),
        o.children.length > 0 && (i.unshift(0), r.unshift(o.children)));
    }
  }
  var dd = {
    tag_name(e) {
      return typeof e == "function"
        ? (t) => Oe(t) && e(t.name)
        : e === "*"
          ? Oe
          : (t) => Oe(t) && t.name === e;
    },
    tag_type(e) {
      return typeof e == "function" ? (t) => e(t.type) : (t) => t.type === e;
    },
    tag_contains(e) {
      return typeof e == "function"
        ? (t) => ys(t) && e(t.data)
        : (t) => ys(t) && t.data === e;
    },
  };
  function KA(e, t) {
    return typeof t == "function"
      ? (n) => Oe(n) && t(n.attribs[e])
      : (n) => Oe(n) && n.attribs[e] === t;
  }
  function hz(e, t) {
    return (n) => e(n) || t(n);
  }
  function ZA(e) {
    let t = Object.keys(e).map((n) => {
      let r = e[n];
      return Object.prototype.hasOwnProperty.call(dd, n) ? dd[n](r) : KA(n, r);
    });
    return t.length === 0 ? null : t.reduce(hz);
  }
  function dz(e, t) {
    let n = ZA(e);
    return n ? n(t) : !0;
  }
  function pz(e, t, n, r = 1 / 0) {
    let i = ZA(e);
    return i ? kd(i, t, n, r) : [];
  }
  function mz(e, t, n = !0) {
    return (Array.isArray(t) || (t = [t]), E6(KA("id", e), t, n));
  }
  function zu(e, t, n = !0, r = 1 / 0) {
    return kd(dd.tag_name(e), t, n, r);
  }
  function gz(e, t, n = !0, r = 1 / 0) {
    return kd(dd.tag_type(e), t, n, r);
  }
  function bz(e) {
    let t = e.length;
    for (; --t >= 0; ) {
      let n = e[t];
      if (t > 0 && e.lastIndexOf(n, t - 1) >= 0) {
        e.splice(t, 1);
        continue;
      }
      for (let r = n.parent; r; r = r.parent)
        if (e.includes(r)) {
          e.splice(t, 1);
          break;
        }
    }
    return e;
  }
  var xr;
  (function (e) {
    ((e[(e.DISCONNECTED = 1)] = "DISCONNECTED"),
      (e[(e.PRECEDING = 2)] = "PRECEDING"),
      (e[(e.FOLLOWING = 4)] = "FOLLOWING"),
      (e[(e.CONTAINS = 8)] = "CONTAINS"),
      (e[(e.CONTAINED_BY = 16)] = "CONTAINED_BY"));
  })(xr || (xr = {}));
  function JA(e, t) {
    let n = [],
      r = [];
    if (e === t) return 0;
    let i = ln(e) ? e : e.parent;
    for (; i; ) (n.unshift(i), (i = i.parent));
    for (i = ln(t) ? t : t.parent; i; ) (r.unshift(i), (i = i.parent));
    let o = Math.min(n.length, r.length),
      s = 0;
    for (; s < o && n[s] === r[s]; ) s++;
    if (s === 0) return xr.DISCONNECTED;
    let u = n[s - 1],
      a = u.children,
      l = n[s],
      h = r[s];
    return a.indexOf(l) > a.indexOf(h)
      ? u === t
        ? xr.FOLLOWING | xr.CONTAINED_BY
        : xr.FOLLOWING
      : u === e
        ? xr.PRECEDING | xr.CONTAINS
        : xr.PRECEDING;
  }
  function Ru(e) {
    return (
      (e = e.filter((t, n, r) => !r.includes(t, n + 1))),
      e.sort((t, n) => {
        let r = JA(t, n);
        return r & xr.PRECEDING ? -1 : r & xr.FOLLOWING ? 1 : 0;
      }),
      e
    );
  }
  function xz(e) {
    let t = pd(kz, e);
    return t ? (t.name === "feed" ? yz(t) : wz(t)) : null;
  }
  function yz(e) {
    var t;
    let n = e.children,
      r = {
        type: "atom",
        items: zu("entry", n).map((s) => {
          var u;
          let { children: a } = s,
            l = { media: QA(a) };
          (Un(l, "id", "id", a), Un(l, "title", "title", a));
          let h =
            (u = pd("link", a)) === null || u === void 0
              ? void 0
              : u.attribs.href;
          h && (l.link = h);
          let m = t0("summary", a) || t0("content", a);
          m && (l.description = m);
          let p = t0("updated", a);
          return (p && (l.pubDate = new Date(p)), l);
        }),
      };
    (Un(r, "id", "id", n), Un(r, "title", "title", n));
    let i =
      (t = pd("link", n)) === null || t === void 0 ? void 0 : t.attribs.href;
    (i && (r.link = i), Un(r, "description", "subtitle", n));
    let o = t0("updated", n);
    return (o && (r.updated = new Date(o)), Un(r, "author", "email", n, !0), r);
  }
  function wz(e) {
    var t, n;
    let r =
        (n =
          (t = pd("channel", e.children)) === null || t === void 0
            ? void 0
            : t.children) !== null && n !== void 0
          ? n
          : [],
      i = {
        type: e.name.substr(0, 3),
        id: "",
        items: zu("item", e.children).map((s) => {
          let { children: u } = s,
            a = { media: QA(u) };
          (Un(a, "id", "guid", u),
            Un(a, "title", "title", u),
            Un(a, "link", "link", u),
            Un(a, "description", "description", u));
          let l = t0("pubDate", u) || t0("dc:date", u);
          return (l && (a.pubDate = new Date(l)), a);
        }),
      };
    (Un(i, "title", "title", r),
      Un(i, "link", "link", r),
      Un(i, "description", "description", r));
    let o = t0("lastBuildDate", r);
    return (
      o && (i.updated = new Date(o)),
      Un(i, "author", "managingEditor", r, !0),
      i
    );
  }
  var vz = ["url", "type", "lang"],
    _z = [
      "fileSize",
      "bitrate",
      "framerate",
      "samplingrate",
      "channels",
      "duration",
      "height",
      "width",
    ];
  function QA(e) {
    return zu("media:content", e).map((t) => {
      let { attribs: n } = t,
        r = { medium: n.medium, isDefault: !!n.isDefault };
      for (let i of vz) n[i] && (r[i] = n[i]);
      for (let i of _z) n[i] && (r[i] = parseInt(n[i], 10));
      return (n.expression && (r.expression = n.expression), r);
    });
  }
  function pd(e, t) {
    return zu(e, t, !0, 1)[0];
  }
  function t0(e, t, n = !1) {
    return Bu(zu(e, t, n, 1)).trim();
  }
  function Un(e, t, n, r, i = !1) {
    let o = t0(n, r, i);
    o && (e[t] = o);
  }
  function kz(e) {
    return e === "rss" || e === "feed" || e === "rdf:RDF";
  }
  var Sd = Object.freeze(
    Object.defineProperty(
      {
        __proto__: null,
        get DocumentPosition() {
          return xr;
        },
        append: uz,
        appendChild: sz,
        compareDocumentPosition: JA,
        existsOne: WA,
        filter: kd,
        find: T6,
        findAll: fz,
        findOne: E6,
        findOneChild: cz,
        getAttributeValue: nz,
        getChildren: _d,
        getElementById: mz,
        getElements: pz,
        getElementsByTagName: zu,
        getElementsByTagType: gz,
        getFeed: xz,
        getInnerHTML: tz,
        getName: iz,
        getOuterHTML: GA,
        getParent: YA,
        getSiblings: XA,
        getText: od,
        hasAttrib: rz,
        hasChildren: ln,
        innerText: hd,
        isCDATA: wd,
        isComment: S6,
        isDocument: _s,
        isTag: Oe,
        isText: ys,
        nextElementSibling: A6,
        prepend: lz,
        prependChild: az,
        prevElementSibling: M6,
        removeElement: ks,
        removeSubsets: bz,
        replaceElement: oz,
        testElement: dz,
        textContent: Bu,
        uniqueSort: Ru,
      },
      Symbol.toStringTag,
      { value: "Module" },
    ),
  );
  function eM(e, t, n) {
    return e ? e(t ?? e._root.children, null, void 0, n).toString() : "";
  }
  function Sz(e, t) {
    return (
      typeof e == "object" && e != null && !("length" in e) && !("type" in e)
    );
  }
  function Az(e, t) {
    let n = Sz(e) ? ((t = e), void 0) : e,
      r = {
        ...(this === null || this === void 0 ? void 0 : this._options),
        ...h6(t),
      };
    return eM(this, n, r);
  }
  function Mz(e) {
    let t = { ...this._options, xmlMode: !0 };
    return eM(this, e, t);
  }
  function Kl(e) {
    let t = e ?? (this ? this.root() : []),
      n = "";
    for (let r = 0; r < t.length; r++) n += Bu(t[r]);
    return n;
  }
  function Tz(e, t, n = typeof t == "boolean" ? t : !1) {
    if (!e || typeof e != "string") return null;
    typeof t == "boolean" && (n = t);
    let r = this.load(e, this._options, !1);
    return (n || r("script").remove(), [...r.root()[0].children]);
  }
  function Ez() {
    return this(this._root);
  }
  function tM(e, t) {
    if (t === e) return !1;
    let n = t;
    for (; n && n !== n.parent; ) if (((n = n.parent), n === e)) return !0;
    return !1;
  }
  function Cz(e) {
    return this.root().extract(e);
  }
  function Nz(e, t) {
    if (!kA(e) || !kA(t)) return;
    let n = e.length,
      r = +t.length;
    for (let i = 0; i < r; i++) e[n++] = t[i];
    return ((e.length = n), e);
  }
  function kA(e) {
    if (Array.isArray(e)) return !0;
    if (
      typeof e != "object" ||
      e === null ||
      !("length" in e) ||
      typeof e.length != "number" ||
      e.length < 0
    )
      return !1;
    for (let t = 0; t < e.length; t++) if (!(t in e)) return !1;
    return !0;
  }
  var Dz = Object.freeze(
    Object.defineProperty(
      {
        __proto__: null,
        contains: tM,
        extract: Cz,
        html: Az,
        merge: Nz,
        parseHTML: Tz,
        root: Ez,
        text: Kl,
        xml: Mz,
      },
      Symbol.toStringTag,
      { value: "Module" },
    ),
  );
  function lo(e) {
    return e.cheerio != null;
  }
  function Iz(e) {
    return e.replace(/[._-](\w|$)/g, (t, n) => n.toUpperCase());
  }
  function Fz(e) {
    return e.replace(/[A-Z]/g, "-$&").toLowerCase();
  }
  function Ot(e, t) {
    let n = e.length;
    for (let r = 0; r < n; r++) t(e[r], r);
    return e;
  }
  var bs;
  (function (e) {
    ((e[(e.LowerA = 97)] = "LowerA"),
      (e[(e.LowerZ = 122)] = "LowerZ"),
      (e[(e.UpperA = 65)] = "UpperA"),
      (e[(e.UpperZ = 90)] = "UpperZ"),
      (e[(e.Exclamation = 33)] = "Exclamation"));
  })(bs || (bs = {}));
  function g6(e) {
    let t = e.indexOf("<");
    if (t < 0 || t > e.length - 3) return !1;
    let n = e.charCodeAt(t + 1);
    return (
      ((n >= bs.LowerA && n <= bs.LowerZ) ||
        (n >= bs.UpperA && n <= bs.UpperZ) ||
        n === bs.Exclamation) &&
      e.includes(">", t + 2)
    );
  }
  var Zl = Object.prototype.hasOwnProperty,
    Jl = /\s+/,
    b6 = "data-",
    C6 =
      /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
    qz = /^{[^]*}$|^\[[^]*]$/;
  function md(e, t, n) {
    var r;
    if (!(!e || !Oe(e))) {
      if ((((r = e.attribs) !== null && r !== void 0) || (e.attribs = {}), !t))
        return e.attribs;
      if (Zl.call(e.attribs, t)) return !n && C6.test(t) ? t : e.attribs[t];
      if (e.name === "option" && t === "value") return Kl(e.children);
      if (
        e.name === "input" &&
        (e.attribs.type === "radio" || e.attribs.type === "checkbox") &&
        t === "value"
      )
        return "on";
    }
  }
  function Lu(e, t, n) {
    n === null ? rM(e, t) : (e.attribs[t] = `${n}`);
  }
  function Lz(e, t) {
    if (typeof e == "object" || t !== void 0) {
      if (typeof t == "function") {
        if (typeof e != "string")
          throw new Error("Bad combination of arguments.");
        return Ot(this, (n, r) => {
          Oe(n) && Lu(n, e, t.call(n, r, n.attribs[e]));
        });
      }
      return Ot(this, (n) => {
        if (Oe(n))
          if (typeof e == "object")
            for (let r of Object.keys(e)) {
              let i = e[r];
              Lu(n, r, i);
            }
          else Lu(n, e, t);
      });
    }
    return arguments.length > 1 ? this : md(this[0], e, this.options.xmlMode);
  }
  function SA(e, t, n) {
    return t in e
      ? e[t]
      : !n && C6.test(t)
        ? md(e, t, !1) !== void 0
        : md(e, t, n);
  }
  function o6(e, t, n, r) {
    t in e ? (e[t] = n) : Lu(e, t, !r && C6.test(t) ? (n ? "" : null) : `${n}`);
  }
  function Oz(e, t) {
    var n;
    if (typeof e == "string" && t === void 0) {
      let r = this[0];
      if (!r || !Oe(r)) return;
      switch (e) {
        case "style": {
          let i = this.css(),
            o = Object.keys(i);
          for (let s = 0; s < o.length; s++) i[s] = o[s];
          return ((i.length = o.length), i);
        }
        case "tagName":
        case "nodeName":
          return r.name.toUpperCase();
        case "href":
        case "src": {
          let i = (n = r.attribs) === null || n === void 0 ? void 0 : n[e];
          return typeof URL < "u" &&
            ((e === "href" && (r.tagName === "a" || r.tagName === "link")) ||
              (e === "src" &&
                (r.tagName === "img" ||
                  r.tagName === "iframe" ||
                  r.tagName === "audio" ||
                  r.tagName === "video" ||
                  r.tagName === "source"))) &&
            i !== void 0 &&
            this.options.baseURI
            ? new URL(i, this.options.baseURI).href
            : i;
        }
        case "innerText":
          return hd(r);
        case "textContent":
          return Bu(r);
        case "outerHTML":
          return this.clone().wrap("<container />").parent().html();
        case "innerHTML":
          return this.html();
        default:
          return SA(r, e, this.options.xmlMode);
      }
    }
    if (typeof e == "object" || t !== void 0) {
      if (typeof t == "function") {
        if (typeof e == "object")
          throw new TypeError("Bad combination of arguments.");
        return Ot(this, (r, i) => {
          Oe(r) &&
            o6(
              r,
              e,
              t.call(r, i, SA(r, e, this.options.xmlMode)),
              this.options.xmlMode,
            );
        });
      }
      return Ot(this, (r) => {
        if (Oe(r))
          if (typeof e == "object")
            for (let i of Object.keys(e)) {
              let o = e[i];
              o6(r, i, o, this.options.xmlMode);
            }
          else o6(r, e, t, this.options.xmlMode);
      });
    }
  }
  function AA(e, t, n) {
    var r;
    (((r = e.data) !== null && r !== void 0) || (e.data = {}),
      typeof t == "object"
        ? Object.assign(e.data, t)
        : typeof t == "string" && n !== void 0 && (e.data[t] = n));
  }
  function Bz(e) {
    for (let t of Object.keys(e.attribs)) {
      if (!t.startsWith(b6)) continue;
      let n = Iz(t.slice(b6.length));
      Zl.call(e.data, n) || (e.data[n] = nM(e.attribs[t]));
    }
    return e.data;
  }
  function zz(e, t) {
    let n = b6 + Fz(t),
      r = e.data;
    if (Zl.call(r, t)) return r[t];
    if (Zl.call(e.attribs, n)) return (r[t] = nM(e.attribs[n]));
  }
  function nM(e) {
    if (e === "null") return null;
    if (e === "true") return !0;
    if (e === "false") return !1;
    let t = Number(e);
    if (e === String(t)) return t;
    if (qz.test(e))
      try {
        return JSON.parse(e);
      } catch {}
    return e;
  }
  function Rz(e, t) {
    var n;
    let r = this[0];
    if (!r || !Oe(r)) return;
    let i = r;
    return (
      ((n = i.data) !== null && n !== void 0) || (i.data = {}),
      e == null
        ? Bz(i)
        : typeof e == "object" || t !== void 0
          ? (Ot(this, (o) => {
              Oe(o) && (typeof e == "object" ? AA(o, e) : AA(o, e, t));
            }),
            this)
          : zz(i, e)
    );
  }
  function Pz(e) {
    let t = arguments.length === 0,
      n = this[0];
    if (!n || !Oe(n)) return t ? void 0 : this;
    switch (n.name) {
      case "textarea":
        return this.text(e);
      case "select": {
        let r = this.find("option:selected");
        if (!t) {
          if (this.attr("multiple") == null && typeof e == "object")
            return this;
          this.find("option").removeAttr("selected");
          let i = typeof e == "object" ? e : [e];
          for (let o of i)
            this.find(`option[value="${o}"]`).attr("selected", "");
          return this;
        }
        return this.attr("multiple")
          ? r.toArray().map((i) => Kl(i.children))
          : r.attr("value");
      }
      case "input":
      case "option":
        return t ? this.attr("value") : this.attr("value", e);
    }
  }
  function rM(e, t) {
    !e.attribs || !Zl.call(e.attribs, t) || delete e.attribs[t];
  }
  function gd(e) {
    return e ? e.trim().split(Jl) : [];
  }
  function $z(e) {
    let t = gd(e);
    for (let n of t)
      Ot(this, (r) => {
        Oe(r) && rM(r, n);
      });
    return this;
  }
  function Hz(e) {
    return this.toArray().some((t) => {
      let n = Oe(t) && t.attribs.class,
        r = -1;
      if (n && e.length > 0)
        for (; (r = n.indexOf(e, r + 1)) > -1; ) {
          let i = r + e.length;
          if (
            (r === 0 || Jl.test(n[r - 1])) &&
            (i === n.length || Jl.test(n[i]))
          )
            return !0;
        }
      return !1;
    });
  }
  function iM(e) {
    if (typeof e == "function")
      return Ot(this, (r, i) => {
        if (Oe(r)) {
          let o = r.attribs.class || "";
          iM.call([r], e.call(r, i, o));
        }
      });
    if (!e || typeof e != "string") return this;
    let t = e.split(Jl),
      n = this.length;
    for (let r = 0; r < n; r++) {
      let i = this[r];
      if (!Oe(i)) continue;
      let o = md(i, "class", !1);
      if (o) {
        let s = ` ${o} `;
        for (let u of t) {
          let a = `${u} `;
          s.includes(` ${a}`) || (s += a);
        }
        Lu(i, "class", s.trim());
      } else Lu(i, "class", t.join(" ").trim());
    }
    return this;
  }
  function oM(e) {
    if (typeof e == "function")
      return Ot(this, (i, o) => {
        Oe(i) && oM.call([i], e.call(i, o, i.attribs.class || ""));
      });
    let t = gd(e),
      n = t.length,
      r = arguments.length === 0;
    return Ot(this, (i) => {
      if (Oe(i))
        if (r) i.attribs.class = "";
        else {
          let o = gd(i.attribs.class),
            s = !1;
          for (let u = 0; u < n; u++) {
            let a = o.indexOf(t[u]);
            a >= 0 && (o.splice(a, 1), (s = !0), u--);
          }
          s && (i.attribs.class = o.join(" "));
        }
    });
  }
  function sM(e, t) {
    if (typeof e == "function")
      return Ot(this, (s, u) => {
        Oe(s) && sM.call([s], e.call(s, u, s.attribs.class || "", t), t);
      });
    if (!e || typeof e != "string") return this;
    let n = e.split(Jl),
      r = n.length,
      i = typeof t == "boolean" ? (t ? 1 : -1) : 0,
      o = this.length;
    for (let s = 0; s < o; s++) {
      let u = this[s];
      if (!Oe(u)) continue;
      let a = gd(u.attribs.class);
      for (let l = 0; l < r; l++) {
        let h = a.indexOf(n[l]);
        i >= 0 && h < 0 ? a.push(n[l]) : i <= 0 && h >= 0 && a.splice(h, 1);
      }
      u.attribs.class = a.join(" ");
    }
    return this;
  }
  var Uz = Object.freeze(
      Object.defineProperty(
        {
          __proto__: null,
          addClass: iM,
          attr: Lz,
          data: Rz,
          hasClass: Hz,
          prop: Oz,
          removeAttr: $z,
          removeClass: oM,
          toggleClass: sM,
          val: Pz,
        },
        Symbol.toStringTag,
        { value: "Module" },
      ),
    ),
    Ne;
  (function (e) {
    ((e.Attribute = "attribute"),
      (e.Pseudo = "pseudo"),
      (e.PseudoElement = "pseudo-element"),
      (e.Tag = "tag"),
      (e.Universal = "universal"),
      (e.Adjacent = "adjacent"),
      (e.Child = "child"),
      (e.Descendant = "descendant"),
      (e.Parent = "parent"),
      (e.Sibling = "sibling"),
      (e.ColumnCombinator = "column-combinator"));
  })(Ne || (Ne = {}));
  var Jt;
  (function (e) {
    ((e.Any = "any"),
      (e.Element = "element"),
      (e.End = "end"),
      (e.Equals = "equals"),
      (e.Exists = "exists"),
      (e.Hyphen = "hyphen"),
      (e.Not = "not"),
      (e.Start = "start"));
  })(Jt || (Jt = {}));
  var MA = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,
    Vz = /\\([\da-f]{1,6}\s?|(\s)|.)/gi,
    jz = new Map([
      [126, Jt.Element],
      [94, Jt.Start],
      [36, Jt.End],
      [42, Jt.Any],
      [33, Jt.Not],
      [124, Jt.Hyphen],
    ]),
    Gz = new Set([
      "has",
      "not",
      "matches",
      "is",
      "where",
      "host",
      "host-context",
    ]);
  function Gl(e) {
    switch (e.type) {
      case Ne.Adjacent:
      case Ne.Child:
      case Ne.Descendant:
      case Ne.Parent:
      case Ne.Sibling:
      case Ne.ColumnCombinator:
        return !0;
      default:
        return !1;
    }
  }
  var Yz = new Set(["contains", "icontains"]);
  function Xz(e, t, n) {
    let r = parseInt(t, 16) - 65536;
    return r !== r || n
      ? t
      : r < 0
        ? String.fromCharCode(r + 65536)
        : String.fromCharCode((r >> 10) | 55296, (r & 1023) | 56320);
  }
  function jl(e) {
    return e.replace(Vz, Xz);
  }
  function s6(e) {
    return e === 39 || e === 34;
  }
  function TA(e) {
    return e === 32 || e === 9 || e === 10 || e === 12 || e === 13;
  }
  function Ad(e) {
    let t = [],
      n = uM(t, `${e}`, 0);
    if (n < e.length) throw new Error(`Unmatched selector: ${e.slice(n)}`);
    return t;
  }
  function uM(e, t, n) {
    let r = [];
    function i(p) {
      let b = t.slice(n + p).match(MA);
      if (!b) throw new Error(`Expected name, found ${t.slice(n)}`);
      let [x] = b;
      return ((n += p + x.length), jl(x));
    }
    function o(p) {
      for (n += p; n < t.length && TA(t.charCodeAt(n)); ) n++;
    }
    function s() {
      n += 1;
      let p = n,
        b = 1;
      for (; b > 0 && n < t.length; n++)
        t.charCodeAt(n) === 40 && !u(n)
          ? b++
          : t.charCodeAt(n) === 41 && !u(n) && b--;
      if (b) throw new Error("Parenthesis not matched");
      return jl(t.slice(p, n - 1));
    }
    function u(p) {
      let b = 0;
      for (; t.charCodeAt(--p) === 92; ) b++;
      return (b & 1) === 1;
    }
    function a() {
      if (r.length > 0 && Gl(r[r.length - 1]))
        throw new Error("Did not expect successive traversals.");
    }
    function l(p) {
      if (r.length > 0 && r[r.length - 1].type === Ne.Descendant) {
        r[r.length - 1].type = p;
        return;
      }
      (a(), r.push({ type: p }));
    }
    function h(p, b) {
      r.push({
        type: Ne.Attribute,
        name: p,
        action: b,
        value: i(1),
        namespace: null,
        ignoreCase: "quirks",
      });
    }
    function m() {
      if (
        (r.length && r[r.length - 1].type === Ne.Descendant && r.pop(),
        r.length === 0)
      )
        throw new Error("Empty sub-selector");
      e.push(r);
    }
    if ((o(0), t.length === n)) return n;
    e: for (; n < t.length; ) {
      let p = t.charCodeAt(n);
      switch (p) {
        case 32:
        case 9:
        case 10:
        case 12:
        case 13: {
          ((r.length === 0 || r[0].type !== Ne.Descendant) &&
            (a(), r.push({ type: Ne.Descendant })),
            o(1));
          break;
        }
        case 62: {
          (l(Ne.Child), o(1));
          break;
        }
        case 60: {
          (l(Ne.Parent), o(1));
          break;
        }
        case 126: {
          (l(Ne.Sibling), o(1));
          break;
        }
        case 43: {
          (l(Ne.Adjacent), o(1));
          break;
        }
        case 46: {
          h("class", Jt.Element);
          break;
        }
        case 35: {
          h("id", Jt.Equals);
          break;
        }
        case 91: {
          o(1);
          let b,
            x = null;
          (t.charCodeAt(n) === 124
            ? (b = i(1))
            : t.startsWith("*|", n)
              ? ((x = "*"), (b = i(2)))
              : ((b = i(0)),
                t.charCodeAt(n) === 124 &&
                  t.charCodeAt(n + 1) !== 61 &&
                  ((x = b), (b = i(1)))),
            o(0));
          let y = Jt.Exists,
            v = jz.get(t.charCodeAt(n));
          if (v) {
            if (((y = v), t.charCodeAt(n + 1) !== 61))
              throw new Error("Expected `=`");
            o(2);
          } else t.charCodeAt(n) === 61 && ((y = Jt.Equals), o(1));
          let k = "",
            T = null;
          if (y !== "exists") {
            if (s6(t.charCodeAt(n))) {
              let D = t.charCodeAt(n),
                I = n + 1;
              for (; I < t.length && (t.charCodeAt(I) !== D || u(I)); ) I += 1;
              if (t.charCodeAt(I) !== D)
                throw new Error("Attribute value didn't end");
              ((k = jl(t.slice(n + 1, I))), (n = I + 1));
            } else {
              let D = n;
              for (
                ;
                n < t.length &&
                ((!TA(t.charCodeAt(n)) && t.charCodeAt(n) !== 93) || u(n));
              )
                n += 1;
              k = jl(t.slice(D, n));
            }
            o(0);
            let M = t.charCodeAt(n) | 32;
            M === 115 ? ((T = !1), o(1)) : M === 105 && ((T = !0), o(1));
          }
          if (t.charCodeAt(n) !== 93)
            throw new Error("Attribute selector didn't terminate");
          n += 1;
          let E = {
            type: Ne.Attribute,
            name: b,
            action: y,
            value: k,
            namespace: x,
            ignoreCase: T,
          };
          r.push(E);
          break;
        }
        case 58: {
          if (t.charCodeAt(n + 1) === 58) {
            r.push({
              type: Ne.PseudoElement,
              name: i(2).toLowerCase(),
              data: t.charCodeAt(n) === 40 ? s() : null,
            });
            continue;
          }
          let b = i(1).toLowerCase(),
            x = null;
          if (t.charCodeAt(n) === 40)
            if (Gz.has(b)) {
              if (s6(t.charCodeAt(n + 1)))
                throw new Error(`Pseudo-selector ${b} cannot be quoted`);
              if (((x = []), (n = uM(x, t, n + 1)), t.charCodeAt(n) !== 41))
                throw new Error(`Missing closing parenthesis in :${b} (${t})`);
              n += 1;
            } else {
              if (((x = s()), Yz.has(b))) {
                let y = x.charCodeAt(0);
                y === x.charCodeAt(x.length - 1) &&
                  s6(y) &&
                  (x = x.slice(1, -1));
              }
              x = jl(x);
            }
          r.push({ type: Ne.Pseudo, name: b, data: x });
          break;
        }
        case 44: {
          (m(), (r = []), o(1));
          break;
        }
        default: {
          if (t.startsWith("/*", n)) {
            let y = t.indexOf("*/", n + 2);
            if (y < 0) throw new Error("Comment was not terminated");
            ((n = y + 2), r.length === 0 && o(0));
            break;
          }
          let b = null,
            x;
          if (p === 42) ((n += 1), (x = "*"));
          else if (p === 124) {
            if (((x = ""), t.charCodeAt(n + 1) === 124)) {
              (l(Ne.ColumnCombinator), o(2));
              break;
            }
          } else if (MA.test(t.slice(n))) x = i(0);
          else break e;
          (t.charCodeAt(n) === 124 &&
            t.charCodeAt(n + 1) !== 124 &&
            ((b = x),
            t.charCodeAt(n + 1) === 42 ? ((x = "*"), (n += 2)) : (x = i(1))),
            r.push(
              x === "*"
                ? { type: Ne.Universal, namespace: b }
                : { type: Ne.Tag, name: x, namespace: b },
            ));
        }
      }
    }
    return (m(), n);
  }
  function Wz(e) {
    return e &&
      e.__esModule &&
      Object.prototype.hasOwnProperty.call(e, "default")
      ? e.default
      : e;
  }
  var u6, EA;
  function Kz() {
    return (
      EA ||
        ((EA = 1),
        (u6 = {
          trueFunc: function () {
            return !0;
          },
          falseFunc: function () {
            return !1;
          },
        })),
      u6
    );
  }
  var bd = Kz(),
    Ue = Wz(bd),
    aM = new Map([
      [Ne.Universal, 50],
      [Ne.Tag, 30],
      [Ne.Attribute, 1],
      [Ne.Pseudo, 0],
    ]);
  function N6(e) {
    return !aM.has(e.type);
  }
  var Zz = new Map([
    [Jt.Exists, 10],
    [Jt.Equals, 8],
    [Jt.Not, 7],
    [Jt.Start, 6],
    [Jt.End, 6],
    [Jt.Any, 5],
  ]);
  function Jz(e) {
    let t = e.map(lM);
    for (let n = 1; n < e.length; n++) {
      let r = t[n];
      if (!(r < 0))
        for (let i = n - 1; i >= 0 && r < t[i]; i--) {
          let o = e[i + 1];
          ((e[i + 1] = e[i]), (e[i] = o), (t[i + 1] = t[i]), (t[i] = r));
        }
    }
  }
  function lM(e) {
    var t, n;
    let r = (t = aM.get(e.type)) !== null && t !== void 0 ? t : -1;
    return (
      e.type === Ne.Attribute
        ? ((r = (n = Zz.get(e.action)) !== null && n !== void 0 ? n : 4),
          e.action === Jt.Equals && e.name === "id" && (r = 9),
          e.ignoreCase && (r >>= 1))
        : e.type === Ne.Pseudo &&
          (e.data
            ? e.name === "has" || e.name === "contains"
              ? (r = 0)
              : Array.isArray(e.data)
                ? ((r = Math.min(...e.data.map((i) => Math.min(...i.map(lM))))),
                  r < 0 && (r = 0))
                : (r = 2)
            : (r = 3)),
      r
    );
  }
  var Qz = /[-[\]{}()*+?.,\\^$|#\s]/g;
  function CA(e) {
    return e.replace(Qz, "\\$&");
  }
  var eR = new Set([
    "accept",
    "accept-charset",
    "align",
    "alink",
    "axis",
    "bgcolor",
    "charset",
    "checked",
    "clear",
    "codetype",
    "color",
    "compact",
    "declare",
    "defer",
    "dir",
    "direction",
    "disabled",
    "enctype",
    "face",
    "frame",
    "hreflang",
    "http-equiv",
    "lang",
    "language",
    "link",
    "media",
    "method",
    "multiple",
    "nohref",
    "noresize",
    "noshade",
    "nowrap",
    "readonly",
    "rel",
    "rev",
    "rules",
    "scope",
    "scrolling",
    "selected",
    "shape",
    "target",
    "text",
    "type",
    "valign",
    "valuetype",
    "vlink",
  ]);
  function gs(e, t) {
    return typeof e.ignoreCase == "boolean"
      ? e.ignoreCase
      : e.ignoreCase === "quirks"
        ? !!t.quirksMode
        : !t.xmlMode && eR.has(e.name);
  }
  var tR = {
      equals(e, t, n) {
        let { adapter: r } = n,
          { name: i } = t,
          { value: o } = t;
        return gs(t, n)
          ? ((o = o.toLowerCase()),
            (s) => {
              let u = r.getAttributeValue(s, i);
              return (
                u != null &&
                u.length === o.length &&
                u.toLowerCase() === o &&
                e(s)
              );
            })
          : (s) => r.getAttributeValue(s, i) === o && e(s);
      },
      hyphen(e, t, n) {
        let { adapter: r } = n,
          { name: i } = t,
          { value: o } = t,
          s = o.length;
        return gs(t, n)
          ? ((o = o.toLowerCase()),
            function (a) {
              let l = r.getAttributeValue(a, i);
              return (
                l != null &&
                (l.length === s || l.charAt(s) === "-") &&
                l.substr(0, s).toLowerCase() === o &&
                e(a)
              );
            })
          : function (a) {
              let l = r.getAttributeValue(a, i);
              return (
                l != null &&
                (l.length === s || l.charAt(s) === "-") &&
                l.substr(0, s) === o &&
                e(a)
              );
            };
      },
      element(e, t, n) {
        let { adapter: r } = n,
          { name: i, value: o } = t;
        if (/\s/.test(o)) return Ue.falseFunc;
        let s = new RegExp(`(?:^|\\s)${CA(o)}(?:$|\\s)`, gs(t, n) ? "i" : "");
        return function (a) {
          let l = r.getAttributeValue(a, i);
          return l != null && l.length >= o.length && s.test(l) && e(a);
        };
      },
      exists(e, { name: t }, { adapter: n }) {
        return (r) => n.hasAttrib(r, t) && e(r);
      },
      start(e, t, n) {
        let { adapter: r } = n,
          { name: i } = t,
          { value: o } = t,
          s = o.length;
        return s === 0
          ? Ue.falseFunc
          : gs(t, n)
            ? ((o = o.toLowerCase()),
              (u) => {
                let a = r.getAttributeValue(u, i);
                return (
                  a != null &&
                  a.length >= s &&
                  a.substr(0, s).toLowerCase() === o &&
                  e(u)
                );
              })
            : (u) => {
                var a;
                return (
                  !!(
                    !(
                      (a = r.getAttributeValue(u, i)) === null || a === void 0
                    ) && a.startsWith(o)
                  ) && e(u)
                );
              };
      },
      end(e, t, n) {
        let { adapter: r } = n,
          { name: i } = t,
          { value: o } = t,
          s = -o.length;
        return s === 0
          ? Ue.falseFunc
          : gs(t, n)
            ? ((o = o.toLowerCase()),
              (u) => {
                var a;
                return (
                  ((a = r.getAttributeValue(u, i)) === null || a === void 0
                    ? void 0
                    : a.substr(s).toLowerCase()) === o && e(u)
                );
              })
            : (u) => {
                var a;
                return (
                  !!(
                    !(
                      (a = r.getAttributeValue(u, i)) === null || a === void 0
                    ) && a.endsWith(o)
                  ) && e(u)
                );
              };
      },
      any(e, t, n) {
        let { adapter: r } = n,
          { name: i, value: o } = t;
        if (o === "") return Ue.falseFunc;
        if (gs(t, n)) {
          let s = new RegExp(CA(o), "i");
          return function (a) {
            let l = r.getAttributeValue(a, i);
            return l != null && l.length >= o.length && s.test(l) && e(a);
          };
        }
        return (s) => {
          var u;
          return (
            !!(
              !((u = r.getAttributeValue(s, i)) === null || u === void 0) &&
              u.includes(o)
            ) && e(s)
          );
        };
      },
      not(e, t, n) {
        let { adapter: r } = n,
          { name: i } = t,
          { value: o } = t;
        return o === ""
          ? (s) => !!r.getAttributeValue(s, i) && e(s)
          : gs(t, n)
            ? ((o = o.toLowerCase()),
              (s) => {
                let u = r.getAttributeValue(s, i);
                return (
                  (u == null ||
                    u.length !== o.length ||
                    u.toLowerCase() !== o) &&
                  e(s)
                );
              })
            : (s) => r.getAttributeValue(s, i) !== o && e(s);
      },
    },
    nR = new Set([9, 10, 12, 13, 32]),
    NA = 48,
    rR = 57;
  function iR(e) {
    if (((e = e.trim().toLowerCase()), e === "even")) return [2, 0];
    if (e === "odd") return [2, 1];
    let t = 0,
      n = 0,
      r = o(),
      i = s();
    if (
      (t < e.length &&
        e.charAt(t) === "n" &&
        (t++,
        (n = r * (i ?? 1)),
        u(),
        t < e.length ? ((r = o()), u(), (i = s())) : (r = i = 0)),
      i === null || t < e.length)
    )
      throw new Error(`n-th rule couldn't be parsed ('${e}')`);
    return [n, r * i];
    function o() {
      return e.charAt(t) === "-" ? (t++, -1) : (e.charAt(t) === "+" && t++, 1);
    }
    function s() {
      let a = t,
        l = 0;
      for (; t < e.length && e.charCodeAt(t) >= NA && e.charCodeAt(t) <= rR; )
        ((l = l * 10 + (e.charCodeAt(t) - NA)), t++);
      return t === a ? null : l;
    }
    function u() {
      for (; t < e.length && nR.has(e.charCodeAt(t)); ) t++;
    }
  }
  function oR(e) {
    let t = e[0],
      n = e[1] - 1;
    if (n < 0 && t <= 0) return Ue.falseFunc;
    if (t === -1) return (o) => o <= n;
    if (t === 0) return (o) => o === n;
    if (t === 1) return n < 0 ? Ue.trueFunc : (o) => o >= n;
    let r = Math.abs(t),
      i = ((n % r) + r) % r;
    return t > 1 ? (o) => o >= n && o % r === i : (o) => o <= n && o % r === i;
  }
  function nd(e) {
    return oR(iR(e));
  }
  function rd(e, t) {
    return (n) => {
      let r = t.getParent(n);
      return r != null && t.isTag(r) && e(n);
    };
  }
  var x6 = {
    contains(e, t, { adapter: n }) {
      return function (i) {
        return e(i) && n.getText(i).includes(t);
      };
    },
    icontains(e, t, { adapter: n }) {
      let r = t.toLowerCase();
      return function (o) {
        return e(o) && n.getText(o).toLowerCase().includes(r);
      };
    },
    "nth-child"(e, t, { adapter: n, equals: r }) {
      let i = nd(t);
      return i === Ue.falseFunc
        ? Ue.falseFunc
        : i === Ue.trueFunc
          ? rd(e, n)
          : function (s) {
              let u = n.getSiblings(s),
                a = 0;
              for (let l = 0; l < u.length && !r(s, u[l]); l++)
                n.isTag(u[l]) && a++;
              return i(a) && e(s);
            };
    },
    "nth-last-child"(e, t, { adapter: n, equals: r }) {
      let i = nd(t);
      return i === Ue.falseFunc
        ? Ue.falseFunc
        : i === Ue.trueFunc
          ? rd(e, n)
          : function (s) {
              let u = n.getSiblings(s),
                a = 0;
              for (let l = u.length - 1; l >= 0 && !r(s, u[l]); l--)
                n.isTag(u[l]) && a++;
              return i(a) && e(s);
            };
    },
    "nth-of-type"(e, t, { adapter: n, equals: r }) {
      let i = nd(t);
      return i === Ue.falseFunc
        ? Ue.falseFunc
        : i === Ue.trueFunc
          ? rd(e, n)
          : function (s) {
              let u = n.getSiblings(s),
                a = 0;
              for (let l = 0; l < u.length; l++) {
                let h = u[l];
                if (r(s, h)) break;
                n.isTag(h) && n.getName(h) === n.getName(s) && a++;
              }
              return i(a) && e(s);
            };
    },
    "nth-last-of-type"(e, t, { adapter: n, equals: r }) {
      let i = nd(t);
      return i === Ue.falseFunc
        ? Ue.falseFunc
        : i === Ue.trueFunc
          ? rd(e, n)
          : function (s) {
              let u = n.getSiblings(s),
                a = 0;
              for (let l = u.length - 1; l >= 0; l--) {
                let h = u[l];
                if (r(s, h)) break;
                n.isTag(h) && n.getName(h) === n.getName(s) && a++;
              }
              return i(a) && e(s);
            };
    },
    root(e, t, { adapter: n }) {
      return (r) => {
        let i = n.getParent(r);
        return (i == null || !n.isTag(i)) && e(r);
      };
    },
    scope(e, t, n, r) {
      let { equals: i } = n;
      return !r || r.length === 0
        ? x6.root(e, t, n)
        : r.length === 1
          ? (o) => i(r[0], o) && e(o)
          : (o) => r.includes(o) && e(o);
    },
    hover: a6("isHovered"),
    visited: a6("isVisited"),
    active: a6("isActive"),
  };
  function a6(e) {
    return function (n, r, { adapter: i }) {
      let o = i[e];
      return typeof o != "function"
        ? Ue.falseFunc
        : function (u) {
            return o(u) && n(u);
          };
    };
  }
  var DA = {
    empty(e, { adapter: t }) {
      return !t.getChildren(e).some((n) => t.isTag(n) || t.getText(n) !== "");
    },
    "first-child"(e, { adapter: t, equals: n }) {
      if (t.prevElementSibling) return t.prevElementSibling(e) == null;
      let r = t.getSiblings(e).find((i) => t.isTag(i));
      return r != null && n(e, r);
    },
    "last-child"(e, { adapter: t, equals: n }) {
      let r = t.getSiblings(e);
      for (let i = r.length - 1; i >= 0; i--) {
        if (n(e, r[i])) return !0;
        if (t.isTag(r[i])) break;
      }
      return !1;
    },
    "first-of-type"(e, { adapter: t, equals: n }) {
      let r = t.getSiblings(e),
        i = t.getName(e);
      for (let o = 0; o < r.length; o++) {
        let s = r[o];
        if (n(e, s)) return !0;
        if (t.isTag(s) && t.getName(s) === i) break;
      }
      return !1;
    },
    "last-of-type"(e, { adapter: t, equals: n }) {
      let r = t.getSiblings(e),
        i = t.getName(e);
      for (let o = r.length - 1; o >= 0; o--) {
        let s = r[o];
        if (n(e, s)) return !0;
        if (t.isTag(s) && t.getName(s) === i) break;
      }
      return !1;
    },
    "only-of-type"(e, { adapter: t, equals: n }) {
      let r = t.getName(e);
      return t
        .getSiblings(e)
        .every((i) => n(e, i) || !t.isTag(i) || t.getName(i) !== r);
    },
    "only-child"(e, { adapter: t, equals: n }) {
      return t.getSiblings(e).every((r) => n(e, r) || !t.isTag(r));
    },
  };
  function IA(e, t, n, r) {
    if (n === null) {
      if (e.length > r)
        throw new Error(`Pseudo-class :${t} requires an argument`);
    } else if (e.length === r)
      throw new Error(`Pseudo-class :${t} doesn't have any arguments`);
  }
  var sR = {
      "any-link": ":is(a, area, link)[href]",
      link: ":any-link:not(:visited)",
      disabled: `:is(
        :is(button, input, select, textarea, optgroup, option)[disabled],
        optgroup[disabled] > option,
        fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)
    )`,
      enabled: ":not(:disabled)",
      checked:
        ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",
      required: ":is(input, select, textarea)[required]",
      optional: ":is(input, select, textarea):not([required])",
      selected:
        "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",
      checkbox: "[type=checkbox]",
      file: "[type=file]",
      password: "[type=password]",
      radio: "[type=radio]",
      reset: "[type=reset]",
      image: "[type=image]",
      submit: "[type=submit]",
      parent: ":not(:empty)",
      header: ":is(h1, h2, h3, h4, h5, h6)",
      button: ":is(button, input[type=button])",
      input: ":is(input, textarea, select, button)",
      text: "input:is(:not([type!='']), [type=text])",
    },
    cM = {};
  function uR(e, t) {
    return e === Ue.falseFunc ? Ue.falseFunc : (n) => t.isTag(n) && e(n);
  }
  function fM(e, t) {
    let n = t.getSiblings(e);
    if (n.length <= 1) return [];
    let r = n.indexOf(e);
    return r < 0 || r === n.length - 1 ? [] : n.slice(r + 1).filter(t.isTag);
  }
  function y6(e) {
    return {
      xmlMode: !!e.xmlMode,
      lowerCaseAttributeNames: !!e.lowerCaseAttributeNames,
      lowerCaseTags: !!e.lowerCaseTags,
      quirksMode: !!e.quirksMode,
      cacheResults: !!e.cacheResults,
      pseudos: e.pseudos,
      adapter: e.adapter,
      equals: e.equals,
    };
  }
  var l6 = (e, t, n, r, i) => {
      let o = i(t, y6(n), r);
      return o === Ue.trueFunc
        ? e
        : o === Ue.falseFunc
          ? Ue.falseFunc
          : (s) => o(s) && e(s);
    },
    c6 = {
      is: l6,
      matches: l6,
      where: l6,
      not(e, t, n, r, i) {
        let o = i(t, y6(n), r);
        return o === Ue.falseFunc
          ? e
          : o === Ue.trueFunc
            ? Ue.falseFunc
            : (s) => !o(s) && e(s);
      },
      has(e, t, n, r, i) {
        let { adapter: o } = n,
          s = y6(n);
        s.relativeSelector = !0;
        let u = t.some((h) => h.some(N6)) ? [cM] : void 0,
          a = i(t, s, u);
        if (a === Ue.falseFunc) return Ue.falseFunc;
        let l = uR(a, o);
        if (u && a !== Ue.trueFunc) {
          let { shouldTestNextSiblings: h = !1 } = a;
          return (m) => {
            if (!e(m)) return !1;
            u[0] = m;
            let p = o.getChildren(m),
              b = h ? [...p, ...fM(m, o)] : p;
            return o.existsOne(l, b);
          };
        }
        return (h) => e(h) && o.existsOne(l, o.getChildren(h));
      },
    };
  function aR(e, t, n, r, i) {
    var o;
    let { name: s, data: u } = t;
    if (Array.isArray(u)) {
      if (!(s in c6)) throw new Error(`Unknown pseudo-class :${s}(${u})`);
      return c6[s](e, u, n, r, i);
    }
    let a = (o = n.pseudos) === null || o === void 0 ? void 0 : o[s],
      l = typeof a == "string" ? a : sR[s];
    if (typeof l == "string") {
      if (u != null) throw new Error(`Pseudo ${s} doesn't have any arguments`);
      let h = Ad(l);
      return c6.is(e, h, n, r, i);
    }
    if (typeof a == "function") return (IA(a, s, u, 1), (h) => a(h, u) && e(h));
    if (s in x6) return x6[s](e, u, n, r);
    if (s in DA) {
      let h = DA[s];
      return (IA(h, s, u, 2), (m) => h(m, n, u) && e(m));
    }
    throw new Error(`Unknown pseudo-class :${s}`);
  }
  function f6(e, t) {
    let n = t.getParent(e);
    return n && t.isTag(n) ? n : null;
  }
  function lR(e, t, n, r, i) {
    let { adapter: o, equals: s } = n;
    switch (t.type) {
      case Ne.PseudoElement:
        throw new Error("Pseudo-elements are not supported by css-select");
      case Ne.ColumnCombinator:
        throw new Error(
          "Column combinators are not yet supported by css-select",
        );
      case Ne.Attribute: {
        if (t.namespace != null)
          throw new Error(
            "Namespaced attributes are not yet supported by css-select",
          );
        return (
          (!n.xmlMode || n.lowerCaseAttributeNames) &&
            (t.name = t.name.toLowerCase()),
          tR[t.action](e, t, n)
        );
      }
      case Ne.Pseudo:
        return aR(e, t, n, r, i);
      case Ne.Tag: {
        if (t.namespace != null)
          throw new Error(
            "Namespaced tag names are not yet supported by css-select",
          );
        let { name: u } = t;
        return (
          (!n.xmlMode || n.lowerCaseTags) && (u = u.toLowerCase()),
          function (l) {
            return o.getName(l) === u && e(l);
          }
        );
      }
      case Ne.Descendant: {
        if (n.cacheResults === !1 || typeof WeakSet > "u")
          return function (l) {
            let h = l;
            for (; (h = f6(h, o)); ) if (e(h)) return !0;
            return !1;
          };
        let u = new WeakSet();
        return function (l) {
          let h = l;
          for (; (h = f6(h, o)); )
            if (!u.has(h)) {
              if (o.isTag(h) && e(h)) return !0;
              u.add(h);
            }
          return !1;
        };
      }
      case "_flexibleDescendant":
        return function (a) {
          let l = a;
          do if (e(l)) return !0;
          while ((l = f6(l, o)));
          return !1;
        };
      case Ne.Parent:
        return function (a) {
          return o.getChildren(a).some((l) => o.isTag(l) && e(l));
        };
      case Ne.Child:
        return function (a) {
          let l = o.getParent(a);
          return l != null && o.isTag(l) && e(l);
        };
      case Ne.Sibling:
        return function (a) {
          let l = o.getSiblings(a);
          for (let h = 0; h < l.length; h++) {
            let m = l[h];
            if (s(a, m)) break;
            if (o.isTag(m) && e(m)) return !0;
          }
          return !1;
        };
      case Ne.Adjacent:
        return o.prevElementSibling
          ? function (a) {
              let l = o.prevElementSibling(a);
              return l != null && e(l);
            }
          : function (a) {
              let l = o.getSiblings(a),
                h;
              for (let m = 0; m < l.length; m++) {
                let p = l[m];
                if (s(a, p)) break;
                o.isTag(p) && (h = p);
              }
              return !!h && e(h);
            };
      case Ne.Universal: {
        if (t.namespace != null && t.namespace !== "*")
          throw new Error(
            "Namespaced universal selectors are not yet supported by css-select",
          );
        return e;
      }
    }
  }
  function hM(e) {
    return (
      e.type === Ne.Pseudo &&
      (e.name === "scope" ||
        (Array.isArray(e.data) && e.data.some((t) => t.some(hM))))
    );
  }
  var cR = { type: Ne.Descendant },
    fR = { type: "_flexibleDescendant" },
    hR = { type: Ne.Pseudo, name: "scope", data: null };
  function dR(e, { adapter: t }, n) {
    let r = !!n?.every((i) => {
      let o = t.isTag(i) && t.getParent(i);
      return i === cM || (o && t.isTag(o));
    });
    for (let i of e) {
      if (!(i.length > 0 && N6(i[0]) && i[0].type !== Ne.Descendant))
        if (r && !i.some(hM)) i.unshift(cR);
        else continue;
      i.unshift(hR);
    }
  }
  function dM(e, t, n) {
    var r;
    (e.forEach(Jz), (n = (r = t.context) !== null && r !== void 0 ? r : n));
    let i = Array.isArray(n),
      o = n && (Array.isArray(n) ? n : [n]);
    if (t.relativeSelector !== !1) dR(e, t, o);
    else if (e.some((a) => a.length > 0 && N6(a[0])))
      throw new Error(
        "Relative selectors are not allowed when the `relativeSelector` option is disabled",
      );
    let s = !1,
      u = e
        .map((a) => {
          if (a.length >= 2) {
            let [l, h] = a;
            l.type !== Ne.Pseudo ||
              l.name !== "scope" ||
              (i && h.type === Ne.Descendant
                ? (a[1] = fR)
                : (h.type === Ne.Adjacent || h.type === Ne.Sibling) &&
                  (s = !0));
          }
          return pR(a, t, o);
        })
        .reduce(mR, Ue.falseFunc);
    return ((u.shouldTestNextSiblings = s), u);
  }
  function pR(e, t, n) {
    var r;
    return e.reduce(
      (i, o) => (i === Ue.falseFunc ? Ue.falseFunc : lR(i, o, t, n, dM)),
      (r = t.rootFunc) !== null && r !== void 0 ? r : Ue.trueFunc,
    );
  }
  function mR(e, t) {
    return t === Ue.falseFunc || e === Ue.trueFunc
      ? e
      : e === Ue.falseFunc || t === Ue.trueFunc
        ? t
        : function (r) {
            return e(r) || t(r);
          };
  }
  var pM = (e, t) => e === t,
    gR = { adapter: Sd, equals: pM };
  function bR(e) {
    var t, n, r, i;
    let o = e ?? gR;
    return (
      ((t = o.adapter) !== null && t !== void 0) || (o.adapter = Sd),
      ((n = o.equals) !== null && n !== void 0) ||
        (o.equals =
          (i = (r = o.adapter) === null || r === void 0 ? void 0 : r.equals) !==
            null && i !== void 0
            ? i
            : pM),
      o
    );
  }
  function xR(e) {
    return function (n, r, i) {
      let o = bR(r);
      return e(n, o, i);
    };
  }
  var D6 = xR(dM);
  function mM(e, t, n = !1) {
    return (
      n && (e = yR(e, t)),
      Array.isArray(e) ? t.removeSubsets(e) : t.getChildren(e)
    );
  }
  function yR(e, t) {
    let n = Array.isArray(e) ? e.slice(0) : [e],
      r = n.length;
    for (let i = 0; i < r; i++) {
      let o = fM(n[i], t);
      n.push(...o);
    }
    return n;
  }
  var wR = new Set(["first", "last", "eq", "gt", "nth", "lt", "even", "odd"]);
  function xd(e) {
    return e.type !== "pseudo"
      ? !1
      : wR.has(e.name)
        ? !0
        : e.name === "not" && Array.isArray(e.data)
          ? e.data.some((t) => t.some(xd))
          : !1;
  }
  function vR(e, t, n) {
    let r = t != null ? parseInt(t, 10) : NaN;
    switch (e) {
      case "first":
        return 1;
      case "nth":
      case "eq":
        return isFinite(r) ? (r >= 0 ? r + 1 : 1 / 0) : 0;
      case "lt":
        return isFinite(r) ? (r >= 0 ? Math.min(r, n) : 1 / 0) : 0;
      case "gt":
        return isFinite(r) ? 1 / 0 : 0;
      case "odd":
        return 2 * n;
      case "even":
        return 2 * n - 1;
      case "last":
      case "not":
        return 1 / 0;
    }
  }
  function _R(e) {
    for (; e.parent; ) e = e.parent;
    return e;
  }
  function I6(e) {
    let t = [],
      n = [];
    for (let r of e) r.some(xd) ? t.push(r) : n.push(r);
    return [n, t];
  }
  var kR = { type: Ne.Universal, namespace: null },
    SR = { type: Ne.Pseudo, name: "scope", data: null };
  function gM(e, t, n = {}) {
    return bM([e], t, n);
  }
  function bM(e, t, n = {}) {
    if (typeof t == "function") return e.some(t);
    let [r, i] = I6(Ad(t));
    return (
      (r.length > 0 && e.some(D6(r, n))) ||
      i.some((o) => wM(o, e, n).length > 0)
    );
  }
  function AR(e, t, n, r) {
    let i = typeof n == "string" ? parseInt(n, 10) : NaN;
    switch (e) {
      case "first":
      case "lt":
        return t;
      case "last":
        return t.length > 0 ? [t[t.length - 1]] : t;
      case "nth":
      case "eq":
        return isFinite(i) && Math.abs(i) < t.length
          ? [i < 0 ? t[t.length + i] : t[i]]
          : [];
      case "gt":
        return isFinite(i) ? t.slice(i + 1) : [];
      case "even":
        return t.filter((o, s) => s % 2 === 0);
      case "odd":
        return t.filter((o, s) => s % 2 === 1);
      case "not": {
        let o = new Set(yM(n, t, r));
        return t.filter((s) => !o.has(s));
      }
    }
  }
  function xM(e, t, n = {}) {
    return yM(Ad(e), t, n);
  }
  function yM(e, t, n) {
    if (t.length === 0) return [];
    let [r, i] = I6(e),
      o;
    if (r.length) {
      let s = v6(t, r, n);
      if (i.length === 0) return s;
      s.length && (o = new Set(s));
    }
    for (let s = 0; s < i.length && o?.size !== t.length; s++) {
      let u = i[s];
      if ((o ? t.filter((h) => Oe(h) && !o.has(h)) : t).length === 0) break;
      let l = wM(u, t, n);
      if (l.length)
        if (o) l.forEach((h) => o.add(h));
        else {
          if (s === i.length - 1) return l;
          o = new Set(l);
        }
    }
    return typeof o < "u"
      ? o.size === t.length
        ? t
        : t.filter((s) => o.has(s))
      : [];
  }
  function wM(e, t, n) {
    var r;
    if (e.some(Gl)) {
      let i = (r = n.root) !== null && r !== void 0 ? r : _R(t[0]),
        o = { ...n, context: t, relativeSelector: !1 };
      return (e.push(SR), yd(i, e, o, !0, t.length));
    }
    return yd(t, e, n, !1, t.length);
  }
  function MR(e, t, n = {}, r = 1 / 0) {
    if (typeof e == "function") return vM(t, e);
    let [i, o] = I6(Ad(e)),
      s = o.map((u) => yd(t, u, n, !0, r));
    return (
      i.length && s.push(w6(t, i, n, r)),
      s.length === 0
        ? []
        : s.length === 1
          ? s[0]
          : Ru(s.reduce((u, a) => [...u, ...a]))
    );
  }
  function yd(e, t, n, r, i) {
    let o = t.findIndex(xd),
      s = t.slice(0, o),
      u = t[o],
      a = t.length - 1 === o ? i : 1 / 0,
      l = vR(u.name, u.data, a);
    if (l === 0) return [];
    let m = (
        s.length === 0 && !Array.isArray(e)
          ? _d(e).filter(Oe)
          : s.length === 0
            ? (Array.isArray(e) ? e : [e]).filter(Oe)
            : r || s.some(Gl)
              ? w6(e, [s], n, l)
              : v6(e, [s], n)
      ).slice(0, l),
      p = AR(u.name, m, u.data, n);
    if (p.length === 0 || t.length === o + 1) return p;
    let b = t.slice(o + 1),
      x = b.some(Gl);
    if (x) {
      if (Gl(b[0])) {
        let { type: y } = b[0];
        ((y === Ne.Sibling || y === Ne.Adjacent) && (p = mM(p, Sd, !0)),
          b.unshift(kR));
      }
      n = { ...n, relativeSelector: !1, rootFunc: (y) => p.includes(y) };
    } else
      n.rootFunc &&
        n.rootFunc !== bd.trueFunc &&
        (n = { ...n, rootFunc: bd.trueFunc });
    return b.some(xd)
      ? yd(p, b, n, !1, i)
      : x
        ? w6(p, [b], n, i)
        : v6(p, [b], n);
  }
  function w6(e, t, n, r) {
    let i = D6(t, n, e);
    return vM(e, i, r);
  }
  function vM(e, t, n = 1 / 0) {
    let r = mM(e, Sd, t.shouldTestNextSiblings);
    return T6((i) => Oe(i) && t(i), r, !0, n);
  }
  function v6(e, t, n) {
    let r = (Array.isArray(e) ? e : [e]).filter(Oe);
    if (r.length === 0) return r;
    let i = D6(t, n);
    return i === bd.trueFunc ? r : r.filter(i);
  }
  var TR = /^\s*[+~]/;
  function ER(e) {
    if (!e) return this._make([]);
    if (typeof e != "string") {
      let t = lo(e) ? e.toArray() : [e],
        n = this.toArray();
      return this._make(t.filter((r) => n.some((i) => tM(i, r))));
    }
    return this._findBySelector(e, Number.POSITIVE_INFINITY);
  }
  function CR(e, t) {
    var n;
    let r = this.toArray(),
      i = TR.test(e) ? r : this.children().toArray(),
      o = {
        context: r,
        root: (n = this._root) === null || n === void 0 ? void 0 : n[0],
        xmlMode: this.options.xmlMode,
        lowerCaseTags: this.options.lowerCaseTags,
        lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
        pseudos: this.options.pseudos,
        quirksMode: this.options.quirksMode,
      };
    return this._make(MR(e, i, o, t));
  }
  function F6(e) {
    return function (t, ...n) {
      return function (r) {
        var i;
        let o = e(t, this);
        return (
          r &&
            (o = O6(
              o,
              r,
              this.options.xmlMode,
              (i = this._root) === null || i === void 0 ? void 0 : i[0],
            )),
          this._make(
            this.length > 1 && o.length > 1 ? n.reduce((s, u) => u(s), o) : o,
          )
        );
      };
    };
  }
  var Ql = F6((e, t) => {
      let n = [];
      for (let r = 0; r < t.length; r++) {
        let i = e(t[r]);
        i.length > 0 && (n = n.concat(i));
      }
      return n;
    }),
    q6 = F6((e, t) => {
      let n = [];
      for (let r = 0; r < t.length; r++) {
        let i = e(t[r]);
        i !== null && n.push(i);
      }
      return n;
    });
  function L6(e, ...t) {
    let n = null,
      r = F6((i, o) => {
        let s = [];
        return (
          Ot(o, (u) => {
            for (let a; (a = i(u)) && !n?.(a, s.length); u = a) s.push(a);
          }),
          s
        );
      })(e, ...t);
    return function (i, o) {
      n =
        typeof i == "string" ? (u) => gM(u, i, this.options) : i ? ec(i) : null;
      let s = r.call(this, o);
      return ((n = null), s);
    };
  }
  function Pu(e) {
    return e.length > 1 ? Array.from(new Set(e)) : e;
  }
  var NR = q6(({ parent: e }) => (e && !_s(e) ? e : null), Pu),
    DR = Ql(
      (e) => {
        let t = [];
        for (; e.parent && !_s(e.parent); ) (t.push(e.parent), (e = e.parent));
        return t;
      },
      Ru,
      (e) => e.reverse(),
    ),
    IR = L6(
      ({ parent: e }) => (e && !_s(e) ? e : null),
      Ru,
      (e) => e.reverse(),
    );
  function FR(e) {
    var t;
    let n = [];
    if (!e) return this._make(n);
    let r = {
        xmlMode: this.options.xmlMode,
        root: (t = this._root) === null || t === void 0 ? void 0 : t[0],
      },
      i = typeof e == "string" ? (o) => gM(o, e, r) : ec(e);
    return (
      Ot(this, (o) => {
        for (o && !_s(o) && !Oe(o) && (o = o.parent); o && Oe(o); ) {
          if (i(o, 0)) {
            n.includes(o) || n.push(o);
            break;
          }
          o = o.parent;
        }
      }),
      this._make(n)
    );
  }
  var qR = q6((e) => A6(e)),
    LR = Ql((e) => {
      let t = [];
      for (; e.next; ) ((e = e.next), Oe(e) && t.push(e));
      return t;
    }, Pu),
    OR = L6((e) => A6(e), Pu),
    BR = q6((e) => M6(e)),
    zR = Ql((e) => {
      let t = [];
      for (; e.prev; ) ((e = e.prev), Oe(e) && t.push(e));
      return t;
    }, Pu),
    RR = L6((e) => M6(e), Pu),
    PR = Ql((e) => XA(e).filter((t) => Oe(t) && t !== e), Ru),
    $R = Ql((e) => _d(e).filter(Oe), Pu);
  function HR() {
    let e = this.toArray().reduce(
      (t, n) => (ln(n) ? t.concat(n.children) : t),
      [],
    );
    return this._make(e);
  }
  function UR(e) {
    let t = 0,
      n = this.length;
    for (; t < n && e.call(this[t], t, this[t]) !== !1; ) ++t;
    return this;
  }
  function VR(e) {
    let t = [];
    for (let n = 0; n < this.length; n++) {
      let r = this[n],
        i = e.call(r, n, r);
      i != null && (t = t.concat(i));
    }
    return this._make(t);
  }
  function ec(e) {
    return typeof e == "function"
      ? (t, n) => e.call(t, n, t)
      : lo(e)
        ? (t) => Array.prototype.includes.call(e, t)
        : function (t) {
            return e === t;
          };
  }
  function jR(e) {
    var t;
    return this._make(
      O6(
        this.toArray(),
        e,
        this.options.xmlMode,
        (t = this._root) === null || t === void 0 ? void 0 : t[0],
      ),
    );
  }
  function O6(e, t, n, r) {
    return typeof t == "string"
      ? xM(t, e, { xmlMode: n, root: r })
      : e.filter(ec(t));
  }
  function GR(e) {
    let t = this.toArray();
    return typeof e == "string"
      ? bM(t.filter(Oe), e, this.options)
      : e
        ? t.some(ec(e))
        : !1;
  }
  function YR(e) {
    let t = this.toArray();
    if (typeof e == "string") {
      let n = new Set(xM(e, t, this.options));
      t = t.filter((r) => !n.has(r));
    } else {
      let n = ec(e);
      t = t.filter((r, i) => !n(r, i));
    }
    return this._make(t);
  }
  function XR(e) {
    return this.filter(
      typeof e == "string"
        ? `:has(${e})`
        : (t, n) => this._make(n).find(e).length > 0,
    );
  }
  function WR() {
    return this.length > 1 ? this._make(this[0]) : this;
  }
  function KR() {
    return this.length > 0 ? this._make(this[this.length - 1]) : this;
  }
  function ZR(e) {
    var t;
    return (
      (e = +e),
      e === 0 && this.length <= 1
        ? this
        : (e < 0 && (e = this.length + e),
          this._make((t = this[e]) !== null && t !== void 0 ? t : []))
    );
  }
  function JR(e) {
    return e == null ? this.toArray() : this[e < 0 ? this.length + e : e];
  }
  function QR() {
    return Array.prototype.slice.call(this);
  }
  function eP(e) {
    let t, n;
    return (
      e == null
        ? ((t = this.parent().children()), (n = this[0]))
        : typeof e == "string"
          ? ((t = this._make(e)), (n = this[0]))
          : ((t = this), (n = lo(e) ? e[0] : e)),
      Array.prototype.indexOf.call(t, n)
    );
  }
  function tP(e, t) {
    return this._make(Array.prototype.slice.call(this, e, t));
  }
  function nP() {
    var e;
    return (e = this.prevObject) !== null && e !== void 0 ? e : this._make([]);
  }
  function rP(e, t) {
    let n = this._make(e, t),
      r = Ru([...this.get(), ...n.get()]);
    return this._make(r);
  }
  function iP(e) {
    return this.prevObject
      ? this.add(e ? this.prevObject.filter(e) : this.prevObject)
      : this;
  }
  var oP = Object.freeze(
    Object.defineProperty(
      {
        __proto__: null,
        _findBySelector: CR,
        add: rP,
        addBack: iP,
        children: $R,
        closest: FR,
        contents: HR,
        each: UR,
        end: nP,
        eq: ZR,
        filter: jR,
        filterArray: O6,
        find: ER,
        first: WR,
        get: JR,
        has: XR,
        index: eP,
        is: GR,
        last: KR,
        map: VR,
        next: qR,
        nextAll: LR,
        nextUntil: OR,
        not: YR,
        parent: NR,
        parents: DR,
        parentsUntil: IR,
        prev: BR,
        prevAll: zR,
        prevUntil: RR,
        siblings: PR,
        slice: tP,
        toArray: QR,
      },
      Symbol.toStringTag,
      { value: "Module" },
    ),
  );
  function sP(e) {
    return function (n, r, i, o) {
      if (
        (typeof Buffer < "u" && Buffer.isBuffer(n) && (n = n.toString()),
        typeof n == "string")
      )
        return e(n, r, i, o);
      let s = n;
      if (!Array.isArray(s) && _s(s)) return s;
      let u = new xs([]);
      return (ws(s, u), u);
    };
  }
  function ws(e, t) {
    let n = Array.isArray(e) ? e : [e];
    t ? (t.children = n) : (t = null);
    for (let r = 0; r < n.length; r++) {
      let i = n[r];
      (i.parent && i.parent.children !== n && ks(i),
        t
          ? ((i.prev = n[r - 1] || null), (i.next = n[r + 1] || null))
          : (i.prev = i.next = null),
        (i.parent = t));
    }
    return t;
  }
  function uP(e, t) {
    if (e == null) return [];
    if (typeof e == "string")
      return this._parse(e, this.options, !1, null).children.slice(0);
    if ("length" in e) {
      if (e.length === 1) return this._makeDomArray(e[0], t);
      let n = [];
      for (let r = 0; r < e.length; r++) {
        let i = e[r];
        if (typeof i == "object") {
          if (i == null) continue;
          if (!("length" in i)) {
            n.push(t ? Wl(i, !0) : i);
            continue;
          }
        }
        n.push(...this._makeDomArray(i, t));
      }
      return n;
    }
    return [t ? Wl(e, !0) : e];
  }
  function _M(e) {
    return function (...t) {
      let n = this.length - 1;
      return Ot(this, (r, i) => {
        if (!ln(r)) return;
        let o =
            typeof t[0] == "function"
              ? t[0].call(r, i, this._render(r.children))
              : t,
          s = this._makeDomArray(o, i < n);
        e(s, r.children, r);
      });
    };
  }
  function n0(e, t, n, r, i) {
    var o, s;
    let u = [t, n, ...r],
      a = t === 0 ? null : e[t - 1],
      l = t + n >= e.length ? null : e[t + n];
    for (let h = 0; h < r.length; ++h) {
      let m = r[h],
        p = m.parent;
      if (p) {
        let x = p.children.indexOf(m);
        x > -1 && (p.children.splice(x, 1), i === p && t > x && u[0]--);
      }
      ((m.parent = i),
        m.prev &&
          (m.prev.next = (o = m.next) !== null && o !== void 0 ? o : null),
        m.next &&
          (m.next.prev = (s = m.prev) !== null && s !== void 0 ? s : null),
        (m.prev = h === 0 ? a : r[h - 1]),
        (m.next = h === r.length - 1 ? l : r[h + 1]));
    }
    return (
      a && (a.next = r[0]),
      l && (l.prev = r[r.length - 1]),
      e.splice(...u)
    );
  }
  function aP(e) {
    return ((lo(e) ? e : this._make(e)).append(this), this);
  }
  function lP(e) {
    return ((lo(e) ? e : this._make(e)).prepend(this), this);
  }
  var cP = _M((e, t, n) => {
      n0(t, t.length, 0, e, n);
    }),
    fP = _M((e, t, n) => {
      n0(t, 0, 0, e, n);
    });
  function kM(e) {
    return function (t) {
      let n = this.length - 1,
        r = this.parents().last();
      for (let i = 0; i < this.length; i++) {
        let o = this[i],
          s =
            typeof t == "function"
              ? t.call(o, i, o)
              : typeof t == "string" && !g6(t)
                ? r.find(t).clone()
                : t,
          [u] = this._makeDomArray(s, i < n);
        if (!u || !ln(u)) continue;
        let a = u,
          l = 0;
        for (; l < a.children.length; ) {
          let h = a.children[l];
          Oe(h) ? ((a = h), (l = 0)) : l++;
        }
        e(o, a, [u]);
      }
      return this;
    };
  }
  var hP = kM((e, t, n) => {
      let { parent: r } = e;
      if (!r) return;
      let i = r.children,
        o = i.indexOf(e);
      (ws([e], t), n0(i, o, 0, n, r));
    }),
    dP = kM((e, t, n) => {
      ln(e) && (ws(e.children, t), ws(n, e));
    });
  function pP(e) {
    return (
      this.parent(e)
        .not("body")
        .each((t, n) => {
          this._make(n).replaceWith(n.children);
        }),
      this
    );
  }
  function mP(e) {
    let t = this[0];
    if (t) {
      let n = this._make(
          typeof e == "function" ? e.call(t, 0, t) : e,
        ).insertBefore(t),
        r;
      for (let o = 0; o < n.length; o++) n[o].type === "tag" && (r = n[o]);
      let i = 0;
      for (; r && i < r.children.length; ) {
        let o = r.children[i];
        o.type === "tag" ? ((r = o), (i = 0)) : i++;
      }
      r && this._make(r).append(this);
    }
    return this;
  }
  function gP(...e) {
    let t = this.length - 1;
    return Ot(this, (n, r) => {
      if (!ln(n) || !n.parent) return;
      let i = n.parent.children,
        o = i.indexOf(n);
      if (o < 0) return;
      let s =
          typeof e[0] == "function"
            ? e[0].call(n, r, this._render(n.children))
            : e,
        u = this._makeDomArray(s, r < t);
      n0(i, o + 1, 0, u, n.parent);
    });
  }
  function bP(e) {
    (typeof e == "string" && (e = this._make(e)), this.remove());
    let t = [];
    for (let n of this._makeDomArray(e)) {
      let r = this.clone().toArray(),
        { parent: i } = n;
      if (!i) continue;
      let o = i.children,
        s = o.indexOf(n);
      s < 0 || (n0(o, s + 1, 0, r, i), t.push(...r));
    }
    return this._make(t);
  }
  function xP(...e) {
    let t = this.length - 1;
    return Ot(this, (n, r) => {
      if (!ln(n) || !n.parent) return;
      let i = n.parent.children,
        o = i.indexOf(n);
      if (o < 0) return;
      let s =
          typeof e[0] == "function"
            ? e[0].call(n, r, this._render(n.children))
            : e,
        u = this._makeDomArray(s, r < t);
      n0(i, o, 0, u, n.parent);
    });
  }
  function yP(e) {
    let t = this._make(e);
    this.remove();
    let n = [];
    return (
      Ot(t, (r) => {
        let i = this.clone().toArray(),
          { parent: o } = r;
        if (!o) return;
        let s = o.children,
          u = s.indexOf(r);
        u < 0 || (n0(s, u, 0, i, o), n.push(...i));
      }),
      this._make(n)
    );
  }
  function wP(e) {
    let t = e ? this.filter(e) : this;
    return (
      Ot(t, (n) => {
        (ks(n), (n.prev = n.next = n.parent = null));
      }),
      this
    );
  }
  function vP(e) {
    return Ot(this, (t, n) => {
      let { parent: r } = t;
      if (!r) return;
      let i = r.children,
        o = typeof e == "function" ? e.call(t, n, t) : e,
        s = this._makeDomArray(o);
      ws(s, null);
      let u = i.indexOf(t);
      (n0(i, u, 1, s, r), s.includes(t) || (t.parent = t.prev = t.next = null));
    });
  }
  function _P() {
    return Ot(this, (e) => {
      if (ln(e)) {
        for (let t of e.children) t.next = t.prev = t.parent = null;
        e.children.length = 0;
      }
    });
  }
  function kP(e) {
    if (e === void 0) {
      let t = this[0];
      return !t || !ln(t) ? null : this._render(t.children);
    }
    return Ot(this, (t) => {
      if (!ln(t)) return;
      for (let r of t.children) r.next = r.prev = r.parent = null;
      let n = lo(e)
        ? e.toArray()
        : this._parse(`${e}`, this.options, !1, t).children;
      ws(n, t);
    });
  }
  function SP() {
    return this._render(this);
  }
  function AP(e) {
    return e === void 0
      ? Kl(this)
      : typeof e == "function"
        ? Ot(this, (t, n) => this._make(t).text(e.call(t, n, Kl([t]))))
        : Ot(this, (t) => {
            if (!ln(t)) return;
            for (let r of t.children) r.next = r.prev = r.parent = null;
            let n = new Ou(`${e}`);
            ws(n, t);
          });
  }
  function MP() {
    let e = Array.prototype.map.call(this.get(), (n) => Wl(n, !0)),
      t = new xs(e);
    for (let n of e) n.parent = t;
    return this._make(e);
  }
  var TP = Object.freeze(
    Object.defineProperty(
      {
        __proto__: null,
        _makeDomArray: uP,
        after: gP,
        append: cP,
        appendTo: aP,
        before: xP,
        clone: MP,
        empty: _P,
        html: kP,
        insertAfter: bP,
        insertBefore: yP,
        prepend: fP,
        prependTo: lP,
        remove: wP,
        replaceWith: vP,
        text: AP,
        toString: SP,
        unwrap: pP,
        wrap: hP,
        wrapAll: mP,
        wrapInner: dP,
      },
      Symbol.toStringTag,
      { value: "Module" },
    ),
  );
  function EP(e, t) {
    if ((e != null && t != null) || (typeof e == "object" && !Array.isArray(e)))
      return Ot(this, (n, r) => {
        Oe(n) && SM(n, e, t, r);
      });
    if (this.length !== 0) return AM(this[0], e);
  }
  function SM(e, t, n, r) {
    if (typeof t == "string") {
      let i = AM(e),
        o = typeof n == "function" ? n.call(e, r, i[t]) : n;
      (o === "" ? delete i[t] : o != null && (i[t] = o),
        (e.attribs.style = CP(i)));
    } else if (typeof t == "object") {
      let i = Object.keys(t);
      for (let o = 0; o < i.length; o++) {
        let s = i[o];
        SM(e, s, t[s], o);
      }
    }
  }
  function AM(e, t) {
    if (!e || !Oe(e)) return;
    let n = NP(e.attribs.style);
    if (typeof t == "string") return n[t];
    if (Array.isArray(t)) {
      let r = {};
      for (let i of t) n[i] != null && (r[i] = n[i]);
      return r;
    }
    return n;
  }
  function CP(e) {
    return Object.keys(e).reduce(
      (t, n) => `${t}${t ? " " : ""}${n}: ${e[n]};`,
      "",
    );
  }
  function NP(e) {
    if (((e = (e || "").trim()), !e)) return {};
    let t = {},
      n;
    for (let r of e.split(";")) {
      let i = r.indexOf(":");
      if (i < 1 || i === r.length - 1) {
        let o = r.trimEnd();
        o.length > 0 && n !== void 0 && (t[n] += `;${o}`);
      } else ((n = r.slice(0, i).trim()), (t[n] = r.slice(i + 1).trim()));
    }
    return t;
  }
  var DP = Object.freeze(
      Object.defineProperty({ __proto__: null, css: EP }, Symbol.toStringTag, {
        value: "Module",
      }),
    ),
    FA = "input,select,textarea,keygen",
    IP = /%20/g,
    qA = /\r?\n/g;
  function FP() {
    return this.serializeArray()
      .map(
        (n) => `${encodeURIComponent(n.name)}=${encodeURIComponent(n.value)}`,
      )
      .join("&")
      .replace(IP, "+");
  }
  function qP() {
    return this.map((e, t) => {
      let n = this._make(t);
      return Oe(t) && t.name === "form"
        ? n.find(FA).toArray()
        : n.filter(FA).toArray();
    })
      .filter(
        '[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))',
      )
      .map((e, t) => {
        var n;
        let r = this._make(t),
          i = r.attr("name"),
          o = (n = r.val()) !== null && n !== void 0 ? n : "";
        return Array.isArray(o)
          ? o.map((s) => ({
              name: i,
              value: s.replace(
                qA,
                `\r
`,
              ),
            }))
          : {
              name: i,
              value: o.replace(
                qA,
                `\r
`,
              ),
            };
      })
      .toArray();
  }
  var LP = Object.freeze(
    Object.defineProperty(
      { __proto__: null, serialize: FP, serializeArray: qP },
      Symbol.toStringTag,
      { value: "Module" },
    ),
  );
  function OP(e) {
    var t;
    return typeof e == "string"
      ? { selector: e, value: "textContent" }
      : {
          selector: e.selector,
          value: (t = e.value) !== null && t !== void 0 ? t : "textContent",
        };
  }
  function BP(e) {
    let t = {};
    for (let n in e) {
      let r = e[n],
        i = Array.isArray(r),
        { selector: o, value: s } = OP(i ? r[0] : r),
        u =
          typeof s == "function"
            ? s
            : typeof s == "string"
              ? (a) => this._make(a).prop(s)
              : (a) => this._make(a).extract(s);
      if (i)
        t[n] = this._findBySelector(o, Number.POSITIVE_INFINITY)
          .map((a, l) => u(l, n, t))
          .get();
      else {
        let a = this._findBySelector(o, 1);
        t[n] = a.length > 0 ? u(a[0], n, t) : void 0;
      }
    }
    return t;
  }
  var zP = Object.freeze(
      Object.defineProperty(
        { __proto__: null, extract: BP },
        Symbol.toStringTag,
        { value: "Module" },
      ),
    ),
    vs = class {
      constructor(t, n, r) {
        if (((this.length = 0), (this.options = r), (this._root = n), t)) {
          for (let i = 0; i < t.length; i++) this[i] = t[i];
          this.length = t.length;
        }
      }
    };
  vs.prototype.cheerio = "[cheerio object]";
  vs.prototype.splice = Array.prototype.splice;
  vs.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
  Object.assign(vs.prototype, Uz, oP, TP, DP, LP, zP);
  function RP(e, t) {
    return function n(r, i, o = !0) {
      if (r == null) throw new Error("cheerio.load() expects a string");
      let s = h6(i),
        u = e(r, s, o, null);
      class a extends vs {
        _make(m, p) {
          let b = l(m, p);
          return ((b.prevObject = this), b);
        }
        _parse(m, p, b, x) {
          return e(m, p, b, x);
        }
        _render(m) {
          return t(m, this.options);
        }
      }
      function l(h, m, p = u, b) {
        if (h && lo(h)) return h;
        let x = h6(b, s),
          y =
            typeof p == "string"
              ? [e(p, x, !1, null)]
              : "length" in p
                ? p
                : [p],
          v = lo(y) ? y : new a(y, null, x);
        if (((v._root = v), !h)) return new a(void 0, v, x);
        let k =
            typeof h == "string" && g6(h)
              ? e(h, x, !1, null).children
              : PP(h)
                ? [h]
                : Array.isArray(h)
                  ? h
                  : void 0,
          T = new a(k, v, x);
        if (k) return T;
        if (typeof h != "string")
          throw new TypeError("Unexpected type of selector");
        let E = h,
          M = m
            ? typeof m == "string"
              ? g6(m)
                ? new a([e(m, x, !1, null)], v, x)
                : ((E = `${m} ${E}`), v)
              : lo(m)
                ? m
                : new a(Array.isArray(m) ? m : [m], v, x)
            : v;
        return M ? M.find(E) : T;
      }
      return (
        Object.assign(l, Dz, {
          load: n,
          _root: u,
          _options: s,
          fn: a.prototype,
          prototype: a.prototype,
        }),
        l
      );
    };
  }
  function PP(e) {
    return (
      !!e.name || e.type === "root" || e.type === "text" || e.type === "comment"
    );
  }
  var De;
  (function (e) {
    ((e[(e.Tab = 9)] = "Tab"),
      (e[(e.NewLine = 10)] = "NewLine"),
      (e[(e.FormFeed = 12)] = "FormFeed"),
      (e[(e.CarriageReturn = 13)] = "CarriageReturn"),
      (e[(e.Space = 32)] = "Space"),
      (e[(e.ExclamationMark = 33)] = "ExclamationMark"),
      (e[(e.Number = 35)] = "Number"),
      (e[(e.Amp = 38)] = "Amp"),
      (e[(e.SingleQuote = 39)] = "SingleQuote"),
      (e[(e.DoubleQuote = 34)] = "DoubleQuote"),
      (e[(e.Dash = 45)] = "Dash"),
      (e[(e.Slash = 47)] = "Slash"),
      (e[(e.Zero = 48)] = "Zero"),
      (e[(e.Nine = 57)] = "Nine"),
      (e[(e.Semi = 59)] = "Semi"),
      (e[(e.Lt = 60)] = "Lt"),
      (e[(e.Eq = 61)] = "Eq"),
      (e[(e.Gt = 62)] = "Gt"),
      (e[(e.Questionmark = 63)] = "Questionmark"),
      (e[(e.UpperA = 65)] = "UpperA"),
      (e[(e.LowerA = 97)] = "LowerA"),
      (e[(e.UpperF = 70)] = "UpperF"),
      (e[(e.LowerF = 102)] = "LowerF"),
      (e[(e.UpperZ = 90)] = "UpperZ"),
      (e[(e.LowerZ = 122)] = "LowerZ"),
      (e[(e.LowerX = 120)] = "LowerX"),
      (e[(e.OpeningSquareBracket = 91)] = "OpeningSquareBracket"));
  })(De || (De = {}));
  var ue;
  (function (e) {
    ((e[(e.Text = 1)] = "Text"),
      (e[(e.BeforeTagName = 2)] = "BeforeTagName"),
      (e[(e.InTagName = 3)] = "InTagName"),
      (e[(e.InSelfClosingTag = 4)] = "InSelfClosingTag"),
      (e[(e.BeforeClosingTagName = 5)] = "BeforeClosingTagName"),
      (e[(e.InClosingTagName = 6)] = "InClosingTagName"),
      (e[(e.AfterClosingTagName = 7)] = "AfterClosingTagName"),
      (e[(e.BeforeAttributeName = 8)] = "BeforeAttributeName"),
      (e[(e.InAttributeName = 9)] = "InAttributeName"),
      (e[(e.AfterAttributeName = 10)] = "AfterAttributeName"),
      (e[(e.BeforeAttributeValue = 11)] = "BeforeAttributeValue"),
      (e[(e.InAttributeValueDq = 12)] = "InAttributeValueDq"),
      (e[(e.InAttributeValueSq = 13)] = "InAttributeValueSq"),
      (e[(e.InAttributeValueNq = 14)] = "InAttributeValueNq"),
      (e[(e.BeforeDeclaration = 15)] = "BeforeDeclaration"),
      (e[(e.InDeclaration = 16)] = "InDeclaration"),
      (e[(e.InProcessingInstruction = 17)] = "InProcessingInstruction"),
      (e[(e.BeforeComment = 18)] = "BeforeComment"),
      (e[(e.CDATASequence = 19)] = "CDATASequence"),
      (e[(e.InSpecialComment = 20)] = "InSpecialComment"),
      (e[(e.InCommentLike = 21)] = "InCommentLike"),
      (e[(e.BeforeSpecialS = 22)] = "BeforeSpecialS"),
      (e[(e.BeforeSpecialT = 23)] = "BeforeSpecialT"),
      (e[(e.SpecialStartSequence = 24)] = "SpecialStartSequence"),
      (e[(e.InSpecialTag = 25)] = "InSpecialTag"),
      (e[(e.InEntity = 26)] = "InEntity"));
  })(ue || (ue = {}));
  function ao(e) {
    return (
      e === De.Space ||
      e === De.NewLine ||
      e === De.Tab ||
      e === De.FormFeed ||
      e === De.CarriageReturn
    );
  }
  function id(e) {
    return e === De.Slash || e === De.Gt || ao(e);
  }
  function $P(e) {
    return (
      (e >= De.LowerA && e <= De.LowerZ) || (e >= De.UpperA && e <= De.UpperZ)
    );
  }
  var wi;
  (function (e) {
    ((e[(e.NoValue = 0)] = "NoValue"),
      (e[(e.Unquoted = 1)] = "Unquoted"),
      (e[(e.Single = 2)] = "Single"),
      (e[(e.Double = 3)] = "Double"));
  })(wi || (wi = {}));
  var mn = {
      Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
      CdataEnd: new Uint8Array([93, 93, 62]),
      CommentEnd: new Uint8Array([45, 45, 62]),
      ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
      StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
      TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
      TextareaEnd: new Uint8Array([
        60, 47, 116, 101, 120, 116, 97, 114, 101, 97,
      ]),
    },
    _6 = class {
      constructor({ xmlMode: t = !1, decodeEntities: n = !0 }, r) {
        ((this.cbs = r),
          (this.state = ue.Text),
          (this.buffer = ""),
          (this.sectionStart = 0),
          (this.index = 0),
          (this.entityStart = 0),
          (this.baseState = ue.Text),
          (this.isSpecial = !1),
          (this.running = !0),
          (this.offset = 0),
          (this.currentSequence = void 0),
          (this.sequenceIndex = 0),
          (this.xmlMode = t),
          (this.decodeEntities = n),
          (this.entityDecoder = new fd(t ? HA : $A, (i, o) =>
            this.emitCodePoint(i, o),
          )));
      }
      reset() {
        ((this.state = ue.Text),
          (this.buffer = ""),
          (this.sectionStart = 0),
          (this.index = 0),
          (this.baseState = ue.Text),
          (this.currentSequence = void 0),
          (this.running = !0),
          (this.offset = 0));
      }
      write(t) {
        ((this.offset += this.buffer.length), (this.buffer = t), this.parse());
      }
      end() {
        this.running && this.finish();
      }
      pause() {
        this.running = !1;
      }
      resume() {
        ((this.running = !0),
          this.index < this.buffer.length + this.offset && this.parse());
      }
      stateText(t) {
        t === De.Lt || (!this.decodeEntities && this.fastForwardTo(De.Lt))
          ? (this.index > this.sectionStart &&
              this.cbs.ontext(this.sectionStart, this.index),
            (this.state = ue.BeforeTagName),
            (this.sectionStart = this.index))
          : this.decodeEntities && t === De.Amp && this.startEntity();
      }
      stateSpecialStartSequence(t) {
        let n = this.sequenceIndex === this.currentSequence.length;
        if (
          !(n ? id(t) : (t | 32) === this.currentSequence[this.sequenceIndex])
        )
          this.isSpecial = !1;
        else if (!n) {
          this.sequenceIndex++;
          return;
        }
        ((this.sequenceIndex = 0),
          (this.state = ue.InTagName),
          this.stateInTagName(t));
      }
      stateInSpecialTag(t) {
        if (this.sequenceIndex === this.currentSequence.length) {
          if (t === De.Gt || ao(t)) {
            let n = this.index - this.currentSequence.length;
            if (this.sectionStart < n) {
              let r = this.index;
              ((this.index = n),
                this.cbs.ontext(this.sectionStart, n),
                (this.index = r));
            }
            ((this.isSpecial = !1),
              (this.sectionStart = n + 2),
              this.stateInClosingTagName(t));
            return;
          }
          this.sequenceIndex = 0;
        }
        (t | 32) === this.currentSequence[this.sequenceIndex]
          ? (this.sequenceIndex += 1)
          : this.sequenceIndex === 0
            ? this.currentSequence === mn.TitleEnd
              ? this.decodeEntities && t === De.Amp && this.startEntity()
              : this.fastForwardTo(De.Lt) && (this.sequenceIndex = 1)
            : (this.sequenceIndex = +(t === De.Lt));
      }
      stateCDATASequence(t) {
        t === mn.Cdata[this.sequenceIndex]
          ? ++this.sequenceIndex === mn.Cdata.length &&
            ((this.state = ue.InCommentLike),
            (this.currentSequence = mn.CdataEnd),
            (this.sequenceIndex = 0),
            (this.sectionStart = this.index + 1))
          : ((this.sequenceIndex = 0),
            (this.state = ue.InDeclaration),
            this.stateInDeclaration(t));
      }
      fastForwardTo(t) {
        for (; ++this.index < this.buffer.length + this.offset; )
          if (this.buffer.charCodeAt(this.index - this.offset) === t) return !0;
        return ((this.index = this.buffer.length + this.offset - 1), !1);
      }
      stateInCommentLike(t) {
        t === this.currentSequence[this.sequenceIndex]
          ? ++this.sequenceIndex === this.currentSequence.length &&
            (this.currentSequence === mn.CdataEnd
              ? this.cbs.oncdata(this.sectionStart, this.index, 2)
              : this.cbs.oncomment(this.sectionStart, this.index, 2),
            (this.sequenceIndex = 0),
            (this.sectionStart = this.index + 1),
            (this.state = ue.Text))
          : this.sequenceIndex === 0
            ? this.fastForwardTo(this.currentSequence[0]) &&
              (this.sequenceIndex = 1)
            : t !== this.currentSequence[this.sequenceIndex - 1] &&
              (this.sequenceIndex = 0);
      }
      isTagStartChar(t) {
        return this.xmlMode ? !id(t) : $P(t);
      }
      startSpecial(t, n) {
        ((this.isSpecial = !0),
          (this.currentSequence = t),
          (this.sequenceIndex = n),
          (this.state = ue.SpecialStartSequence));
      }
      stateBeforeTagName(t) {
        if (t === De.ExclamationMark)
          ((this.state = ue.BeforeDeclaration),
            (this.sectionStart = this.index + 1));
        else if (t === De.Questionmark)
          ((this.state = ue.InProcessingInstruction),
            (this.sectionStart = this.index + 1));
        else if (this.isTagStartChar(t)) {
          let n = t | 32;
          ((this.sectionStart = this.index),
            this.xmlMode
              ? (this.state = ue.InTagName)
              : n === mn.ScriptEnd[2]
                ? (this.state = ue.BeforeSpecialS)
                : n === mn.TitleEnd[2]
                  ? (this.state = ue.BeforeSpecialT)
                  : (this.state = ue.InTagName));
        } else
          t === De.Slash
            ? (this.state = ue.BeforeClosingTagName)
            : ((this.state = ue.Text), this.stateText(t));
      }
      stateInTagName(t) {
        id(t) &&
          (this.cbs.onopentagname(this.sectionStart, this.index),
          (this.sectionStart = -1),
          (this.state = ue.BeforeAttributeName),
          this.stateBeforeAttributeName(t));
      }
      stateBeforeClosingTagName(t) {
        ao(t) ||
          (t === De.Gt
            ? (this.state = ue.Text)
            : ((this.state = this.isTagStartChar(t)
                ? ue.InClosingTagName
                : ue.InSpecialComment),
              (this.sectionStart = this.index)));
      }
      stateInClosingTagName(t) {
        (t === De.Gt || ao(t)) &&
          (this.cbs.onclosetag(this.sectionStart, this.index),
          (this.sectionStart = -1),
          (this.state = ue.AfterClosingTagName),
          this.stateAfterClosingTagName(t));
      }
      stateAfterClosingTagName(t) {
        (t === De.Gt || this.fastForwardTo(De.Gt)) &&
          ((this.state = ue.Text), (this.sectionStart = this.index + 1));
      }
      stateBeforeAttributeName(t) {
        t === De.Gt
          ? (this.cbs.onopentagend(this.index),
            this.isSpecial
              ? ((this.state = ue.InSpecialTag), (this.sequenceIndex = 0))
              : (this.state = ue.Text),
            (this.sectionStart = this.index + 1))
          : t === De.Slash
            ? (this.state = ue.InSelfClosingTag)
            : ao(t) ||
              ((this.state = ue.InAttributeName),
              (this.sectionStart = this.index));
      }
      stateInSelfClosingTag(t) {
        t === De.Gt
          ? (this.cbs.onselfclosingtag(this.index),
            (this.state = ue.Text),
            (this.sectionStart = this.index + 1),
            (this.isSpecial = !1))
          : ao(t) ||
            ((this.state = ue.BeforeAttributeName),
            this.stateBeforeAttributeName(t));
      }
      stateInAttributeName(t) {
        (t === De.Eq || id(t)) &&
          (this.cbs.onattribname(this.sectionStart, this.index),
          (this.sectionStart = this.index),
          (this.state = ue.AfterAttributeName),
          this.stateAfterAttributeName(t));
      }
      stateAfterAttributeName(t) {
        t === De.Eq
          ? (this.state = ue.BeforeAttributeValue)
          : t === De.Slash || t === De.Gt
            ? (this.cbs.onattribend(wi.NoValue, this.sectionStart),
              (this.sectionStart = -1),
              (this.state = ue.BeforeAttributeName),
              this.stateBeforeAttributeName(t))
            : ao(t) ||
              (this.cbs.onattribend(wi.NoValue, this.sectionStart),
              (this.state = ue.InAttributeName),
              (this.sectionStart = this.index));
      }
      stateBeforeAttributeValue(t) {
        t === De.DoubleQuote
          ? ((this.state = ue.InAttributeValueDq),
            (this.sectionStart = this.index + 1))
          : t === De.SingleQuote
            ? ((this.state = ue.InAttributeValueSq),
              (this.sectionStart = this.index + 1))
            : ao(t) ||
              ((this.sectionStart = this.index),
              (this.state = ue.InAttributeValueNq),
              this.stateInAttributeValueNoQuotes(t));
      }
      handleInAttributeValue(t, n) {
        t === n || (!this.decodeEntities && this.fastForwardTo(n))
          ? (this.cbs.onattribdata(this.sectionStart, this.index),
            (this.sectionStart = -1),
            this.cbs.onattribend(
              n === De.DoubleQuote ? wi.Double : wi.Single,
              this.index + 1,
            ),
            (this.state = ue.BeforeAttributeName))
          : this.decodeEntities && t === De.Amp && this.startEntity();
      }
      stateInAttributeValueDoubleQuotes(t) {
        this.handleInAttributeValue(t, De.DoubleQuote);
      }
      stateInAttributeValueSingleQuotes(t) {
        this.handleInAttributeValue(t, De.SingleQuote);
      }
      stateInAttributeValueNoQuotes(t) {
        ao(t) || t === De.Gt
          ? (this.cbs.onattribdata(this.sectionStart, this.index),
            (this.sectionStart = -1),
            this.cbs.onattribend(wi.Unquoted, this.index),
            (this.state = ue.BeforeAttributeName),
            this.stateBeforeAttributeName(t))
          : this.decodeEntities && t === De.Amp && this.startEntity();
      }
      stateBeforeDeclaration(t) {
        t === De.OpeningSquareBracket
          ? ((this.state = ue.CDATASequence), (this.sequenceIndex = 0))
          : (this.state = t === De.Dash ? ue.BeforeComment : ue.InDeclaration);
      }
      stateInDeclaration(t) {
        (t === De.Gt || this.fastForwardTo(De.Gt)) &&
          (this.cbs.ondeclaration(this.sectionStart, this.index),
          (this.state = ue.Text),
          (this.sectionStart = this.index + 1));
      }
      stateInProcessingInstruction(t) {
        (t === De.Gt || this.fastForwardTo(De.Gt)) &&
          (this.cbs.onprocessinginstruction(this.sectionStart, this.index),
          (this.state = ue.Text),
          (this.sectionStart = this.index + 1));
      }
      stateBeforeComment(t) {
        t === De.Dash
          ? ((this.state = ue.InCommentLike),
            (this.currentSequence = mn.CommentEnd),
            (this.sequenceIndex = 2),
            (this.sectionStart = this.index + 1))
          : (this.state = ue.InDeclaration);
      }
      stateInSpecialComment(t) {
        (t === De.Gt || this.fastForwardTo(De.Gt)) &&
          (this.cbs.oncomment(this.sectionStart, this.index, 0),
          (this.state = ue.Text),
          (this.sectionStart = this.index + 1));
      }
      stateBeforeSpecialS(t) {
        let n = t | 32;
        n === mn.ScriptEnd[3]
          ? this.startSpecial(mn.ScriptEnd, 4)
          : n === mn.StyleEnd[3]
            ? this.startSpecial(mn.StyleEnd, 4)
            : ((this.state = ue.InTagName), this.stateInTagName(t));
      }
      stateBeforeSpecialT(t) {
        let n = t | 32;
        n === mn.TitleEnd[3]
          ? this.startSpecial(mn.TitleEnd, 4)
          : n === mn.TextareaEnd[3]
            ? this.startSpecial(mn.TextareaEnd, 4)
            : ((this.state = ue.InTagName), this.stateInTagName(t));
      }
      startEntity() {
        ((this.baseState = this.state),
          (this.state = ue.InEntity),
          (this.entityStart = this.index),
          this.entityDecoder.startEntity(
            this.xmlMode
              ? yi.Strict
              : this.baseState === ue.Text || this.baseState === ue.InSpecialTag
                ? yi.Legacy
                : yi.Attribute,
          ));
      }
      stateInEntity() {
        let t = this.entityDecoder.write(this.buffer, this.index - this.offset);
        t >= 0
          ? ((this.state = this.baseState),
            t === 0 && (this.index = this.entityStart))
          : (this.index = this.offset + this.buffer.length - 1);
      }
      cleanup() {
        this.running &&
          this.sectionStart !== this.index &&
          (this.state === ue.Text ||
          (this.state === ue.InSpecialTag && this.sequenceIndex === 0)
            ? (this.cbs.ontext(this.sectionStart, this.index),
              (this.sectionStart = this.index))
            : (this.state === ue.InAttributeValueDq ||
                this.state === ue.InAttributeValueSq ||
                this.state === ue.InAttributeValueNq) &&
              (this.cbs.onattribdata(this.sectionStart, this.index),
              (this.sectionStart = this.index)));
      }
      shouldContinue() {
        return this.index < this.buffer.length + this.offset && this.running;
      }
      parse() {
        for (; this.shouldContinue(); ) {
          let t = this.buffer.charCodeAt(this.index - this.offset);
          switch (this.state) {
            case ue.Text: {
              this.stateText(t);
              break;
            }
            case ue.SpecialStartSequence: {
              this.stateSpecialStartSequence(t);
              break;
            }
            case ue.InSpecialTag: {
              this.stateInSpecialTag(t);
              break;
            }
            case ue.CDATASequence: {
              this.stateCDATASequence(t);
              break;
            }
            case ue.InAttributeValueDq: {
              this.stateInAttributeValueDoubleQuotes(t);
              break;
            }
            case ue.InAttributeName: {
              this.stateInAttributeName(t);
              break;
            }
            case ue.InCommentLike: {
              this.stateInCommentLike(t);
              break;
            }
            case ue.InSpecialComment: {
              this.stateInSpecialComment(t);
              break;
            }
            case ue.BeforeAttributeName: {
              this.stateBeforeAttributeName(t);
              break;
            }
            case ue.InTagName: {
              this.stateInTagName(t);
              break;
            }
            case ue.InClosingTagName: {
              this.stateInClosingTagName(t);
              break;
            }
            case ue.BeforeTagName: {
              this.stateBeforeTagName(t);
              break;
            }
            case ue.AfterAttributeName: {
              this.stateAfterAttributeName(t);
              break;
            }
            case ue.InAttributeValueSq: {
              this.stateInAttributeValueSingleQuotes(t);
              break;
            }
            case ue.BeforeAttributeValue: {
              this.stateBeforeAttributeValue(t);
              break;
            }
            case ue.BeforeClosingTagName: {
              this.stateBeforeClosingTagName(t);
              break;
            }
            case ue.AfterClosingTagName: {
              this.stateAfterClosingTagName(t);
              break;
            }
            case ue.BeforeSpecialS: {
              this.stateBeforeSpecialS(t);
              break;
            }
            case ue.BeforeSpecialT: {
              this.stateBeforeSpecialT(t);
              break;
            }
            case ue.InAttributeValueNq: {
              this.stateInAttributeValueNoQuotes(t);
              break;
            }
            case ue.InSelfClosingTag: {
              this.stateInSelfClosingTag(t);
              break;
            }
            case ue.InDeclaration: {
              this.stateInDeclaration(t);
              break;
            }
            case ue.BeforeDeclaration: {
              this.stateBeforeDeclaration(t);
              break;
            }
            case ue.BeforeComment: {
              this.stateBeforeComment(t);
              break;
            }
            case ue.InProcessingInstruction: {
              this.stateInProcessingInstruction(t);
              break;
            }
            case ue.InEntity: {
              this.stateInEntity();
              break;
            }
          }
          this.index++;
        }
        this.cleanup();
      }
      finish() {
        (this.state === ue.InEntity &&
          (this.entityDecoder.end(), (this.state = this.baseState)),
          this.handleTrailingData(),
          this.cbs.onend());
      }
      handleTrailingData() {
        let t = this.buffer.length + this.offset;
        this.sectionStart >= t ||
          (this.state === ue.InCommentLike
            ? this.currentSequence === mn.CdataEnd
              ? this.cbs.oncdata(this.sectionStart, t, 0)
              : this.cbs.oncomment(this.sectionStart, t, 0)
            : this.state === ue.InTagName ||
              this.state === ue.BeforeAttributeName ||
              this.state === ue.BeforeAttributeValue ||
              this.state === ue.AfterAttributeName ||
              this.state === ue.InAttributeName ||
              this.state === ue.InAttributeValueSq ||
              this.state === ue.InAttributeValueDq ||
              this.state === ue.InAttributeValueNq ||
              this.state === ue.InClosingTagName ||
              this.cbs.ontext(this.sectionStart, t));
      }
      emitCodePoint(t, n) {
        this.baseState !== ue.Text && this.baseState !== ue.InSpecialTag
          ? (this.sectionStart < this.entityStart &&
              this.cbs.onattribdata(this.sectionStart, this.entityStart),
            (this.sectionStart = this.entityStart + n),
            (this.index = this.sectionStart - 1),
            this.cbs.onattribentity(t))
          : (this.sectionStart < this.entityStart &&
              this.cbs.ontext(this.sectionStart, this.entityStart),
            (this.sectionStart = this.entityStart + n),
            (this.index = this.sectionStart - 1),
            this.cbs.ontextentity(t, this.sectionStart));
      }
    },
    qu = new Set([
      "input",
      "option",
      "optgroup",
      "select",
      "button",
      "datalist",
      "textarea",
    ]),
    dt = new Set(["p"]),
    LA = new Set(["thead", "tbody"]),
    OA = new Set(["dd", "dt"]),
    BA = new Set(["rt", "rp"]),
    HP = new Map([
      ["tr", new Set(["tr", "th", "td"])],
      ["th", new Set(["th"])],
      ["td", new Set(["thead", "th", "td"])],
      ["body", new Set(["head", "link", "script"])],
      ["li", new Set(["li"])],
      ["p", dt],
      ["h1", dt],
      ["h2", dt],
      ["h3", dt],
      ["h4", dt],
      ["h5", dt],
      ["h6", dt],
      ["select", qu],
      ["input", qu],
      ["output", qu],
      ["button", qu],
      ["datalist", qu],
      ["textarea", qu],
      ["option", new Set(["option"])],
      ["optgroup", new Set(["optgroup", "option"])],
      ["dd", OA],
      ["dt", OA],
      ["address", dt],
      ["article", dt],
      ["aside", dt],
      ["blockquote", dt],
      ["details", dt],
      ["div", dt],
      ["dl", dt],
      ["fieldset", dt],
      ["figcaption", dt],
      ["figure", dt],
      ["footer", dt],
      ["form", dt],
      ["header", dt],
      ["hr", dt],
      ["main", dt],
      ["nav", dt],
      ["ol", dt],
      ["pre", dt],
      ["section", dt],
      ["table", dt],
      ["ul", dt],
      ["rt", BA],
      ["rp", BA],
      ["tbody", LA],
      ["tfoot", LA],
    ]),
    UP = new Set([
      "area",
      "base",
      "basefont",
      "br",
      "col",
      "command",
      "embed",
      "frame",
      "hr",
      "img",
      "input",
      "isindex",
      "keygen",
      "link",
      "meta",
      "param",
      "source",
      "track",
      "wbr",
    ]),
    zA = new Set(["math", "svg"]),
    RA = new Set([
      "mi",
      "mo",
      "mn",
      "ms",
      "mtext",
      "annotation-xml",
      "foreignobject",
      "desc",
      "title",
    ]),
    VP = /\s|\//,
    k6 = class {
      constructor(t, n = {}) {
        var r, i, o, s, u, a;
        ((this.options = n),
          (this.startIndex = 0),
          (this.endIndex = 0),
          (this.openTagStart = 0),
          (this.tagname = ""),
          (this.attribname = ""),
          (this.attribvalue = ""),
          (this.attribs = null),
          (this.stack = []),
          (this.buffers = []),
          (this.bufferOffset = 0),
          (this.writeIndex = 0),
          (this.ended = !1),
          (this.cbs = t ?? {}),
          (this.htmlMode = !this.options.xmlMode),
          (this.lowerCaseTagNames =
            (r = n.lowerCaseTags) !== null && r !== void 0 ? r : this.htmlMode),
          (this.lowerCaseAttributeNames =
            (i = n.lowerCaseAttributeNames) !== null && i !== void 0
              ? i
              : this.htmlMode),
          (this.recognizeSelfClosing =
            (o = n.recognizeSelfClosing) !== null && o !== void 0
              ? o
              : !this.htmlMode),
          (this.tokenizer = new (
            (s = n.Tokenizer) !== null && s !== void 0 ? s : _6
          )(this.options, this)),
          (this.foreignContext = [!this.htmlMode]),
          (a = (u = this.cbs).onparserinit) === null ||
            a === void 0 ||
            a.call(u, this));
      }
      ontext(t, n) {
        var r, i;
        let o = this.getSlice(t, n);
        ((this.endIndex = n - 1),
          (i = (r = this.cbs).ontext) === null || i === void 0 || i.call(r, o),
          (this.startIndex = n));
      }
      ontextentity(t, n) {
        var r, i;
        ((this.endIndex = n - 1),
          (i = (r = this.cbs).ontext) === null ||
            i === void 0 ||
            i.call(r, p6(t)),
          (this.startIndex = n));
      }
      isVoidElement(t) {
        return this.htmlMode && UP.has(t);
      }
      onopentagname(t, n) {
        this.endIndex = n;
        let r = this.getSlice(t, n);
        (this.lowerCaseTagNames && (r = r.toLowerCase()), this.emitOpenTag(r));
      }
      emitOpenTag(t) {
        var n, r, i, o;
        ((this.openTagStart = this.startIndex), (this.tagname = t));
        let s = this.htmlMode && HP.get(t);
        if (s)
          for (; this.stack.length > 0 && s.has(this.stack[0]); ) {
            let u = this.stack.shift();
            (r = (n = this.cbs).onclosetag) === null ||
              r === void 0 ||
              r.call(n, u, !0);
          }
        (this.isVoidElement(t) ||
          (this.stack.unshift(t),
          this.htmlMode &&
            (zA.has(t)
              ? this.foreignContext.unshift(!0)
              : RA.has(t) && this.foreignContext.unshift(!1))),
          (o = (i = this.cbs).onopentagname) === null ||
            o === void 0 ||
            o.call(i, t),
          this.cbs.onopentag && (this.attribs = {}));
      }
      endOpenTag(t) {
        var n, r;
        ((this.startIndex = this.openTagStart),
          this.attribs &&
            ((r = (n = this.cbs).onopentag) === null ||
              r === void 0 ||
              r.call(n, this.tagname, this.attribs, t),
            (this.attribs = null)),
          this.cbs.onclosetag &&
            this.isVoidElement(this.tagname) &&
            this.cbs.onclosetag(this.tagname, !0),
          (this.tagname = ""));
      }
      onopentagend(t) {
        ((this.endIndex = t), this.endOpenTag(!1), (this.startIndex = t + 1));
      }
      onclosetag(t, n) {
        var r, i, o, s, u, a, l, h;
        this.endIndex = n;
        let m = this.getSlice(t, n);
        if (
          (this.lowerCaseTagNames && (m = m.toLowerCase()),
          this.htmlMode &&
            (zA.has(m) || RA.has(m)) &&
            this.foreignContext.shift(),
          this.isVoidElement(m))
        )
          this.htmlMode &&
            m === "br" &&
            ((s = (o = this.cbs).onopentagname) === null ||
              s === void 0 ||
              s.call(o, "br"),
            (a = (u = this.cbs).onopentag) === null ||
              a === void 0 ||
              a.call(u, "br", {}, !0),
            (h = (l = this.cbs).onclosetag) === null ||
              h === void 0 ||
              h.call(l, "br", !1));
        else {
          let p = this.stack.indexOf(m);
          if (p !== -1)
            for (let b = 0; b <= p; b++) {
              let x = this.stack.shift();
              (i = (r = this.cbs).onclosetag) === null ||
                i === void 0 ||
                i.call(r, x, b !== p);
            }
          else
            this.htmlMode &&
              m === "p" &&
              (this.emitOpenTag("p"), this.closeCurrentTag(!0));
        }
        this.startIndex = n + 1;
      }
      onselfclosingtag(t) {
        ((this.endIndex = t),
          this.recognizeSelfClosing || this.foreignContext[0]
            ? (this.closeCurrentTag(!1), (this.startIndex = t + 1))
            : this.onopentagend(t));
      }
      closeCurrentTag(t) {
        var n, r;
        let i = this.tagname;
        (this.endOpenTag(t),
          this.stack[0] === i &&
            ((r = (n = this.cbs).onclosetag) === null ||
              r === void 0 ||
              r.call(n, i, !t),
            this.stack.shift()));
      }
      onattribname(t, n) {
        this.startIndex = t;
        let r = this.getSlice(t, n);
        this.attribname = this.lowerCaseAttributeNames ? r.toLowerCase() : r;
      }
      onattribdata(t, n) {
        this.attribvalue += this.getSlice(t, n);
      }
      onattribentity(t) {
        this.attribvalue += p6(t);
      }
      onattribend(t, n) {
        var r, i;
        ((this.endIndex = n),
          (i = (r = this.cbs).onattribute) === null ||
            i === void 0 ||
            i.call(
              r,
              this.attribname,
              this.attribvalue,
              t === wi.Double
                ? '"'
                : t === wi.Single
                  ? "'"
                  : t === wi.NoValue
                    ? void 0
                    : null,
            ),
          this.attribs &&
            !Object.prototype.hasOwnProperty.call(
              this.attribs,
              this.attribname,
            ) &&
            (this.attribs[this.attribname] = this.attribvalue),
          (this.attribvalue = ""));
      }
      getInstructionName(t) {
        let n = t.search(VP),
          r = n < 0 ? t : t.substr(0, n);
        return (this.lowerCaseTagNames && (r = r.toLowerCase()), r);
      }
      ondeclaration(t, n) {
        this.endIndex = n;
        let r = this.getSlice(t, n);
        if (this.cbs.onprocessinginstruction) {
          let i = this.getInstructionName(r);
          this.cbs.onprocessinginstruction(`!${i}`, `!${r}`);
        }
        this.startIndex = n + 1;
      }
      onprocessinginstruction(t, n) {
        this.endIndex = n;
        let r = this.getSlice(t, n);
        if (this.cbs.onprocessinginstruction) {
          let i = this.getInstructionName(r);
          this.cbs.onprocessinginstruction(`?${i}`, `?${r}`);
        }
        this.startIndex = n + 1;
      }
      oncomment(t, n, r) {
        var i, o, s, u;
        ((this.endIndex = n),
          (o = (i = this.cbs).oncomment) === null ||
            o === void 0 ||
            o.call(i, this.getSlice(t, n - r)),
          (u = (s = this.cbs).oncommentend) === null ||
            u === void 0 ||
            u.call(s),
          (this.startIndex = n + 1));
      }
      oncdata(t, n, r) {
        var i, o, s, u, a, l, h, m, p, b;
        this.endIndex = n;
        let x = this.getSlice(t, n - r);
        (!this.htmlMode || this.options.recognizeCDATA
          ? ((o = (i = this.cbs).oncdatastart) === null ||
              o === void 0 ||
              o.call(i),
            (u = (s = this.cbs).ontext) === null ||
              u === void 0 ||
              u.call(s, x),
            (l = (a = this.cbs).oncdataend) === null ||
              l === void 0 ||
              l.call(a))
          : ((m = (h = this.cbs).oncomment) === null ||
              m === void 0 ||
              m.call(h, `[CDATA[${x}]]`),
            (b = (p = this.cbs).oncommentend) === null ||
              b === void 0 ||
              b.call(p)),
          (this.startIndex = n + 1));
      }
      onend() {
        var t, n;
        if (this.cbs.onclosetag) {
          this.endIndex = this.startIndex;
          for (let r = 0; r < this.stack.length; r++)
            this.cbs.onclosetag(this.stack[r], !0);
        }
        (n = (t = this.cbs).onend) === null || n === void 0 || n.call(t);
      }
      reset() {
        var t, n, r, i;
        ((n = (t = this.cbs).onreset) === null || n === void 0 || n.call(t),
          this.tokenizer.reset(),
          (this.tagname = ""),
          (this.attribname = ""),
          (this.attribs = null),
          (this.stack.length = 0),
          (this.startIndex = 0),
          (this.endIndex = 0),
          (i = (r = this.cbs).onparserinit) === null ||
            i === void 0 ||
            i.call(r, this),
          (this.buffers.length = 0),
          (this.foreignContext.length = 0),
          this.foreignContext.unshift(!this.htmlMode),
          (this.bufferOffset = 0),
          (this.writeIndex = 0),
          (this.ended = !1));
      }
      parseComplete(t) {
        (this.reset(), this.end(t));
      }
      getSlice(t, n) {
        for (; t - this.bufferOffset >= this.buffers[0].length; )
          this.shiftBuffer();
        let r = this.buffers[0].slice(
          t - this.bufferOffset,
          n - this.bufferOffset,
        );
        for (; n - this.bufferOffset > this.buffers[0].length; )
          (this.shiftBuffer(),
            (r += this.buffers[0].slice(0, n - this.bufferOffset)));
        return r;
      }
      shiftBuffer() {
        ((this.bufferOffset += this.buffers[0].length),
          this.writeIndex--,
          this.buffers.shift());
      }
      write(t) {
        var n, r;
        if (this.ended) {
          (r = (n = this.cbs).onerror) === null ||
            r === void 0 ||
            r.call(n, new Error(".write() after done!"));
          return;
        }
        (this.buffers.push(t),
          this.tokenizer.running &&
            (this.tokenizer.write(t), this.writeIndex++));
      }
      end(t) {
        var n, r;
        if (this.ended) {
          (r = (n = this.cbs).onerror) === null ||
            r === void 0 ||
            r.call(n, new Error(".end() after done!"));
          return;
        }
        (t && this.write(t), (this.ended = !0), this.tokenizer.end());
      }
      pause() {
        this.tokenizer.pause();
      }
      resume() {
        for (
          this.tokenizer.resume();
          this.tokenizer.running && this.writeIndex < this.buffers.length;
        )
          this.tokenizer.write(this.buffers[this.writeIndex++]);
        this.ended && this.tokenizer.end();
      }
      parseChunk(t) {
        this.write(t);
      }
      done(t) {
        this.end(t);
      }
    };
  function jP(e, t) {
    let n = new d6(void 0, t);
    return (new k6(n, t).end(e), n.root);
  }
  var GP = RP(sP(jP), vd);
  var YP = {
      "div,p": ({ $node: e }) => ({ queue: e.children() }),
      "h1,h2,h3,h4,h5,h6": ({ $node: e, getContent: t }) => ({
        ...t(e.contents()),
      }),
      "ul,ol": ({ $node: e }) => ({ queue: e.children(), nesting: !0 }),
      li: ({ $node: e, getContent: t }) => {
        let n = e.children().filter("ul,ol"),
          r;
        if (e.contents().first().is("div,p")) r = t(e.children().first());
        else {
          let i = e.contents(),
            o = i.index(n);
          (o >= 0 && (i = i.slice(0, o)), (r = t(i)));
        }
        return { queue: n, nesting: !0, ...r };
      },
      "table,pre,p>img:only-child": ({ $node: e, getContent: t }) => ({
        ...t(e),
      }),
    },
    XP = {
      selector: "h1,h2,h3,h4,h5,h6,ul,ol,li,table,pre,p>img:only-child",
      selectorRules: YP,
    },
    PA = "markmap: ",
    WP = /^h[1-6]$/,
    KP = /^[uo]l$/,
    ZP = /^li$/;
  function JP(e) {
    return WP.test(e) ? +e[1] : KP.test(e) ? 8 : ZP.test(e) ? 9 : 7;
  }
  function QP(e, t) {
    let n = { ...XP, ...t },
      r = GP(e),
      i = r("body");
    i.length || (i = r.root());
    let o = 0,
      s = {
        id: o,
        tag: "",
        html: "",
        level: 0,
        parent: 0,
        childrenLevel: 0,
        children: [],
      },
      u = [],
      a = 0;
    return (b(i.children()), s);
    function l(x) {
      var y;
      let { parent: v } = x,
        k = {
          id: ++o,
          tag: x.tagName,
          level: x.level,
          html: x.html,
          childrenLevel: 0,
          children: x.nesting ? [] : void 0,
          parent: v.id,
        };
      return (
        (y = x.comments) != null && y.length && (k.comments = x.comments),
        Object.keys(x.data || {}).length && (k.data = x.data),
        v.children &&
          ((v.childrenLevel === 0 || v.childrenLevel > k.level) &&
            ((v.children = []), (v.childrenLevel = k.level)),
          v.childrenLevel === k.level && v.children.push(k)),
        k
      );
    }
    function h(x) {
      let y;
      for (; (y = u[u.length - 1]) && y.level >= x; ) u.pop();
      return y || s;
    }
    function m(x) {
      var y;
      let v = p(x),
        k = (y = r.html(v.$node)) == null ? void 0 : y.trimEnd();
      return { comments: v.comments, html: k };
    }
    function p(x) {
      let y = [];
      return (
        (x = x.filter((v, k) => {
          if (k.type === "comment") {
            let T = k.data.trim();
            if (T.startsWith(PA))
              return (y.push(T.slice(PA.length).trim()), !1);
          }
          return !0;
        })),
        { $node: x, comments: y }
      );
    }
    function b(x, y) {
      x.each((v, k) => {
        var T;
        let E = r(k),
          M =
            (T = Object.entries(n.selectorRules).find(([j]) => E.is(j))) == null
              ? void 0
              : T[1],
          D = M?.({ $node: E, $: r, getContent: m });
        if (D?.queue && !D.nesting) {
          b(D.queue, y);
          return;
        }
        let I = JP(k.tagName);
        if (!D) {
          I <= 6 && (a = I);
          return;
        }
        if ((a > 0 && I > a) || !E.is(n.selector)) return;
        a = 0;
        let P = I <= 6,
          O = { ...E.closest("p").data(), ...E.data() },
          H = D.html || "";
        if (E.is("ol>li") && y?.children) {
          let Z = +(E.parent().attr("start") || 1) + y.children.length;
          ((H = `${Z}. ${H}`), (O = { ...O, listIndex: Z }));
        }
        let U = l({
          parent: y || h(I),
          nesting: !!D.queue || P,
          tagName: k.tagName,
          level: I,
          html: H,
          comments: D.comments,
          data: O,
        });
        (P && u.push(U), D.queue && b(D.queue, U));
      });
    }
  }
  function e$(e) {
    return ms(e, (t, n) => {
      let r = { content: t.html, children: n() || [] };
      return (
        t.data && (r.payload = { tag: t.tag, ...t.data }),
        t.comments &&
          (t.comments.includes("foldAll")
            ? (r.payload = { ...r.payload, fold: 2 })
            : t.comments.includes("fold") &&
              (r.payload = { ...r.payload, fold: 1 })),
        r
      );
    });
  }
  function MM(e, t) {
    let n = QP(e, t);
    return e$(n);
  }
  var j6 = {};
  ca(j6, {
    arrayReplaceAt: () => V6,
    assign: () => Uu,
    escapeHtml: () => fo,
    escapeRE: () => B$,
    fromCodePoint: () => rc,
    has: () => M$,
    isMdAsciiPunct: () => Ms,
    isPunctChar: () => As,
    isSpace: () => Ve,
    isString: () => Bd,
    isValidEntityCode: () => zd,
    isWhiteSpace: () => Ss,
    lib: () => z$,
    normalizeReference: () => Ts,
    unescapeAll: () => co,
    unescapeMd: () => D$,
  });
  var Nd = {};
  ca(Nd, {
    decode: () => tc,
    encode: () => Ed,
    format: () => $u,
    parse: () => nc,
  });
  var TM = {};
  function t$(e) {
    let t = TM[e];
    if (t) return t;
    t = TM[e] = [];
    for (let n = 0; n < 128; n++) {
      let r = String.fromCharCode(n);
      t.push(r);
    }
    for (let n = 0; n < e.length; n++) {
      let r = e.charCodeAt(n);
      t[r] = "%" + ("0" + r.toString(16).toUpperCase()).slice(-2);
    }
    return t;
  }
  function Md(e, t) {
    typeof t != "string" && (t = Md.defaultChars);
    let n = t$(t);
    return e.replace(/(%[a-f0-9]{2})+/gi, function (r) {
      let i = "";
      for (let o = 0, s = r.length; o < s; o += 3) {
        let u = parseInt(r.slice(o + 1, o + 3), 16);
        if (u < 128) {
          i += n[u];
          continue;
        }
        if ((u & 224) === 192 && o + 3 < s) {
          let a = parseInt(r.slice(o + 4, o + 6), 16);
          if ((a & 192) === 128) {
            let l = ((u << 6) & 1984) | (a & 63);
            (l < 128 ? (i += "\uFFFD\uFFFD") : (i += String.fromCharCode(l)),
              (o += 3));
            continue;
          }
        }
        if ((u & 240) === 224 && o + 6 < s) {
          let a = parseInt(r.slice(o + 4, o + 6), 16),
            l = parseInt(r.slice(o + 7, o + 9), 16);
          if ((a & 192) === 128 && (l & 192) === 128) {
            let h = ((u << 12) & 61440) | ((a << 6) & 4032) | (l & 63);
            (h < 2048 || (h >= 55296 && h <= 57343)
              ? (i += "\uFFFD\uFFFD\uFFFD")
              : (i += String.fromCharCode(h)),
              (o += 6));
            continue;
          }
        }
        if ((u & 248) === 240 && o + 9 < s) {
          let a = parseInt(r.slice(o + 4, o + 6), 16),
            l = parseInt(r.slice(o + 7, o + 9), 16),
            h = parseInt(r.slice(o + 10, o + 12), 16);
          if ((a & 192) === 128 && (l & 192) === 128 && (h & 192) === 128) {
            let m =
              ((u << 18) & 1835008) |
              ((a << 12) & 258048) |
              ((l << 6) & 4032) |
              (h & 63);
            (m < 65536 || m > 1114111
              ? (i += "\uFFFD\uFFFD\uFFFD\uFFFD")
              : ((m -= 65536),
                (i += String.fromCharCode(
                  55296 + (m >> 10),
                  56320 + (m & 1023),
                ))),
              (o += 9));
            continue;
          }
        }
        i += "\uFFFD";
      }
      return i;
    });
  }
  Md.defaultChars = ";/?:@&=+$,#";
  Md.componentChars = "";
  var tc = Md;
  var EM = {};
  function n$(e) {
    let t = EM[e];
    if (t) return t;
    t = EM[e] = [];
    for (let n = 0; n < 128; n++) {
      let r = String.fromCharCode(n);
      /^[0-9a-z]$/i.test(r)
        ? t.push(r)
        : t.push("%" + ("0" + n.toString(16).toUpperCase()).slice(-2));
    }
    for (let n = 0; n < e.length; n++) t[e.charCodeAt(n)] = e[n];
    return t;
  }
  function Td(e, t, n) {
    (typeof t != "string" && ((n = t), (t = Td.defaultChars)),
      typeof n > "u" && (n = !0));
    let r = n$(t),
      i = "";
    for (let o = 0, s = e.length; o < s; o++) {
      let u = e.charCodeAt(o);
      if (
        n &&
        u === 37 &&
        o + 2 < s &&
        /^[0-9a-f]{2}$/i.test(e.slice(o + 1, o + 3))
      ) {
        ((i += e.slice(o, o + 3)), (o += 2));
        continue;
      }
      if (u < 128) {
        i += r[u];
        continue;
      }
      if (u >= 55296 && u <= 57343) {
        if (u >= 55296 && u <= 56319 && o + 1 < s) {
          let a = e.charCodeAt(o + 1);
          if (a >= 56320 && a <= 57343) {
            ((i += encodeURIComponent(e[o] + e[o + 1])), o++);
            continue;
          }
        }
        i += "%EF%BF%BD";
        continue;
      }
      i += encodeURIComponent(e[o]);
    }
    return i;
  }
  Td.defaultChars = ";/?:@&=+$,-_.!~*'()#";
  Td.componentChars = "-_.!~*'()";
  var Ed = Td;
  function $u(e) {
    let t = "";
    return (
      (t += e.protocol || ""),
      (t += e.slashes ? "//" : ""),
      (t += e.auth ? e.auth + "@" : ""),
      e.hostname && e.hostname.indexOf(":") !== -1
        ? (t += "[" + e.hostname + "]")
        : (t += e.hostname || ""),
      (t += e.port ? ":" + e.port : ""),
      (t += e.pathname || ""),
      (t += e.search || ""),
      (t += e.hash || ""),
      t
    );
  }
  function Cd() {
    ((this.protocol = null),
      (this.slashes = null),
      (this.auth = null),
      (this.port = null),
      (this.hostname = null),
      (this.hash = null),
      (this.search = null),
      (this.pathname = null));
  }
  var r$ = /^([a-z0-9.+-]+:)/i,
    i$ = /:[0-9]*$/,
    o$ = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
    s$ = [
      "<",
      ">",
      '"',
      "`",
      " ",
      "\r",
      `
`,
      "	",
    ],
    u$ = ["{", "}", "|", "\\", "^", "`"].concat(s$),
    a$ = ["'"].concat(u$),
    CM = ["%", "/", "?", ";", "#"].concat(a$),
    NM = ["/", "?", "#"],
    l$ = 255,
    DM = /^[+a-z0-9A-Z_-]{0,63}$/,
    c$ = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
    IM = { javascript: !0, "javascript:": !0 },
    FM = {
      http: !0,
      https: !0,
      ftp: !0,
      gopher: !0,
      file: !0,
      "http:": !0,
      "https:": !0,
      "ftp:": !0,
      "gopher:": !0,
      "file:": !0,
    };
  function f$(e, t) {
    if (e && e instanceof Cd) return e;
    let n = new Cd();
    return (n.parse(e, t), n);
  }
  Cd.prototype.parse = function (e, t) {
    let n,
      r,
      i,
      o = e;
    if (((o = o.trim()), !t && e.split("#").length === 1)) {
      let l = o$.exec(o);
      if (l)
        return ((this.pathname = l[1]), l[2] && (this.search = l[2]), this);
    }
    let s = r$.exec(o);
    if (
      (s &&
        ((s = s[0]),
        (n = s.toLowerCase()),
        (this.protocol = s),
        (o = o.substr(s.length))),
      (t || s || o.match(/^\/\/[^@\/]+@[^@\/]+/)) &&
        ((i = o.substr(0, 2) === "//"),
        i && !(s && IM[s]) && ((o = o.substr(2)), (this.slashes = !0))),
      !IM[s] && (i || (s && !FM[s])))
    ) {
      let l = -1;
      for (let x = 0; x < NM.length; x++)
        ((r = o.indexOf(NM[x])), r !== -1 && (l === -1 || r < l) && (l = r));
      let h, m;
      (l === -1 ? (m = o.lastIndexOf("@")) : (m = o.lastIndexOf("@", l)),
        m !== -1 &&
          ((h = o.slice(0, m)), (o = o.slice(m + 1)), (this.auth = h)),
        (l = -1));
      for (let x = 0; x < CM.length; x++)
        ((r = o.indexOf(CM[x])), r !== -1 && (l === -1 || r < l) && (l = r));
      (l === -1 && (l = o.length), o[l - 1] === ":" && l--);
      let p = o.slice(0, l);
      ((o = o.slice(l)),
        this.parseHost(p),
        (this.hostname = this.hostname || ""));
      let b =
        this.hostname[0] === "[" &&
        this.hostname[this.hostname.length - 1] === "]";
      if (!b) {
        let x = this.hostname.split(/\./);
        for (let y = 0, v = x.length; y < v; y++) {
          let k = x[y];
          if (k && !k.match(DM)) {
            let T = "";
            for (let E = 0, M = k.length; E < M; E++)
              k.charCodeAt(E) > 127 ? (T += "x") : (T += k[E]);
            if (!T.match(DM)) {
              let E = x.slice(0, y),
                M = x.slice(y + 1),
                D = k.match(c$);
              (D && (E.push(D[1]), M.unshift(D[2])),
                M.length && (o = M.join(".") + o),
                (this.hostname = E.join(".")));
              break;
            }
          }
        }
      }
      (this.hostname.length > l$ && (this.hostname = ""),
        b &&
          (this.hostname = this.hostname.substr(1, this.hostname.length - 2)));
    }
    let u = o.indexOf("#");
    u !== -1 && ((this.hash = o.substr(u)), (o = o.slice(0, u)));
    let a = o.indexOf("?");
    return (
      a !== -1 && ((this.search = o.substr(a)), (o = o.slice(0, a))),
      o && (this.pathname = o),
      FM[n] && this.hostname && !this.pathname && (this.pathname = ""),
      this
    );
  };
  Cd.prototype.parseHost = function (e) {
    let t = i$.exec(e);
    (t &&
      ((t = t[0]),
      t !== ":" && (this.port = t.substr(1)),
      (e = e.substr(0, e.length - t.length))),
      e && (this.hostname = e));
  };
  var nc = f$;
  var B6 = {};
  ca(B6, {
    Any: () => Dd,
    Cc: () => Id,
    Cf: () => qM,
    P: () => Hu,
    S: () => Fd,
    Z: () => qd,
  });
  var Dd =
    /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
  var Id = /[\0-\x1F\x7F-\x9F]/;
  var qM =
    /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/;
  var Hu =
    /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/;
  var Fd =
    /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/;
  var qd = /[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;
  var LM = new Uint16Array(
    '\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'
      .split("")
      .map((e) => e.charCodeAt(0)),
  );
  var OM = new Uint16Array(
    "\u0200aglq	\x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022"
      .split("")
      .map((e) => e.charCodeAt(0)),
  );
  var z6,
    h$ = new Map([
      [0, 65533],
      [128, 8364],
      [130, 8218],
      [131, 402],
      [132, 8222],
      [133, 8230],
      [134, 8224],
      [135, 8225],
      [136, 710],
      [137, 8240],
      [138, 352],
      [139, 8249],
      [140, 338],
      [142, 381],
      [145, 8216],
      [146, 8217],
      [147, 8220],
      [148, 8221],
      [149, 8226],
      [150, 8211],
      [151, 8212],
      [152, 732],
      [153, 8482],
      [154, 353],
      [155, 8250],
      [156, 339],
      [158, 382],
      [159, 376],
    ]),
    R6 =
      (z6 = String.fromCodePoint) !== null && z6 !== void 0
        ? z6
        : function (e) {
            let t = "";
            return (
              e > 65535 &&
                ((e -= 65536),
                (t += String.fromCharCode(((e >>> 10) & 1023) | 55296)),
                (e = 56320 | (e & 1023))),
              (t += String.fromCharCode(e)),
              t
            );
          };
  function P6(e) {
    var t;
    return (e >= 55296 && e <= 57343) || e > 1114111
      ? 65533
      : (t = h$.get(e)) !== null && t !== void 0
        ? t
        : e;
  }
  var fn;
  (function (e) {
    ((e[(e.NUM = 35)] = "NUM"),
      (e[(e.SEMI = 59)] = "SEMI"),
      (e[(e.EQUALS = 61)] = "EQUALS"),
      (e[(e.ZERO = 48)] = "ZERO"),
      (e[(e.NINE = 57)] = "NINE"),
      (e[(e.LOWER_A = 97)] = "LOWER_A"),
      (e[(e.LOWER_F = 102)] = "LOWER_F"),
      (e[(e.LOWER_X = 120)] = "LOWER_X"),
      (e[(e.LOWER_Z = 122)] = "LOWER_Z"),
      (e[(e.UPPER_A = 65)] = "UPPER_A"),
      (e[(e.UPPER_F = 70)] = "UPPER_F"),
      (e[(e.UPPER_Z = 90)] = "UPPER_Z"));
  })(fn || (fn = {}));
  var d$ = 32,
    r0;
  (function (e) {
    ((e[(e.VALUE_LENGTH = 49152)] = "VALUE_LENGTH"),
      (e[(e.BRANCH_LENGTH = 16256)] = "BRANCH_LENGTH"),
      (e[(e.JUMP_TABLE = 127)] = "JUMP_TABLE"));
  })(r0 || (r0 = {}));
  function $6(e) {
    return e >= fn.ZERO && e <= fn.NINE;
  }
  function p$(e) {
    return (
      (e >= fn.UPPER_A && e <= fn.UPPER_F) ||
      (e >= fn.LOWER_A && e <= fn.LOWER_F)
    );
  }
  function m$(e) {
    return (
      (e >= fn.UPPER_A && e <= fn.UPPER_Z) ||
      (e >= fn.LOWER_A && e <= fn.LOWER_Z) ||
      $6(e)
    );
  }
  function g$(e) {
    return e === fn.EQUALS || m$(e);
  }
  var cn;
  (function (e) {
    ((e[(e.EntityStart = 0)] = "EntityStart"),
      (e[(e.NumericStart = 1)] = "NumericStart"),
      (e[(e.NumericDecimal = 2)] = "NumericDecimal"),
      (e[(e.NumericHex = 3)] = "NumericHex"),
      (e[(e.NamedEntity = 4)] = "NamedEntity"));
  })(cn || (cn = {}));
  var vi;
  (function (e) {
    ((e[(e.Legacy = 0)] = "Legacy"),
      (e[(e.Strict = 1)] = "Strict"),
      (e[(e.Attribute = 2)] = "Attribute"));
  })(vi || (vi = {}));
  var Ld = class {
    constructor(t, n, r) {
      ((this.decodeTree = t),
        (this.emitCodePoint = n),
        (this.errors = r),
        (this.state = cn.EntityStart),
        (this.consumed = 1),
        (this.result = 0),
        (this.treeIndex = 0),
        (this.excess = 1),
        (this.decodeMode = vi.Strict));
    }
    startEntity(t) {
      ((this.decodeMode = t),
        (this.state = cn.EntityStart),
        (this.result = 0),
        (this.treeIndex = 0),
        (this.excess = 1),
        (this.consumed = 1));
    }
    write(t, n) {
      switch (this.state) {
        case cn.EntityStart:
          return t.charCodeAt(n) === fn.NUM
            ? ((this.state = cn.NumericStart),
              (this.consumed += 1),
              this.stateNumericStart(t, n + 1))
            : ((this.state = cn.NamedEntity), this.stateNamedEntity(t, n));
        case cn.NumericStart:
          return this.stateNumericStart(t, n);
        case cn.NumericDecimal:
          return this.stateNumericDecimal(t, n);
        case cn.NumericHex:
          return this.stateNumericHex(t, n);
        case cn.NamedEntity:
          return this.stateNamedEntity(t, n);
      }
    }
    stateNumericStart(t, n) {
      return n >= t.length
        ? -1
        : (t.charCodeAt(n) | d$) === fn.LOWER_X
          ? ((this.state = cn.NumericHex),
            (this.consumed += 1),
            this.stateNumericHex(t, n + 1))
          : ((this.state = cn.NumericDecimal), this.stateNumericDecimal(t, n));
    }
    addToNumericResult(t, n, r, i) {
      if (n !== r) {
        let o = r - n;
        ((this.result =
          this.result * Math.pow(i, o) + parseInt(t.substr(n, o), i)),
          (this.consumed += o));
      }
    }
    stateNumericHex(t, n) {
      let r = n;
      for (; n < t.length; ) {
        let i = t.charCodeAt(n);
        if ($6(i) || p$(i)) n += 1;
        else
          return (
            this.addToNumericResult(t, r, n, 16),
            this.emitNumericEntity(i, 3)
          );
      }
      return (this.addToNumericResult(t, r, n, 16), -1);
    }
    stateNumericDecimal(t, n) {
      let r = n;
      for (; n < t.length; ) {
        let i = t.charCodeAt(n);
        if ($6(i)) n += 1;
        else
          return (
            this.addToNumericResult(t, r, n, 10),
            this.emitNumericEntity(i, 2)
          );
      }
      return (this.addToNumericResult(t, r, n, 10), -1);
    }
    emitNumericEntity(t, n) {
      var r;
      if (this.consumed <= n)
        return (
          (r = this.errors) === null ||
            r === void 0 ||
            r.absenceOfDigitsInNumericCharacterReference(this.consumed),
          0
        );
      if (t === fn.SEMI) this.consumed += 1;
      else if (this.decodeMode === vi.Strict) return 0;
      return (
        this.emitCodePoint(P6(this.result), this.consumed),
        this.errors &&
          (t !== fn.SEMI &&
            this.errors.missingSemicolonAfterCharacterReference(),
          this.errors.validateNumericCharacterReference(this.result)),
        this.consumed
      );
    }
    stateNamedEntity(t, n) {
      let { decodeTree: r } = this,
        i = r[this.treeIndex],
        o = (i & r0.VALUE_LENGTH) >> 14;
      for (; n < t.length; n++, this.excess++) {
        let s = t.charCodeAt(n);
        if (
          ((this.treeIndex = b$(r, i, this.treeIndex + Math.max(1, o), s)),
          this.treeIndex < 0)
        )
          return this.result === 0 ||
            (this.decodeMode === vi.Attribute && (o === 0 || g$(s)))
            ? 0
            : this.emitNotTerminatedNamedEntity();
        if (
          ((i = r[this.treeIndex]), (o = (i & r0.VALUE_LENGTH) >> 14), o !== 0)
        ) {
          if (s === fn.SEMI)
            return this.emitNamedEntityData(
              this.treeIndex,
              o,
              this.consumed + this.excess,
            );
          this.decodeMode !== vi.Strict &&
            ((this.result = this.treeIndex),
            (this.consumed += this.excess),
            (this.excess = 0));
        }
      }
      return -1;
    }
    emitNotTerminatedNamedEntity() {
      var t;
      let { result: n, decodeTree: r } = this,
        i = (r[n] & r0.VALUE_LENGTH) >> 14;
      return (
        this.emitNamedEntityData(n, i, this.consumed),
        (t = this.errors) === null ||
          t === void 0 ||
          t.missingSemicolonAfterCharacterReference(),
        this.consumed
      );
    }
    emitNamedEntityData(t, n, r) {
      let { decodeTree: i } = this;
      return (
        this.emitCodePoint(n === 1 ? i[t] & ~r0.VALUE_LENGTH : i[t + 1], r),
        n === 3 && this.emitCodePoint(i[t + 2], r),
        r
      );
    }
    end() {
      var t;
      switch (this.state) {
        case cn.NamedEntity:
          return this.result !== 0 &&
            (this.decodeMode !== vi.Attribute || this.result === this.treeIndex)
            ? this.emitNotTerminatedNamedEntity()
            : 0;
        case cn.NumericDecimal:
          return this.emitNumericEntity(0, 2);
        case cn.NumericHex:
          return this.emitNumericEntity(0, 3);
        case cn.NumericStart:
          return (
            (t = this.errors) === null ||
              t === void 0 ||
              t.absenceOfDigitsInNumericCharacterReference(this.consumed),
            0
          );
        case cn.EntityStart:
          return 0;
      }
    }
  };
  function BM(e) {
    let t = "",
      n = new Ld(e, (r) => (t += R6(r)));
    return function (i, o) {
      let s = 0,
        u = 0;
      for (; (u = i.indexOf("&", u)) >= 0; ) {
        ((t += i.slice(s, u)), n.startEntity(o));
        let l = n.write(i, u + 1);
        if (l < 0) {
          s = u + n.end();
          break;
        }
        ((s = u + l), (u = l === 0 ? s + 1 : s));
      }
      let a = t + i.slice(s);
      return ((t = ""), a);
    };
  }
  function b$(e, t, n, r) {
    let i = (t & r0.BRANCH_LENGTH) >> 7,
      o = t & r0.JUMP_TABLE;
    if (i === 0) return o !== 0 && r === o ? n : -1;
    if (o) {
      let a = r - o;
      return a < 0 || a >= i ? -1 : e[n + a] - 1;
    }
    let s = n,
      u = s + i - 1;
    for (; s <= u; ) {
      let a = (s + u) >>> 1,
        l = e[a];
      if (l < r) s = a + 1;
      else if (l > r) u = a - 1;
      else return e[a + i];
    }
    return -1;
  }
  var x$ = BM(LM),
    n7e = BM(OM);
  function i0(e, t = vi.Legacy) {
    return x$(e, t);
  }
  function Od(e) {
    for (let t = 1; t < e.length; t++) e[t][0] += e[t - 1][0] + 1;
    return e;
  }
  var y$ = new Map(
    Od([
      [9, "&Tab;"],
      [0, "&NewLine;"],
      [22, "&excl;"],
      [0, "&quot;"],
      [0, "&num;"],
      [0, "&dollar;"],
      [0, "&percnt;"],
      [0, "&amp;"],
      [0, "&apos;"],
      [0, "&lpar;"],
      [0, "&rpar;"],
      [0, "&ast;"],
      [0, "&plus;"],
      [0, "&comma;"],
      [1, "&period;"],
      [0, "&sol;"],
      [10, "&colon;"],
      [0, "&semi;"],
      [0, { v: "&lt;", n: 8402, o: "&nvlt;" }],
      [0, { v: "&equals;", n: 8421, o: "&bne;" }],
      [0, { v: "&gt;", n: 8402, o: "&nvgt;" }],
      [0, "&quest;"],
      [0, "&commat;"],
      [26, "&lbrack;"],
      [0, "&bsol;"],
      [0, "&rbrack;"],
      [0, "&Hat;"],
      [0, "&lowbar;"],
      [0, "&DiacriticalGrave;"],
      [5, { n: 106, o: "&fjlig;" }],
      [20, "&lbrace;"],
      [0, "&verbar;"],
      [0, "&rbrace;"],
      [34, "&nbsp;"],
      [0, "&iexcl;"],
      [0, "&cent;"],
      [0, "&pound;"],
      [0, "&curren;"],
      [0, "&yen;"],
      [0, "&brvbar;"],
      [0, "&sect;"],
      [0, "&die;"],
      [0, "&copy;"],
      [0, "&ordf;"],
      [0, "&laquo;"],
      [0, "&not;"],
      [0, "&shy;"],
      [0, "&circledR;"],
      [0, "&macr;"],
      [0, "&deg;"],
      [0, "&PlusMinus;"],
      [0, "&sup2;"],
      [0, "&sup3;"],
      [0, "&acute;"],
      [0, "&micro;"],
      [0, "&para;"],
      [0, "&centerdot;"],
      [0, "&cedil;"],
      [0, "&sup1;"],
      [0, "&ordm;"],
      [0, "&raquo;"],
      [0, "&frac14;"],
      [0, "&frac12;"],
      [0, "&frac34;"],
      [0, "&iquest;"],
      [0, "&Agrave;"],
      [0, "&Aacute;"],
      [0, "&Acirc;"],
      [0, "&Atilde;"],
      [0, "&Auml;"],
      [0, "&angst;"],
      [0, "&AElig;"],
      [0, "&Ccedil;"],
      [0, "&Egrave;"],
      [0, "&Eacute;"],
      [0, "&Ecirc;"],
      [0, "&Euml;"],
      [0, "&Igrave;"],
      [0, "&Iacute;"],
      [0, "&Icirc;"],
      [0, "&Iuml;"],
      [0, "&ETH;"],
      [0, "&Ntilde;"],
      [0, "&Ograve;"],
      [0, "&Oacute;"],
      [0, "&Ocirc;"],
      [0, "&Otilde;"],
      [0, "&Ouml;"],
      [0, "&times;"],
      [0, "&Oslash;"],
      [0, "&Ugrave;"],
      [0, "&Uacute;"],
      [0, "&Ucirc;"],
      [0, "&Uuml;"],
      [0, "&Yacute;"],
      [0, "&THORN;"],
      [0, "&szlig;"],
      [0, "&agrave;"],
      [0, "&aacute;"],
      [0, "&acirc;"],
      [0, "&atilde;"],
      [0, "&auml;"],
      [0, "&aring;"],
      [0, "&aelig;"],
      [0, "&ccedil;"],
      [0, "&egrave;"],
      [0, "&eacute;"],
      [0, "&ecirc;"],
      [0, "&euml;"],
      [0, "&igrave;"],
      [0, "&iacute;"],
      [0, "&icirc;"],
      [0, "&iuml;"],
      [0, "&eth;"],
      [0, "&ntilde;"],
      [0, "&ograve;"],
      [0, "&oacute;"],
      [0, "&ocirc;"],
      [0, "&otilde;"],
      [0, "&ouml;"],
      [0, "&div;"],
      [0, "&oslash;"],
      [0, "&ugrave;"],
      [0, "&uacute;"],
      [0, "&ucirc;"],
      [0, "&uuml;"],
      [0, "&yacute;"],
      [0, "&thorn;"],
      [0, "&yuml;"],
      [0, "&Amacr;"],
      [0, "&amacr;"],
      [0, "&Abreve;"],
      [0, "&abreve;"],
      [0, "&Aogon;"],
      [0, "&aogon;"],
      [0, "&Cacute;"],
      [0, "&cacute;"],
      [0, "&Ccirc;"],
      [0, "&ccirc;"],
      [0, "&Cdot;"],
      [0, "&cdot;"],
      [0, "&Ccaron;"],
      [0, "&ccaron;"],
      [0, "&Dcaron;"],
      [0, "&dcaron;"],
      [0, "&Dstrok;"],
      [0, "&dstrok;"],
      [0, "&Emacr;"],
      [0, "&emacr;"],
      [2, "&Edot;"],
      [0, "&edot;"],
      [0, "&Eogon;"],
      [0, "&eogon;"],
      [0, "&Ecaron;"],
      [0, "&ecaron;"],
      [0, "&Gcirc;"],
      [0, "&gcirc;"],
      [0, "&Gbreve;"],
      [0, "&gbreve;"],
      [0, "&Gdot;"],
      [0, "&gdot;"],
      [0, "&Gcedil;"],
      [1, "&Hcirc;"],
      [0, "&hcirc;"],
      [0, "&Hstrok;"],
      [0, "&hstrok;"],
      [0, "&Itilde;"],
      [0, "&itilde;"],
      [0, "&Imacr;"],
      [0, "&imacr;"],
      [2, "&Iogon;"],
      [0, "&iogon;"],
      [0, "&Idot;"],
      [0, "&imath;"],
      [0, "&IJlig;"],
      [0, "&ijlig;"],
      [0, "&Jcirc;"],
      [0, "&jcirc;"],
      [0, "&Kcedil;"],
      [0, "&kcedil;"],
      [0, "&kgreen;"],
      [0, "&Lacute;"],
      [0, "&lacute;"],
      [0, "&Lcedil;"],
      [0, "&lcedil;"],
      [0, "&Lcaron;"],
      [0, "&lcaron;"],
      [0, "&Lmidot;"],
      [0, "&lmidot;"],
      [0, "&Lstrok;"],
      [0, "&lstrok;"],
      [0, "&Nacute;"],
      [0, "&nacute;"],
      [0, "&Ncedil;"],
      [0, "&ncedil;"],
      [0, "&Ncaron;"],
      [0, "&ncaron;"],
      [0, "&napos;"],
      [0, "&ENG;"],
      [0, "&eng;"],
      [0, "&Omacr;"],
      [0, "&omacr;"],
      [2, "&Odblac;"],
      [0, "&odblac;"],
      [0, "&OElig;"],
      [0, "&oelig;"],
      [0, "&Racute;"],
      [0, "&racute;"],
      [0, "&Rcedil;"],
      [0, "&rcedil;"],
      [0, "&Rcaron;"],
      [0, "&rcaron;"],
      [0, "&Sacute;"],
      [0, "&sacute;"],
      [0, "&Scirc;"],
      [0, "&scirc;"],
      [0, "&Scedil;"],
      [0, "&scedil;"],
      [0, "&Scaron;"],
      [0, "&scaron;"],
      [0, "&Tcedil;"],
      [0, "&tcedil;"],
      [0, "&Tcaron;"],
      [0, "&tcaron;"],
      [0, "&Tstrok;"],
      [0, "&tstrok;"],
      [0, "&Utilde;"],
      [0, "&utilde;"],
      [0, "&Umacr;"],
      [0, "&umacr;"],
      [0, "&Ubreve;"],
      [0, "&ubreve;"],
      [0, "&Uring;"],
      [0, "&uring;"],
      [0, "&Udblac;"],
      [0, "&udblac;"],
      [0, "&Uogon;"],
      [0, "&uogon;"],
      [0, "&Wcirc;"],
      [0, "&wcirc;"],
      [0, "&Ycirc;"],
      [0, "&ycirc;"],
      [0, "&Yuml;"],
      [0, "&Zacute;"],
      [0, "&zacute;"],
      [0, "&Zdot;"],
      [0, "&zdot;"],
      [0, "&Zcaron;"],
      [0, "&zcaron;"],
      [19, "&fnof;"],
      [34, "&imped;"],
      [63, "&gacute;"],
      [65, "&jmath;"],
      [142, "&circ;"],
      [0, "&caron;"],
      [16, "&breve;"],
      [0, "&DiacriticalDot;"],
      [0, "&ring;"],
      [0, "&ogon;"],
      [0, "&DiacriticalTilde;"],
      [0, "&dblac;"],
      [51, "&DownBreve;"],
      [127, "&Alpha;"],
      [0, "&Beta;"],
      [0, "&Gamma;"],
      [0, "&Delta;"],
      [0, "&Epsilon;"],
      [0, "&Zeta;"],
      [0, "&Eta;"],
      [0, "&Theta;"],
      [0, "&Iota;"],
      [0, "&Kappa;"],
      [0, "&Lambda;"],
      [0, "&Mu;"],
      [0, "&Nu;"],
      [0, "&Xi;"],
      [0, "&Omicron;"],
      [0, "&Pi;"],
      [0, "&Rho;"],
      [1, "&Sigma;"],
      [0, "&Tau;"],
      [0, "&Upsilon;"],
      [0, "&Phi;"],
      [0, "&Chi;"],
      [0, "&Psi;"],
      [0, "&ohm;"],
      [7, "&alpha;"],
      [0, "&beta;"],
      [0, "&gamma;"],
      [0, "&delta;"],
      [0, "&epsi;"],
      [0, "&zeta;"],
      [0, "&eta;"],
      [0, "&theta;"],
      [0, "&iota;"],
      [0, "&kappa;"],
      [0, "&lambda;"],
      [0, "&mu;"],
      [0, "&nu;"],
      [0, "&xi;"],
      [0, "&omicron;"],
      [0, "&pi;"],
      [0, "&rho;"],
      [0, "&sigmaf;"],
      [0, "&sigma;"],
      [0, "&tau;"],
      [0, "&upsi;"],
      [0, "&phi;"],
      [0, "&chi;"],
      [0, "&psi;"],
      [0, "&omega;"],
      [7, "&thetasym;"],
      [0, "&Upsi;"],
      [2, "&phiv;"],
      [0, "&piv;"],
      [5, "&Gammad;"],
      [0, "&digamma;"],
      [18, "&kappav;"],
      [0, "&rhov;"],
      [3, "&epsiv;"],
      [0, "&backepsilon;"],
      [10, "&IOcy;"],
      [0, "&DJcy;"],
      [0, "&GJcy;"],
      [0, "&Jukcy;"],
      [0, "&DScy;"],
      [0, "&Iukcy;"],
      [0, "&YIcy;"],
      [0, "&Jsercy;"],
      [0, "&LJcy;"],
      [0, "&NJcy;"],
      [0, "&TSHcy;"],
      [0, "&KJcy;"],
      [1, "&Ubrcy;"],
      [0, "&DZcy;"],
      [0, "&Acy;"],
      [0, "&Bcy;"],
      [0, "&Vcy;"],
      [0, "&Gcy;"],
      [0, "&Dcy;"],
      [0, "&IEcy;"],
      [0, "&ZHcy;"],
      [0, "&Zcy;"],
      [0, "&Icy;"],
      [0, "&Jcy;"],
      [0, "&Kcy;"],
      [0, "&Lcy;"],
      [0, "&Mcy;"],
      [0, "&Ncy;"],
      [0, "&Ocy;"],
      [0, "&Pcy;"],
      [0, "&Rcy;"],
      [0, "&Scy;"],
      [0, "&Tcy;"],
      [0, "&Ucy;"],
      [0, "&Fcy;"],
      [0, "&KHcy;"],
      [0, "&TScy;"],
      [0, "&CHcy;"],
      [0, "&SHcy;"],
      [0, "&SHCHcy;"],
      [0, "&HARDcy;"],
      [0, "&Ycy;"],
      [0, "&SOFTcy;"],
      [0, "&Ecy;"],
      [0, "&YUcy;"],
      [0, "&YAcy;"],
      [0, "&acy;"],
      [0, "&bcy;"],
      [0, "&vcy;"],
      [0, "&gcy;"],
      [0, "&dcy;"],
      [0, "&iecy;"],
      [0, "&zhcy;"],
      [0, "&zcy;"],
      [0, "&icy;"],
      [0, "&jcy;"],
      [0, "&kcy;"],
      [0, "&lcy;"],
      [0, "&mcy;"],
      [0, "&ncy;"],
      [0, "&ocy;"],
      [0, "&pcy;"],
      [0, "&rcy;"],
      [0, "&scy;"],
      [0, "&tcy;"],
      [0, "&ucy;"],
      [0, "&fcy;"],
      [0, "&khcy;"],
      [0, "&tscy;"],
      [0, "&chcy;"],
      [0, "&shcy;"],
      [0, "&shchcy;"],
      [0, "&hardcy;"],
      [0, "&ycy;"],
      [0, "&softcy;"],
      [0, "&ecy;"],
      [0, "&yucy;"],
      [0, "&yacy;"],
      [1, "&iocy;"],
      [0, "&djcy;"],
      [0, "&gjcy;"],
      [0, "&jukcy;"],
      [0, "&dscy;"],
      [0, "&iukcy;"],
      [0, "&yicy;"],
      [0, "&jsercy;"],
      [0, "&ljcy;"],
      [0, "&njcy;"],
      [0, "&tshcy;"],
      [0, "&kjcy;"],
      [1, "&ubrcy;"],
      [0, "&dzcy;"],
      [7074, "&ensp;"],
      [0, "&emsp;"],
      [0, "&emsp13;"],
      [0, "&emsp14;"],
      [1, "&numsp;"],
      [0, "&puncsp;"],
      [0, "&ThinSpace;"],
      [0, "&hairsp;"],
      [0, "&NegativeMediumSpace;"],
      [0, "&zwnj;"],
      [0, "&zwj;"],
      [0, "&lrm;"],
      [0, "&rlm;"],
      [0, "&dash;"],
      [2, "&ndash;"],
      [0, "&mdash;"],
      [0, "&horbar;"],
      [0, "&Verbar;"],
      [1, "&lsquo;"],
      [0, "&CloseCurlyQuote;"],
      [0, "&lsquor;"],
      [1, "&ldquo;"],
      [0, "&CloseCurlyDoubleQuote;"],
      [0, "&bdquo;"],
      [1, "&dagger;"],
      [0, "&Dagger;"],
      [0, "&bull;"],
      [2, "&nldr;"],
      [0, "&hellip;"],
      [9, "&permil;"],
      [0, "&pertenk;"],
      [0, "&prime;"],
      [0, "&Prime;"],
      [0, "&tprime;"],
      [0, "&backprime;"],
      [3, "&lsaquo;"],
      [0, "&rsaquo;"],
      [3, "&oline;"],
      [2, "&caret;"],
      [1, "&hybull;"],
      [0, "&frasl;"],
      [10, "&bsemi;"],
      [7, "&qprime;"],
      [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }],
      [0, "&NoBreak;"],
      [0, "&af;"],
      [0, "&InvisibleTimes;"],
      [0, "&ic;"],
      [72, "&euro;"],
      [46, "&tdot;"],
      [0, "&DotDot;"],
      [37, "&complexes;"],
      [2, "&incare;"],
      [4, "&gscr;"],
      [0, "&hamilt;"],
      [0, "&Hfr;"],
      [0, "&Hopf;"],
      [0, "&planckh;"],
      [0, "&hbar;"],
      [0, "&imagline;"],
      [0, "&Ifr;"],
      [0, "&lagran;"],
      [0, "&ell;"],
      [1, "&naturals;"],
      [0, "&numero;"],
      [0, "&copysr;"],
      [0, "&weierp;"],
      [0, "&Popf;"],
      [0, "&Qopf;"],
      [0, "&realine;"],
      [0, "&real;"],
      [0, "&reals;"],
      [0, "&rx;"],
      [3, "&trade;"],
      [1, "&integers;"],
      [2, "&mho;"],
      [0, "&zeetrf;"],
      [0, "&iiota;"],
      [2, "&bernou;"],
      [0, "&Cayleys;"],
      [1, "&escr;"],
      [0, "&Escr;"],
      [0, "&Fouriertrf;"],
      [1, "&Mellintrf;"],
      [0, "&order;"],
      [0, "&alefsym;"],
      [0, "&beth;"],
      [0, "&gimel;"],
      [0, "&daleth;"],
      [12, "&CapitalDifferentialD;"],
      [0, "&dd;"],
      [0, "&ee;"],
      [0, "&ii;"],
      [10, "&frac13;"],
      [0, "&frac23;"],
      [0, "&frac15;"],
      [0, "&frac25;"],
      [0, "&frac35;"],
      [0, "&frac45;"],
      [0, "&frac16;"],
      [0, "&frac56;"],
      [0, "&frac18;"],
      [0, "&frac38;"],
      [0, "&frac58;"],
      [0, "&frac78;"],
      [49, "&larr;"],
      [0, "&ShortUpArrow;"],
      [0, "&rarr;"],
      [0, "&darr;"],
      [0, "&harr;"],
      [0, "&updownarrow;"],
      [0, "&nwarr;"],
      [0, "&nearr;"],
      [0, "&LowerRightArrow;"],
      [0, "&LowerLeftArrow;"],
      [0, "&nlarr;"],
      [0, "&nrarr;"],
      [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }],
      [0, "&Larr;"],
      [0, "&Uarr;"],
      [0, "&Rarr;"],
      [0, "&Darr;"],
      [0, "&larrtl;"],
      [0, "&rarrtl;"],
      [0, "&LeftTeeArrow;"],
      [0, "&mapstoup;"],
      [0, "&map;"],
      [0, "&DownTeeArrow;"],
      [1, "&hookleftarrow;"],
      [0, "&hookrightarrow;"],
      [0, "&larrlp;"],
      [0, "&looparrowright;"],
      [0, "&harrw;"],
      [0, "&nharr;"],
      [1, "&lsh;"],
      [0, "&rsh;"],
      [0, "&ldsh;"],
      [0, "&rdsh;"],
      [1, "&crarr;"],
      [0, "&cularr;"],
      [0, "&curarr;"],
      [2, "&circlearrowleft;"],
      [0, "&circlearrowright;"],
      [0, "&leftharpoonup;"],
      [0, "&DownLeftVector;"],
      [0, "&RightUpVector;"],
      [0, "&LeftUpVector;"],
      [0, "&rharu;"],
      [0, "&DownRightVector;"],
      [0, "&dharr;"],
      [0, "&dharl;"],
      [0, "&RightArrowLeftArrow;"],
      [0, "&udarr;"],
      [0, "&LeftArrowRightArrow;"],
      [0, "&leftleftarrows;"],
      [0, "&upuparrows;"],
      [0, "&rightrightarrows;"],
      [0, "&ddarr;"],
      [0, "&leftrightharpoons;"],
      [0, "&Equilibrium;"],
      [0, "&nlArr;"],
      [0, "&nhArr;"],
      [0, "&nrArr;"],
      [0, "&DoubleLeftArrow;"],
      [0, "&DoubleUpArrow;"],
      [0, "&DoubleRightArrow;"],
      [0, "&dArr;"],
      [0, "&DoubleLeftRightArrow;"],
      [0, "&DoubleUpDownArrow;"],
      [0, "&nwArr;"],
      [0, "&neArr;"],
      [0, "&seArr;"],
      [0, "&swArr;"],
      [0, "&lAarr;"],
      [0, "&rAarr;"],
      [1, "&zigrarr;"],
      [6, "&larrb;"],
      [0, "&rarrb;"],
      [15, "&DownArrowUpArrow;"],
      [7, "&loarr;"],
      [0, "&roarr;"],
      [0, "&hoarr;"],
      [0, "&forall;"],
      [0, "&comp;"],
      [0, { v: "&part;", n: 824, o: "&npart;" }],
      [0, "&exist;"],
      [0, "&nexist;"],
      [0, "&empty;"],
      [1, "&Del;"],
      [0, "&Element;"],
      [0, "&NotElement;"],
      [1, "&ni;"],
      [0, "&notni;"],
      [2, "&prod;"],
      [0, "&coprod;"],
      [0, "&sum;"],
      [0, "&minus;"],
      [0, "&MinusPlus;"],
      [0, "&dotplus;"],
      [1, "&Backslash;"],
      [0, "&lowast;"],
      [0, "&compfn;"],
      [1, "&radic;"],
      [2, "&prop;"],
      [0, "&infin;"],
      [0, "&angrt;"],
      [0, { v: "&ang;", n: 8402, o: "&nang;" }],
      [0, "&angmsd;"],
      [0, "&angsph;"],
      [0, "&mid;"],
      [0, "&nmid;"],
      [0, "&DoubleVerticalBar;"],
      [0, "&NotDoubleVerticalBar;"],
      [0, "&and;"],
      [0, "&or;"],
      [0, { v: "&cap;", n: 65024, o: "&caps;" }],
      [0, { v: "&cup;", n: 65024, o: "&cups;" }],
      [0, "&int;"],
      [0, "&Int;"],
      [0, "&iiint;"],
      [0, "&conint;"],
      [0, "&Conint;"],
      [0, "&Cconint;"],
      [0, "&cwint;"],
      [0, "&ClockwiseContourIntegral;"],
      [0, "&awconint;"],
      [0, "&there4;"],
      [0, "&becaus;"],
      [0, "&ratio;"],
      [0, "&Colon;"],
      [0, "&dotminus;"],
      [1, "&mDDot;"],
      [0, "&homtht;"],
      [0, { v: "&sim;", n: 8402, o: "&nvsim;" }],
      [0, { v: "&backsim;", n: 817, o: "&race;" }],
      [0, { v: "&ac;", n: 819, o: "&acE;" }],
      [0, "&acd;"],
      [0, "&VerticalTilde;"],
      [0, "&NotTilde;"],
      [0, { v: "&eqsim;", n: 824, o: "&nesim;" }],
      [0, "&sime;"],
      [0, "&NotTildeEqual;"],
      [0, "&cong;"],
      [0, "&simne;"],
      [0, "&ncong;"],
      [0, "&ap;"],
      [0, "&nap;"],
      [0, "&ape;"],
      [0, { v: "&apid;", n: 824, o: "&napid;" }],
      [0, "&backcong;"],
      [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }],
      [0, { v: "&bump;", n: 824, o: "&nbump;" }],
      [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }],
      [0, { v: "&doteq;", n: 824, o: "&nedot;" }],
      [0, "&doteqdot;"],
      [0, "&efDot;"],
      [0, "&erDot;"],
      [0, "&Assign;"],
      [0, "&ecolon;"],
      [0, "&ecir;"],
      [0, "&circeq;"],
      [1, "&wedgeq;"],
      [0, "&veeeq;"],
      [1, "&triangleq;"],
      [2, "&equest;"],
      [0, "&ne;"],
      [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }],
      [0, "&nequiv;"],
      [1, { v: "&le;", n: 8402, o: "&nvle;" }],
      [0, { v: "&ge;", n: 8402, o: "&nvge;" }],
      [0, { v: "&lE;", n: 824, o: "&nlE;" }],
      [0, { v: "&gE;", n: 824, o: "&ngE;" }],
      [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }],
      [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }],
      [
        0,
        {
          v: "&ll;",
          n: new Map(
            Od([
              [824, "&nLtv;"],
              [7577, "&nLt;"],
            ]),
          ),
        },
      ],
      [
        0,
        {
          v: "&gg;",
          n: new Map(
            Od([
              [824, "&nGtv;"],
              [7577, "&nGt;"],
            ]),
          ),
        },
      ],
      [0, "&between;"],
      [0, "&NotCupCap;"],
      [0, "&nless;"],
      [0, "&ngt;"],
      [0, "&nle;"],
      [0, "&nge;"],
      [0, "&lesssim;"],
      [0, "&GreaterTilde;"],
      [0, "&nlsim;"],
      [0, "&ngsim;"],
      [0, "&LessGreater;"],
      [0, "&gl;"],
      [0, "&NotLessGreater;"],
      [0, "&NotGreaterLess;"],
      [0, "&pr;"],
      [0, "&sc;"],
      [0, "&prcue;"],
      [0, "&sccue;"],
      [0, "&PrecedesTilde;"],
      [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }],
      [0, "&NotPrecedes;"],
      [0, "&NotSucceeds;"],
      [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }],
      [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }],
      [0, "&nsub;"],
      [0, "&nsup;"],
      [0, "&sube;"],
      [0, "&supe;"],
      [0, "&NotSubsetEqual;"],
      [0, "&NotSupersetEqual;"],
      [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }],
      [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }],
      [1, "&cupdot;"],
      [0, "&UnionPlus;"],
      [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }],
      [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }],
      [0, "&sqsube;"],
      [0, "&sqsupe;"],
      [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }],
      [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }],
      [0, "&CirclePlus;"],
      [0, "&CircleMinus;"],
      [0, "&CircleTimes;"],
      [0, "&osol;"],
      [0, "&CircleDot;"],
      [0, "&circledcirc;"],
      [0, "&circledast;"],
      [1, "&circleddash;"],
      [0, "&boxplus;"],
      [0, "&boxminus;"],
      [0, "&boxtimes;"],
      [0, "&dotsquare;"],
      [0, "&RightTee;"],
      [0, "&dashv;"],
      [0, "&DownTee;"],
      [0, "&bot;"],
      [1, "&models;"],
      [0, "&DoubleRightTee;"],
      [0, "&Vdash;"],
      [0, "&Vvdash;"],
      [0, "&VDash;"],
      [0, "&nvdash;"],
      [0, "&nvDash;"],
      [0, "&nVdash;"],
      [0, "&nVDash;"],
      [0, "&prurel;"],
      [1, "&LeftTriangle;"],
      [0, "&RightTriangle;"],
      [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }],
      [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }],
      [0, "&origof;"],
      [0, "&imof;"],
      [0, "&multimap;"],
      [0, "&hercon;"],
      [0, "&intcal;"],
      [0, "&veebar;"],
      [1, "&barvee;"],
      [0, "&angrtvb;"],
      [0, "&lrtri;"],
      [0, "&bigwedge;"],
      [0, "&bigvee;"],
      [0, "&bigcap;"],
      [0, "&bigcup;"],
      [0, "&diam;"],
      [0, "&sdot;"],
      [0, "&sstarf;"],
      [0, "&divideontimes;"],
      [0, "&bowtie;"],
      [0, "&ltimes;"],
      [0, "&rtimes;"],
      [0, "&leftthreetimes;"],
      [0, "&rightthreetimes;"],
      [0, "&backsimeq;"],
      [0, "&curlyvee;"],
      [0, "&curlywedge;"],
      [0, "&Sub;"],
      [0, "&Sup;"],
      [0, "&Cap;"],
      [0, "&Cup;"],
      [0, "&fork;"],
      [0, "&epar;"],
      [0, "&lessdot;"],
      [0, "&gtdot;"],
      [0, { v: "&Ll;", n: 824, o: "&nLl;" }],
      [0, { v: "&Gg;", n: 824, o: "&nGg;" }],
      [0, { v: "&leg;", n: 65024, o: "&lesg;" }],
      [0, { v: "&gel;", n: 65024, o: "&gesl;" }],
      [2, "&cuepr;"],
      [0, "&cuesc;"],
      [0, "&NotPrecedesSlantEqual;"],
      [0, "&NotSucceedsSlantEqual;"],
      [0, "&NotSquareSubsetEqual;"],
      [0, "&NotSquareSupersetEqual;"],
      [2, "&lnsim;"],
      [0, "&gnsim;"],
      [0, "&precnsim;"],
      [0, "&scnsim;"],
      [0, "&nltri;"],
      [0, "&NotRightTriangle;"],
      [0, "&nltrie;"],
      [0, "&NotRightTriangleEqual;"],
      [0, "&vellip;"],
      [0, "&ctdot;"],
      [0, "&utdot;"],
      [0, "&dtdot;"],
      [0, "&disin;"],
      [0, "&isinsv;"],
      [0, "&isins;"],
      [0, { v: "&isindot;", n: 824, o: "&notindot;" }],
      [0, "&notinvc;"],
      [0, "&notinvb;"],
      [1, { v: "&isinE;", n: 824, o: "&notinE;" }],
      [0, "&nisd;"],
      [0, "&xnis;"],
      [0, "&nis;"],
      [0, "&notnivc;"],
      [0, "&notnivb;"],
      [6, "&barwed;"],
      [0, "&Barwed;"],
      [1, "&lceil;"],
      [0, "&rceil;"],
      [0, "&LeftFloor;"],
      [0, "&rfloor;"],
      [0, "&drcrop;"],
      [0, "&dlcrop;"],
      [0, "&urcrop;"],
      [0, "&ulcrop;"],
      [0, "&bnot;"],
      [1, "&profline;"],
      [0, "&profsurf;"],
      [1, "&telrec;"],
      [0, "&target;"],
      [5, "&ulcorn;"],
      [0, "&urcorn;"],
      [0, "&dlcorn;"],
      [0, "&drcorn;"],
      [2, "&frown;"],
      [0, "&smile;"],
      [9, "&cylcty;"],
      [0, "&profalar;"],
      [7, "&topbot;"],
      [6, "&ovbar;"],
      [1, "&solbar;"],
      [60, "&angzarr;"],
      [51, "&lmoustache;"],
      [0, "&rmoustache;"],
      [2, "&OverBracket;"],
      [0, "&bbrk;"],
      [0, "&bbrktbrk;"],
      [37, "&OverParenthesis;"],
      [0, "&UnderParenthesis;"],
      [0, "&OverBrace;"],
      [0, "&UnderBrace;"],
      [2, "&trpezium;"],
      [4, "&elinters;"],
      [59, "&blank;"],
      [164, "&circledS;"],
      [55, "&boxh;"],
      [1, "&boxv;"],
      [9, "&boxdr;"],
      [3, "&boxdl;"],
      [3, "&boxur;"],
      [3, "&boxul;"],
      [3, "&boxvr;"],
      [7, "&boxvl;"],
      [7, "&boxhd;"],
      [7, "&boxhu;"],
      [7, "&boxvh;"],
      [19, "&boxH;"],
      [0, "&boxV;"],
      [0, "&boxdR;"],
      [0, "&boxDr;"],
      [0, "&boxDR;"],
      [0, "&boxdL;"],
      [0, "&boxDl;"],
      [0, "&boxDL;"],
      [0, "&boxuR;"],
      [0, "&boxUr;"],
      [0, "&boxUR;"],
      [0, "&boxuL;"],
      [0, "&boxUl;"],
      [0, "&boxUL;"],
      [0, "&boxvR;"],
      [0, "&boxVr;"],
      [0, "&boxVR;"],
      [0, "&boxvL;"],
      [0, "&boxVl;"],
      [0, "&boxVL;"],
      [0, "&boxHd;"],
      [0, "&boxhD;"],
      [0, "&boxHD;"],
      [0, "&boxHu;"],
      [0, "&boxhU;"],
      [0, "&boxHU;"],
      [0, "&boxvH;"],
      [0, "&boxVh;"],
      [0, "&boxVH;"],
      [19, "&uhblk;"],
      [3, "&lhblk;"],
      [3, "&block;"],
      [8, "&blk14;"],
      [0, "&blk12;"],
      [0, "&blk34;"],
      [13, "&square;"],
      [8, "&blacksquare;"],
      [0, "&EmptyVerySmallSquare;"],
      [1, "&rect;"],
      [0, "&marker;"],
      [2, "&fltns;"],
      [1, "&bigtriangleup;"],
      [0, "&blacktriangle;"],
      [0, "&triangle;"],
      [2, "&blacktriangleright;"],
      [0, "&rtri;"],
      [3, "&bigtriangledown;"],
      [0, "&blacktriangledown;"],
      [0, "&dtri;"],
      [2, "&blacktriangleleft;"],
      [0, "&ltri;"],
      [6, "&loz;"],
      [0, "&cir;"],
      [32, "&tridot;"],
      [2, "&bigcirc;"],
      [8, "&ultri;"],
      [0, "&urtri;"],
      [0, "&lltri;"],
      [0, "&EmptySmallSquare;"],
      [0, "&FilledSmallSquare;"],
      [8, "&bigstar;"],
      [0, "&star;"],
      [7, "&phone;"],
      [49, "&female;"],
      [1, "&male;"],
      [29, "&spades;"],
      [2, "&clubs;"],
      [1, "&hearts;"],
      [0, "&diamondsuit;"],
      [3, "&sung;"],
      [2, "&flat;"],
      [0, "&natural;"],
      [0, "&sharp;"],
      [163, "&check;"],
      [3, "&cross;"],
      [8, "&malt;"],
      [21, "&sext;"],
      [33, "&VerticalSeparator;"],
      [25, "&lbbrk;"],
      [0, "&rbbrk;"],
      [84, "&bsolhsub;"],
      [0, "&suphsol;"],
      [28, "&LeftDoubleBracket;"],
      [0, "&RightDoubleBracket;"],
      [0, "&lang;"],
      [0, "&rang;"],
      [0, "&Lang;"],
      [0, "&Rang;"],
      [0, "&loang;"],
      [0, "&roang;"],
      [7, "&longleftarrow;"],
      [0, "&longrightarrow;"],
      [0, "&longleftrightarrow;"],
      [0, "&DoubleLongLeftArrow;"],
      [0, "&DoubleLongRightArrow;"],
      [0, "&DoubleLongLeftRightArrow;"],
      [1, "&longmapsto;"],
      [2, "&dzigrarr;"],
      [258, "&nvlArr;"],
      [0, "&nvrArr;"],
      [0, "&nvHarr;"],
      [0, "&Map;"],
      [6, "&lbarr;"],
      [0, "&bkarow;"],
      [0, "&lBarr;"],
      [0, "&dbkarow;"],
      [0, "&drbkarow;"],
      [0, "&DDotrahd;"],
      [0, "&UpArrowBar;"],
      [0, "&DownArrowBar;"],
      [2, "&Rarrtl;"],
      [2, "&latail;"],
      [0, "&ratail;"],
      [0, "&lAtail;"],
      [0, "&rAtail;"],
      [0, "&larrfs;"],
      [0, "&rarrfs;"],
      [0, "&larrbfs;"],
      [0, "&rarrbfs;"],
      [2, "&nwarhk;"],
      [0, "&nearhk;"],
      [0, "&hksearow;"],
      [0, "&hkswarow;"],
      [0, "&nwnear;"],
      [0, "&nesear;"],
      [0, "&seswar;"],
      [0, "&swnwar;"],
      [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }],
      [1, "&cudarrr;"],
      [0, "&ldca;"],
      [0, "&rdca;"],
      [0, "&cudarrl;"],
      [0, "&larrpl;"],
      [2, "&curarrm;"],
      [0, "&cularrp;"],
      [7, "&rarrpl;"],
      [2, "&harrcir;"],
      [0, "&Uarrocir;"],
      [0, "&lurdshar;"],
      [0, "&ldrushar;"],
      [2, "&LeftRightVector;"],
      [0, "&RightUpDownVector;"],
      [0, "&DownLeftRightVector;"],
      [0, "&LeftUpDownVector;"],
      [0, "&LeftVectorBar;"],
      [0, "&RightVectorBar;"],
      [0, "&RightUpVectorBar;"],
      [0, "&RightDownVectorBar;"],
      [0, "&DownLeftVectorBar;"],
      [0, "&DownRightVectorBar;"],
      [0, "&LeftUpVectorBar;"],
      [0, "&LeftDownVectorBar;"],
      [0, "&LeftTeeVector;"],
      [0, "&RightTeeVector;"],
      [0, "&RightUpTeeVector;"],
      [0, "&RightDownTeeVector;"],
      [0, "&DownLeftTeeVector;"],
      [0, "&DownRightTeeVector;"],
      [0, "&LeftUpTeeVector;"],
      [0, "&LeftDownTeeVector;"],
      [0, "&lHar;"],
      [0, "&uHar;"],
      [0, "&rHar;"],
      [0, "&dHar;"],
      [0, "&luruhar;"],
      [0, "&ldrdhar;"],
      [0, "&ruluhar;"],
      [0, "&rdldhar;"],
      [0, "&lharul;"],
      [0, "&llhard;"],
      [0, "&rharul;"],
      [0, "&lrhard;"],
      [0, "&udhar;"],
      [0, "&duhar;"],
      [0, "&RoundImplies;"],
      [0, "&erarr;"],
      [0, "&simrarr;"],
      [0, "&larrsim;"],
      [0, "&rarrsim;"],
      [0, "&rarrap;"],
      [0, "&ltlarr;"],
      [1, "&gtrarr;"],
      [0, "&subrarr;"],
      [1, "&suplarr;"],
      [0, "&lfisht;"],
      [0, "&rfisht;"],
      [0, "&ufisht;"],
      [0, "&dfisht;"],
      [5, "&lopar;"],
      [0, "&ropar;"],
      [4, "&lbrke;"],
      [0, "&rbrke;"],
      [0, "&lbrkslu;"],
      [0, "&rbrksld;"],
      [0, "&lbrksld;"],
      [0, "&rbrkslu;"],
      [0, "&langd;"],
      [0, "&rangd;"],
      [0, "&lparlt;"],
      [0, "&rpargt;"],
      [0, "&gtlPar;"],
      [0, "&ltrPar;"],
      [3, "&vzigzag;"],
      [1, "&vangrt;"],
      [0, "&angrtvbd;"],
      [6, "&ange;"],
      [0, "&range;"],
      [0, "&dwangle;"],
      [0, "&uwangle;"],
      [0, "&angmsdaa;"],
      [0, "&angmsdab;"],
      [0, "&angmsdac;"],
      [0, "&angmsdad;"],
      [0, "&angmsdae;"],
      [0, "&angmsdaf;"],
      [0, "&angmsdag;"],
      [0, "&angmsdah;"],
      [0, "&bemptyv;"],
      [0, "&demptyv;"],
      [0, "&cemptyv;"],
      [0, "&raemptyv;"],
      [0, "&laemptyv;"],
      [0, "&ohbar;"],
      [0, "&omid;"],
      [0, "&opar;"],
      [1, "&operp;"],
      [1, "&olcross;"],
      [0, "&odsold;"],
      [1, "&olcir;"],
      [0, "&ofcir;"],
      [0, "&olt;"],
      [0, "&ogt;"],
      [0, "&cirscir;"],
      [0, "&cirE;"],
      [0, "&solb;"],
      [0, "&bsolb;"],
      [3, "&boxbox;"],
      [3, "&trisb;"],
      [0, "&rtriltri;"],
      [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }],
      [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }],
      [11, "&iinfin;"],
      [0, "&infintie;"],
      [0, "&nvinfin;"],
      [4, "&eparsl;"],
      [0, "&smeparsl;"],
      [0, "&eqvparsl;"],
      [5, "&blacklozenge;"],
      [8, "&RuleDelayed;"],
      [1, "&dsol;"],
      [9, "&bigodot;"],
      [0, "&bigoplus;"],
      [0, "&bigotimes;"],
      [1, "&biguplus;"],
      [1, "&bigsqcup;"],
      [5, "&iiiint;"],
      [0, "&fpartint;"],
      [2, "&cirfnint;"],
      [0, "&awint;"],
      [0, "&rppolint;"],
      [0, "&scpolint;"],
      [0, "&npolint;"],
      [0, "&pointint;"],
      [0, "&quatint;"],
      [0, "&intlarhk;"],
      [10, "&pluscir;"],
      [0, "&plusacir;"],
      [0, "&simplus;"],
      [0, "&plusdu;"],
      [0, "&plussim;"],
      [0, "&plustwo;"],
      [1, "&mcomma;"],
      [0, "&minusdu;"],
      [2, "&loplus;"],
      [0, "&roplus;"],
      [0, "&Cross;"],
      [0, "&timesd;"],
      [0, "&timesbar;"],
      [1, "&smashp;"],
      [0, "&lotimes;"],
      [0, "&rotimes;"],
      [0, "&otimesas;"],
      [0, "&Otimes;"],
      [0, "&odiv;"],
      [0, "&triplus;"],
      [0, "&triminus;"],
      [0, "&tritime;"],
      [0, "&intprod;"],
      [2, "&amalg;"],
      [0, "&capdot;"],
      [1, "&ncup;"],
      [0, "&ncap;"],
      [0, "&capand;"],
      [0, "&cupor;"],
      [0, "&cupcap;"],
      [0, "&capcup;"],
      [0, "&cupbrcap;"],
      [0, "&capbrcup;"],
      [0, "&cupcup;"],
      [0, "&capcap;"],
      [0, "&ccups;"],
      [0, "&ccaps;"],
      [2, "&ccupssm;"],
      [2, "&And;"],
      [0, "&Or;"],
      [0, "&andand;"],
      [0, "&oror;"],
      [0, "&orslope;"],
      [0, "&andslope;"],
      [1, "&andv;"],
      [0, "&orv;"],
      [0, "&andd;"],
      [0, "&ord;"],
      [1, "&wedbar;"],
      [6, "&sdote;"],
      [3, "&simdot;"],
      [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }],
      [0, "&easter;"],
      [0, "&apacir;"],
      [0, { v: "&apE;", n: 824, o: "&napE;" }],
      [0, "&eplus;"],
      [0, "&pluse;"],
      [0, "&Esim;"],
      [0, "&Colone;"],
      [0, "&Equal;"],
      [1, "&ddotseq;"],
      [0, "&equivDD;"],
      [0, "&ltcir;"],
      [0, "&gtcir;"],
      [0, "&ltquest;"],
      [0, "&gtquest;"],
      [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }],
      [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }],
      [0, "&lesdot;"],
      [0, "&gesdot;"],
      [0, "&lesdoto;"],
      [0, "&gesdoto;"],
      [0, "&lesdotor;"],
      [0, "&gesdotol;"],
      [0, "&lap;"],
      [0, "&gap;"],
      [0, "&lne;"],
      [0, "&gne;"],
      [0, "&lnap;"],
      [0, "&gnap;"],
      [0, "&lEg;"],
      [0, "&gEl;"],
      [0, "&lsime;"],
      [0, "&gsime;"],
      [0, "&lsimg;"],
      [0, "&gsiml;"],
      [0, "&lgE;"],
      [0, "&glE;"],
      [0, "&lesges;"],
      [0, "&gesles;"],
      [0, "&els;"],
      [0, "&egs;"],
      [0, "&elsdot;"],
      [0, "&egsdot;"],
      [0, "&el;"],
      [0, "&eg;"],
      [2, "&siml;"],
      [0, "&simg;"],
      [0, "&simlE;"],
      [0, "&simgE;"],
      [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }],
      [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }],
      [1, "&glj;"],
      [0, "&gla;"],
      [0, "&ltcc;"],
      [0, "&gtcc;"],
      [0, "&lescc;"],
      [0, "&gescc;"],
      [0, "&smt;"],
      [0, "&lat;"],
      [0, { v: "&smte;", n: 65024, o: "&smtes;" }],
      [0, { v: "&late;", n: 65024, o: "&lates;" }],
      [0, "&bumpE;"],
      [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }],
      [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }],
      [2, "&prE;"],
      [0, "&scE;"],
      [0, "&precneqq;"],
      [0, "&scnE;"],
      [0, "&prap;"],
      [0, "&scap;"],
      [0, "&precnapprox;"],
      [0, "&scnap;"],
      [0, "&Pr;"],
      [0, "&Sc;"],
      [0, "&subdot;"],
      [0, "&supdot;"],
      [0, "&subplus;"],
      [0, "&supplus;"],
      [0, "&submult;"],
      [0, "&supmult;"],
      [0, "&subedot;"],
      [0, "&supedot;"],
      [0, { v: "&subE;", n: 824, o: "&nsubE;" }],
      [0, { v: "&supE;", n: 824, o: "&nsupE;" }],
      [0, "&subsim;"],
      [0, "&supsim;"],
      [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }],
      [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }],
      [2, "&csub;"],
      [0, "&csup;"],
      [0, "&csube;"],
      [0, "&csupe;"],
      [0, "&subsup;"],
      [0, "&supsub;"],
      [0, "&subsub;"],
      [0, "&supsup;"],
      [0, "&suphsub;"],
      [0, "&supdsub;"],
      [0, "&forkv;"],
      [0, "&topfork;"],
      [0, "&mlcp;"],
      [8, "&Dashv;"],
      [1, "&Vdashl;"],
      [0, "&Barv;"],
      [0, "&vBar;"],
      [0, "&vBarv;"],
      [1, "&Vbar;"],
      [0, "&Not;"],
      [0, "&bNot;"],
      [0, "&rnmid;"],
      [0, "&cirmid;"],
      [0, "&midcir;"],
      [0, "&topcir;"],
      [0, "&nhpar;"],
      [0, "&parsim;"],
      [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }],
      [
        44343,
        {
          n: new Map(
            Od([
              [56476, "&Ascr;"],
              [1, "&Cscr;"],
              [0, "&Dscr;"],
              [2, "&Gscr;"],
              [2, "&Jscr;"],
              [0, "&Kscr;"],
              [2, "&Nscr;"],
              [0, "&Oscr;"],
              [0, "&Pscr;"],
              [0, "&Qscr;"],
              [1, "&Sscr;"],
              [0, "&Tscr;"],
              [0, "&Uscr;"],
              [0, "&Vscr;"],
              [0, "&Wscr;"],
              [0, "&Xscr;"],
              [0, "&Yscr;"],
              [0, "&Zscr;"],
              [0, "&ascr;"],
              [0, "&bscr;"],
              [0, "&cscr;"],
              [0, "&dscr;"],
              [1, "&fscr;"],
              [1, "&hscr;"],
              [0, "&iscr;"],
              [0, "&jscr;"],
              [0, "&kscr;"],
              [0, "&lscr;"],
              [0, "&mscr;"],
              [0, "&nscr;"],
              [1, "&pscr;"],
              [0, "&qscr;"],
              [0, "&rscr;"],
              [0, "&sscr;"],
              [0, "&tscr;"],
              [0, "&uscr;"],
              [0, "&vscr;"],
              [0, "&wscr;"],
              [0, "&xscr;"],
              [0, "&yscr;"],
              [0, "&zscr;"],
              [52, "&Afr;"],
              [0, "&Bfr;"],
              [1, "&Dfr;"],
              [0, "&Efr;"],
              [0, "&Ffr;"],
              [0, "&Gfr;"],
              [2, "&Jfr;"],
              [0, "&Kfr;"],
              [0, "&Lfr;"],
              [0, "&Mfr;"],
              [0, "&Nfr;"],
              [0, "&Ofr;"],
              [0, "&Pfr;"],
              [0, "&Qfr;"],
              [1, "&Sfr;"],
              [0, "&Tfr;"],
              [0, "&Ufr;"],
              [0, "&Vfr;"],
              [0, "&Wfr;"],
              [0, "&Xfr;"],
              [0, "&Yfr;"],
              [1, "&afr;"],
              [0, "&bfr;"],
              [0, "&cfr;"],
              [0, "&dfr;"],
              [0, "&efr;"],
              [0, "&ffr;"],
              [0, "&gfr;"],
              [0, "&hfr;"],
              [0, "&ifr;"],
              [0, "&jfr;"],
              [0, "&kfr;"],
              [0, "&lfr;"],
              [0, "&mfr;"],
              [0, "&nfr;"],
              [0, "&ofr;"],
              [0, "&pfr;"],
              [0, "&qfr;"],
              [0, "&rfr;"],
              [0, "&sfr;"],
              [0, "&tfr;"],
              [0, "&ufr;"],
              [0, "&vfr;"],
              [0, "&wfr;"],
              [0, "&xfr;"],
              [0, "&yfr;"],
              [0, "&zfr;"],
              [0, "&Aopf;"],
              [0, "&Bopf;"],
              [1, "&Dopf;"],
              [0, "&Eopf;"],
              [0, "&Fopf;"],
              [0, "&Gopf;"],
              [1, "&Iopf;"],
              [0, "&Jopf;"],
              [0, "&Kopf;"],
              [0, "&Lopf;"],
              [0, "&Mopf;"],
              [1, "&Oopf;"],
              [3, "&Sopf;"],
              [0, "&Topf;"],
              [0, "&Uopf;"],
              [0, "&Vopf;"],
              [0, "&Wopf;"],
              [0, "&Xopf;"],
              [0, "&Yopf;"],
              [1, "&aopf;"],
              [0, "&bopf;"],
              [0, "&copf;"],
              [0, "&dopf;"],
              [0, "&eopf;"],
              [0, "&fopf;"],
              [0, "&gopf;"],
              [0, "&hopf;"],
              [0, "&iopf;"],
              [0, "&jopf;"],
              [0, "&kopf;"],
              [0, "&lopf;"],
              [0, "&mopf;"],
              [0, "&nopf;"],
              [0, "&oopf;"],
              [0, "&popf;"],
              [0, "&qopf;"],
              [0, "&ropf;"],
              [0, "&sopf;"],
              [0, "&topf;"],
              [0, "&uopf;"],
              [0, "&vopf;"],
              [0, "&wopf;"],
              [0, "&xopf;"],
              [0, "&yopf;"],
              [0, "&zopf;"],
            ]),
          ),
        },
      ],
      [8906, "&fflig;"],
      [0, "&filig;"],
      [0, "&fllig;"],
      [0, "&ffilig;"],
      [0, "&ffllig;"],
    ]),
  );
  var w$ = new Map([
      [34, "&quot;"],
      [38, "&amp;"],
      [39, "&apos;"],
      [60, "&lt;"],
      [62, "&gt;"],
    ]),
    v$ =
      String.prototype.codePointAt != null
        ? (e, t) => e.codePointAt(t)
        : (e, t) =>
            (e.charCodeAt(t) & 64512) === 55296
              ? (e.charCodeAt(t) - 55296) * 1024 +
                e.charCodeAt(t + 1) -
                56320 +
                65536
              : e.charCodeAt(t);
  function H6(e, t) {
    return function (r) {
      let i,
        o = 0,
        s = "";
      for (; (i = e.exec(r)); )
        (o !== i.index && (s += r.substring(o, i.index)),
          (s += t.get(i[0].charCodeAt(0))),
          (o = i.index + 1));
      return s + r.substring(o);
    };
  }
  var zM = H6(/[&<>'"]/g, w$),
    RM = H6(
      /["&\u00A0]/g,
      new Map([
        [34, "&quot;"],
        [38, "&amp;"],
        [160, "&nbsp;"],
      ]),
    ),
    PM = H6(
      /[&<>\u00A0]/g,
      new Map([
        [38, "&amp;"],
        [60, "&lt;"],
        [62, "&gt;"],
        [160, "&nbsp;"],
      ]),
    );
  var $M;
  (function (e) {
    ((e[(e.XML = 0)] = "XML"), (e[(e.HTML = 1)] = "HTML"));
  })($M || ($M = {}));
  var HM;
  (function (e) {
    ((e[(e.UTF8 = 0)] = "UTF8"),
      (e[(e.ASCII = 1)] = "ASCII"),
      (e[(e.Extensive = 2)] = "Extensive"),
      (e[(e.Attribute = 3)] = "Attribute"),
      (e[(e.Text = 4)] = "Text"));
  })(HM || (HM = {}));
  function S$(e) {
    return Object.prototype.toString.call(e);
  }
  function Bd(e) {
    return S$(e) === "[object String]";
  }
  var A$ = Object.prototype.hasOwnProperty;
  function M$(e, t) {
    return A$.call(e, t);
  }
  function Uu(e) {
    return (
      Array.prototype.slice.call(arguments, 1).forEach(function (n) {
        if (n) {
          if (typeof n != "object") throw new TypeError(n + "must be object");
          Object.keys(n).forEach(function (r) {
            e[r] = n[r];
          });
        }
      }),
      e
    );
  }
  function V6(e, t, n) {
    return [].concat(e.slice(0, t), n, e.slice(t + 1));
  }
  function zd(e) {
    return !(
      (e >= 55296 && e <= 57343) ||
      (e >= 64976 && e <= 65007) ||
      (e & 65535) === 65535 ||
      (e & 65535) === 65534 ||
      (e >= 0 && e <= 8) ||
      e === 11 ||
      (e >= 14 && e <= 31) ||
      (e >= 127 && e <= 159) ||
      e > 1114111
    );
  }
  function rc(e) {
    if (e > 65535) {
      e -= 65536;
      let t = 55296 + (e >> 10),
        n = 56320 + (e & 1023);
      return String.fromCharCode(t, n);
    }
    return String.fromCharCode(e);
  }
  var jM = /\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,
    T$ = /&([a-z#][a-z0-9]{1,31});/gi,
    E$ = new RegExp(jM.source + "|" + T$.source, "gi"),
    C$ = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;
  function N$(e, t) {
    if (t.charCodeAt(0) === 35 && C$.test(t)) {
      let r =
        t[1].toLowerCase() === "x"
          ? parseInt(t.slice(2), 16)
          : parseInt(t.slice(1), 10);
      return zd(r) ? rc(r) : e;
    }
    let n = i0(e);
    return n !== e ? n : e;
  }
  function D$(e) {
    return e.indexOf("\\") < 0 ? e : e.replace(jM, "$1");
  }
  function co(e) {
    return e.indexOf("\\") < 0 && e.indexOf("&") < 0
      ? e
      : e.replace(E$, function (t, n, r) {
          return n || N$(t, r);
        });
  }
  var I$ = /[&<>"]/,
    F$ = /[&<>"]/g,
    q$ = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;" };
  function L$(e) {
    return q$[e];
  }
  function fo(e) {
    return I$.test(e) ? e.replace(F$, L$) : e;
  }
  var O$ = /[.?*+^$[\]\\(){}|-]/g;
  function B$(e) {
    return e.replace(O$, "\\$&");
  }
  function Ve(e) {
    switch (e) {
      case 9:
      case 32:
        return !0;
    }
    return !1;
  }
  function Ss(e) {
    if (e >= 8192 && e <= 8202) return !0;
    switch (e) {
      case 9:
      case 10:
      case 11:
      case 12:
      case 13:
      case 32:
      case 160:
      case 5760:
      case 8239:
      case 8287:
      case 12288:
        return !0;
    }
    return !1;
  }
  function As(e) {
    return Hu.test(e) || Fd.test(e);
  }
  function Ms(e) {
    switch (e) {
      case 33:
      case 34:
      case 35:
      case 36:
      case 37:
      case 38:
      case 39:
      case 40:
      case 41:
      case 42:
      case 43:
      case 44:
      case 45:
      case 46:
      case 47:
      case 58:
      case 59:
      case 60:
      case 61:
      case 62:
      case 63:
      case 64:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 123:
      case 124:
      case 125:
      case 126:
        return !0;
      default:
        return !1;
    }
  }
  function Ts(e) {
    return (
      (e = e.trim().replace(/\s+/g, " ")),
      "\u1E9E".toLowerCase() === "\u1E7E" && (e = e.replace(/ẞ/g, "\xDF")),
      e.toLowerCase().toUpperCase()
    );
  }
  var z$ = { mdurl: Nd, ucmicro: B6 };
  var W6 = {};
  ca(W6, {
    parseLinkDestination: () => Y6,
    parseLinkLabel: () => G6,
    parseLinkTitle: () => X6,
  });
  function G6(e, t, n) {
    let r,
      i,
      o,
      s,
      u = e.posMax,
      a = e.pos;
    for (e.pos = t + 1, r = 1; e.pos < u; ) {
      if (((o = e.src.charCodeAt(e.pos)), o === 93 && (r--, r === 0))) {
        i = !0;
        break;
      }
      if (((s = e.pos), e.md.inline.skipToken(e), o === 91)) {
        if (s === e.pos - 1) r++;
        else if (n) return ((e.pos = a), -1);
      }
    }
    let l = -1;
    return (i && (l = e.pos), (e.pos = a), l);
  }
  function Y6(e, t, n) {
    let r,
      i = t,
      o = { ok: !1, pos: 0, str: "" };
    if (e.charCodeAt(i) === 60) {
      for (i++; i < n; ) {
        if (((r = e.charCodeAt(i)), r === 10 || r === 60)) return o;
        if (r === 62)
          return (
            (o.pos = i + 1),
            (o.str = co(e.slice(t + 1, i))),
            (o.ok = !0),
            o
          );
        if (r === 92 && i + 1 < n) {
          i += 2;
          continue;
        }
        i++;
      }
      return o;
    }
    let s = 0;
    for (
      ;
      i < n && ((r = e.charCodeAt(i)), !(r === 32 || r < 32 || r === 127));
    ) {
      if (r === 92 && i + 1 < n) {
        if (e.charCodeAt(i + 1) === 32) break;
        i += 2;
        continue;
      }
      if (r === 40 && (s++, s > 32)) return o;
      if (r === 41) {
        if (s === 0) break;
        s--;
      }
      i++;
    }
    return (
      t === i ||
        s !== 0 ||
        ((o.str = co(e.slice(t, i))), (o.pos = i), (o.ok = !0)),
      o
    );
  }
  function X6(e, t, n, r) {
    let i,
      o = t,
      s = { ok: !1, can_continue: !1, pos: 0, str: "", marker: 0 };
    if (r) ((s.str = r.str), (s.marker = r.marker));
    else {
      if (o >= n) return s;
      let u = e.charCodeAt(o);
      if (u !== 34 && u !== 39 && u !== 40) return s;
      (t++, o++, u === 40 && (u = 41), (s.marker = u));
    }
    for (; o < n; ) {
      if (((i = e.charCodeAt(o)), i === s.marker))
        return ((s.pos = o + 1), (s.str += co(e.slice(t, o))), (s.ok = !0), s);
      if (i === 40 && s.marker === 41) return s;
      (i === 92 && o + 1 < n && o++, o++);
    }
    return ((s.can_continue = !0), (s.str += co(e.slice(t, o))), s);
  }
  var _i = {};
  _i.code_inline = function (e, t, n, r, i) {
    let o = e[t];
    return "<code" + i.renderAttrs(o) + ">" + fo(o.content) + "</code>";
  };
  _i.code_block = function (e, t, n, r, i) {
    let o = e[t];
    return (
      "<pre" +
      i.renderAttrs(o) +
      "><code>" +
      fo(e[t].content) +
      `</code></pre>
`
    );
  };
  _i.fence = function (e, t, n, r, i) {
    let o = e[t],
      s = o.info ? co(o.info).trim() : "",
      u = "",
      a = "";
    if (s) {
      let h = s.split(/(\s+)/g);
      ((u = h[0]), (a = h.slice(2).join("")));
    }
    let l;
    if (
      (n.highlight
        ? (l = n.highlight(o.content, u, a) || fo(o.content))
        : (l = fo(o.content)),
      l.indexOf("<pre") === 0)
    )
      return (
        l +
        `
`
      );
    if (s) {
      let h = o.attrIndex("class"),
        m = o.attrs ? o.attrs.slice() : [];
      h < 0
        ? m.push(["class", n.langPrefix + u])
        : ((m[h] = m[h].slice()), (m[h][1] += " " + n.langPrefix + u));
      let p = { attrs: m };
      return `<pre><code${i.renderAttrs(p)}>${l}</code></pre>
`;
    }
    return `<pre><code${i.renderAttrs(o)}>${l}</code></pre>
`;
  };
  _i.image = function (e, t, n, r, i) {
    let o = e[t];
    return (
      (o.attrs[o.attrIndex("alt")][1] = i.renderInlineAsText(o.children, n, r)),
      i.renderToken(e, t, n)
    );
  };
  _i.hardbreak = function (e, t, n) {
    return n.xhtmlOut
      ? `<br />
`
      : `<br>
`;
  };
  _i.softbreak = function (e, t, n) {
    return n.breaks
      ? n.xhtmlOut
        ? `<br />
`
        : `<br>
`
      : `
`;
  };
  _i.text = function (e, t) {
    return fo(e[t].content);
  };
  _i.html_block = function (e, t) {
    return e[t].content;
  };
  _i.html_inline = function (e, t) {
    return e[t].content;
  };
  function Vu() {
    this.rules = Uu({}, _i);
  }
  Vu.prototype.renderAttrs = function (t) {
    let n, r, i;
    if (!t.attrs) return "";
    for (i = "", n = 0, r = t.attrs.length; n < r; n++)
      i += " " + fo(t.attrs[n][0]) + '="' + fo(t.attrs[n][1]) + '"';
    return i;
  };
  Vu.prototype.renderToken = function (t, n, r) {
    let i = t[n],
      o = "";
    if (i.hidden) return "";
    (i.block &&
      i.nesting !== -1 &&
      n &&
      t[n - 1].hidden &&
      (o += `
`),
      (o += (i.nesting === -1 ? "</" : "<") + i.tag),
      (o += this.renderAttrs(i)),
      i.nesting === 0 && r.xhtmlOut && (o += " /"));
    let s = !1;
    if (i.block && ((s = !0), i.nesting === 1 && n + 1 < t.length)) {
      let u = t[n + 1];
      (u.type === "inline" ||
        u.hidden ||
        (u.nesting === -1 && u.tag === i.tag)) &&
        (s = !1);
    }
    return (
      (o += s
        ? `>
`
        : ">"),
      o
    );
  };
  Vu.prototype.renderInline = function (e, t, n) {
    let r = "",
      i = this.rules;
    for (let o = 0, s = e.length; o < s; o++) {
      let u = e[o].type;
      typeof i[u] < "u"
        ? (r += i[u](e, o, t, n, this))
        : (r += this.renderToken(e, o, t));
    }
    return r;
  };
  Vu.prototype.renderInlineAsText = function (e, t, n) {
    let r = "";
    for (let i = 0, o = e.length; i < o; i++)
      switch (e[i].type) {
        case "text":
          r += e[i].content;
          break;
        case "image":
          r += this.renderInlineAsText(e[i].children, t, n);
          break;
        case "html_inline":
        case "html_block":
          r += e[i].content;
          break;
        case "softbreak":
        case "hardbreak":
          r += `
`;
          break;
        default:
      }
    return r;
  };
  Vu.prototype.render = function (e, t, n) {
    let r = "",
      i = this.rules;
    for (let o = 0, s = e.length; o < s; o++) {
      let u = e[o].type;
      u === "inline"
        ? (r += this.renderInline(e[o].children, t, n))
        : typeof i[u] < "u"
          ? (r += i[u](e, o, t, n, this))
          : (r += this.renderToken(e, o, t, n));
    }
    return r;
  };
  var GM = Vu;
  function zr() {
    ((this.__rules__ = []), (this.__cache__ = null));
  }
  zr.prototype.__find__ = function (e) {
    for (let t = 0; t < this.__rules__.length; t++)
      if (this.__rules__[t].name === e) return t;
    return -1;
  };
  zr.prototype.__compile__ = function () {
    let e = this,
      t = [""];
    (e.__rules__.forEach(function (n) {
      n.enabled &&
        n.alt.forEach(function (r) {
          t.indexOf(r) < 0 && t.push(r);
        });
    }),
      (e.__cache__ = {}),
      t.forEach(function (n) {
        ((e.__cache__[n] = []),
          e.__rules__.forEach(function (r) {
            r.enabled &&
              ((n && r.alt.indexOf(n) < 0) || e.__cache__[n].push(r.fn));
          }));
      }));
  };
  zr.prototype.at = function (e, t, n) {
    let r = this.__find__(e),
      i = n || {};
    if (r === -1) throw new Error("Parser rule not found: " + e);
    ((this.__rules__[r].fn = t),
      (this.__rules__[r].alt = i.alt || []),
      (this.__cache__ = null));
  };
  zr.prototype.before = function (e, t, n, r) {
    let i = this.__find__(e),
      o = r || {};
    if (i === -1) throw new Error("Parser rule not found: " + e);
    (this.__rules__.splice(i, 0, {
      name: t,
      enabled: !0,
      fn: n,
      alt: o.alt || [],
    }),
      (this.__cache__ = null));
  };
  zr.prototype.after = function (e, t, n, r) {
    let i = this.__find__(e),
      o = r || {};
    if (i === -1) throw new Error("Parser rule not found: " + e);
    (this.__rules__.splice(i + 1, 0, {
      name: t,
      enabled: !0,
      fn: n,
      alt: o.alt || [],
    }),
      (this.__cache__ = null));
  };
  zr.prototype.push = function (e, t, n) {
    let r = n || {};
    (this.__rules__.push({ name: e, enabled: !0, fn: t, alt: r.alt || [] }),
      (this.__cache__ = null));
  };
  zr.prototype.enable = function (e, t) {
    Array.isArray(e) || (e = [e]);
    let n = [];
    return (
      e.forEach(function (r) {
        let i = this.__find__(r);
        if (i < 0) {
          if (t) return;
          throw new Error("Rules manager: invalid rule name " + r);
        }
        ((this.__rules__[i].enabled = !0), n.push(r));
      }, this),
      (this.__cache__ = null),
      n
    );
  };
  zr.prototype.enableOnly = function (e, t) {
    (Array.isArray(e) || (e = [e]),
      this.__rules__.forEach(function (n) {
        n.enabled = !1;
      }),
      this.enable(e, t));
  };
  zr.prototype.disable = function (e, t) {
    Array.isArray(e) || (e = [e]);
    let n = [];
    return (
      e.forEach(function (r) {
        let i = this.__find__(r);
        if (i < 0) {
          if (t) return;
          throw new Error("Rules manager: invalid rule name " + r);
        }
        ((this.__rules__[i].enabled = !1), n.push(r));
      }, this),
      (this.__cache__ = null),
      n
    );
  };
  zr.prototype.getRules = function (e) {
    return (
      this.__cache__ === null && this.__compile__(),
      this.__cache__[e] || []
    );
  };
  var Es = zr;
  function ju(e, t, n) {
    ((this.type = e),
      (this.tag = t),
      (this.attrs = null),
      (this.map = null),
      (this.nesting = n),
      (this.level = 0),
      (this.children = null),
      (this.content = ""),
      (this.markup = ""),
      (this.info = ""),
      (this.meta = null),
      (this.block = !1),
      (this.hidden = !1));
  }
  ju.prototype.attrIndex = function (t) {
    if (!this.attrs) return -1;
    let n = this.attrs;
    for (let r = 0, i = n.length; r < i; r++) if (n[r][0] === t) return r;
    return -1;
  };
  ju.prototype.attrPush = function (t) {
    this.attrs ? this.attrs.push(t) : (this.attrs = [t]);
  };
  ju.prototype.attrSet = function (t, n) {
    let r = this.attrIndex(t),
      i = [t, n];
    r < 0 ? this.attrPush(i) : (this.attrs[r] = i);
  };
  ju.prototype.attrGet = function (t) {
    let n = this.attrIndex(t),
      r = null;
    return (n >= 0 && (r = this.attrs[n][1]), r);
  };
  ju.prototype.attrJoin = function (t, n) {
    let r = this.attrIndex(t);
    r < 0
      ? this.attrPush([t, n])
      : (this.attrs[r][1] = this.attrs[r][1] + " " + n);
  };
  var ho = ju;
  function YM(e, t, n) {
    ((this.src = e),
      (this.env = n),
      (this.tokens = []),
      (this.inlineMode = !1),
      (this.md = t));
  }
  YM.prototype.Token = ho;
  var XM = YM;
  var R$ = /\r\n?|\n/g,
    P$ = /\0/g;
  function K6(e) {
    let t;
    ((t = e.src.replace(
      R$,
      `
`,
    )),
      (t = t.replace(P$, "\uFFFD")),
      (e.src = t));
  }
  function Z6(e) {
    let t;
    e.inlineMode
      ? ((t = new e.Token("inline", "", 0)),
        (t.content = e.src),
        (t.map = [0, 1]),
        (t.children = []),
        e.tokens.push(t))
      : e.md.block.parse(e.src, e.md, e.env, e.tokens);
  }
  function J6(e) {
    let t = e.tokens;
    for (let n = 0, r = t.length; n < r; n++) {
      let i = t[n];
      i.type === "inline" &&
        e.md.inline.parse(i.content, e.md, e.env, i.children);
    }
  }
  function $$(e) {
    return /^<a[>\s]/i.test(e);
  }
  function H$(e) {
    return /^<\/a\s*>/i.test(e);
  }
  function Q6(e) {
    let t = e.tokens;
    if (e.md.options.linkify)
      for (let n = 0, r = t.length; n < r; n++) {
        if (t[n].type !== "inline" || !e.md.linkify.pretest(t[n].content))
          continue;
        let i = t[n].children,
          o = 0;
        for (let s = i.length - 1; s >= 0; s--) {
          let u = i[s];
          if (u.type === "link_close") {
            for (s--; i[s].level !== u.level && i[s].type !== "link_open"; )
              s--;
            continue;
          }
          if (
            (u.type === "html_inline" &&
              ($$(u.content) && o > 0 && o--, H$(u.content) && o++),
            !(o > 0) && u.type === "text" && e.md.linkify.test(u.content))
          ) {
            let a = u.content,
              l = e.md.linkify.match(a),
              h = [],
              m = u.level,
              p = 0;
            l.length > 0 &&
              l[0].index === 0 &&
              s > 0 &&
              i[s - 1].type === "text_special" &&
              (l = l.slice(1));
            for (let b = 0; b < l.length; b++) {
              let x = l[b].url,
                y = e.md.normalizeLink(x);
              if (!e.md.validateLink(y)) continue;
              let v = l[b].text;
              l[b].schema
                ? l[b].schema === "mailto:" && !/^mailto:/i.test(v)
                  ? (v = e.md
                      .normalizeLinkText("mailto:" + v)
                      .replace(/^mailto:/, ""))
                  : (v = e.md.normalizeLinkText(v))
                : (v = e.md
                    .normalizeLinkText("http://" + v)
                    .replace(/^http:\/\//, ""));
              let k = l[b].index;
              if (k > p) {
                let D = new e.Token("text", "", 0);
                ((D.content = a.slice(p, k)), (D.level = m), h.push(D));
              }
              let T = new e.Token("link_open", "a", 1);
              ((T.attrs = [["href", y]]),
                (T.level = m++),
                (T.markup = "linkify"),
                (T.info = "auto"),
                h.push(T));
              let E = new e.Token("text", "", 0);
              ((E.content = v), (E.level = m), h.push(E));
              let M = new e.Token("link_close", "a", -1);
              ((M.level = --m),
                (M.markup = "linkify"),
                (M.info = "auto"),
                h.push(M),
                (p = l[b].lastIndex));
            }
            if (p < a.length) {
              let b = new e.Token("text", "", 0);
              ((b.content = a.slice(p)), (b.level = m), h.push(b));
            }
            t[n].children = i = V6(i, s, h);
          }
        }
      }
  }
  var WM = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/,
    U$ = /\((c|tm|r)\)/i,
    V$ = /\((c|tm|r)\)/gi,
    j$ = { c: "\xA9", r: "\xAE", tm: "\u2122" };
  function G$(e, t) {
    return j$[t.toLowerCase()];
  }
  function Y$(e) {
    let t = 0;
    for (let n = e.length - 1; n >= 0; n--) {
      let r = e[n];
      (r.type === "text" && !t && (r.content = r.content.replace(V$, G$)),
        r.type === "link_open" && r.info === "auto" && t--,
        r.type === "link_close" && r.info === "auto" && t++);
    }
  }
  function X$(e) {
    let t = 0;
    for (let n = e.length - 1; n >= 0; n--) {
      let r = e[n];
      (r.type === "text" &&
        !t &&
        WM.test(r.content) &&
        (r.content = r.content
          .replace(/\+-/g, "\xB1")
          .replace(/\.{2,}/g, "\u2026")
          .replace(/([?!])…/g, "$1..")
          .replace(/([?!]){4,}/g, "$1$1$1")
          .replace(/,{2,}/g, ",")
          .replace(/(^|[^-])---(?=[^-]|$)/gm, "$1\u2014")
          .replace(/(^|\s)--(?=\s|$)/gm, "$1\u2013")
          .replace(/(^|[^-\s])--(?=[^-\s]|$)/gm, "$1\u2013")),
        r.type === "link_open" && r.info === "auto" && t--,
        r.type === "link_close" && r.info === "auto" && t++);
    }
  }
  function eg(e) {
    let t;
    if (e.md.options.typographer)
      for (t = e.tokens.length - 1; t >= 0; t--)
        e.tokens[t].type === "inline" &&
          (U$.test(e.tokens[t].content) && Y$(e.tokens[t].children),
          WM.test(e.tokens[t].content) && X$(e.tokens[t].children));
  }
  var W$ = /['"]/,
    KM = /['"]/g,
    ZM = "\u2019";
  function Rd(e, t, n) {
    return e.slice(0, t) + n + e.slice(t + 1);
  }
  function K$(e, t) {
    let n,
      r = [];
    for (let i = 0; i < e.length; i++) {
      let o = e[i],
        s = e[i].level;
      for (n = r.length - 1; n >= 0 && !(r[n].level <= s); n--);
      if (((r.length = n + 1), o.type !== "text")) continue;
      let u = o.content,
        a = 0,
        l = u.length;
      e: for (; a < l; ) {
        KM.lastIndex = a;
        let h = KM.exec(u);
        if (!h) break;
        let m = !0,
          p = !0;
        a = h.index + 1;
        let b = h[0] === "'",
          x = 32;
        if (h.index - 1 >= 0) x = u.charCodeAt(h.index - 1);
        else
          for (
            n = i - 1;
            n >= 0 && !(e[n].type === "softbreak" || e[n].type === "hardbreak");
            n--
          )
            if (e[n].content) {
              x = e[n].content.charCodeAt(e[n].content.length - 1);
              break;
            }
        let y = 32;
        if (a < l) y = u.charCodeAt(a);
        else
          for (
            n = i + 1;
            n < e.length &&
            !(e[n].type === "softbreak" || e[n].type === "hardbreak");
            n++
          )
            if (e[n].content) {
              y = e[n].content.charCodeAt(0);
              break;
            }
        let v = Ms(x) || As(String.fromCharCode(x)),
          k = Ms(y) || As(String.fromCharCode(y)),
          T = Ss(x),
          E = Ss(y);
        if (
          (E ? (m = !1) : k && (T || v || (m = !1)),
          T ? (p = !1) : v && (E || k || (p = !1)),
          y === 34 && h[0] === '"' && x >= 48 && x <= 57 && (p = m = !1),
          m && p && ((m = v), (p = k)),
          !m && !p)
        ) {
          b && (o.content = Rd(o.content, h.index, ZM));
          continue;
        }
        if (p)
          for (n = r.length - 1; n >= 0; n--) {
            let M = r[n];
            if (r[n].level < s) break;
            if (M.single === b && r[n].level === s) {
              M = r[n];
              let D, I;
              (b
                ? ((D = t.md.options.quotes[2]), (I = t.md.options.quotes[3]))
                : ((D = t.md.options.quotes[0]), (I = t.md.options.quotes[1])),
                (o.content = Rd(o.content, h.index, I)),
                (e[M.token].content = Rd(e[M.token].content, M.pos, D)),
                (a += I.length - 1),
                M.token === i && (a += D.length - 1),
                (u = o.content),
                (l = u.length),
                (r.length = n));
              continue e;
            }
          }
        m
          ? r.push({ token: i, pos: h.index, single: b, level: s })
          : p && b && (o.content = Rd(o.content, h.index, ZM));
      }
    }
  }
  function tg(e) {
    if (e.md.options.typographer)
      for (let t = e.tokens.length - 1; t >= 0; t--)
        e.tokens[t].type !== "inline" ||
          !W$.test(e.tokens[t].content) ||
          K$(e.tokens[t].children, e);
  }
  function ng(e) {
    let t,
      n,
      r = e.tokens,
      i = r.length;
    for (let o = 0; o < i; o++) {
      if (r[o].type !== "inline") continue;
      let s = r[o].children,
        u = s.length;
      for (t = 0; t < u; t++)
        s[t].type === "text_special" && (s[t].type = "text");
      for (t = n = 0; t < u; t++)
        s[t].type === "text" && t + 1 < u && s[t + 1].type === "text"
          ? (s[t + 1].content = s[t].content + s[t + 1].content)
          : (t !== n && (s[n] = s[t]), n++);
      t !== n && (s.length = n);
    }
  }
  var rg = [
    ["normalize", K6],
    ["block", Z6],
    ["inline", J6],
    ["linkify", Q6],
    ["replacements", eg],
    ["smartquotes", tg],
    ["text_join", ng],
  ];
  function ig() {
    this.ruler = new Es();
    for (let e = 0; e < rg.length; e++) this.ruler.push(rg[e][0], rg[e][1]);
  }
  ig.prototype.process = function (e) {
    let t = this.ruler.getRules("");
    for (let n = 0, r = t.length; n < r; n++) t[n](e);
  };
  ig.prototype.State = XM;
  var JM = ig;
  function ki(e, t, n, r) {
    ((this.src = e),
      (this.md = t),
      (this.env = n),
      (this.tokens = r),
      (this.bMarks = []),
      (this.eMarks = []),
      (this.tShift = []),
      (this.sCount = []),
      (this.bsCount = []),
      (this.blkIndent = 0),
      (this.line = 0),
      (this.lineMax = 0),
      (this.tight = !1),
      (this.ddIndent = -1),
      (this.listIndent = -1),
      (this.parentType = "root"),
      (this.level = 0));
    let i = this.src;
    for (let o = 0, s = 0, u = 0, a = 0, l = i.length, h = !1; s < l; s++) {
      let m = i.charCodeAt(s);
      if (!h)
        if (Ve(m)) {
          (u++, m === 9 ? (a += 4 - (a % 4)) : a++);
          continue;
        } else h = !0;
      (m === 10 || s === l - 1) &&
        (m !== 10 && s++,
        this.bMarks.push(o),
        this.eMarks.push(s),
        this.tShift.push(u),
        this.sCount.push(a),
        this.bsCount.push(0),
        (h = !1),
        (u = 0),
        (a = 0),
        (o = s + 1));
    }
    (this.bMarks.push(i.length),
      this.eMarks.push(i.length),
      this.tShift.push(0),
      this.sCount.push(0),
      this.bsCount.push(0),
      (this.lineMax = this.bMarks.length - 1));
  }
  ki.prototype.push = function (e, t, n) {
    let r = new ho(e, t, n);
    return (
      (r.block = !0),
      n < 0 && this.level--,
      (r.level = this.level),
      n > 0 && this.level++,
      this.tokens.push(r),
      r
    );
  };
  ki.prototype.isEmpty = function (t) {
    return this.bMarks[t] + this.tShift[t] >= this.eMarks[t];
  };
  ki.prototype.skipEmptyLines = function (t) {
    for (
      let n = this.lineMax;
      t < n && !(this.bMarks[t] + this.tShift[t] < this.eMarks[t]);
      t++
    );
    return t;
  };
  ki.prototype.skipSpaces = function (t) {
    for (let n = this.src.length; t < n; t++) {
      let r = this.src.charCodeAt(t);
      if (!Ve(r)) break;
    }
    return t;
  };
  ki.prototype.skipSpacesBack = function (t, n) {
    if (t <= n) return t;
    for (; t > n; ) if (!Ve(this.src.charCodeAt(--t))) return t + 1;
    return t;
  };
  ki.prototype.skipChars = function (t, n) {
    for (let r = this.src.length; t < r && this.src.charCodeAt(t) === n; t++);
    return t;
  };
  ki.prototype.skipCharsBack = function (t, n, r) {
    if (t <= r) return t;
    for (; t > r; ) if (n !== this.src.charCodeAt(--t)) return t + 1;
    return t;
  };
  ki.prototype.getLines = function (t, n, r, i) {
    if (t >= n) return "";
    let o = new Array(n - t);
    for (let s = 0, u = t; u < n; u++, s++) {
      let a = 0,
        l = this.bMarks[u],
        h = l,
        m;
      for (
        u + 1 < n || i ? (m = this.eMarks[u] + 1) : (m = this.eMarks[u]);
        h < m && a < r;
      ) {
        let p = this.src.charCodeAt(h);
        if (Ve(p)) p === 9 ? (a += 4 - ((a + this.bsCount[u]) % 4)) : a++;
        else if (h - l < this.tShift[u]) a++;
        else break;
        h++;
      }
      a > r
        ? (o[s] = new Array(a - r + 1).join(" ") + this.src.slice(h, m))
        : (o[s] = this.src.slice(h, m));
    }
    return o.join("");
  };
  ki.prototype.Token = ho;
  var QM = ki;
  var Z$ = 65536;
  function og(e, t) {
    let n = e.bMarks[t] + e.tShift[t],
      r = e.eMarks[t];
    return e.src.slice(n, r);
  }
  function eT(e) {
    let t = [],
      n = e.length,
      r = 0,
      i = e.charCodeAt(r),
      o = !1,
      s = 0,
      u = "";
    for (; r < n; )
      (i === 124 &&
        (o
          ? ((u += e.substring(s, r - 1)), (s = r))
          : (t.push(u + e.substring(s, r)), (u = ""), (s = r + 1))),
        (o = i === 92),
        r++,
        (i = e.charCodeAt(r)));
    return (t.push(u + e.substring(s)), t);
  }
  function sg(e, t, n, r) {
    if (t + 2 > n) return !1;
    let i = t + 1;
    if (e.sCount[i] < e.blkIndent || e.sCount[i] - e.blkIndent >= 4) return !1;
    let o = e.bMarks[i] + e.tShift[i];
    if (o >= e.eMarks[i]) return !1;
    let s = e.src.charCodeAt(o++);
    if ((s !== 124 && s !== 45 && s !== 58) || o >= e.eMarks[i]) return !1;
    let u = e.src.charCodeAt(o++);
    if ((u !== 124 && u !== 45 && u !== 58 && !Ve(u)) || (s === 45 && Ve(u)))
      return !1;
    for (; o < e.eMarks[i]; ) {
      let M = e.src.charCodeAt(o);
      if (M !== 124 && M !== 45 && M !== 58 && !Ve(M)) return !1;
      o++;
    }
    let a = og(e, t + 1),
      l = a.split("|"),
      h = [];
    for (let M = 0; M < l.length; M++) {
      let D = l[M].trim();
      if (!D) {
        if (M === 0 || M === l.length - 1) continue;
        return !1;
      }
      if (!/^:?-+:?$/.test(D)) return !1;
      D.charCodeAt(D.length - 1) === 58
        ? h.push(D.charCodeAt(0) === 58 ? "center" : "right")
        : D.charCodeAt(0) === 58
          ? h.push("left")
          : h.push("");
    }
    if (
      ((a = og(e, t).trim()),
      a.indexOf("|") === -1 || e.sCount[t] - e.blkIndent >= 4)
    )
      return !1;
    ((l = eT(a)),
      l.length && l[0] === "" && l.shift(),
      l.length && l[l.length - 1] === "" && l.pop());
    let m = l.length;
    if (m === 0 || m !== h.length) return !1;
    if (r) return !0;
    let p = e.parentType;
    e.parentType = "table";
    let b = e.md.block.ruler.getRules("blockquote"),
      x = e.push("table_open", "table", 1),
      y = [t, 0];
    x.map = y;
    let v = e.push("thead_open", "thead", 1);
    v.map = [t, t + 1];
    let k = e.push("tr_open", "tr", 1);
    k.map = [t, t + 1];
    for (let M = 0; M < l.length; M++) {
      let D = e.push("th_open", "th", 1);
      h[M] && (D.attrs = [["style", "text-align:" + h[M]]]);
      let I = e.push("inline", "", 0);
      ((I.content = l[M].trim()),
        (I.children = []),
        e.push("th_close", "th", -1));
    }
    (e.push("tr_close", "tr", -1), e.push("thead_close", "thead", -1));
    let T,
      E = 0;
    for (i = t + 2; i < n && !(e.sCount[i] < e.blkIndent); i++) {
      let M = !1;
      for (let I = 0, P = b.length; I < P; I++)
        if (b[I](e, i, n, !0)) {
          M = !0;
          break;
        }
      if (
        M ||
        ((a = og(e, i).trim()), !a) ||
        e.sCount[i] - e.blkIndent >= 4 ||
        ((l = eT(a)),
        l.length && l[0] === "" && l.shift(),
        l.length && l[l.length - 1] === "" && l.pop(),
        (E += m - l.length),
        E > Z$)
      )
        break;
      if (i === t + 2) {
        let I = e.push("tbody_open", "tbody", 1);
        I.map = T = [t + 2, 0];
      }
      let D = e.push("tr_open", "tr", 1);
      D.map = [i, i + 1];
      for (let I = 0; I < m; I++) {
        let P = e.push("td_open", "td", 1);
        h[I] && (P.attrs = [["style", "text-align:" + h[I]]]);
        let O = e.push("inline", "", 0);
        ((O.content = l[I] ? l[I].trim() : ""),
          (O.children = []),
          e.push("td_close", "td", -1));
      }
      e.push("tr_close", "tr", -1);
    }
    return (
      T && (e.push("tbody_close", "tbody", -1), (T[1] = i)),
      e.push("table_close", "table", -1),
      (y[1] = i),
      (e.parentType = p),
      (e.line = i),
      !0
    );
  }
  function ug(e, t, n) {
    if (e.sCount[t] - e.blkIndent < 4) return !1;
    let r = t + 1,
      i = r;
    for (; r < n; ) {
      if (e.isEmpty(r)) {
        r++;
        continue;
      }
      if (e.sCount[r] - e.blkIndent >= 4) {
        (r++, (i = r));
        continue;
      }
      break;
    }
    e.line = i;
    let o = e.push("code_block", "code", 0);
    return (
      (o.content =
        e.getLines(t, i, 4 + e.blkIndent, !1) +
        `
`),
      (o.map = [t, e.line]),
      !0
    );
  }
  function ag(e, t, n, r) {
    let i = e.bMarks[t] + e.tShift[t],
      o = e.eMarks[t];
    if (e.sCount[t] - e.blkIndent >= 4 || i + 3 > o) return !1;
    let s = e.src.charCodeAt(i);
    if (s !== 126 && s !== 96) return !1;
    let u = i;
    i = e.skipChars(i, s);
    let a = i - u;
    if (a < 3) return !1;
    let l = e.src.slice(u, i),
      h = e.src.slice(i, o);
    if (s === 96 && h.indexOf(String.fromCharCode(s)) >= 0) return !1;
    if (r) return !0;
    let m = t,
      p = !1;
    for (
      ;
      m++,
        !(
          m >= n ||
          ((i = u = e.bMarks[m] + e.tShift[m]),
          (o = e.eMarks[m]),
          i < o && e.sCount[m] < e.blkIndent)
        );
    )
      if (
        e.src.charCodeAt(i) === s &&
        !(e.sCount[m] - e.blkIndent >= 4) &&
        ((i = e.skipChars(i, s)),
        !(i - u < a) && ((i = e.skipSpaces(i)), !(i < o)))
      ) {
        p = !0;
        break;
      }
    ((a = e.sCount[t]), (e.line = m + (p ? 1 : 0)));
    let b = e.push("fence", "code", 0);
    return (
      (b.info = h),
      (b.content = e.getLines(t + 1, m, a, !0)),
      (b.markup = l),
      (b.map = [t, e.line]),
      !0
    );
  }
  function lg(e, t, n, r) {
    let i = e.bMarks[t] + e.tShift[t],
      o = e.eMarks[t],
      s = e.lineMax;
    if (e.sCount[t] - e.blkIndent >= 4 || e.src.charCodeAt(i) !== 62) return !1;
    if (r) return !0;
    let u = [],
      a = [],
      l = [],
      h = [],
      m = e.md.block.ruler.getRules("blockquote"),
      p = e.parentType;
    e.parentType = "blockquote";
    let b = !1,
      x;
    for (x = t; x < n; x++) {
      let E = e.sCount[x] < e.blkIndent;
      if (((i = e.bMarks[x] + e.tShift[x]), (o = e.eMarks[x]), i >= o)) break;
      if (e.src.charCodeAt(i++) === 62 && !E) {
        let D = e.sCount[x] + 1,
          I,
          P;
        e.src.charCodeAt(i) === 32
          ? (i++, D++, (P = !1), (I = !0))
          : e.src.charCodeAt(i) === 9
            ? ((I = !0),
              (e.bsCount[x] + D) % 4 === 3 ? (i++, D++, (P = !1)) : (P = !0))
            : (I = !1);
        let O = D;
        for (u.push(e.bMarks[x]), e.bMarks[x] = i; i < o; ) {
          let H = e.src.charCodeAt(i);
          if (Ve(H))
            H === 9 ? (O += 4 - ((O + e.bsCount[x] + (P ? 1 : 0)) % 4)) : O++;
          else break;
          i++;
        }
        ((b = i >= o),
          a.push(e.bsCount[x]),
          (e.bsCount[x] = e.sCount[x] + 1 + (I ? 1 : 0)),
          l.push(e.sCount[x]),
          (e.sCount[x] = O - D),
          h.push(e.tShift[x]),
          (e.tShift[x] = i - e.bMarks[x]));
        continue;
      }
      if (b) break;
      let M = !1;
      for (let D = 0, I = m.length; D < I; D++)
        if (m[D](e, x, n, !0)) {
          M = !0;
          break;
        }
      if (M) {
        ((e.lineMax = x),
          e.blkIndent !== 0 &&
            (u.push(e.bMarks[x]),
            a.push(e.bsCount[x]),
            h.push(e.tShift[x]),
            l.push(e.sCount[x]),
            (e.sCount[x] -= e.blkIndent)));
        break;
      }
      (u.push(e.bMarks[x]),
        a.push(e.bsCount[x]),
        h.push(e.tShift[x]),
        l.push(e.sCount[x]),
        (e.sCount[x] = -1));
    }
    let y = e.blkIndent;
    e.blkIndent = 0;
    let v = e.push("blockquote_open", "blockquote", 1);
    v.markup = ">";
    let k = [t, 0];
    ((v.map = k), e.md.block.tokenize(e, t, x));
    let T = e.push("blockquote_close", "blockquote", -1);
    ((T.markup = ">"), (e.lineMax = s), (e.parentType = p), (k[1] = e.line));
    for (let E = 0; E < h.length; E++)
      ((e.bMarks[E + t] = u[E]),
        (e.tShift[E + t] = h[E]),
        (e.sCount[E + t] = l[E]),
        (e.bsCount[E + t] = a[E]));
    return ((e.blkIndent = y), !0);
  }
  function cg(e, t, n, r) {
    let i = e.eMarks[t];
    if (e.sCount[t] - e.blkIndent >= 4) return !1;
    let o = e.bMarks[t] + e.tShift[t],
      s = e.src.charCodeAt(o++);
    if (s !== 42 && s !== 45 && s !== 95) return !1;
    let u = 1;
    for (; o < i; ) {
      let l = e.src.charCodeAt(o++);
      if (l !== s && !Ve(l)) return !1;
      l === s && u++;
    }
    if (u < 3) return !1;
    if (r) return !0;
    e.line = t + 1;
    let a = e.push("hr", "hr", 0);
    return (
      (a.map = [t, e.line]),
      (a.markup = Array(u + 1).join(String.fromCharCode(s))),
      !0
    );
  }
  function tT(e, t) {
    let n = e.eMarks[t],
      r = e.bMarks[t] + e.tShift[t],
      i = e.src.charCodeAt(r++);
    if (i !== 42 && i !== 45 && i !== 43) return -1;
    if (r < n) {
      let o = e.src.charCodeAt(r);
      if (!Ve(o)) return -1;
    }
    return r;
  }
  function nT(e, t) {
    let n = e.bMarks[t] + e.tShift[t],
      r = e.eMarks[t],
      i = n;
    if (i + 1 >= r) return -1;
    let o = e.src.charCodeAt(i++);
    if (o < 48 || o > 57) return -1;
    for (;;) {
      if (i >= r) return -1;
      if (((o = e.src.charCodeAt(i++)), o >= 48 && o <= 57)) {
        if (i - n >= 10) return -1;
        continue;
      }
      if (o === 41 || o === 46) break;
      return -1;
    }
    return i < r && ((o = e.src.charCodeAt(i)), !Ve(o)) ? -1 : i;
  }
  function J$(e, t) {
    let n = e.level + 2;
    for (let r = t + 2, i = e.tokens.length - 2; r < i; r++)
      e.tokens[r].level === n &&
        e.tokens[r].type === "paragraph_open" &&
        ((e.tokens[r + 2].hidden = !0), (e.tokens[r].hidden = !0), (r += 2));
  }
  function fg(e, t, n, r) {
    let i,
      o,
      s,
      u,
      a = t,
      l = !0;
    if (
      e.sCount[a] - e.blkIndent >= 4 ||
      (e.listIndent >= 0 &&
        e.sCount[a] - e.listIndent >= 4 &&
        e.sCount[a] < e.blkIndent)
    )
      return !1;
    let h = !1;
    r && e.parentType === "paragraph" && e.sCount[a] >= e.blkIndent && (h = !0);
    let m, p, b;
    if ((b = nT(e, a)) >= 0) {
      if (
        ((m = !0),
        (s = e.bMarks[a] + e.tShift[a]),
        (p = Number(e.src.slice(s, b - 1))),
        h && p !== 1)
      )
        return !1;
    } else if ((b = tT(e, a)) >= 0) m = !1;
    else return !1;
    if (h && e.skipSpaces(b) >= e.eMarks[a]) return !1;
    if (r) return !0;
    let x = e.src.charCodeAt(b - 1),
      y = e.tokens.length;
    m
      ? ((u = e.push("ordered_list_open", "ol", 1)),
        p !== 1 && (u.attrs = [["start", p]]))
      : (u = e.push("bullet_list_open", "ul", 1));
    let v = [a, 0];
    ((u.map = v), (u.markup = String.fromCharCode(x)));
    let k = !1,
      T = e.md.block.ruler.getRules("list"),
      E = e.parentType;
    for (e.parentType = "list"; a < n; ) {
      ((o = b), (i = e.eMarks[a]));
      let M = e.sCount[a] + b - (e.bMarks[a] + e.tShift[a]),
        D = M;
      for (; o < i; ) {
        let V = e.src.charCodeAt(o);
        if (V === 9) D += 4 - ((D + e.bsCount[a]) % 4);
        else if (V === 32) D++;
        else break;
        o++;
      }
      let I = o,
        P;
      (I >= i ? (P = 1) : (P = D - M), P > 4 && (P = 1));
      let O = M + P;
      ((u = e.push("list_item_open", "li", 1)),
        (u.markup = String.fromCharCode(x)));
      let H = [a, 0];
      ((u.map = H), m && (u.info = e.src.slice(s, b - 1)));
      let U = e.tight,
        j = e.tShift[a],
        Z = e.sCount[a],
        Q = e.listIndent;
      if (
        ((e.listIndent = e.blkIndent),
        (e.blkIndent = O),
        (e.tight = !0),
        (e.tShift[a] = I - e.bMarks[a]),
        (e.sCount[a] = D),
        I >= i && e.isEmpty(a + 1)
          ? (e.line = Math.min(e.line + 2, n))
          : e.md.block.tokenize(e, a, n, !0),
        (!e.tight || k) && (l = !1),
        (k = e.line - a > 1 && e.isEmpty(e.line - 1)),
        (e.blkIndent = e.listIndent),
        (e.listIndent = Q),
        (e.tShift[a] = j),
        (e.sCount[a] = Z),
        (e.tight = U),
        (u = e.push("list_item_close", "li", -1)),
        (u.markup = String.fromCharCode(x)),
        (a = e.line),
        (H[1] = a),
        a >= n || e.sCount[a] < e.blkIndent || e.sCount[a] - e.blkIndent >= 4)
      )
        break;
      let B = !1;
      for (let V = 0, G = T.length; V < G; V++)
        if (T[V](e, a, n, !0)) {
          B = !0;
          break;
        }
      if (B) break;
      if (m) {
        if (((b = nT(e, a)), b < 0)) break;
        s = e.bMarks[a] + e.tShift[a];
      } else if (((b = tT(e, a)), b < 0)) break;
      if (x !== e.src.charCodeAt(b - 1)) break;
    }
    return (
      m
        ? (u = e.push("ordered_list_close", "ol", -1))
        : (u = e.push("bullet_list_close", "ul", -1)),
      (u.markup = String.fromCharCode(x)),
      (v[1] = a),
      (e.line = a),
      (e.parentType = E),
      l && J$(e, y),
      !0
    );
  }
  function hg(e, t, n, r) {
    let i = e.bMarks[t] + e.tShift[t],
      o = e.eMarks[t],
      s = t + 1;
    if (e.sCount[t] - e.blkIndent >= 4 || e.src.charCodeAt(i) !== 91) return !1;
    function u(T) {
      let E = e.lineMax;
      if (T >= E || e.isEmpty(T)) return null;
      let M = !1;
      if (
        (e.sCount[T] - e.blkIndent > 3 && (M = !0),
        e.sCount[T] < 0 && (M = !0),
        !M)
      ) {
        let P = e.md.block.ruler.getRules("reference"),
          O = e.parentType;
        e.parentType = "reference";
        let H = !1;
        for (let U = 0, j = P.length; U < j; U++)
          if (P[U](e, T, E, !0)) {
            H = !0;
            break;
          }
        if (((e.parentType = O), H)) return null;
      }
      let D = e.bMarks[T] + e.tShift[T],
        I = e.eMarks[T];
      return e.src.slice(D, I + 1);
    }
    let a = e.src.slice(i, o + 1);
    o = a.length;
    let l = -1;
    for (i = 1; i < o; i++) {
      let T = a.charCodeAt(i);
      if (T === 91) return !1;
      if (T === 93) {
        l = i;
        break;
      } else if (T === 10) {
        let E = u(s);
        E !== null && ((a += E), (o = a.length), s++);
      } else if (T === 92 && (i++, i < o && a.charCodeAt(i) === 10)) {
        let E = u(s);
        E !== null && ((a += E), (o = a.length), s++);
      }
    }
    if (l < 0 || a.charCodeAt(l + 1) !== 58) return !1;
    for (i = l + 2; i < o; i++) {
      let T = a.charCodeAt(i);
      if (T === 10) {
        let E = u(s);
        E !== null && ((a += E), (o = a.length), s++);
      } else if (!Ve(T)) break;
    }
    let h = e.md.helpers.parseLinkDestination(a, i, o);
    if (!h.ok) return !1;
    let m = e.md.normalizeLink(h.str);
    if (!e.md.validateLink(m)) return !1;
    i = h.pos;
    let p = i,
      b = s,
      x = i;
    for (; i < o; i++) {
      let T = a.charCodeAt(i);
      if (T === 10) {
        let E = u(s);
        E !== null && ((a += E), (o = a.length), s++);
      } else if (!Ve(T)) break;
    }
    let y = e.md.helpers.parseLinkTitle(a, i, o);
    for (; y.can_continue; ) {
      let T = u(s);
      if (T === null) break;
      ((a += T),
        (i = o),
        (o = a.length),
        s++,
        (y = e.md.helpers.parseLinkTitle(a, i, o, y)));
    }
    let v;
    for (
      i < o && x !== i && y.ok
        ? ((v = y.str), (i = y.pos))
        : ((v = ""), (i = p), (s = b));
      i < o;
    ) {
      let T = a.charCodeAt(i);
      if (!Ve(T)) break;
      i++;
    }
    if (i < o && a.charCodeAt(i) !== 10 && v)
      for (v = "", i = p, s = b; i < o; ) {
        let T = a.charCodeAt(i);
        if (!Ve(T)) break;
        i++;
      }
    if (i < o && a.charCodeAt(i) !== 10) return !1;
    let k = Ts(a.slice(1, l));
    return k
      ? (r ||
          (typeof e.env.references > "u" && (e.env.references = {}),
          typeof e.env.references[k] > "u" &&
            (e.env.references[k] = { title: v, href: m }),
          (e.line = s)),
        !0)
      : !1;
  }
  var rT = [
    "address",
    "article",
    "aside",
    "base",
    "basefont",
    "blockquote",
    "body",
    "caption",
    "center",
    "col",
    "colgroup",
    "dd",
    "details",
    "dialog",
    "dir",
    "div",
    "dl",
    "dt",
    "fieldset",
    "figcaption",
    "figure",
    "footer",
    "form",
    "frame",
    "frameset",
    "h1",
    "h2",
    "h3",
    "h4",
    "h5",
    "h6",
    "head",
    "header",
    "hr",
    "html",
    "iframe",
    "legend",
    "li",
    "link",
    "main",
    "menu",
    "menuitem",
    "nav",
    "noframes",
    "ol",
    "optgroup",
    "option",
    "p",
    "param",
    "search",
    "section",
    "summary",
    "table",
    "tbody",
    "td",
    "tfoot",
    "th",
    "thead",
    "title",
    "tr",
    "track",
    "ul",
  ];
  var Q$ = "[a-zA-Z_:][a-zA-Z0-9:._-]*",
    eH = "[^\"'=<>`\\x00-\\x20]+",
    tH = "'[^']*'",
    nH = '"[^"]*"',
    rH = "(?:" + eH + "|" + tH + "|" + nH + ")",
    iH = "(?:\\s+" + Q$ + "(?:\\s*=\\s*" + rH + ")?)",
    iT = "<[A-Za-z][A-Za-z0-9\\-]*" + iH + "*\\s*\\/?>",
    oT = "<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",
    oH = "<!---?>|<!--(?:[^-]|-[^-]|--[^>])*-->",
    sH = "<[?][\\s\\S]*?[?]>",
    uH = "<![A-Za-z][^>]*>",
    aH = "<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",
    sT = new RegExp(
      "^(?:" + iT + "|" + oT + "|" + oH + "|" + sH + "|" + uH + "|" + aH + ")",
    ),
    uT = new RegExp("^(?:" + iT + "|" + oT + ")");
  var Gu = [
    [
      /^<(script|pre|style|textarea)(?=(\s|>|$))/i,
      /<\/(script|pre|style|textarea)>/i,
      !0,
    ],
    [/^<!--/, /-->/, !0],
    [/^<\?/, /\?>/, !0],
    [/^<![A-Z]/, />/, !0],
    [/^<!\[CDATA\[/, /\]\]>/, !0],
    [new RegExp("^</?(" + rT.join("|") + ")(?=(\\s|/?>|$))", "i"), /^$/, !0],
    [new RegExp(uT.source + "\\s*$"), /^$/, !1],
  ];
  function dg(e, t, n, r) {
    let i = e.bMarks[t] + e.tShift[t],
      o = e.eMarks[t];
    if (
      e.sCount[t] - e.blkIndent >= 4 ||
      !e.md.options.html ||
      e.src.charCodeAt(i) !== 60
    )
      return !1;
    let s = e.src.slice(i, o),
      u = 0;
    for (; u < Gu.length && !Gu[u][0].test(s); u++);
    if (u === Gu.length) return !1;
    if (r) return Gu[u][2];
    let a = t + 1;
    if (!Gu[u][1].test(s)) {
      for (; a < n && !(e.sCount[a] < e.blkIndent); a++)
        if (
          ((i = e.bMarks[a] + e.tShift[a]),
          (o = e.eMarks[a]),
          (s = e.src.slice(i, o)),
          Gu[u][1].test(s))
        ) {
          s.length !== 0 && a++;
          break;
        }
    }
    e.line = a;
    let l = e.push("html_block", "", 0);
    return (
      (l.map = [t, a]),
      (l.content = e.getLines(t, a, e.blkIndent, !0)),
      !0
    );
  }
  function pg(e, t, n, r) {
    let i = e.bMarks[t] + e.tShift[t],
      o = e.eMarks[t];
    if (e.sCount[t] - e.blkIndent >= 4) return !1;
    let s = e.src.charCodeAt(i);
    if (s !== 35 || i >= o) return !1;
    let u = 1;
    for (s = e.src.charCodeAt(++i); s === 35 && i < o && u <= 6; )
      (u++, (s = e.src.charCodeAt(++i)));
    if (u > 6 || (i < o && !Ve(s))) return !1;
    if (r) return !0;
    o = e.skipSpacesBack(o, i);
    let a = e.skipCharsBack(o, 35, i);
    (a > i && Ve(e.src.charCodeAt(a - 1)) && (o = a), (e.line = t + 1));
    let l = e.push("heading_open", "h" + String(u), 1);
    ((l.markup = "########".slice(0, u)), (l.map = [t, e.line]));
    let h = e.push("inline", "", 0);
    ((h.content = e.src.slice(i, o).trim()),
      (h.map = [t, e.line]),
      (h.children = []));
    let m = e.push("heading_close", "h" + String(u), -1);
    return ((m.markup = "########".slice(0, u)), !0);
  }
  function mg(e, t, n) {
    let r = e.md.block.ruler.getRules("paragraph");
    if (e.sCount[t] - e.blkIndent >= 4) return !1;
    let i = e.parentType;
    e.parentType = "paragraph";
    let o = 0,
      s,
      u = t + 1;
    for (; u < n && !e.isEmpty(u); u++) {
      if (e.sCount[u] - e.blkIndent > 3) continue;
      if (e.sCount[u] >= e.blkIndent) {
        let b = e.bMarks[u] + e.tShift[u],
          x = e.eMarks[u];
        if (
          b < x &&
          ((s = e.src.charCodeAt(b)),
          (s === 45 || s === 61) &&
            ((b = e.skipChars(b, s)), (b = e.skipSpaces(b)), b >= x))
        ) {
          o = s === 61 ? 1 : 2;
          break;
        }
      }
      if (e.sCount[u] < 0) continue;
      let p = !1;
      for (let b = 0, x = r.length; b < x; b++)
        if (r[b](e, u, n, !0)) {
          p = !0;
          break;
        }
      if (p) break;
    }
    if (!o) return !1;
    let a = e.getLines(t, u, e.blkIndent, !1).trim();
    e.line = u + 1;
    let l = e.push("heading_open", "h" + String(o), 1);
    ((l.markup = String.fromCharCode(s)), (l.map = [t, e.line]));
    let h = e.push("inline", "", 0);
    ((h.content = a), (h.map = [t, e.line - 1]), (h.children = []));
    let m = e.push("heading_close", "h" + String(o), -1);
    return ((m.markup = String.fromCharCode(s)), (e.parentType = i), !0);
  }
  function gg(e, t, n) {
    let r = e.md.block.ruler.getRules("paragraph"),
      i = e.parentType,
      o = t + 1;
    for (e.parentType = "paragraph"; o < n && !e.isEmpty(o); o++) {
      if (e.sCount[o] - e.blkIndent > 3 || e.sCount[o] < 0) continue;
      let l = !1;
      for (let h = 0, m = r.length; h < m; h++)
        if (r[h](e, o, n, !0)) {
          l = !0;
          break;
        }
      if (l) break;
    }
    let s = e.getLines(t, o, e.blkIndent, !1).trim();
    e.line = o;
    let u = e.push("paragraph_open", "p", 1);
    u.map = [t, e.line];
    let a = e.push("inline", "", 0);
    return (
      (a.content = s),
      (a.map = [t, e.line]),
      (a.children = []),
      e.push("paragraph_close", "p", -1),
      (e.parentType = i),
      !0
    );
  }
  var Pd = [
    ["table", sg, ["paragraph", "reference"]],
    ["code", ug],
    ["fence", ag, ["paragraph", "reference", "blockquote", "list"]],
    ["blockquote", lg, ["paragraph", "reference", "blockquote", "list"]],
    ["hr", cg, ["paragraph", "reference", "blockquote", "list"]],
    ["list", fg, ["paragraph", "reference", "blockquote"]],
    ["reference", hg],
    ["html_block", dg, ["paragraph", "reference", "blockquote"]],
    ["heading", pg, ["paragraph", "reference", "blockquote"]],
    ["lheading", mg],
    ["paragraph", gg],
  ];
  function $d() {
    this.ruler = new Es();
    for (let e = 0; e < Pd.length; e++)
      this.ruler.push(Pd[e][0], Pd[e][1], { alt: (Pd[e][2] || []).slice() });
  }
  $d.prototype.tokenize = function (e, t, n) {
    let r = this.ruler.getRules(""),
      i = r.length,
      o = e.md.options.maxNesting,
      s = t,
      u = !1;
    for (
      ;
      s < n &&
      ((e.line = s = e.skipEmptyLines(s)),
      !(s >= n || e.sCount[s] < e.blkIndent));
    ) {
      if (e.level >= o) {
        e.line = n;
        break;
      }
      let a = e.line,
        l = !1;
      for (let h = 0; h < i; h++)
        if (((l = r[h](e, s, n, !1)), l)) {
          if (a >= e.line)
            throw new Error("block rule didn't increment state.line");
          break;
        }
      if (!l) throw new Error("none of the block rules matched");
      ((e.tight = !u),
        e.isEmpty(e.line - 1) && (u = !0),
        (s = e.line),
        s < n && e.isEmpty(s) && ((u = !0), s++, (e.line = s)));
    }
  };
  $d.prototype.parse = function (e, t, n, r) {
    if (!e) return;
    let i = new this.State(e, t, n, r);
    this.tokenize(i, i.line, i.lineMax);
  };
  $d.prototype.State = QM;
  var aT = $d;
  function ic(e, t, n, r) {
    ((this.src = e),
      (this.env = n),
      (this.md = t),
      (this.tokens = r),
      (this.tokens_meta = Array(r.length)),
      (this.pos = 0),
      (this.posMax = this.src.length),
      (this.level = 0),
      (this.pending = ""),
      (this.pendingLevel = 0),
      (this.cache = {}),
      (this.delimiters = []),
      (this._prev_delimiters = []),
      (this.backticks = {}),
      (this.backticksScanned = !1),
      (this.linkLevel = 0));
  }
  ic.prototype.pushPending = function () {
    let e = new ho("text", "", 0);
    return (
      (e.content = this.pending),
      (e.level = this.pendingLevel),
      this.tokens.push(e),
      (this.pending = ""),
      e
    );
  };
  ic.prototype.push = function (e, t, n) {
    this.pending && this.pushPending();
    let r = new ho(e, t, n),
      i = null;
    return (
      n < 0 && (this.level--, (this.delimiters = this._prev_delimiters.pop())),
      (r.level = this.level),
      n > 0 &&
        (this.level++,
        this._prev_delimiters.push(this.delimiters),
        (this.delimiters = []),
        (i = { delimiters: this.delimiters })),
      (this.pendingLevel = this.level),
      this.tokens.push(r),
      this.tokens_meta.push(i),
      r
    );
  };
  ic.prototype.scanDelims = function (e, t) {
    let n = this.posMax,
      r = this.src.charCodeAt(e),
      i = e > 0 ? this.src.charCodeAt(e - 1) : 32,
      o = e;
    for (; o < n && this.src.charCodeAt(o) === r; ) o++;
    let s = o - e,
      u = o < n ? this.src.charCodeAt(o) : 32,
      a = Ms(i) || As(String.fromCharCode(i)),
      l = Ms(u) || As(String.fromCharCode(u)),
      h = Ss(i),
      m = Ss(u),
      p = !m && (!l || h || a),
      b = !h && (!a || m || l);
    return {
      can_open: p && (t || !b || a),
      can_close: b && (t || !p || l),
      length: s,
    };
  };
  ic.prototype.Token = ho;
  var lT = ic;
  function lH(e) {
    switch (e) {
      case 10:
      case 33:
      case 35:
      case 36:
      case 37:
      case 38:
      case 42:
      case 43:
      case 45:
      case 58:
      case 60:
      case 61:
      case 62:
      case 64:
      case 91:
      case 92:
      case 93:
      case 94:
      case 95:
      case 96:
      case 123:
      case 125:
      case 126:
        return !0;
      default:
        return !1;
    }
  }
  function bg(e, t) {
    let n = e.pos;
    for (; n < e.posMax && !lH(e.src.charCodeAt(n)); ) n++;
    return n === e.pos
      ? !1
      : (t || (e.pending += e.src.slice(e.pos, n)), (e.pos = n), !0);
  }
  var cH = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;
  function xg(e, t) {
    if (!e.md.options.linkify || e.linkLevel > 0) return !1;
    let n = e.pos,
      r = e.posMax;
    if (
      n + 3 > r ||
      e.src.charCodeAt(n) !== 58 ||
      e.src.charCodeAt(n + 1) !== 47 ||
      e.src.charCodeAt(n + 2) !== 47
    )
      return !1;
    let i = e.pending.match(cH);
    if (!i) return !1;
    let o = i[1],
      s = e.md.linkify.matchAtStart(e.src.slice(n - o.length));
    if (!s) return !1;
    let u = s.url;
    if (u.length <= o.length) return !1;
    u = u.replace(/\*+$/, "");
    let a = e.md.normalizeLink(u);
    if (!e.md.validateLink(a)) return !1;
    if (!t) {
      e.pending = e.pending.slice(0, -o.length);
      let l = e.push("link_open", "a", 1);
      ((l.attrs = [["href", a]]), (l.markup = "linkify"), (l.info = "auto"));
      let h = e.push("text", "", 0);
      h.content = e.md.normalizeLinkText(u);
      let m = e.push("link_close", "a", -1);
      ((m.markup = "linkify"), (m.info = "auto"));
    }
    return ((e.pos += u.length - o.length), !0);
  }
  function yg(e, t) {
    let n = e.pos;
    if (e.src.charCodeAt(n) !== 10) return !1;
    let r = e.pending.length - 1,
      i = e.posMax;
    if (!t)
      if (r >= 0 && e.pending.charCodeAt(r) === 32)
        if (r >= 1 && e.pending.charCodeAt(r - 1) === 32) {
          let o = r - 1;
          for (; o >= 1 && e.pending.charCodeAt(o - 1) === 32; ) o--;
          ((e.pending = e.pending.slice(0, o)), e.push("hardbreak", "br", 0));
        } else
          ((e.pending = e.pending.slice(0, -1)), e.push("softbreak", "br", 0));
      else e.push("softbreak", "br", 0);
    for (n++; n < i && Ve(e.src.charCodeAt(n)); ) n++;
    return ((e.pos = n), !0);
  }
  var wg = [];
  for (let e = 0; e < 256; e++) wg.push(0);
  "\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function (e) {
    wg[e.charCodeAt(0)] = 1;
  });
  function vg(e, t) {
    let n = e.pos,
      r = e.posMax;
    if (e.src.charCodeAt(n) !== 92 || (n++, n >= r)) return !1;
    let i = e.src.charCodeAt(n);
    if (i === 10) {
      for (
        t || e.push("hardbreak", "br", 0), n++;
        n < r && ((i = e.src.charCodeAt(n)), !!Ve(i));
      )
        n++;
      return ((e.pos = n), !0);
    }
    let o = e.src[n];
    if (i >= 55296 && i <= 56319 && n + 1 < r) {
      let u = e.src.charCodeAt(n + 1);
      u >= 56320 && u <= 57343 && ((o += e.src[n + 1]), n++);
    }
    let s = "\\" + o;
    if (!t) {
      let u = e.push("text_special", "", 0);
      (i < 256 && wg[i] !== 0 ? (u.content = o) : (u.content = s),
        (u.markup = s),
        (u.info = "escape"));
    }
    return ((e.pos = n + 1), !0);
  }
  function _g(e, t) {
    let n = e.pos;
    if (e.src.charCodeAt(n) !== 96) return !1;
    let i = n;
    n++;
    let o = e.posMax;
    for (; n < o && e.src.charCodeAt(n) === 96; ) n++;
    let s = e.src.slice(i, n),
      u = s.length;
    if (e.backticksScanned && (e.backticks[u] || 0) <= i)
      return (t || (e.pending += s), (e.pos += u), !0);
    let a = n,
      l;
    for (; (l = e.src.indexOf("`", a)) !== -1; ) {
      for (a = l + 1; a < o && e.src.charCodeAt(a) === 96; ) a++;
      let h = a - l;
      if (h === u) {
        if (!t) {
          let m = e.push("code_inline", "code", 0);
          ((m.markup = s),
            (m.content = e.src
              .slice(n, l)
              .replace(/\n/g, " ")
              .replace(/^ (.+) $/, "$1")));
        }
        return ((e.pos = a), !0);
      }
      e.backticks[h] = l;
    }
    return ((e.backticksScanned = !0), t || (e.pending += s), (e.pos += u), !0);
  }
  function fH(e, t) {
    let n = e.pos,
      r = e.src.charCodeAt(n);
    if (t || r !== 126) return !1;
    let i = e.scanDelims(e.pos, !0),
      o = i.length,
      s = String.fromCharCode(r);
    if (o < 2) return !1;
    let u;
    o % 2 && ((u = e.push("text", "", 0)), (u.content = s), o--);
    for (let a = 0; a < o; a += 2)
      ((u = e.push("text", "", 0)),
        (u.content = s + s),
        e.delimiters.push({
          marker: r,
          length: 0,
          token: e.tokens.length - 1,
          end: -1,
          open: i.can_open,
          close: i.can_close,
        }));
    return ((e.pos += i.length), !0);
  }
  function cT(e, t) {
    let n,
      r = [],
      i = t.length;
    for (let o = 0; o < i; o++) {
      let s = t[o];
      if (s.marker !== 126 || s.end === -1) continue;
      let u = t[s.end];
      ((n = e.tokens[s.token]),
        (n.type = "s_open"),
        (n.tag = "s"),
        (n.nesting = 1),
        (n.markup = "~~"),
        (n.content = ""),
        (n = e.tokens[u.token]),
        (n.type = "s_close"),
        (n.tag = "s"),
        (n.nesting = -1),
        (n.markup = "~~"),
        (n.content = ""),
        e.tokens[u.token - 1].type === "text" &&
          e.tokens[u.token - 1].content === "~" &&
          r.push(u.token - 1));
    }
    for (; r.length; ) {
      let o = r.pop(),
        s = o + 1;
      for (; s < e.tokens.length && e.tokens[s].type === "s_close"; ) s++;
      (s--,
        o !== s &&
          ((n = e.tokens[s]), (e.tokens[s] = e.tokens[o]), (e.tokens[o] = n)));
    }
  }
  function hH(e) {
    let t = e.tokens_meta,
      n = e.tokens_meta.length;
    cT(e, e.delimiters);
    for (let r = 0; r < n; r++)
      t[r] && t[r].delimiters && cT(e, t[r].delimiters);
  }
  var kg = { tokenize: fH, postProcess: hH };
  function dH(e, t) {
    let n = e.pos,
      r = e.src.charCodeAt(n);
    if (t || (r !== 95 && r !== 42)) return !1;
    let i = e.scanDelims(e.pos, r === 42);
    for (let o = 0; o < i.length; o++) {
      let s = e.push("text", "", 0);
      ((s.content = String.fromCharCode(r)),
        e.delimiters.push({
          marker: r,
          length: i.length,
          token: e.tokens.length - 1,
          end: -1,
          open: i.can_open,
          close: i.can_close,
        }));
    }
    return ((e.pos += i.length), !0);
  }
  function fT(e, t) {
    let n = t.length;
    for (let r = n - 1; r >= 0; r--) {
      let i = t[r];
      if ((i.marker !== 95 && i.marker !== 42) || i.end === -1) continue;
      let o = t[i.end],
        s =
          r > 0 &&
          t[r - 1].end === i.end + 1 &&
          t[r - 1].marker === i.marker &&
          t[r - 1].token === i.token - 1 &&
          t[i.end + 1].token === o.token + 1,
        u = String.fromCharCode(i.marker),
        a = e.tokens[i.token];
      ((a.type = s ? "strong_open" : "em_open"),
        (a.tag = s ? "strong" : "em"),
        (a.nesting = 1),
        (a.markup = s ? u + u : u),
        (a.content = ""));
      let l = e.tokens[o.token];
      ((l.type = s ? "strong_close" : "em_close"),
        (l.tag = s ? "strong" : "em"),
        (l.nesting = -1),
        (l.markup = s ? u + u : u),
        (l.content = ""),
        s &&
          ((e.tokens[t[r - 1].token].content = ""),
          (e.tokens[t[i.end + 1].token].content = ""),
          r--));
    }
  }
  function pH(e) {
    let t = e.tokens_meta,
      n = e.tokens_meta.length;
    fT(e, e.delimiters);
    for (let r = 0; r < n; r++)
      t[r] && t[r].delimiters && fT(e, t[r].delimiters);
  }
  var Sg = { tokenize: dH, postProcess: pH };
  function Ag(e, t) {
    let n,
      r,
      i,
      o,
      s = "",
      u = "",
      a = e.pos,
      l = !0;
    if (e.src.charCodeAt(e.pos) !== 91) return !1;
    let h = e.pos,
      m = e.posMax,
      p = e.pos + 1,
      b = e.md.helpers.parseLinkLabel(e, e.pos, !0);
    if (b < 0) return !1;
    let x = b + 1;
    if (x < m && e.src.charCodeAt(x) === 40) {
      for (
        l = !1, x++;
        x < m && ((n = e.src.charCodeAt(x)), !(!Ve(n) && n !== 10));
        x++
      );
      if (x >= m) return !1;
      if (
        ((a = x),
        (i = e.md.helpers.parseLinkDestination(e.src, x, e.posMax)),
        i.ok)
      ) {
        for (
          s = e.md.normalizeLink(i.str),
            e.md.validateLink(s) ? (x = i.pos) : (s = ""),
            a = x;
          x < m && ((n = e.src.charCodeAt(x)), !(!Ve(n) && n !== 10));
          x++
        );
        if (
          ((i = e.md.helpers.parseLinkTitle(e.src, x, e.posMax)),
          x < m && a !== x && i.ok)
        )
          for (
            u = i.str, x = i.pos;
            x < m && ((n = e.src.charCodeAt(x)), !(!Ve(n) && n !== 10));
            x++
          );
      }
      ((x >= m || e.src.charCodeAt(x) !== 41) && (l = !0), x++);
    }
    if (l) {
      if (typeof e.env.references > "u") return !1;
      if (
        (x < m && e.src.charCodeAt(x) === 91
          ? ((a = x + 1),
            (x = e.md.helpers.parseLinkLabel(e, x)),
            x >= 0 ? (r = e.src.slice(a, x++)) : (x = b + 1))
          : (x = b + 1),
        r || (r = e.src.slice(p, b)),
        (o = e.env.references[Ts(r)]),
        !o)
      )
        return ((e.pos = h), !1);
      ((s = o.href), (u = o.title));
    }
    if (!t) {
      ((e.pos = p), (e.posMax = b));
      let y = e.push("link_open", "a", 1),
        v = [["href", s]];
      ((y.attrs = v),
        u && v.push(["title", u]),
        e.linkLevel++,
        e.md.inline.tokenize(e),
        e.linkLevel--,
        e.push("link_close", "a", -1));
    }
    return ((e.pos = x), (e.posMax = m), !0);
  }
  function Mg(e, t) {
    let n,
      r,
      i,
      o,
      s,
      u,
      a,
      l,
      h = "",
      m = e.pos,
      p = e.posMax;
    if (e.src.charCodeAt(e.pos) !== 33 || e.src.charCodeAt(e.pos + 1) !== 91)
      return !1;
    let b = e.pos + 2,
      x = e.md.helpers.parseLinkLabel(e, e.pos + 1, !1);
    if (x < 0) return !1;
    if (((o = x + 1), o < p && e.src.charCodeAt(o) === 40)) {
      for (
        o++;
        o < p && ((n = e.src.charCodeAt(o)), !(!Ve(n) && n !== 10));
        o++
      );
      if (o >= p) return !1;
      for (
        l = o,
          u = e.md.helpers.parseLinkDestination(e.src, o, e.posMax),
          u.ok &&
            ((h = e.md.normalizeLink(u.str)),
            e.md.validateLink(h) ? (o = u.pos) : (h = "")),
          l = o;
        o < p && ((n = e.src.charCodeAt(o)), !(!Ve(n) && n !== 10));
        o++
      );
      if (
        ((u = e.md.helpers.parseLinkTitle(e.src, o, e.posMax)),
        o < p && l !== o && u.ok)
      )
        for (
          a = u.str, o = u.pos;
          o < p && ((n = e.src.charCodeAt(o)), !(!Ve(n) && n !== 10));
          o++
        );
      else a = "";
      if (o >= p || e.src.charCodeAt(o) !== 41) return ((e.pos = m), !1);
      o++;
    } else {
      if (typeof e.env.references > "u") return !1;
      if (
        (o < p && e.src.charCodeAt(o) === 91
          ? ((l = o + 1),
            (o = e.md.helpers.parseLinkLabel(e, o)),
            o >= 0 ? (i = e.src.slice(l, o++)) : (o = x + 1))
          : (o = x + 1),
        i || (i = e.src.slice(b, x)),
        (s = e.env.references[Ts(i)]),
        !s)
      )
        return ((e.pos = m), !1);
      ((h = s.href), (a = s.title));
    }
    if (!t) {
      r = e.src.slice(b, x);
      let y = [];
      e.md.inline.parse(r, e.md, e.env, y);
      let v = e.push("image", "img", 0),
        k = [
          ["src", h],
          ["alt", ""],
        ];
      ((v.attrs = k),
        (v.children = y),
        (v.content = r),
        a && k.push(["title", a]));
    }
    return ((e.pos = o), (e.posMax = p), !0);
  }
  var mH =
      /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,
    gH = /^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;
  function Tg(e, t) {
    let n = e.pos;
    if (e.src.charCodeAt(n) !== 60) return !1;
    let r = e.pos,
      i = e.posMax;
    for (;;) {
      if (++n >= i) return !1;
      let s = e.src.charCodeAt(n);
      if (s === 60) return !1;
      if (s === 62) break;
    }
    let o = e.src.slice(r + 1, n);
    if (gH.test(o)) {
      let s = e.md.normalizeLink(o);
      if (!e.md.validateLink(s)) return !1;
      if (!t) {
        let u = e.push("link_open", "a", 1);
        ((u.attrs = [["href", s]]), (u.markup = "autolink"), (u.info = "auto"));
        let a = e.push("text", "", 0);
        a.content = e.md.normalizeLinkText(o);
        let l = e.push("link_close", "a", -1);
        ((l.markup = "autolink"), (l.info = "auto"));
      }
      return ((e.pos += o.length + 2), !0);
    }
    if (mH.test(o)) {
      let s = e.md.normalizeLink("mailto:" + o);
      if (!e.md.validateLink(s)) return !1;
      if (!t) {
        let u = e.push("link_open", "a", 1);
        ((u.attrs = [["href", s]]), (u.markup = "autolink"), (u.info = "auto"));
        let a = e.push("text", "", 0);
        a.content = e.md.normalizeLinkText(o);
        let l = e.push("link_close", "a", -1);
        ((l.markup = "autolink"), (l.info = "auto"));
      }
      return ((e.pos += o.length + 2), !0);
    }
    return !1;
  }
  function bH(e) {
    return /^<a[>\s]/i.test(e);
  }
  function xH(e) {
    return /^<\/a\s*>/i.test(e);
  }
  function yH(e) {
    let t = e | 32;
    return t >= 97 && t <= 122;
  }
  function Eg(e, t) {
    if (!e.md.options.html) return !1;
    let n = e.posMax,
      r = e.pos;
    if (e.src.charCodeAt(r) !== 60 || r + 2 >= n) return !1;
    let i = e.src.charCodeAt(r + 1);
    if (i !== 33 && i !== 63 && i !== 47 && !yH(i)) return !1;
    let o = e.src.slice(r).match(sT);
    if (!o) return !1;
    if (!t) {
      let s = e.push("html_inline", "", 0);
      ((s.content = o[0]),
        bH(s.content) && e.linkLevel++,
        xH(s.content) && e.linkLevel--);
    }
    return ((e.pos += o[0].length), !0);
  }
  var wH = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,
    vH = /^&([a-z][a-z0-9]{1,31});/i;
  function Cg(e, t) {
    let n = e.pos,
      r = e.posMax;
    if (e.src.charCodeAt(n) !== 38 || n + 1 >= r) return !1;
    if (e.src.charCodeAt(n + 1) === 35) {
      let o = e.src.slice(n).match(wH);
      if (o) {
        if (!t) {
          let s =
              o[1][0].toLowerCase() === "x"
                ? parseInt(o[1].slice(1), 16)
                : parseInt(o[1], 10),
            u = e.push("text_special", "", 0);
          ((u.content = zd(s) ? rc(s) : rc(65533)),
            (u.markup = o[0]),
            (u.info = "entity"));
        }
        return ((e.pos += o[0].length), !0);
      }
    } else {
      let o = e.src.slice(n).match(vH);
      if (o) {
        let s = i0(o[0]);
        if (s !== o[0]) {
          if (!t) {
            let u = e.push("text_special", "", 0);
            ((u.content = s), (u.markup = o[0]), (u.info = "entity"));
          }
          return ((e.pos += o[0].length), !0);
        }
      }
    }
    return !1;
  }
  function hT(e) {
    let t = {},
      n = e.length;
    if (!n) return;
    let r = 0,
      i = -2,
      o = [];
    for (let s = 0; s < n; s++) {
      let u = e[s];
      if (
        (o.push(0),
        (e[r].marker !== u.marker || i !== u.token - 1) && (r = s),
        (i = u.token),
        (u.length = u.length || 0),
        !u.close)
      )
        continue;
      t.hasOwnProperty(u.marker) || (t[u.marker] = [-1, -1, -1, -1, -1, -1]);
      let a = t[u.marker][(u.open ? 3 : 0) + (u.length % 3)],
        l = r - o[r] - 1,
        h = l;
      for (; l > a; l -= o[l] + 1) {
        let m = e[l];
        if (m.marker === u.marker && m.open && m.end < 0) {
          let p = !1;
          if (
            ((m.close || u.open) &&
              (m.length + u.length) % 3 === 0 &&
              (m.length % 3 !== 0 || u.length % 3 !== 0) &&
              (p = !0),
            !p)
          ) {
            let b = l > 0 && !e[l - 1].open ? o[l - 1] + 1 : 0;
            ((o[s] = s - l + b),
              (o[l] = b),
              (u.open = !1),
              (m.end = s),
              (m.close = !1),
              (h = -1),
              (i = -2));
            break;
          }
        }
      }
      h !== -1 && (t[u.marker][(u.open ? 3 : 0) + ((u.length || 0) % 3)] = h);
    }
  }
  function Ng(e) {
    let t = e.tokens_meta,
      n = e.tokens_meta.length;
    hT(e.delimiters);
    for (let r = 0; r < n; r++) t[r] && t[r].delimiters && hT(t[r].delimiters);
  }
  function Dg(e) {
    let t,
      n,
      r = 0,
      i = e.tokens,
      o = e.tokens.length;
    for (t = n = 0; t < o; t++)
      (i[t].nesting < 0 && r--,
        (i[t].level = r),
        i[t].nesting > 0 && r++,
        i[t].type === "text" && t + 1 < o && i[t + 1].type === "text"
          ? (i[t + 1].content = i[t].content + i[t + 1].content)
          : (t !== n && (i[n] = i[t]), n++));
    t !== n && (i.length = n);
  }
  var Ig = [
      ["text", bg],
      ["linkify", xg],
      ["newline", yg],
      ["escape", vg],
      ["backticks", _g],
      ["strikethrough", kg.tokenize],
      ["emphasis", Sg.tokenize],
      ["link", Ag],
      ["image", Mg],
      ["autolink", Tg],
      ["html_inline", Eg],
      ["entity", Cg],
    ],
    Fg = [
      ["balance_pairs", Ng],
      ["strikethrough", kg.postProcess],
      ["emphasis", Sg.postProcess],
      ["fragments_join", Dg],
    ];
  function oc() {
    this.ruler = new Es();
    for (let e = 0; e < Ig.length; e++) this.ruler.push(Ig[e][0], Ig[e][1]);
    this.ruler2 = new Es();
    for (let e = 0; e < Fg.length; e++) this.ruler2.push(Fg[e][0], Fg[e][1]);
  }
  oc.prototype.skipToken = function (e) {
    let t = e.pos,
      n = this.ruler.getRules(""),
      r = n.length,
      i = e.md.options.maxNesting,
      o = e.cache;
    if (typeof o[t] < "u") {
      e.pos = o[t];
      return;
    }
    let s = !1;
    if (e.level < i) {
      for (let u = 0; u < r; u++)
        if ((e.level++, (s = n[u](e, !0)), e.level--, s)) {
          if (t >= e.pos)
            throw new Error("inline rule didn't increment state.pos");
          break;
        }
    } else e.pos = e.posMax;
    (s || e.pos++, (o[t] = e.pos));
  };
  oc.prototype.tokenize = function (e) {
    let t = this.ruler.getRules(""),
      n = t.length,
      r = e.posMax,
      i = e.md.options.maxNesting;
    for (; e.pos < r; ) {
      let o = e.pos,
        s = !1;
      if (e.level < i) {
        for (let u = 0; u < n; u++)
          if (((s = t[u](e, !1)), s)) {
            if (o >= e.pos)
              throw new Error("inline rule didn't increment state.pos");
            break;
          }
      }
      if (s) {
        if (e.pos >= r) break;
        continue;
      }
      e.pending += e.src[e.pos++];
    }
    e.pending && e.pushPending();
  };
  oc.prototype.parse = function (e, t, n, r) {
    let i = new this.State(e, t, n, r);
    this.tokenize(i);
    let o = this.ruler2.getRules(""),
      s = o.length;
    for (let u = 0; u < s; u++) o[u](i);
  };
  oc.prototype.State = lT;
  var dT = oc;
  function pT(e) {
    let t = {};
    ((e = e || {}),
      (t.src_Any = Dd.source),
      (t.src_Cc = Id.source),
      (t.src_Z = qd.source),
      (t.src_P = Hu.source),
      (t.src_ZPCc = [t.src_Z, t.src_P, t.src_Cc].join("|")),
      (t.src_ZCc = [t.src_Z, t.src_Cc].join("|")));
    let n = "[><\uFF5C]";
    return (
      (t.src_pseudo_letter =
        "(?:(?!" + n + "|" + t.src_ZPCc + ")" + t.src_Any + ")"),
      (t.src_ip4 =
        "(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"),
      (t.src_auth = "(?:(?:(?!" + t.src_ZCc + "|[@/\\[\\]()]).)+@)?"),
      (t.src_port =
        "(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?"),
      (t.src_host_terminator =
        "(?=$|" +
        n +
        "|" +
        t.src_ZPCc +
        ")(?!" +
        (e["---"] ? "-(?!--)|" : "-|") +
        "_|:\\d|\\.-|\\.(?!$|" +
        t.src_ZPCc +
        "))"),
      (t.src_path =
        "(?:[/?#](?:(?!" +
        t.src_ZCc +
        "|" +
        n +
        `|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!` +
        t.src_ZCc +
        "|\\]).)*\\]|\\((?:(?!" +
        t.src_ZCc +
        "|[)]).)*\\)|\\{(?:(?!" +
        t.src_ZCc +
        '|[}]).)*\\}|\\"(?:(?!' +
        t.src_ZCc +
        `|["]).)+\\"|\\'(?:(?!` +
        t.src_ZCc +
        "|[']).)+\\'|\\'(?=" +
        t.src_pseudo_letter +
        "|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!" +
        t.src_ZCc +
        "|[.]|$)|" +
        (e["---"] ? "\\-(?!--(?:[^-]|$))(?:-*)|" : "\\-+|") +
        ",(?!" +
        t.src_ZCc +
        "|$)|;(?!" +
        t.src_ZCc +
        "|$)|\\!+(?!" +
        t.src_ZCc +
        "|[!]|$)|\\?(?!" +
        t.src_ZCc +
        "|[?]|$))+|\\/)?"),
      (t.src_email_name =
        '[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*'),
      (t.src_xn = "xn--[a-z0-9\\-]{1,59}"),
      (t.src_domain_root =
        "(?:" + t.src_xn + "|" + t.src_pseudo_letter + "{1,63})"),
      (t.src_domain =
        "(?:" +
        t.src_xn +
        "|(?:" +
        t.src_pseudo_letter +
        ")|(?:" +
        t.src_pseudo_letter +
        "(?:-|" +
        t.src_pseudo_letter +
        "){0,61}" +
        t.src_pseudo_letter +
        "))"),
      (t.src_host =
        "(?:(?:(?:(?:" + t.src_domain + ")\\.)*" + t.src_domain + "))"),
      (t.tpl_host_fuzzy =
        "(?:" + t.src_ip4 + "|(?:(?:(?:" + t.src_domain + ")\\.)+(?:%TLDS%)))"),
      (t.tpl_host_no_ip_fuzzy =
        "(?:(?:(?:" + t.src_domain + ")\\.)+(?:%TLDS%))"),
      (t.src_host_strict = t.src_host + t.src_host_terminator),
      (t.tpl_host_fuzzy_strict = t.tpl_host_fuzzy + t.src_host_terminator),
      (t.src_host_port_strict =
        t.src_host + t.src_port + t.src_host_terminator),
      (t.tpl_host_port_fuzzy_strict =
        t.tpl_host_fuzzy + t.src_port + t.src_host_terminator),
      (t.tpl_host_port_no_ip_fuzzy_strict =
        t.tpl_host_no_ip_fuzzy + t.src_port + t.src_host_terminator),
      (t.tpl_host_fuzzy_test =
        "localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:" +
        t.src_ZPCc +
        "|>|$))"),
      (t.tpl_email_fuzzy =
        "(^|" +
        n +
        '|"|\\(|' +
        t.src_ZCc +
        ")(" +
        t.src_email_name +
        "@" +
        t.tpl_host_fuzzy_strict +
        ")"),
      (t.tpl_link_fuzzy =
        "(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|" +
        t.src_ZPCc +
        "))((?![$+<=>^`|\uFF5C])" +
        t.tpl_host_port_fuzzy_strict +
        t.src_path +
        ")"),
      (t.tpl_link_no_ip_fuzzy =
        "(^|(?![.:/\\-_@])(?:[$+<=>^`|\uFF5C]|" +
        t.src_ZPCc +
        "))((?![$+<=>^`|\uFF5C])" +
        t.tpl_host_port_no_ip_fuzzy_strict +
        t.src_path +
        ")"),
      t
    );
  }
  function qg(e) {
    return (
      Array.prototype.slice.call(arguments, 1).forEach(function (n) {
        n &&
          Object.keys(n).forEach(function (r) {
            e[r] = n[r];
          });
      }),
      e
    );
  }
  function Ud(e) {
    return Object.prototype.toString.call(e);
  }
  function _H(e) {
    return Ud(e) === "[object String]";
  }
  function kH(e) {
    return Ud(e) === "[object Object]";
  }
  function SH(e) {
    return Ud(e) === "[object RegExp]";
  }
  function mT(e) {
    return Ud(e) === "[object Function]";
  }
  function AH(e) {
    return e.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
  }
  var bT = { fuzzyLink: !0, fuzzyEmail: !0, fuzzyIP: !1 };
  function MH(e) {
    return Object.keys(e || {}).reduce(function (t, n) {
      return t || bT.hasOwnProperty(n);
    }, !1);
  }
  var TH = {
      "http:": {
        validate: function (e, t, n) {
          let r = e.slice(t);
          return (
            n.re.http ||
              (n.re.http = new RegExp(
                "^\\/\\/" +
                  n.re.src_auth +
                  n.re.src_host_port_strict +
                  n.re.src_path,
                "i",
              )),
            n.re.http.test(r) ? r.match(n.re.http)[0].length : 0
          );
        },
      },
      "https:": "http:",
      "ftp:": "http:",
      "//": {
        validate: function (e, t, n) {
          let r = e.slice(t);
          return (
            n.re.no_http ||
              (n.re.no_http = new RegExp(
                "^" +
                  n.re.src_auth +
                  "(?:localhost|(?:(?:" +
                  n.re.src_domain +
                  ")\\.)+" +
                  n.re.src_domain_root +
                  ")" +
                  n.re.src_port +
                  n.re.src_host_terminator +
                  n.re.src_path,
                "i",
              )),
            n.re.no_http.test(r)
              ? (t >= 3 && e[t - 3] === ":") || (t >= 3 && e[t - 3] === "/")
                ? 0
                : r.match(n.re.no_http)[0].length
              : 0
          );
        },
      },
      "mailto:": {
        validate: function (e, t, n) {
          let r = e.slice(t);
          return (
            n.re.mailto ||
              (n.re.mailto = new RegExp(
                "^" + n.re.src_email_name + "@" + n.re.src_host_strict,
                "i",
              )),
            n.re.mailto.test(r) ? r.match(n.re.mailto)[0].length : 0
          );
        },
      },
    },
    EH =
      "a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",
    CH =
      "biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split(
        "|",
      );
  function NH(e) {
    ((e.__index__ = -1), (e.__text_cache__ = ""));
  }
  function DH(e) {
    return function (t, n) {
      let r = t.slice(n);
      return e.test(r) ? r.match(e)[0].length : 0;
    };
  }
  function gT() {
    return function (e, t) {
      t.normalize(e);
    };
  }
  function Hd(e) {
    let t = (e.re = pT(e.__opts__)),
      n = e.__tlds__.slice();
    (e.onCompile(),
      e.__tlds_replaced__ || n.push(EH),
      n.push(t.src_xn),
      (t.src_tlds = n.join("|")));
    function r(u) {
      return u.replace("%TLDS%", t.src_tlds);
    }
    ((t.email_fuzzy = RegExp(r(t.tpl_email_fuzzy), "i")),
      (t.link_fuzzy = RegExp(r(t.tpl_link_fuzzy), "i")),
      (t.link_no_ip_fuzzy = RegExp(r(t.tpl_link_no_ip_fuzzy), "i")),
      (t.host_fuzzy_test = RegExp(r(t.tpl_host_fuzzy_test), "i")));
    let i = [];
    e.__compiled__ = {};
    function o(u, a) {
      throw new Error('(LinkifyIt) Invalid schema "' + u + '": ' + a);
    }
    (Object.keys(e.__schemas__).forEach(function (u) {
      let a = e.__schemas__[u];
      if (a === null) return;
      let l = { validate: null, link: null };
      if (((e.__compiled__[u] = l), kH(a))) {
        (SH(a.validate)
          ? (l.validate = DH(a.validate))
          : mT(a.validate)
            ? (l.validate = a.validate)
            : o(u, a),
          mT(a.normalize)
            ? (l.normalize = a.normalize)
            : a.normalize
              ? o(u, a)
              : (l.normalize = gT()));
        return;
      }
      if (_H(a)) {
        i.push(u);
        return;
      }
      o(u, a);
    }),
      i.forEach(function (u) {
        e.__compiled__[e.__schemas__[u]] &&
          ((e.__compiled__[u].validate =
            e.__compiled__[e.__schemas__[u]].validate),
          (e.__compiled__[u].normalize =
            e.__compiled__[e.__schemas__[u]].normalize));
      }),
      (e.__compiled__[""] = { validate: null, normalize: gT() }));
    let s = Object.keys(e.__compiled__)
      .filter(function (u) {
        return u.length > 0 && e.__compiled__[u];
      })
      .map(AH)
      .join("|");
    ((e.re.schema_test = RegExp(
      "(^|(?!_)(?:[><\uFF5C]|" + t.src_ZPCc + "))(" + s + ")",
      "i",
    )),
      (e.re.schema_search = RegExp(
        "(^|(?!_)(?:[><\uFF5C]|" + t.src_ZPCc + "))(" + s + ")",
        "ig",
      )),
      (e.re.schema_at_start = RegExp("^" + e.re.schema_search.source, "i")),
      (e.re.pretest = RegExp(
        "(" +
          e.re.schema_test.source +
          ")|(" +
          e.re.host_fuzzy_test.source +
          ")|@",
        "i",
      )),
      NH(e));
  }
  function IH(e, t) {
    let n = e.__index__,
      r = e.__last_index__,
      i = e.__text_cache__.slice(n, r);
    ((this.schema = e.__schema__.toLowerCase()),
      (this.index = n + t),
      (this.lastIndex = r + t),
      (this.raw = i),
      (this.text = i),
      (this.url = i));
  }
  function Lg(e, t) {
    let n = new IH(e, t);
    return (e.__compiled__[n.schema].normalize(n, e), n);
  }
  function Zn(e, t) {
    if (!(this instanceof Zn)) return new Zn(e, t);
    (t || (MH(e) && ((t = e), (e = {}))),
      (this.__opts__ = qg({}, bT, t)),
      (this.__index__ = -1),
      (this.__last_index__ = -1),
      (this.__schema__ = ""),
      (this.__text_cache__ = ""),
      (this.__schemas__ = qg({}, TH, e)),
      (this.__compiled__ = {}),
      (this.__tlds__ = CH),
      (this.__tlds_replaced__ = !1),
      (this.re = {}),
      Hd(this));
  }
  Zn.prototype.add = function (t, n) {
    return ((this.__schemas__[t] = n), Hd(this), this);
  };
  Zn.prototype.set = function (t) {
    return ((this.__opts__ = qg(this.__opts__, t)), this);
  };
  Zn.prototype.test = function (t) {
    if (((this.__text_cache__ = t), (this.__index__ = -1), !t.length))
      return !1;
    let n, r, i, o, s, u, a, l, h;
    if (this.re.schema_test.test(t)) {
      for (
        a = this.re.schema_search, a.lastIndex = 0;
        (n = a.exec(t)) !== null;
      )
        if (((o = this.testSchemaAt(t, n[2], a.lastIndex)), o)) {
          ((this.__schema__ = n[2]),
            (this.__index__ = n.index + n[1].length),
            (this.__last_index__ = n.index + n[0].length + o));
          break;
        }
    }
    return (
      this.__opts__.fuzzyLink &&
        this.__compiled__["http:"] &&
        ((l = t.search(this.re.host_fuzzy_test)),
        l >= 0 &&
          (this.__index__ < 0 || l < this.__index__) &&
          (r = t.match(
            this.__opts__.fuzzyIP
              ? this.re.link_fuzzy
              : this.re.link_no_ip_fuzzy,
          )) !== null &&
          ((s = r.index + r[1].length),
          (this.__index__ < 0 || s < this.__index__) &&
            ((this.__schema__ = ""),
            (this.__index__ = s),
            (this.__last_index__ = r.index + r[0].length)))),
      this.__opts__.fuzzyEmail &&
        this.__compiled__["mailto:"] &&
        ((h = t.indexOf("@")),
        h >= 0 &&
          (i = t.match(this.re.email_fuzzy)) !== null &&
          ((s = i.index + i[1].length),
          (u = i.index + i[0].length),
          (this.__index__ < 0 ||
            s < this.__index__ ||
            (s === this.__index__ && u > this.__last_index__)) &&
            ((this.__schema__ = "mailto:"),
            (this.__index__ = s),
            (this.__last_index__ = u)))),
      this.__index__ >= 0
    );
  };
  Zn.prototype.pretest = function (t) {
    return this.re.pretest.test(t);
  };
  Zn.prototype.testSchemaAt = function (t, n, r) {
    return this.__compiled__[n.toLowerCase()]
      ? this.__compiled__[n.toLowerCase()].validate(t, r, this)
      : 0;
  };
  Zn.prototype.match = function (t) {
    let n = [],
      r = 0;
    this.__index__ >= 0 &&
      this.__text_cache__ === t &&
      (n.push(Lg(this, r)), (r = this.__last_index__));
    let i = r ? t.slice(r) : t;
    for (; this.test(i); )
      (n.push(Lg(this, r)),
        (i = i.slice(this.__last_index__)),
        (r += this.__last_index__));
    return n.length ? n : null;
  };
  Zn.prototype.matchAtStart = function (t) {
    if (((this.__text_cache__ = t), (this.__index__ = -1), !t.length))
      return null;
    let n = this.re.schema_at_start.exec(t);
    if (!n) return null;
    let r = this.testSchemaAt(t, n[2], n[0].length);
    return r
      ? ((this.__schema__ = n[2]),
        (this.__index__ = n.index + n[1].length),
        (this.__last_index__ = n.index + n[0].length + r),
        Lg(this, 0))
      : null;
  };
  Zn.prototype.tlds = function (t, n) {
    return (
      (t = Array.isArray(t) ? t : [t]),
      n
        ? ((this.__tlds__ = this.__tlds__
            .concat(t)
            .sort()
            .filter(function (r, i, o) {
              return r !== o[i - 1];
            })
            .reverse()),
          Hd(this),
          this)
        : ((this.__tlds__ = t.slice()),
          (this.__tlds_replaced__ = !0),
          Hd(this),
          this)
    );
  };
  Zn.prototype.normalize = function (t) {
    (t.schema || (t.url = "http://" + t.url),
      t.schema === "mailto:" &&
        !/^mailto:/i.test(t.url) &&
        (t.url = "mailto:" + t.url));
  };
  Zn.prototype.onCompile = function () {};
  var xT = Zn;
  var FH = /^xn--/,
    qH = /[^\0-\x7F]/,
    LH = /[\x2E\u3002\uFF0E\uFF61]/g,
    OH = {
      overflow: "Overflow: input needs wider integers to process",
      "not-basic": "Illegal input >= 0x80 (not a basic code point)",
      "invalid-input": "Invalid input",
    },
    Og = 35,
    Si = Math.floor,
    Bg = String.fromCharCode;
  function o0(e) {
    throw new RangeError(OH[e]);
  }
  function BH(e, t) {
    let n = [],
      r = e.length;
    for (; r--; ) n[r] = t(e[r]);
    return n;
  }
  function wT(e, t) {
    let n = e.split("@"),
      r = "";
    (n.length > 1 && ((r = n[0] + "@"), (e = n[1])), (e = e.replace(LH, ".")));
    let i = e.split("."),
      o = BH(i, t).join(".");
    return r + o;
  }
  function vT(e) {
    let t = [],
      n = 0,
      r = e.length;
    for (; n < r; ) {
      let i = e.charCodeAt(n++);
      if (i >= 55296 && i <= 56319 && n < r) {
        let o = e.charCodeAt(n++);
        (o & 64512) == 56320
          ? t.push(((i & 1023) << 10) + (o & 1023) + 65536)
          : (t.push(i), n--);
      } else t.push(i);
    }
    return t;
  }
  var zH = (e) => String.fromCodePoint(...e),
    RH = function (e) {
      return e >= 48 && e < 58
        ? 26 + (e - 48)
        : e >= 65 && e < 91
          ? e - 65
          : e >= 97 && e < 123
            ? e - 97
            : 36;
    },
    yT = function (e, t) {
      return e + 22 + 75 * (e < 26) - ((t != 0) << 5);
    },
    _T = function (e, t, n) {
      let r = 0;
      for (
        e = n ? Si(e / 700) : e >> 1, e += Si(e / t);
        e > (Og * 26) >> 1;
        r += 36
      )
        e = Si(e / Og);
      return Si(r + ((Og + 1) * e) / (e + 38));
    },
    kT = function (e) {
      let t = [],
        n = e.length,
        r = 0,
        i = 128,
        o = 72,
        s = e.lastIndexOf("-");
      s < 0 && (s = 0);
      for (let u = 0; u < s; ++u)
        (e.charCodeAt(u) >= 128 && o0("not-basic"), t.push(e.charCodeAt(u)));
      for (let u = s > 0 ? s + 1 : 0; u < n; ) {
        let a = r;
        for (let h = 1, m = 36; ; m += 36) {
          u >= n && o0("invalid-input");
          let p = RH(e.charCodeAt(u++));
          (p >= 36 && o0("invalid-input"),
            p > Si((2147483647 - r) / h) && o0("overflow"),
            (r += p * h));
          let b = m <= o ? 1 : m >= o + 26 ? 26 : m - o;
          if (p < b) break;
          let x = 36 - b;
          (h > Si(2147483647 / x) && o0("overflow"), (h *= x));
        }
        let l = t.length + 1;
        ((o = _T(r - a, l, a == 0)),
          Si(r / l) > 2147483647 - i && o0("overflow"),
          (i += Si(r / l)),
          (r %= l),
          t.splice(r++, 0, i));
      }
      return String.fromCodePoint(...t);
    },
    ST = function (e) {
      let t = [];
      e = vT(e);
      let n = e.length,
        r = 128,
        i = 0,
        o = 72;
      for (let a of e) a < 128 && t.push(Bg(a));
      let s = t.length,
        u = s;
      for (s && t.push("-"); u < n; ) {
        let a = 2147483647;
        for (let h of e) h >= r && h < a && (a = h);
        let l = u + 1;
        (a - r > Si((2147483647 - i) / l) && o0("overflow"),
          (i += (a - r) * l),
          (r = a));
        for (let h of e)
          if ((h < r && ++i > 2147483647 && o0("overflow"), h === r)) {
            let m = i;
            for (let p = 36; ; p += 36) {
              let b = p <= o ? 1 : p >= o + 26 ? 26 : p - o;
              if (m < b) break;
              let x = m - b,
                y = 36 - b;
              (t.push(Bg(yT(b + (x % y), 0))), (m = Si(x / y)));
            }
            (t.push(Bg(yT(m, 0))), (o = _T(i, l, u === s)), (i = 0), ++u);
          }
        (++i, ++r);
      }
      return t.join("");
    },
    PH = function (e) {
      return wT(e, function (t) {
        return FH.test(t) ? kT(t.slice(4).toLowerCase()) : t;
      });
    },
    $H = function (e) {
      return wT(e, function (t) {
        return qH.test(t) ? "xn--" + ST(t) : t;
      });
    },
    HH = {
      version: "2.3.1",
      ucs2: { decode: vT, encode: zH },
      decode: kT,
      encode: ST,
      toASCII: $H,
      toUnicode: PH,
    };
  var zg = HH;
  var AT = {
    options: {
      html: !1,
      xhtmlOut: !1,
      breaks: !1,
      langPrefix: "language-",
      linkify: !1,
      typographer: !1,
      quotes: "\u201C\u201D\u2018\u2019",
      highlight: null,
      maxNesting: 100,
    },
    components: { core: {}, block: {}, inline: {} },
  };
  var MT = {
    options: {
      html: !1,
      xhtmlOut: !1,
      breaks: !1,
      langPrefix: "language-",
      linkify: !1,
      typographer: !1,
      quotes: "\u201C\u201D\u2018\u2019",
      highlight: null,
      maxNesting: 20,
    },
    components: {
      core: { rules: ["normalize", "block", "inline", "text_join"] },
      block: { rules: ["paragraph"] },
      inline: { rules: ["text"], rules2: ["balance_pairs", "fragments_join"] },
    },
  };
  var TT = {
    options: {
      html: !0,
      xhtmlOut: !0,
      breaks: !1,
      langPrefix: "language-",
      linkify: !1,
      typographer: !1,
      quotes: "\u201C\u201D\u2018\u2019",
      highlight: null,
      maxNesting: 20,
    },
    components: {
      core: { rules: ["normalize", "block", "inline", "text_join"] },
      block: {
        rules: [
          "blockquote",
          "code",
          "fence",
          "heading",
          "hr",
          "html_block",
          "lheading",
          "list",
          "reference",
          "paragraph",
        ],
      },
      inline: {
        rules: [
          "autolink",
          "backticks",
          "emphasis",
          "entity",
          "escape",
          "html_inline",
          "image",
          "link",
          "newline",
          "text",
        ],
        rules2: ["balance_pairs", "emphasis", "fragments_join"],
      },
    },
  };
  var UH = { default: AT, zero: MT, commonmark: TT },
    VH = /^(vbscript|javascript|file|data):/,
    jH = /^data:image\/(gif|png|jpeg|webp);/;
  function GH(e) {
    let t = e.trim().toLowerCase();
    return VH.test(t) ? jH.test(t) : !0;
  }
  var ET = ["http:", "https:", "mailto:"];
  function YH(e) {
    let t = nc(e, !0);
    if (t.hostname && (!t.protocol || ET.indexOf(t.protocol) >= 0))
      try {
        t.hostname = zg.toASCII(t.hostname);
      } catch {}
    return Ed($u(t));
  }
  function XH(e) {
    let t = nc(e, !0);
    if (t.hostname && (!t.protocol || ET.indexOf(t.protocol) >= 0))
      try {
        t.hostname = zg.toUnicode(t.hostname);
      } catch {}
    return tc($u(t), tc.defaultChars + "%");
  }
  function yr(e, t) {
    if (!(this instanceof yr)) return new yr(e, t);
    (t || Bd(e) || ((t = e || {}), (e = "default")),
      (this.inline = new dT()),
      (this.block = new aT()),
      (this.core = new JM()),
      (this.renderer = new GM()),
      (this.linkify = new xT()),
      (this.validateLink = GH),
      (this.normalizeLink = YH),
      (this.normalizeLinkText = XH),
      (this.utils = j6),
      (this.helpers = Uu({}, W6)),
      (this.options = {}),
      this.configure(e),
      t && this.set(t));
  }
  yr.prototype.set = function (e) {
    return (Uu(this.options, e), this);
  };
  yr.prototype.configure = function (e) {
    let t = this;
    if (Bd(e)) {
      let n = e;
      if (((e = UH[n]), !e))
        throw new Error('Wrong `markdown-it` preset "' + n + '", check name');
    }
    if (!e) throw new Error("Wrong `markdown-it` preset, can't be empty");
    return (
      e.options && t.set(e.options),
      e.components &&
        Object.keys(e.components).forEach(function (n) {
          (e.components[n].rules &&
            t[n].ruler.enableOnly(e.components[n].rules),
            e.components[n].rules2 &&
              t[n].ruler2.enableOnly(e.components[n].rules2));
        }),
      this
    );
  };
  yr.prototype.enable = function (e, t) {
    let n = [];
    (Array.isArray(e) || (e = [e]),
      ["core", "block", "inline"].forEach(function (i) {
        n = n.concat(this[i].ruler.enable(e, !0));
      }, this),
      (n = n.concat(this.inline.ruler2.enable(e, !0))));
    let r = e.filter(function (i) {
      return n.indexOf(i) < 0;
    });
    if (r.length && !t)
      throw new Error("MarkdownIt. Failed to enable unknown rule(s): " + r);
    return this;
  };
  yr.prototype.disable = function (e, t) {
    let n = [];
    (Array.isArray(e) || (e = [e]),
      ["core", "block", "inline"].forEach(function (i) {
        n = n.concat(this[i].ruler.disable(e, !0));
      }, this),
      (n = n.concat(this.inline.ruler2.disable(e, !0))));
    let r = e.filter(function (i) {
      return n.indexOf(i) < 0;
    });
    if (r.length && !t)
      throw new Error("MarkdownIt. Failed to disable unknown rule(s): " + r);
    return this;
  };
  yr.prototype.use = function (e) {
    let t = [this].concat(Array.prototype.slice.call(arguments, 1));
    return (e.apply(e, t), this);
  };
  yr.prototype.parse = function (e, t) {
    if (typeof e != "string") throw new Error("Input data should be a String");
    let n = new this.core.State(e, this, t);
    return (this.core.process(n), n.tokens);
  };
  yr.prototype.render = function (e, t) {
    return (
      (t = t || {}),
      this.renderer.render(this.parse(e, t), this.options, t)
    );
  };
  yr.prototype.parseInline = function (e, t) {
    let n = new this.core.State(e, this, t);
    return ((n.inlineMode = !0), this.core.process(n), n.tokens);
  };
  yr.prototype.renderInline = function (e, t) {
    return (
      (t = t || {}),
      this.renderer.render(this.parseInline(e, t), this.options, t)
    );
  };
  var Rg = yr;
  function Pg(e) {
    function t(r, i) {
      let o = r.pos,
        s = r.src.charCodeAt(o);
      if (i || s !== 43) return !1;
      let u = r.scanDelims(r.pos, !0),
        a = u.length,
        l = String.fromCharCode(s);
      if (a < 2) return !1;
      if (a % 2) {
        let h = r.push("text", "", 0);
        ((h.content = l), a--);
      }
      for (let h = 0; h < a; h += 2) {
        let m = r.push("text", "", 0);
        ((m.content = l + l),
          !(!u.can_open && !u.can_close) &&
            r.delimiters.push({
              marker: s,
              length: 0,
              jump: h / 2,
              token: r.tokens.length - 1,
              end: -1,
              open: u.can_open,
              close: u.can_close,
            }));
      }
      return ((r.pos += u.length), !0);
    }
    function n(r, i) {
      let o,
        s = [],
        u = i.length;
      for (let a = 0; a < u; a++) {
        let l = i[a];
        if (l.marker !== 43 || l.end === -1) continue;
        let h = i[l.end];
        ((o = r.tokens[l.token]),
          (o.type = "ins_open"),
          (o.tag = "ins"),
          (o.nesting = 1),
          (o.markup = "++"),
          (o.content = ""),
          (o = r.tokens[h.token]),
          (o.type = "ins_close"),
          (o.tag = "ins"),
          (o.nesting = -1),
          (o.markup = "++"),
          (o.content = ""),
          r.tokens[h.token - 1].type === "text" &&
            r.tokens[h.token - 1].content === "+" &&
            s.push(h.token - 1));
      }
      for (; s.length; ) {
        let a = s.pop(),
          l = a + 1;
        for (; l < r.tokens.length && r.tokens[l].type === "ins_close"; ) l++;
        (l--,
          a !== l &&
            ((o = r.tokens[l]),
            (r.tokens[l] = r.tokens[a]),
            (r.tokens[a] = o)));
      }
    }
    (e.inline.ruler.before("emphasis", "ins", t),
      e.inline.ruler2.before("emphasis", "ins", function (r) {
        let i = r.tokens_meta,
          o = (r.tokens_meta || []).length;
        n(r, r.delimiters);
        for (let s = 0; s < o; s++)
          i[s] && i[s].delimiters && n(r, i[s].delimiters);
      }));
  }
  function $g(e) {
    function t(r, i) {
      let o = r.pos,
        s = r.src.charCodeAt(o);
      if (i || s !== 61) return !1;
      let u = r.scanDelims(r.pos, !0),
        a = u.length,
        l = String.fromCharCode(s);
      if (a < 2) return !1;
      if (a % 2) {
        let h = r.push("text", "", 0);
        ((h.content = l), a--);
      }
      for (let h = 0; h < a; h += 2) {
        let m = r.push("text", "", 0);
        ((m.content = l + l),
          !(!u.can_open && !u.can_close) &&
            r.delimiters.push({
              marker: s,
              length: 0,
              jump: h / 2,
              token: r.tokens.length - 1,
              end: -1,
              open: u.can_open,
              close: u.can_close,
            }));
      }
      return ((r.pos += u.length), !0);
    }
    function n(r, i) {
      let o = [],
        s = i.length;
      for (let u = 0; u < s; u++) {
        let a = i[u];
        if (a.marker !== 61 || a.end === -1) continue;
        let l = i[a.end],
          h = r.tokens[a.token];
        ((h.type = "mark_open"),
          (h.tag = "mark"),
          (h.nesting = 1),
          (h.markup = "=="),
          (h.content = ""));
        let m = r.tokens[l.token];
        ((m.type = "mark_close"),
          (m.tag = "mark"),
          (m.nesting = -1),
          (m.markup = "=="),
          (m.content = ""),
          r.tokens[l.token - 1].type === "text" &&
            r.tokens[l.token - 1].content === "=" &&
            o.push(l.token - 1));
      }
      for (; o.length; ) {
        let u = o.pop(),
          a = u + 1;
        for (; a < r.tokens.length && r.tokens[a].type === "mark_close"; ) a++;
        if ((a--, u !== a)) {
          let l = r.tokens[a];
          ((r.tokens[a] = r.tokens[u]), (r.tokens[u] = l));
        }
      }
    }
    (e.inline.ruler.before("emphasis", "mark", t),
      e.inline.ruler2.before("emphasis", "mark", function (r) {
        let i,
          o = r.tokens_meta,
          s = (r.tokens_meta || []).length;
        for (n(r, r.delimiters), i = 0; i < s; i++)
          o[i] && o[i].delimiters && n(r, o[i].delimiters);
      }));
  }
  var WH = /\\([ \\!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-])/g;
  function KH(e, t) {
    let n = e.posMax,
      r = e.pos;
    if (e.src.charCodeAt(r) !== 126 || t || r + 2 >= n) return !1;
    e.pos = r + 1;
    let i = !1;
    for (; e.pos < n; ) {
      if (e.src.charCodeAt(e.pos) === 126) {
        i = !0;
        break;
      }
      e.md.inline.skipToken(e);
    }
    if (!i || r + 1 === e.pos) return ((e.pos = r), !1);
    let o = e.src.slice(r + 1, e.pos);
    if (o.match(/(^|[^\\])(\\\\)*\s/)) return ((e.pos = r), !1);
    ((e.posMax = e.pos), (e.pos = r + 1));
    let s = e.push("sub_open", "sub", 1);
    s.markup = "~";
    let u = e.push("text", "", 0);
    u.content = o.replace(WH, "$1");
    let a = e.push("sub_close", "sub", -1);
    return ((a.markup = "~"), (e.pos = e.posMax + 1), (e.posMax = n), !0);
  }
  function Hg(e) {
    e.inline.ruler.after("emphasis", "sub", KH);
  }
  var ZH = /\\([ \\!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-])/g;
  function JH(e, t) {
    let n = e.posMax,
      r = e.pos;
    if (e.src.charCodeAt(r) !== 94 || t || r + 2 >= n) return !1;
    e.pos = r + 1;
    let i = !1;
    for (; e.pos < n; ) {
      if (e.src.charCodeAt(e.pos) === 94) {
        i = !0;
        break;
      }
      e.md.inline.skipToken(e);
    }
    if (!i || r + 1 === e.pos) return ((e.pos = r), !1);
    let o = e.src.slice(r + 1, e.pos);
    if (o.match(/(^|[^\\])(\\\\)*\s/)) return ((e.pos = r), !1);
    ((e.posMax = e.pos), (e.pos = r + 1));
    let s = e.push("sup_open", "sup", 1);
    s.markup = "^";
    let u = e.push("text", "", 0);
    u.content = o.replace(ZH, "$1");
    let a = e.push("sup_close", "sup", -1);
    return ((a.markup = "^"), (e.pos = e.posMax + 1), (e.posMax = n), !0);
  }
  function Ug(e) {
    e.inline.ruler.after("emphasis", "sup", JH);
  }
  var Vd = Symbol.for("yaml.alias"),
    jd = Symbol.for("yaml.document"),
    Rr = Symbol.for("yaml.map"),
    Vg = Symbol.for("yaml.pair"),
    Jn = Symbol.for("yaml.scalar"),
    po = Symbol.for("yaml.seq"),
    In = Symbol.for("yaml.node.type"),
    wr = (e) => !!e && typeof e == "object" && e[In] === Vd,
    Ai = (e) => !!e && typeof e == "object" && e[In] === jd,
    Pr = (e) => !!e && typeof e == "object" && e[In] === Rr,
    Ge = (e) => !!e && typeof e == "object" && e[In] === Vg,
    Re = (e) => !!e && typeof e == "object" && e[In] === Jn,
    $r = (e) => !!e && typeof e == "object" && e[In] === po;
  function at(e) {
    if (e && typeof e == "object")
      switch (e[In]) {
        case Rr:
        case po:
          return !0;
      }
    return !1;
  }
  function We(e) {
    if (e && typeof e == "object")
      switch (e[In]) {
        case Vd:
        case Rr:
        case Jn:
        case po:
          return !0;
      }
    return !1;
  }
  var Gd = (e) => (Re(e) || at(e)) && !!e.anchor;
  var Vn = Symbol("break visit"),
    CT = Symbol("skip children"),
    Mi = Symbol("remove node");
  function Ti(e, t) {
    let n = NT(t);
    Ai(e)
      ? Yu(null, e.contents, n, Object.freeze([e])) === Mi &&
        (e.contents = null)
      : Yu(null, e, n, Object.freeze([]));
  }
  Ti.BREAK = Vn;
  Ti.SKIP = CT;
  Ti.REMOVE = Mi;
  function Yu(e, t, n, r) {
    let i = DT(e, t, n, r);
    if (We(i) || Ge(i)) return (IT(e, r, i), Yu(e, i, n, r));
    if (typeof i != "symbol") {
      if (at(t)) {
        r = Object.freeze(r.concat(t));
        for (let o = 0; o < t.items.length; ++o) {
          let s = Yu(o, t.items[o], n, r);
          if (typeof s == "number") o = s - 1;
          else {
            if (s === Vn) return Vn;
            s === Mi && (t.items.splice(o, 1), (o -= 1));
          }
        }
      } else if (Ge(t)) {
        r = Object.freeze(r.concat(t));
        let o = Yu("key", t.key, n, r);
        if (o === Vn) return Vn;
        o === Mi && (t.key = null);
        let s = Yu("value", t.value, n, r);
        if (s === Vn) return Vn;
        s === Mi && (t.value = null);
      }
    }
    return i;
  }
  async function Yd(e, t) {
    let n = NT(t);
    Ai(e)
      ? (await Xu(null, e.contents, n, Object.freeze([e]))) === Mi &&
        (e.contents = null)
      : await Xu(null, e, n, Object.freeze([]));
  }
  Yd.BREAK = Vn;
  Yd.SKIP = CT;
  Yd.REMOVE = Mi;
  async function Xu(e, t, n, r) {
    let i = await DT(e, t, n, r);
    if (We(i) || Ge(i)) return (IT(e, r, i), Xu(e, i, n, r));
    if (typeof i != "symbol") {
      if (at(t)) {
        r = Object.freeze(r.concat(t));
        for (let o = 0; o < t.items.length; ++o) {
          let s = await Xu(o, t.items[o], n, r);
          if (typeof s == "number") o = s - 1;
          else {
            if (s === Vn) return Vn;
            s === Mi && (t.items.splice(o, 1), (o -= 1));
          }
        }
      } else if (Ge(t)) {
        r = Object.freeze(r.concat(t));
        let o = await Xu("key", t.key, n, r);
        if (o === Vn) return Vn;
        o === Mi && (t.key = null);
        let s = await Xu("value", t.value, n, r);
        if (s === Vn) return Vn;
        s === Mi && (t.value = null);
      }
    }
    return i;
  }
  function NT(e) {
    return typeof e == "object" && (e.Collection || e.Node || e.Value)
      ? Object.assign(
          { Alias: e.Node, Map: e.Node, Scalar: e.Node, Seq: e.Node },
          e.Value && { Map: e.Value, Scalar: e.Value, Seq: e.Value },
          e.Collection && { Map: e.Collection, Seq: e.Collection },
          e,
        )
      : e;
  }
  function DT(e, t, n, r) {
    if (typeof n == "function") return n(e, t, r);
    if (Pr(t)) return n.Map?.(e, t, r);
    if ($r(t)) return n.Seq?.(e, t, r);
    if (Ge(t)) return n.Pair?.(e, t, r);
    if (Re(t)) return n.Scalar?.(e, t, r);
    if (wr(t)) return n.Alias?.(e, t, r);
  }
  function IT(e, t, n) {
    let r = t[t.length - 1];
    if (at(r)) r.items[e] = n;
    else if (Ge(r)) e === "key" ? (r.key = n) : (r.value = n);
    else if (Ai(r)) r.contents = n;
    else {
      let i = wr(r) ? "alias" : "scalar";
      throw new Error(`Cannot replace node with ${i} parent`);
    }
  }
  var QH = {
      "!": "%21",
      ",": "%2C",
      "[": "%5B",
      "]": "%5D",
      "{": "%7B",
      "}": "%7D",
    },
    eU = (e) => e.replace(/[!,[\]{}]/g, (t) => QH[t]),
    Ei = class e {
      constructor(t, n) {
        ((this.docStart = null),
          (this.docEnd = !1),
          (this.yaml = Object.assign({}, e.defaultYaml, t)),
          (this.tags = Object.assign({}, e.defaultTags, n)));
      }
      clone() {
        let t = new e(this.yaml, this.tags);
        return ((t.docStart = this.docStart), t);
      }
      atDocument() {
        let t = new e(this.yaml, this.tags);
        switch (this.yaml.version) {
          case "1.1":
            this.atNextDocument = !0;
            break;
          case "1.2":
            ((this.atNextDocument = !1),
              (this.yaml = {
                explicit: e.defaultYaml.explicit,
                version: "1.2",
              }),
              (this.tags = Object.assign({}, e.defaultTags)));
            break;
        }
        return t;
      }
      add(t, n) {
        this.atNextDocument &&
          ((this.yaml = { explicit: e.defaultYaml.explicit, version: "1.1" }),
          (this.tags = Object.assign({}, e.defaultTags)),
          (this.atNextDocument = !1));
        let r = t.trim().split(/[ \t]+/),
          i = r.shift();
        switch (i) {
          case "%TAG": {
            if (
              r.length !== 2 &&
              (n(0, "%TAG directive should contain exactly two parts"),
              r.length < 2)
            )
              return !1;
            let [o, s] = r;
            return ((this.tags[o] = s), !0);
          }
          case "%YAML": {
            if (((this.yaml.explicit = !0), r.length !== 1))
              return (
                n(0, "%YAML directive should contain exactly one part"),
                !1
              );
            let [o] = r;
            if (o === "1.1" || o === "1.2")
              return ((this.yaml.version = o), !0);
            {
              let s = /^\d+\.\d+$/.test(o);
              return (n(6, `Unsupported YAML version ${o}`, s), !1);
            }
          }
          default:
            return (n(0, `Unknown directive ${i}`, !0), !1);
        }
      }
      tagName(t, n) {
        if (t === "!") return "!";
        if (t[0] !== "!") return (n(`Not a valid tag: ${t}`), null);
        if (t[1] === "<") {
          let s = t.slice(2, -1);
          return s === "!" || s === "!!"
            ? (n(`Verbatim tags aren't resolved, so ${t} is invalid.`), null)
            : (t[t.length - 1] !== ">" && n("Verbatim tags must end with a >"),
              s);
        }
        let [, r, i] = t.match(/^(.*!)([^!]*)$/s);
        i || n(`The ${t} tag has no suffix`);
        let o = this.tags[r];
        if (o)
          try {
            return o + decodeURIComponent(i);
          } catch (s) {
            return (n(String(s)), null);
          }
        return r === "!" ? t : (n(`Could not resolve tag: ${t}`), null);
      }
      tagString(t) {
        for (let [n, r] of Object.entries(this.tags))
          if (t.startsWith(r)) return n + eU(t.substring(r.length));
        return t[0] === "!" ? t : `!<${t}>`;
      }
      toString(t) {
        let n = this.yaml.explicit
            ? [`%YAML ${this.yaml.version || "1.2"}`]
            : [],
          r = Object.entries(this.tags),
          i;
        if (t && r.length > 0 && We(t.contents)) {
          let o = {};
          (Ti(t.contents, (s, u) => {
            We(u) && u.tag && (o[u.tag] = !0);
          }),
            (i = Object.keys(o)));
        } else i = [];
        for (let [o, s] of r)
          (o === "!!" && s === "tag:yaml.org,2002:") ||
            ((!t || i.some((u) => u.startsWith(s))) &&
              n.push(`%TAG ${o} ${s}`));
        return n.join(`
`);
      }
    };
  Ei.defaultYaml = { explicit: !1, version: "1.2" };
  Ei.defaultTags = { "!!": "tag:yaml.org,2002:" };
  function Xd(e) {
    if (/[\x00-\x19\s,[\]{}]/.test(e)) {
      let n = `Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;
      throw new Error(n);
    }
    return !0;
  }
  function jg(e) {
    let t = new Set();
    return (
      Ti(e, {
        Value(n, r) {
          r.anchor && t.add(r.anchor);
        },
      }),
      t
    );
  }
  function Gg(e, t) {
    for (let n = 1; ; ++n) {
      let r = `${e}${n}`;
      if (!t.has(r)) return r;
    }
  }
  function FT(e, t) {
    let n = [],
      r = new Map(),
      i = null;
    return {
      onAnchor: (o) => {
        (n.push(o), i ?? (i = jg(e)));
        let s = Gg(t, i);
        return (i.add(s), s);
      },
      setAnchors: () => {
        for (let o of n) {
          let s = r.get(o);
          if (typeof s == "object" && s.anchor && (Re(s.node) || at(s.node)))
            s.node.anchor = s.anchor;
          else {
            let u = new Error(
              "Failed to resolve repeated object (this should not happen)",
            );
            throw ((u.source = o), u);
          }
        }
      },
      sourceObjects: r,
    };
  }
  function s0(e, t, n, r) {
    if (r && typeof r == "object")
      if (Array.isArray(r))
        for (let i = 0, o = r.length; i < o; ++i) {
          let s = r[i],
            u = s0(e, r, String(i), s);
          u === void 0 ? delete r[i] : u !== s && (r[i] = u);
        }
      else if (r instanceof Map)
        for (let i of Array.from(r.keys())) {
          let o = r.get(i),
            s = s0(e, r, i, o);
          s === void 0 ? r.delete(i) : s !== o && r.set(i, s);
        }
      else if (r instanceof Set)
        for (let i of Array.from(r)) {
          let o = s0(e, r, i, i);
          o === void 0 ? r.delete(i) : o !== i && (r.delete(i), r.add(o));
        }
      else
        for (let [i, o] of Object.entries(r)) {
          let s = s0(e, r, i, o);
          s === void 0 ? delete r[i] : s !== o && (r[i] = s);
        }
    return e.call(t, n, r);
  }
  function Qt(e, t, n) {
    if (Array.isArray(e)) return e.map((r, i) => Qt(r, String(i), n));
    if (e && typeof e.toJSON == "function") {
      if (!n || !Gd(e)) return e.toJSON(t, n);
      let r = { aliasCount: 0, count: 1, res: void 0 };
      (n.anchors.set(e, r),
        (n.onCreate = (o) => {
          ((r.res = o), delete n.onCreate);
        }));
      let i = e.toJSON(t, n);
      return (n.onCreate && n.onCreate(i), i);
    }
    return typeof e == "bigint" && !n?.keep ? Number(e) : e;
  }
  var u0 = class {
    constructor(t) {
      Object.defineProperty(this, In, { value: t });
    }
    clone() {
      let t = Object.create(
        Object.getPrototypeOf(this),
        Object.getOwnPropertyDescriptors(this),
      );
      return (this.range && (t.range = this.range.slice()), t);
    }
    toJS(t, { mapAsMap: n, maxAliasCount: r, onAnchor: i, reviver: o } = {}) {
      if (!Ai(t)) throw new TypeError("A document argument is required");
      let s = {
          anchors: new Map(),
          doc: t,
          keep: !0,
          mapAsMap: n === !0,
          mapKeyWarned: !1,
          maxAliasCount: typeof r == "number" ? r : 100,
        },
        u = Qt(this, "", s);
      if (typeof i == "function")
        for (let { count: a, res: l } of s.anchors.values()) i(l, a);
      return typeof o == "function" ? s0(o, { "": u }, "", u) : u;
    }
  };
  var mo = class extends u0 {
    constructor(t) {
      (super(Vd),
        (this.source = t),
        Object.defineProperty(this, "tag", {
          set() {
            throw new Error("Alias nodes cannot have tags");
          },
        }));
    }
    resolve(t, n) {
      let r;
      n?.aliasResolveCache
        ? (r = n.aliasResolveCache)
        : ((r = []),
          Ti(t, {
            Node: (o, s) => {
              (wr(s) || Gd(s)) && r.push(s);
            },
          }),
          n && (n.aliasResolveCache = r));
      let i;
      for (let o of r) {
        if (o === this) break;
        o.anchor === this.source && (i = o);
      }
      return i;
    }
    toJSON(t, n) {
      if (!n) return { source: this.source };
      let { anchors: r, doc: i, maxAliasCount: o } = n,
        s = this.resolve(i, n);
      if (!s) {
        let a = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
        throw new ReferenceError(a);
      }
      let u = r.get(s);
      if ((u || (Qt(s, null, n), (u = r.get(s))), u?.res === void 0)) {
        let a = "This should not happen: Alias anchor was not resolved?";
        throw new ReferenceError(a);
      }
      if (
        o >= 0 &&
        ((u.count += 1),
        u.aliasCount === 0 && (u.aliasCount = Wd(i, s, r)),
        u.count * u.aliasCount > o)
      ) {
        let a = "Excessive alias count indicates a resource exhaustion attack";
        throw new ReferenceError(a);
      }
      return u.res;
    }
    toString(t, n, r) {
      let i = `*${this.source}`;
      if (t) {
        if (
          (Xd(this.source),
          t.options.verifyAliasOrder && !t.anchors.has(this.source))
        ) {
          let o = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
          throw new Error(o);
        }
        if (t.implicitKey) return `${i} `;
      }
      return i;
    }
  };
  function Wd(e, t, n) {
    if (wr(t)) {
      let r = t.resolve(e),
        i = n && r && n.get(r);
      return i ? i.count * i.aliasCount : 0;
    } else if (at(t)) {
      let r = 0;
      for (let i of t.items) {
        let o = Wd(e, i, n);
        o > r && (r = o);
      }
      return r;
    } else if (Ge(t)) {
      let r = Wd(e, t.key, n),
        i = Wd(e, t.value, n);
      return Math.max(r, i);
    }
    return 1;
  }
  var Kd = (e) => !e || (typeof e != "function" && typeof e != "object"),
    ke = class extends u0 {
      constructor(t) {
        (super(Jn), (this.value = t));
      }
      toJSON(t, n) {
        return n?.keep ? this.value : Qt(this.value, t, n);
      }
      toString() {
        return String(this.value);
      }
    };
  ke.BLOCK_FOLDED = "BLOCK_FOLDED";
  ke.BLOCK_LITERAL = "BLOCK_LITERAL";
  ke.PLAIN = "PLAIN";
  ke.QUOTE_DOUBLE = "QUOTE_DOUBLE";
  ke.QUOTE_SINGLE = "QUOTE_SINGLE";
  var tU = "tag:yaml.org,2002:";
  function nU(e, t, n) {
    if (t) {
      let r = n.filter((o) => o.tag === t),
        i = r.find((o) => !o.format) ?? r[0];
      if (!i) throw new Error(`Tag ${t} not found`);
      return i;
    }
    return n.find((r) => r.identify?.(e) && !r.format);
  }
  function go(e, t, n) {
    if ((Ai(e) && (e = e.contents), We(e))) return e;
    if (Ge(e)) {
      let m = n.schema[Rr].createNode?.(n.schema, null, n);
      return (m.items.push(e), m);
    }
    (e instanceof String ||
      e instanceof Number ||
      e instanceof Boolean ||
      (typeof BigInt < "u" && e instanceof BigInt)) &&
      (e = e.valueOf());
    let {
        aliasDuplicateObjects: r,
        onAnchor: i,
        onTagObj: o,
        schema: s,
        sourceObjects: u,
      } = n,
      a;
    if (r && e && typeof e == "object") {
      if (((a = u.get(e)), a))
        return (a.anchor ?? (a.anchor = i(e)), new mo(a.anchor));
      ((a = { anchor: null, node: null }), u.set(e, a));
    }
    t?.startsWith("!!") && (t = tU + t.slice(2));
    let l = nU(e, t, s.tags);
    if (!l) {
      if (
        (e && typeof e.toJSON == "function" && (e = e.toJSON()),
        !e || typeof e != "object")
      ) {
        let m = new ke(e);
        return (a && (a.node = m), m);
      }
      l =
        e instanceof Map ? s[Rr] : Symbol.iterator in Object(e) ? s[po] : s[Rr];
    }
    o && (o(l), delete n.onTagObj);
    let h = l?.createNode
      ? l.createNode(n.schema, e, n)
      : typeof l?.nodeClass?.from == "function"
        ? l.nodeClass.from(n.schema, e, n)
        : new ke(e);
    return (
      t ? (h.tag = t) : l.default || (h.tag = l.tag),
      a && (a.node = h),
      h
    );
  }
  function sc(e, t, n) {
    let r = n;
    for (let i = t.length - 1; i >= 0; --i) {
      let o = t[i];
      if (typeof o == "number" && Number.isInteger(o) && o >= 0) {
        let s = [];
        ((s[o] = r), (r = s));
      } else r = new Map([[o, r]]);
    }
    return go(r, void 0, {
      aliasDuplicateObjects: !1,
      keepUndefined: !1,
      onAnchor: () => {
        throw new Error("This should not happen, please report a bug.");
      },
      schema: e,
      sourceObjects: new Map(),
    });
  }
  var Ku = (e) =>
      e == null || (typeof e == "object" && !!e[Symbol.iterator]().next().done),
    Wu = class extends u0 {
      constructor(t, n) {
        (super(t),
          Object.defineProperty(this, "schema", {
            value: n,
            configurable: !0,
            enumerable: !1,
            writable: !0,
          }));
      }
      clone(t) {
        let n = Object.create(
          Object.getPrototypeOf(this),
          Object.getOwnPropertyDescriptors(this),
        );
        return (
          t && (n.schema = t),
          (n.items = n.items.map((r) => (We(r) || Ge(r) ? r.clone(t) : r))),
          this.range && (n.range = this.range.slice()),
          n
        );
      }
      addIn(t, n) {
        if (Ku(t)) this.add(n);
        else {
          let [r, ...i] = t,
            o = this.get(r, !0);
          if (at(o)) o.addIn(i, n);
          else if (o === void 0 && this.schema)
            this.set(r, sc(this.schema, i, n));
          else
            throw new Error(
              `Expected YAML collection at ${r}. Remaining path: ${i}`,
            );
        }
      }
      deleteIn(t) {
        let [n, ...r] = t;
        if (r.length === 0) return this.delete(n);
        let i = this.get(n, !0);
        if (at(i)) return i.deleteIn(r);
        throw new Error(
          `Expected YAML collection at ${n}. Remaining path: ${r}`,
        );
      }
      getIn(t, n) {
        let [r, ...i] = t,
          o = this.get(r, !0);
        return i.length === 0
          ? !n && Re(o)
            ? o.value
            : o
          : at(o)
            ? o.getIn(i, n)
            : void 0;
      }
      hasAllNullValues(t) {
        return this.items.every((n) => {
          if (!Ge(n)) return !1;
          let r = n.value;
          return (
            r == null ||
            (t &&
              Re(r) &&
              r.value == null &&
              !r.commentBefore &&
              !r.comment &&
              !r.tag)
          );
        });
      }
      hasIn(t) {
        let [n, ...r] = t;
        if (r.length === 0) return this.has(n);
        let i = this.get(n, !0);
        return at(i) ? i.hasIn(r) : !1;
      }
      setIn(t, n) {
        let [r, ...i] = t;
        if (i.length === 0) this.set(r, n);
        else {
          let o = this.get(r, !0);
          if (at(o)) o.setIn(i, n);
          else if (o === void 0 && this.schema)
            this.set(r, sc(this.schema, i, n));
          else
            throw new Error(
              `Expected YAML collection at ${r}. Remaining path: ${i}`,
            );
        }
      }
    };
  var qT = (e) => e.replace(/^(?!$)(?: $)?/gm, "#");
  function vr(e, t) {
    return /^\n+$/.test(e)
      ? e.substring(1)
      : t
        ? e.replace(/^(?! *$)/gm, t)
        : e;
  }
  var Ci = (e, t, n) =>
    e.endsWith(`
`)
      ? vr(n, t)
      : n.includes(`
`)
        ? `
` + vr(n, t)
        : (e.endsWith(" ") ? "" : " ") + n;
  var Yg = "flow",
    Zd = "block",
    uc = "quoted";
  function ac(
    e,
    t,
    n = "flow",
    {
      indentAtStart: r,
      lineWidth: i = 80,
      minContentWidth: o = 20,
      onFold: s,
      onOverflow: u,
    } = {},
  ) {
    if (!i || i < 0) return e;
    i < o && (o = 0);
    let a = Math.max(1 + o, 1 + i - t.length);
    if (e.length <= a) return e;
    let l = [],
      h = {},
      m = i - t.length;
    typeof r == "number" && (r > i - Math.max(2, o) ? l.push(0) : (m = i - r));
    let p,
      b,
      x = !1,
      y = -1,
      v = -1,
      k = -1;
    n === Zd && ((y = LT(e, y, t.length)), y !== -1 && (m = y + a));
    for (let E; (E = e[(y += 1)]); ) {
      if (n === uc && E === "\\") {
        switch (((v = y), e[y + 1])) {
          case "x":
            y += 3;
            break;
          case "u":
            y += 5;
            break;
          case "U":
            y += 9;
            break;
          default:
            y += 1;
        }
        k = y;
      }
      if (
        E ===
        `
`
      )
        (n === Zd && (y = LT(e, y, t.length)),
          (m = y + t.length + a),
          (p = void 0));
      else {
        if (
          E === " " &&
          b &&
          b !== " " &&
          b !==
            `
` &&
          b !== "	"
        ) {
          let M = e[y + 1];
          M &&
            M !== " " &&
            M !==
              `
` &&
            M !== "	" &&
            (p = y);
        }
        if (y >= m)
          if (p) (l.push(p), (m = p + a), (p = void 0));
          else if (n === uc) {
            for (; b === " " || b === "	"; )
              ((b = E), (E = e[(y += 1)]), (x = !0));
            let M = y > k + 1 ? y - 2 : v - 1;
            if (h[M]) return e;
            (l.push(M), (h[M] = !0), (m = M + a), (p = void 0));
          } else x = !0;
      }
      b = E;
    }
    if ((x && u && u(), l.length === 0)) return e;
    s && s();
    let T = e.slice(0, l[0]);
    for (let E = 0; E < l.length; ++E) {
      let M = l[E],
        D = l[E + 1] || e.length;
      M === 0
        ? (T = `
${t}${e.slice(0, D)}`)
        : (n === uc && h[M] && (T += `${e[M]}\\`),
          (T += `
${t}${e.slice(M + 1, D)}`));
    }
    return T;
  }
  function LT(e, t, n) {
    let r = t,
      i = t + 1,
      o = e[i];
    for (; o === " " || o === "	"; )
      if (t < i + n) o = e[++t];
      else {
        do o = e[++t];
        while (
          o &&
          o !==
            `
`
        );
        ((r = t), (i = t + 1), (o = e[i]));
      }
    return r;
  }
  var Qd = (e, t) => ({
      indentAtStart: t ? e.indent.length : e.indentAtStart,
      lineWidth: e.options.lineWidth,
      minContentWidth: e.options.minContentWidth,
    }),
    ep = (e) => /^(%|---|\.\.\.)/m.test(e);
  function rU(e, t, n) {
    if (!t || t < 0) return !1;
    let r = t - n,
      i = e.length;
    if (i <= r) return !1;
    for (let o = 0, s = 0; o < i; ++o)
      if (
        e[o] ===
        `
`
      ) {
        if (o - s > r) return !0;
        if (((s = o + 1), i - s <= r)) return !1;
      }
    return !0;
  }
  function lc(e, t) {
    let n = JSON.stringify(e);
    if (t.options.doubleQuotedAsJSON) return n;
    let { implicitKey: r } = t,
      i = t.options.doubleQuotedMinMultiLineLength,
      o = t.indent || (ep(e) ? "  " : ""),
      s = "",
      u = 0;
    for (let a = 0, l = n[a]; l; l = n[++a])
      if (
        (l === " " &&
          n[a + 1] === "\\" &&
          n[a + 2] === "n" &&
          ((s += n.slice(u, a) + "\\ "), (a += 1), (u = a), (l = "\\")),
        l === "\\")
      )
        switch (n[a + 1]) {
          case "u":
            {
              s += n.slice(u, a);
              let h = n.substr(a + 2, 4);
              switch (h) {
                case "0000":
                  s += "\\0";
                  break;
                case "0007":
                  s += "\\a";
                  break;
                case "000b":
                  s += "\\v";
                  break;
                case "001b":
                  s += "\\e";
                  break;
                case "0085":
                  s += "\\N";
                  break;
                case "00a0":
                  s += "\\_";
                  break;
                case "2028":
                  s += "\\L";
                  break;
                case "2029":
                  s += "\\P";
                  break;
                default:
                  h.substr(0, 2) === "00"
                    ? (s += "\\x" + h.substr(2))
                    : (s += n.substr(a, 6));
              }
              ((a += 5), (u = a + 1));
            }
            break;
          case "n":
            if (r || n[a + 2] === '"' || n.length < i) a += 1;
            else {
              for (
                s +=
                  n.slice(u, a) +
                  `

`;
                n[a + 2] === "\\" && n[a + 3] === "n" && n[a + 4] !== '"';
              )
                ((s += `
`),
                  (a += 2));
              ((s += o),
                n[a + 2] === " " && (s += "\\"),
                (a += 1),
                (u = a + 1));
            }
            break;
          default:
            a += 1;
        }
    return ((s = u ? s + n.slice(u) : n), r ? s : ac(s, o, uc, Qd(t, !1)));
  }
  function Xg(e, t) {
    if (
      t.options.singleQuote === !1 ||
      (t.implicitKey &&
        e.includes(`
`)) ||
      /[ \t]\n|\n[ \t]/.test(e)
    )
      return lc(e, t);
    let n = t.indent || (ep(e) ? "  " : ""),
      r =
        "'" +
        e.replace(/'/g, "''").replace(
          /\n+/g,
          `$&
${n}`,
        ) +
        "'";
    return t.implicitKey ? r : ac(r, n, Yg, Qd(t, !1));
  }
  function Zu(e, t) {
    let { singleQuote: n } = t.options,
      r;
    if (n === !1) r = lc;
    else {
      let i = e.includes('"'),
        o = e.includes("'");
      i && !o ? (r = Xg) : o && !i ? (r = lc) : (r = n ? Xg : lc);
    }
    return r(e, t);
  }
  var Wg;
  try {
    Wg = new RegExp(
      `(^|(?<!
))
+(?!
|$)`,
      "g",
    );
  } catch {
    Wg = /\n+(?!\n|$)/g;
  }
  function Jd({ comment: e, type: t, value: n }, r, i, o) {
    let { blockQuote: s, commentString: u, lineWidth: a } = r.options;
    if (!s || /\n[\t ]+$/.test(n)) return Zu(n, r);
    let l = r.indent || (r.forceBlockIndent || ep(n) ? "  " : ""),
      h =
        s === "literal"
          ? !0
          : s === "folded" || t === ke.BLOCK_FOLDED
            ? !1
            : t === ke.BLOCK_LITERAL
              ? !0
              : !rU(n, a, l.length);
    if (!n)
      return h
        ? `|
`
        : `>
`;
    let m, p;
    for (p = n.length; p > 0; --p) {
      let D = n[p - 1];
      if (
        D !==
          `
` &&
        D !== "	" &&
        D !== " "
      )
        break;
    }
    let b = n.substring(p),
      x = b.indexOf(`
`);
    (x === -1
      ? (m = "-")
      : n === b || x !== b.length - 1
        ? ((m = "+"), o && o())
        : (m = ""),
      b &&
        ((n = n.slice(0, -b.length)),
        b[b.length - 1] ===
          `
` && (b = b.slice(0, -1)),
        (b = b.replace(Wg, `$&${l}`))));
    let y = !1,
      v,
      k = -1;
    for (v = 0; v < n.length; ++v) {
      let D = n[v];
      if (D === " ") y = !0;
      else if (
        D ===
        `
`
      )
        k = v;
      else break;
    }
    let T = n.substring(0, k < v ? k + 1 : v);
    T && ((n = n.substring(T.length)), (T = T.replace(/\n+/g, `$&${l}`)));
    let M = (y ? (l ? "2" : "1") : "") + m;
    if ((e && ((M += " " + u(e.replace(/ ?[\r\n]+/g, " "))), i && i()), !h)) {
      let D = n
          .replace(
            /\n+/g,
            `
$&`,
          )
          .replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2")
          .replace(/\n+/g, `$&${l}`),
        I = !1,
        P = Qd(r, !0);
      s !== "folded" &&
        t !== ke.BLOCK_FOLDED &&
        (P.onOverflow = () => {
          I = !0;
        });
      let O = ac(`${T}${D}${b}`, l, Zd, P);
      if (!I)
        return `>${M}
${l}${O}`;
    }
    return (
      (n = n.replace(/\n+/g, `$&${l}`)),
      `|${M}
${l}${T}${n}${b}`
    );
  }
  function iU(e, t, n, r) {
    let { type: i, value: o } = e,
      {
        actualString: s,
        implicitKey: u,
        indent: a,
        indentStep: l,
        inFlow: h,
      } = t;
    if (
      (u &&
        o.includes(`
`)) ||
      (h && /[[\]{},]/.test(o))
    )
      return Zu(o, t);
    if (
      /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(
        o,
      )
    )
      return u ||
        h ||
        !o.includes(`
`)
        ? Zu(o, t)
        : Jd(e, t, n, r);
    if (
      !u &&
      !h &&
      i !== ke.PLAIN &&
      o.includes(`
`)
    )
      return Jd(e, t, n, r);
    if (ep(o)) {
      if (a === "") return ((t.forceBlockIndent = !0), Jd(e, t, n, r));
      if (u && a === l) return Zu(o, t);
    }
    let m = o.replace(
      /\n+/g,
      `$&
${a}`,
    );
    if (s) {
      let p = (y) =>
          y.default && y.tag !== "tag:yaml.org,2002:str" && y.test?.test(m),
        { compat: b, tags: x } = t.doc.schema;
      if (x.some(p) || b?.some(p)) return Zu(o, t);
    }
    return u ? m : ac(m, a, Yg, Qd(t, !1));
  }
  function Cs(e, t, n, r) {
    let { implicitKey: i, inFlow: o } = t,
      s =
        typeof e.value == "string"
          ? e
          : Object.assign({}, e, { value: String(e.value) }),
      { type: u } = e;
    u !== ke.QUOTE_DOUBLE &&
      /[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(s.value) &&
      (u = ke.QUOTE_DOUBLE);
    let a = (h) => {
        switch (h) {
          case ke.BLOCK_FOLDED:
          case ke.BLOCK_LITERAL:
            return i || o ? Zu(s.value, t) : Jd(s, t, n, r);
          case ke.QUOTE_DOUBLE:
            return lc(s.value, t);
          case ke.QUOTE_SINGLE:
            return Xg(s.value, t);
          case ke.PLAIN:
            return iU(s, t, n, r);
          default:
            return null;
        }
      },
      l = a(u);
    if (l === null) {
      let { defaultKeyType: h, defaultStringType: m } = t.options,
        p = (i && h) || m;
      if (((l = a(p)), l === null))
        throw new Error(`Unsupported default string type ${p}`);
    }
    return l;
  }
  function tp(e, t) {
    let n = Object.assign(
        {
          blockQuote: !0,
          commentString: qT,
          defaultKeyType: null,
          defaultStringType: "PLAIN",
          directives: null,
          doubleQuotedAsJSON: !1,
          doubleQuotedMinMultiLineLength: 40,
          falseStr: "false",
          flowCollectionPadding: !0,
          indentSeq: !0,
          lineWidth: 80,
          minContentWidth: 20,
          nullStr: "null",
          simpleKeys: !1,
          singleQuote: null,
          trueStr: "true",
          verifyAliasOrder: !0,
        },
        e.schema.toStringOptions,
        t,
      ),
      r;
    switch (n.collectionStyle) {
      case "block":
        r = !1;
        break;
      case "flow":
        r = !0;
        break;
      default:
        r = null;
    }
    return {
      anchors: new Set(),
      doc: e,
      flowCollectionPadding: n.flowCollectionPadding ? " " : "",
      indent: "",
      indentStep: typeof n.indent == "number" ? " ".repeat(n.indent) : "  ",
      inFlow: r,
      options: n,
    };
  }
  function oU(e, t) {
    if (t.tag) {
      let i = e.filter((o) => o.tag === t.tag);
      if (i.length > 0) return i.find((o) => o.format === t.format) ?? i[0];
    }
    let n, r;
    if (Re(t)) {
      r = t.value;
      let i = e.filter((o) => o.identify?.(r));
      if (i.length > 1) {
        let o = i.filter((s) => s.test);
        o.length > 0 && (i = o);
      }
      n = i.find((o) => o.format === t.format) ?? i.find((o) => !o.format);
    } else
      ((r = t), (n = e.find((i) => i.nodeClass && r instanceof i.nodeClass)));
    if (!n) {
      let i = r?.constructor?.name ?? (r === null ? "null" : typeof r);
      throw new Error(`Tag not resolved for ${i} value`);
    }
    return n;
  }
  function sU(e, t, { anchors: n, doc: r }) {
    if (!r.directives) return "";
    let i = [],
      o = (Re(e) || at(e)) && e.anchor;
    o && Xd(o) && (n.add(o), i.push(`&${o}`));
    let s = e.tag ?? (t.default ? null : t.tag);
    return (s && i.push(r.directives.tagString(s)), i.join(" "));
  }
  function bo(e, t, n, r) {
    if (Ge(e)) return e.toString(t, n, r);
    if (wr(e)) {
      if (t.doc.directives) return e.toString(t);
      if (t.resolvedAliases?.has(e))
        throw new TypeError(
          "Cannot stringify circular structure without alias nodes",
        );
      (t.resolvedAliases
        ? t.resolvedAliases.add(e)
        : (t.resolvedAliases = new Set([e])),
        (e = e.resolve(t.doc)));
    }
    let i,
      o = We(e) ? e : t.doc.createNode(e, { onTagObj: (a) => (i = a) });
    i ?? (i = oU(t.doc.schema.tags, o));
    let s = sU(o, i, t);
    s.length > 0 && (t.indentAtStart = (t.indentAtStart ?? 0) + s.length + 1);
    let u =
      typeof i.stringify == "function"
        ? i.stringify(o, t, n, r)
        : Re(o)
          ? Cs(o, t, n, r)
          : o.toString(t, n, r);
    return s
      ? Re(o) || u[0] === "{" || u[0] === "["
        ? `${s} ${u}`
        : `${s}
${t.indent}${u}`
      : u;
  }
  function OT({ key: e, value: t }, n, r, i) {
    let {
        allNullValues: o,
        doc: s,
        indent: u,
        indentStep: a,
        options: { commentString: l, indentSeq: h, simpleKeys: m },
      } = n,
      p = (We(e) && e.comment) || null;
    if (m) {
      if (p)
        throw new Error("With simple keys, key nodes cannot have comments");
      if (at(e) || (!We(e) && typeof e == "object")) {
        let P = "With simple keys, collection cannot be used as a key value";
        throw new Error(P);
      }
    }
    let b =
      !m &&
      (!e ||
        (p && t == null && !n.inFlow) ||
        at(e) ||
        (Re(e)
          ? e.type === ke.BLOCK_FOLDED || e.type === ke.BLOCK_LITERAL
          : typeof e == "object"));
    n = Object.assign({}, n, {
      allNullValues: !1,
      implicitKey: !b && (m || !o),
      indent: u + a,
    });
    let x = !1,
      y = !1,
      v = bo(
        e,
        n,
        () => (x = !0),
        () => (y = !0),
      );
    if (!b && !n.inFlow && v.length > 1024) {
      if (m)
        throw new Error(
          "With simple keys, single line scalar must not span more than 1024 characters",
        );
      b = !0;
    }
    if (n.inFlow) {
      if (o || t == null)
        return (x && r && r(), v === "" ? "?" : b ? `? ${v}` : v);
    } else if ((o && !m) || (t == null && b))
      return (
        (v = `? ${v}`),
        p && !x ? (v += Ci(v, n.indent, l(p))) : y && i && i(),
        v
      );
    (x && (p = null),
      b
        ? (p && (v += Ci(v, n.indent, l(p))),
          (v = `? ${v}
${u}:`))
        : ((v = `${v}:`), p && (v += Ci(v, n.indent, l(p)))));
    let k, T, E;
    (We(t)
      ? ((k = !!t.spaceBefore), (T = t.commentBefore), (E = t.comment))
      : ((k = !1),
        (T = null),
        (E = null),
        t && typeof t == "object" && (t = s.createNode(t))),
      (n.implicitKey = !1),
      !b && !p && Re(t) && (n.indentAtStart = v.length + 1),
      (y = !1),
      !h &&
        a.length >= 2 &&
        !n.inFlow &&
        !b &&
        $r(t) &&
        !t.flow &&
        !t.tag &&
        !t.anchor &&
        (n.indent = n.indent.substring(2)));
    let M = !1,
      D = bo(
        t,
        n,
        () => (M = !0),
        () => (y = !0),
      ),
      I = " ";
    if (p || k || T) {
      if (
        ((I = k
          ? `
`
          : ""),
        T)
      ) {
        let P = l(T);
        I += `
${vr(P, n.indent)}`;
      }
      D === "" && !n.inFlow
        ? I ===
            `
` &&
          E &&
          (I = `

`)
        : (I += `
${n.indent}`);
    } else if (!b && at(t)) {
      let P = D[0],
        O = D.indexOf(`
`),
        H = O !== -1,
        U = n.inFlow ?? t.flow ?? t.items.length === 0;
      if (H || !U) {
        let j = !1;
        if (H && (P === "&" || P === "!")) {
          let Z = D.indexOf(" ");
          (P === "&" &&
            Z !== -1 &&
            Z < O &&
            D[Z + 1] === "!" &&
            (Z = D.indexOf(" ", Z + 1)),
            (Z === -1 || O < Z) && (j = !0));
        }
        j ||
          (I = `
${n.indent}`);
      }
    } else
      (D === "" ||
        D[0] ===
          `
`) &&
        (I = "");
    return (
      (v += I + D),
      n.inFlow
        ? M && r && r()
        : E && !M
          ? (v += Ci(v, n.indent, l(E)))
          : y && i && i(),
      v
    );
  }
  function np(e, t) {
    (e === "debug" || e === "warn") && console.warn(t);
  }
  var rp = "<<",
    Hr = {
      identify: (e) =>
        e === rp || (typeof e == "symbol" && e.description === rp),
      default: "key",
      tag: "tag:yaml.org,2002:merge",
      test: /^<<$/,
      resolve: () => Object.assign(new ke(Symbol(rp)), { addToJSMap: Zg }),
      stringify: () => rp,
    },
    BT = (e, t) =>
      (Hr.identify(t) ||
        (Re(t) && (!t.type || t.type === ke.PLAIN) && Hr.identify(t.value))) &&
      e?.doc.schema.tags.some((n) => n.tag === Hr.tag && n.default);
  function Zg(e, t, n) {
    if (((n = e && wr(n) ? n.resolve(e.doc) : n), $r(n)))
      for (let r of n.items) Kg(e, t, r);
    else if (Array.isArray(n)) for (let r of n) Kg(e, t, r);
    else Kg(e, t, n);
  }
  function Kg(e, t, n) {
    let r = e && wr(n) ? n.resolve(e.doc) : n;
    if (!Pr(r)) throw new Error("Merge sources must be maps or map aliases");
    let i = r.toJSON(null, e, Map);
    for (let [o, s] of i)
      t instanceof Map
        ? t.has(o) || t.set(o, s)
        : t instanceof Set
          ? t.add(o)
          : Object.prototype.hasOwnProperty.call(t, o) ||
            Object.defineProperty(t, o, {
              value: s,
              writable: !0,
              enumerable: !0,
              configurable: !0,
            });
    return t;
  }
  function ip(e, t, { key: n, value: r }) {
    if (We(n) && n.addToJSMap) n.addToJSMap(e, t, r);
    else if (BT(e, n)) Zg(e, t, r);
    else {
      let i = Qt(n, "", e);
      if (t instanceof Map) t.set(i, Qt(r, i, e));
      else if (t instanceof Set) t.add(i);
      else {
        let o = uU(n, i, e),
          s = Qt(r, o, e);
        o in t
          ? Object.defineProperty(t, o, {
              value: s,
              writable: !0,
              enumerable: !0,
              configurable: !0,
            })
          : (t[o] = s);
      }
    }
    return t;
  }
  function uU(e, t, n) {
    if (t === null) return "";
    if (typeof t != "object") return String(t);
    if (We(e) && n?.doc) {
      let r = tp(n.doc, {});
      r.anchors = new Set();
      for (let o of n.anchors.keys()) r.anchors.add(o.anchor);
      ((r.inFlow = !0), (r.inStringifyKey = !0));
      let i = e.toString(r);
      if (!n.mapKeyWarned) {
        let o = JSON.stringify(i);
        (o.length > 40 && (o = o.substring(0, 36) + '..."'),
          np(
            n.doc.options.logLevel,
            `Keys with collection values will be stringified due to JS Object restrictions: ${o}. Set mapAsMap: true to use object keys.`,
          ),
          (n.mapKeyWarned = !0));
      }
      return i;
    }
    return JSON.stringify(t);
  }
  function Ju(e, t, n) {
    let r = go(e, void 0, n),
      i = go(t, void 0, n);
    return new Rt(r, i);
  }
  var Rt = class e {
    constructor(t, n = null) {
      (Object.defineProperty(this, In, { value: Vg }),
        (this.key = t),
        (this.value = n));
    }
    clone(t) {
      let { key: n, value: r } = this;
      return (
        We(n) && (n = n.clone(t)),
        We(r) && (r = r.clone(t)),
        new e(n, r)
      );
    }
    toJSON(t, n) {
      let r = n?.mapAsMap ? new Map() : {};
      return ip(n, r, this);
    }
    toString(t, n, r) {
      return t?.doc ? OT(this, t, n, r) : JSON.stringify(this);
    }
  };
  function sp(e, t, n) {
    return ((t.inFlow ?? e.flow) ? lU : aU)(e, t, n);
  }
  function aU(
    { comment: e, items: t },
    n,
    {
      blockItemPrefix: r,
      flowChars: i,
      itemIndent: o,
      onChompKeep: s,
      onComment: u,
    },
  ) {
    let {
        indent: a,
        options: { commentString: l },
      } = n,
      h = Object.assign({}, n, { indent: o, type: null }),
      m = !1,
      p = [];
    for (let x = 0; x < t.length; ++x) {
      let y = t[x],
        v = null;
      if (We(y))
        (!m && y.spaceBefore && p.push(""),
          op(n, p, y.commentBefore, m),
          y.comment && (v = y.comment));
      else if (Ge(y)) {
        let T = We(y.key) ? y.key : null;
        T && (!m && T.spaceBefore && p.push(""), op(n, p, T.commentBefore, m));
      }
      m = !1;
      let k = bo(
        y,
        h,
        () => (v = null),
        () => (m = !0),
      );
      (v && (k += Ci(k, o, l(v))), m && v && (m = !1), p.push(r + k));
    }
    let b;
    if (p.length === 0) b = i.start + i.end;
    else {
      b = p[0];
      for (let x = 1; x < p.length; ++x) {
        let y = p[x];
        b += y
          ? `
${a}${y}`
          : `
`;
      }
    }
    return (
      e
        ? ((b +=
            `
` + vr(l(e), a)),
          u && u())
        : m && s && s(),
      b
    );
  }
  function lU({ items: e }, t, { flowChars: n, itemIndent: r }) {
    let {
      indent: i,
      indentStep: o,
      flowCollectionPadding: s,
      options: { commentString: u },
    } = t;
    r += o;
    let a = Object.assign({}, t, { indent: r, inFlow: !0, type: null }),
      l = !1,
      h = 0,
      m = [];
    for (let x = 0; x < e.length; ++x) {
      let y = e[x],
        v = null;
      if (We(y))
        (y.spaceBefore && m.push(""),
          op(t, m, y.commentBefore, !1),
          y.comment && (v = y.comment));
      else if (Ge(y)) {
        let T = We(y.key) ? y.key : null;
        T &&
          (T.spaceBefore && m.push(""),
          op(t, m, T.commentBefore, !1),
          T.comment && (l = !0));
        let E = We(y.value) ? y.value : null;
        E
          ? (E.comment && (v = E.comment), E.commentBefore && (l = !0))
          : y.value == null && T?.comment && (v = T.comment);
      }
      v && (l = !0);
      let k = bo(y, a, () => (v = null));
      (x < e.length - 1 && (k += ","),
        v && (k += Ci(k, r, u(v))),
        !l &&
          (m.length > h ||
            k.includes(`
`)) &&
          (l = !0),
        m.push(k),
        (h = m.length));
    }
    let { start: p, end: b } = n;
    if (m.length === 0) return p + b;
    if (!l) {
      let x = m.reduce((y, v) => y + v.length + 2, 2);
      l = t.options.lineWidth > 0 && x > t.options.lineWidth;
    }
    if (l) {
      let x = p;
      for (let y of m)
        x += y
          ? `
${o}${i}${y}`
          : `
`;
      return `${x}
${i}${b}`;
    } else return `${p}${s}${m.join(" ")}${s}${b}`;
  }
  function op({ indent: e, options: { commentString: t } }, n, r, i) {
    if ((r && i && (r = r.replace(/^\n+/, "")), r)) {
      let o = vr(t(r), e);
      n.push(o.trimStart());
    }
  }
  function a0(e, t) {
    let n = Re(t) ? t.value : t;
    for (let r of e)
      if (
        Ge(r) &&
        (r.key === t || r.key === n || (Re(r.key) && r.key.value === n))
      )
        return r;
  }
  var Ut = class extends Wu {
    static get tagName() {
      return "tag:yaml.org,2002:map";
    }
    constructor(t) {
      (super(Rr, t), (this.items = []));
    }
    static from(t, n, r) {
      let { keepUndefined: i, replacer: o } = r,
        s = new this(t),
        u = (a, l) => {
          if (typeof o == "function") l = o.call(n, a, l);
          else if (Array.isArray(o) && !o.includes(a)) return;
          (l !== void 0 || i) && s.items.push(Ju(a, l, r));
        };
      if (n instanceof Map) for (let [a, l] of n) u(a, l);
      else if (n && typeof n == "object")
        for (let a of Object.keys(n)) u(a, n[a]);
      return (
        typeof t.sortMapEntries == "function" && s.items.sort(t.sortMapEntries),
        s
      );
    }
    add(t, n) {
      let r;
      Ge(t)
        ? (r = t)
        : !t || typeof t != "object" || !("key" in t)
          ? (r = new Rt(t, t?.value))
          : (r = new Rt(t.key, t.value));
      let i = a0(this.items, r.key),
        o = this.schema?.sortMapEntries;
      if (i) {
        if (!n) throw new Error(`Key ${r.key} already set`);
        Re(i.value) && Kd(r.value)
          ? (i.value.value = r.value)
          : (i.value = r.value);
      } else if (o) {
        let s = this.items.findIndex((u) => o(r, u) < 0);
        s === -1 ? this.items.push(r) : this.items.splice(s, 0, r);
      } else this.items.push(r);
    }
    delete(t) {
      let n = a0(this.items, t);
      return n ? this.items.splice(this.items.indexOf(n), 1).length > 0 : !1;
    }
    get(t, n) {
      let i = a0(this.items, t)?.value;
      return (!n && Re(i) ? i.value : i) ?? void 0;
    }
    has(t) {
      return !!a0(this.items, t);
    }
    set(t, n) {
      this.add(new Rt(t, n), !0);
    }
    toJSON(t, n, r) {
      let i = r ? new r() : n?.mapAsMap ? new Map() : {};
      n?.onCreate && n.onCreate(i);
      for (let o of this.items) ip(n, i, o);
      return i;
    }
    toString(t, n, r) {
      if (!t) return JSON.stringify(this);
      for (let i of this.items)
        if (!Ge(i))
          throw new Error(
            `Map items must all be pairs; found ${JSON.stringify(i)} instead`,
          );
      return (
        !t.allNullValues &&
          this.hasAllNullValues(!1) &&
          (t = Object.assign({}, t, { allNullValues: !0 })),
        sp(this, t, {
          blockItemPrefix: "",
          flowChars: { start: "{", end: "}" },
          itemIndent: t.indent || "",
          onChompKeep: r,
          onComment: n,
        })
      );
    }
  };
  var Ur = {
    collection: "map",
    default: !0,
    nodeClass: Ut,
    tag: "tag:yaml.org,2002:map",
    resolve(e, t) {
      return (Pr(e) || t("Expected a mapping for this tag"), e);
    },
    createNode: (e, t, n) => Ut.from(e, t, n),
  };
  var _n = class extends Wu {
    static get tagName() {
      return "tag:yaml.org,2002:seq";
    }
    constructor(t) {
      (super(po, t), (this.items = []));
    }
    add(t) {
      this.items.push(t);
    }
    delete(t) {
      let n = up(t);
      return typeof n != "number" ? !1 : this.items.splice(n, 1).length > 0;
    }
    get(t, n) {
      let r = up(t);
      if (typeof r != "number") return;
      let i = this.items[r];
      return !n && Re(i) ? i.value : i;
    }
    has(t) {
      let n = up(t);
      return typeof n == "number" && n < this.items.length;
    }
    set(t, n) {
      let r = up(t);
      if (typeof r != "number")
        throw new Error(`Expected a valid index, not ${t}.`);
      let i = this.items[r];
      Re(i) && Kd(n) ? (i.value = n) : (this.items[r] = n);
    }
    toJSON(t, n) {
      let r = [];
      n?.onCreate && n.onCreate(r);
      let i = 0;
      for (let o of this.items) r.push(Qt(o, String(i++), n));
      return r;
    }
    toString(t, n, r) {
      return t
        ? sp(this, t, {
            blockItemPrefix: "- ",
            flowChars: { start: "[", end: "]" },
            itemIndent: (t.indent || "") + "  ",
            onChompKeep: r,
            onComment: n,
          })
        : JSON.stringify(this);
    }
    static from(t, n, r) {
      let { replacer: i } = r,
        o = new this(t);
      if (n && Symbol.iterator in Object(n)) {
        let s = 0;
        for (let u of n) {
          if (typeof i == "function") {
            let a = n instanceof Set ? u : String(s++);
            u = i.call(n, a, u);
          }
          o.items.push(go(u, void 0, r));
        }
      }
      return o;
    }
  };
  function up(e) {
    let t = Re(e) ? e.value : e;
    return (
      t && typeof t == "string" && (t = Number(t)),
      typeof t == "number" && Number.isInteger(t) && t >= 0 ? t : null
    );
  }
  var Vr = {
    collection: "seq",
    default: !0,
    nodeClass: _n,
    tag: "tag:yaml.org,2002:seq",
    resolve(e, t) {
      return ($r(e) || t("Expected a sequence for this tag"), e);
    },
    createNode: (e, t, n) => _n.from(e, t, n),
  };
  var l0 = {
    identify: (e) => typeof e == "string",
    default: !0,
    tag: "tag:yaml.org,2002:str",
    resolve: (e) => e,
    stringify(e, t, n, r) {
      return ((t = Object.assign({ actualString: !0 }, t)), Cs(e, t, n, r));
    },
  };
  var Ns = {
    identify: (e) => e == null,
    createNode: () => new ke(null),
    default: !0,
    tag: "tag:yaml.org,2002:null",
    test: /^(?:~|[Nn]ull|NULL)?$/,
    resolve: () => new ke(null),
    stringify: ({ source: e }, t) =>
      typeof e == "string" && Ns.test.test(e) ? e : t.options.nullStr,
  };
  var cc = {
    identify: (e) => typeof e == "boolean",
    default: !0,
    tag: "tag:yaml.org,2002:bool",
    test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
    resolve: (e) => new ke(e[0] === "t" || e[0] === "T"),
    stringify({ source: e, value: t }, n) {
      if (e && cc.test.test(e)) {
        let r = e[0] === "t" || e[0] === "T";
        if (t === r) return e;
      }
      return t ? n.options.trueStr : n.options.falseStr;
    },
  };
  function kn({ format: e, minFractionDigits: t, tag: n, value: r }) {
    if (typeof r == "bigint") return String(r);
    let i = typeof r == "number" ? r : Number(r);
    if (!isFinite(i)) return isNaN(i) ? ".nan" : i < 0 ? "-.inf" : ".inf";
    let o = Object.is(r, -0) ? "-0" : JSON.stringify(r);
    if (!e && t && (!n || n === "tag:yaml.org,2002:float") && /^\d/.test(o)) {
      let s = o.indexOf(".");
      s < 0 && ((s = o.length), (o += "."));
      let u = t - (o.length - s - 1);
      for (; u-- > 0; ) o += "0";
    }
    return o;
  }
  var ap = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
      resolve: (e) =>
        e.slice(-3).toLowerCase() === "nan"
          ? NaN
          : e[0] === "-"
            ? Number.NEGATIVE_INFINITY
            : Number.POSITIVE_INFINITY,
      stringify: kn,
    },
    lp = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      format: "EXP",
      test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
      resolve: (e) => parseFloat(e),
      stringify(e) {
        let t = Number(e.value);
        return isFinite(t) ? t.toExponential() : kn(e);
      },
    },
    cp = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      test: /^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,
      resolve(e) {
        let t = new ke(parseFloat(e)),
          n = e.indexOf(".");
        return (
          n !== -1 &&
            e[e.length - 1] === "0" &&
            (t.minFractionDigits = e.length - n - 1),
          t
        );
      },
      stringify: kn,
    };
  var fp = (e) => typeof e == "bigint" || Number.isInteger(e),
    Jg = (e, t, n, { intAsBigInt: r }) =>
      r ? BigInt(e) : parseInt(e.substring(t), n);
  function zT(e, t, n) {
    let { value: r } = e;
    return fp(r) && r >= 0 ? n + r.toString(t) : kn(e);
  }
  var hp = {
      identify: (e) => fp(e) && e >= 0,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      format: "OCT",
      test: /^0o[0-7]+$/,
      resolve: (e, t, n) => Jg(e, 2, 8, n),
      stringify: (e) => zT(e, 8, "0o"),
    },
    dp = {
      identify: fp,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      test: /^[-+]?[0-9]+$/,
      resolve: (e, t, n) => Jg(e, 0, 10, n),
      stringify: kn,
    },
    pp = {
      identify: (e) => fp(e) && e >= 0,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      format: "HEX",
      test: /^0x[0-9a-fA-F]+$/,
      resolve: (e, t, n) => Jg(e, 2, 16, n),
      stringify: (e) => zT(e, 16, "0x"),
    };
  var RT = [Ur, Vr, l0, Ns, cc, hp, dp, pp, ap, lp, cp];
  function PT(e) {
    return typeof e == "bigint" || Number.isInteger(e);
  }
  var mp = ({ value: e }) => JSON.stringify(e),
    cU = [
      {
        identify: (e) => typeof e == "string",
        default: !0,
        tag: "tag:yaml.org,2002:str",
        resolve: (e) => e,
        stringify: mp,
      },
      {
        identify: (e) => e == null,
        createNode: () => new ke(null),
        default: !0,
        tag: "tag:yaml.org,2002:null",
        test: /^null$/,
        resolve: () => null,
        stringify: mp,
      },
      {
        identify: (e) => typeof e == "boolean",
        default: !0,
        tag: "tag:yaml.org,2002:bool",
        test: /^true$|^false$/,
        resolve: (e) => e === "true",
        stringify: mp,
      },
      {
        identify: PT,
        default: !0,
        tag: "tag:yaml.org,2002:int",
        test: /^-?(?:0|[1-9][0-9]*)$/,
        resolve: (e, t, { intAsBigInt: n }) =>
          n ? BigInt(e) : parseInt(e, 10),
        stringify: ({ value: e }) => (PT(e) ? e.toString() : JSON.stringify(e)),
      },
      {
        identify: (e) => typeof e == "number",
        default: !0,
        tag: "tag:yaml.org,2002:float",
        test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
        resolve: (e) => parseFloat(e),
        stringify: mp,
      },
    ],
    fU = {
      default: !0,
      tag: "",
      test: /^/,
      resolve(e, t) {
        return (t(`Unresolved plain scalar ${JSON.stringify(e)}`), e);
      },
    },
    $T = [Ur, Vr].concat(cU, fU);
  var fc = {
    identify: (e) => e instanceof Uint8Array,
    default: !1,
    tag: "tag:yaml.org,2002:binary",
    resolve(e, t) {
      if (typeof atob == "function") {
        let n = atob(e.replace(/[\n\r]/g, "")),
          r = new Uint8Array(n.length);
        for (let i = 0; i < n.length; ++i) r[i] = n.charCodeAt(i);
        return r;
      } else
        return (
          t(
            "This environment does not support reading binary tags; either Buffer or atob is required",
          ),
          e
        );
    },
    stringify({ comment: e, type: t, value: n }, r, i, o) {
      if (!n) return "";
      let s = n,
        u;
      if (typeof btoa == "function") {
        let a = "";
        for (let l = 0; l < s.length; ++l) a += String.fromCharCode(s[l]);
        u = btoa(a);
      } else
        throw new Error(
          "This environment does not support writing binary tags; either Buffer or btoa is required",
        );
      if ((t ?? (t = ke.BLOCK_LITERAL), t !== ke.QUOTE_DOUBLE)) {
        let a = Math.max(
            r.options.lineWidth - r.indent.length,
            r.options.minContentWidth,
          ),
          l = Math.ceil(u.length / a),
          h = new Array(l);
        for (let m = 0, p = 0; m < l; ++m, p += a) h[m] = u.substr(p, a);
        u = h.join(
          t === ke.BLOCK_LITERAL
            ? `
`
            : " ",
        );
      }
      return Cs({ comment: e, type: t, value: u }, r, i, o);
    },
  };
  function Qg(e, t) {
    if ($r(e))
      for (let n = 0; n < e.items.length; ++n) {
        let r = e.items[n];
        if (!Ge(r)) {
          if (Pr(r)) {
            r.items.length > 1 &&
              t("Each pair must have its own sequence indicator");
            let i = r.items[0] || new Rt(new ke(null));
            if (
              (r.commentBefore &&
                (i.key.commentBefore = i.key.commentBefore
                  ? `${r.commentBefore}
${i.key.commentBefore}`
                  : r.commentBefore),
              r.comment)
            ) {
              let o = i.value ?? i.key;
              o.comment = o.comment
                ? `${r.comment}
${o.comment}`
                : r.comment;
            }
            r = i;
          }
          e.items[n] = Ge(r) ? r : new Rt(r);
        }
      }
    else t("Expected a sequence for this tag");
    return e;
  }
  function e5(e, t, n) {
    let { replacer: r } = n,
      i = new _n(e);
    i.tag = "tag:yaml.org,2002:pairs";
    let o = 0;
    if (t && Symbol.iterator in Object(t))
      for (let s of t) {
        typeof r == "function" && (s = r.call(t, String(o++), s));
        let u, a;
        if (Array.isArray(s))
          if (s.length === 2) ((u = s[0]), (a = s[1]));
          else throw new TypeError(`Expected [key, value] tuple: ${s}`);
        else if (s && s instanceof Object) {
          let l = Object.keys(s);
          if (l.length === 1) ((u = l[0]), (a = s[u]));
          else
            throw new TypeError(
              `Expected tuple with one key, not ${l.length} keys`,
            );
        } else u = s;
        i.items.push(Ju(u, a, n));
      }
    return i;
  }
  var hc = {
    collection: "seq",
    default: !1,
    tag: "tag:yaml.org,2002:pairs",
    resolve: Qg,
    createNode: e5,
  };
  var Qu = class e extends _n {
    constructor() {
      (super(),
        (this.add = Ut.prototype.add.bind(this)),
        (this.delete = Ut.prototype.delete.bind(this)),
        (this.get = Ut.prototype.get.bind(this)),
        (this.has = Ut.prototype.has.bind(this)),
        (this.set = Ut.prototype.set.bind(this)),
        (this.tag = e.tag));
    }
    toJSON(t, n) {
      if (!n) return super.toJSON(t);
      let r = new Map();
      n?.onCreate && n.onCreate(r);
      for (let i of this.items) {
        let o, s;
        if (
          (Ge(i)
            ? ((o = Qt(i.key, "", n)), (s = Qt(i.value, o, n)))
            : (o = Qt(i, "", n)),
          r.has(o))
        )
          throw new Error("Ordered maps must not include duplicate keys");
        r.set(o, s);
      }
      return r;
    }
    static from(t, n, r) {
      let i = e5(t, n, r),
        o = new this();
      return ((o.items = i.items), o);
    }
  };
  Qu.tag = "tag:yaml.org,2002:omap";
  var dc = {
    collection: "seq",
    identify: (e) => e instanceof Map,
    nodeClass: Qu,
    default: !1,
    tag: "tag:yaml.org,2002:omap",
    resolve(e, t) {
      let n = Qg(e, t),
        r = [];
      for (let { key: i } of n.items)
        Re(i) &&
          (r.includes(i.value)
            ? t(`Ordered maps must not include duplicate keys: ${i.value}`)
            : r.push(i.value));
      return Object.assign(new Qu(), n);
    },
    createNode: (e, t, n) => Qu.from(e, t, n),
  };
  function HT({ value: e, source: t }, n) {
    return t && (e ? t5 : n5).test.test(t)
      ? t
      : e
        ? n.options.trueStr
        : n.options.falseStr;
  }
  var t5 = {
      identify: (e) => e === !0,
      default: !0,
      tag: "tag:yaml.org,2002:bool",
      test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
      resolve: () => new ke(!0),
      stringify: HT,
    },
    n5 = {
      identify: (e) => e === !1,
      default: !0,
      tag: "tag:yaml.org,2002:bool",
      test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,
      resolve: () => new ke(!1),
      stringify: HT,
    };
  var UT = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
      resolve: (e) =>
        e.slice(-3).toLowerCase() === "nan"
          ? NaN
          : e[0] === "-"
            ? Number.NEGATIVE_INFINITY
            : Number.POSITIVE_INFINITY,
      stringify: kn,
    },
    VT = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      format: "EXP",
      test: /^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,
      resolve: (e) => parseFloat(e.replace(/_/g, "")),
      stringify(e) {
        let t = Number(e.value);
        return isFinite(t) ? t.toExponential() : kn(e);
      },
    },
    jT = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      test: /^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,
      resolve(e) {
        let t = new ke(parseFloat(e.replace(/_/g, ""))),
          n = e.indexOf(".");
        if (n !== -1) {
          let r = e.substring(n + 1).replace(/_/g, "");
          r[r.length - 1] === "0" && (t.minFractionDigits = r.length);
        }
        return t;
      },
      stringify: kn,
    };
  var pc = (e) => typeof e == "bigint" || Number.isInteger(e);
  function gp(e, t, n, { intAsBigInt: r }) {
    let i = e[0];
    if (
      ((i === "-" || i === "+") && (t += 1),
      (e = e.substring(t).replace(/_/g, "")),
      r)
    ) {
      switch (n) {
        case 2:
          e = `0b${e}`;
          break;
        case 8:
          e = `0o${e}`;
          break;
        case 16:
          e = `0x${e}`;
          break;
      }
      let s = BigInt(e);
      return i === "-" ? BigInt(-1) * s : s;
    }
    let o = parseInt(e, n);
    return i === "-" ? -1 * o : o;
  }
  function r5(e, t, n) {
    let { value: r } = e;
    if (pc(r)) {
      let i = r.toString(t);
      return r < 0 ? "-" + n + i.substr(1) : n + i;
    }
    return kn(e);
  }
  var GT = {
      identify: pc,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      format: "BIN",
      test: /^[-+]?0b[0-1_]+$/,
      resolve: (e, t, n) => gp(e, 2, 2, n),
      stringify: (e) => r5(e, 2, "0b"),
    },
    YT = {
      identify: pc,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      format: "OCT",
      test: /^[-+]?0[0-7_]+$/,
      resolve: (e, t, n) => gp(e, 1, 8, n),
      stringify: (e) => r5(e, 8, "0"),
    },
    XT = {
      identify: pc,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      test: /^[-+]?[0-9][0-9_]*$/,
      resolve: (e, t, n) => gp(e, 0, 10, n),
      stringify: kn,
    },
    WT = {
      identify: pc,
      default: !0,
      tag: "tag:yaml.org,2002:int",
      format: "HEX",
      test: /^[-+]?0x[0-9a-fA-F_]+$/,
      resolve: (e, t, n) => gp(e, 2, 16, n),
      stringify: (e) => r5(e, 16, "0x"),
    };
  var ea = class e extends Ut {
    constructor(t) {
      (super(t), (this.tag = e.tag));
    }
    add(t) {
      let n;
      (Ge(t)
        ? (n = t)
        : t &&
            typeof t == "object" &&
            "key" in t &&
            "value" in t &&
            t.value === null
          ? (n = new Rt(t.key, null))
          : (n = new Rt(t, null)),
        a0(this.items, n.key) || this.items.push(n));
    }
    get(t, n) {
      let r = a0(this.items, t);
      return !n && Ge(r) ? (Re(r.key) ? r.key.value : r.key) : r;
    }
    set(t, n) {
      if (typeof n != "boolean")
        throw new Error(
          `Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`,
        );
      let r = a0(this.items, t);
      r && !n
        ? this.items.splice(this.items.indexOf(r), 1)
        : !r && n && this.items.push(new Rt(t));
    }
    toJSON(t, n) {
      return super.toJSON(t, n, Set);
    }
    toString(t, n, r) {
      if (!t) return JSON.stringify(this);
      if (this.hasAllNullValues(!0))
        return super.toString(
          Object.assign({}, t, { allNullValues: !0 }),
          n,
          r,
        );
      throw new Error("Set items must all have null values");
    }
    static from(t, n, r) {
      let { replacer: i } = r,
        o = new this(t);
      if (n && Symbol.iterator in Object(n))
        for (let s of n)
          (typeof i == "function" && (s = i.call(n, s, s)),
            o.items.push(Ju(s, null, r)));
      return o;
    }
  };
  ea.tag = "tag:yaml.org,2002:set";
  var mc = {
    collection: "map",
    identify: (e) => e instanceof Set,
    nodeClass: ea,
    default: !1,
    tag: "tag:yaml.org,2002:set",
    createNode: (e, t, n) => ea.from(e, t, n),
    resolve(e, t) {
      if (Pr(e)) {
        if (e.hasAllNullValues(!0)) return Object.assign(new ea(), e);
        t("Set items must all have null values");
      } else t("Expected a mapping for this tag");
      return e;
    },
  };
  function i5(e, t) {
    let n = e[0],
      r = n === "-" || n === "+" ? e.substring(1) : e,
      i = (s) => (t ? BigInt(s) : Number(s)),
      o = r
        .replace(/_/g, "")
        .split(":")
        .reduce((s, u) => s * i(60) + i(u), i(0));
    return n === "-" ? i(-1) * o : o;
  }
  function KT(e) {
    let { value: t } = e,
      n = (s) => s;
    if (typeof t == "bigint") n = (s) => BigInt(s);
    else if (isNaN(t) || !isFinite(t)) return kn(e);
    let r = "";
    t < 0 && ((r = "-"), (t *= n(-1)));
    let i = n(60),
      o = [t % i];
    return (
      t < 60
        ? o.unshift(0)
        : ((t = (t - o[0]) / i),
          o.unshift(t % i),
          t >= 60 && ((t = (t - o[0]) / i), o.unshift(t))),
      r +
        o
          .map((s) => String(s).padStart(2, "0"))
          .join(":")
          .replace(/000000\d*$/, "")
    );
  }
  var bp = {
      identify: (e) => typeof e == "bigint" || Number.isInteger(e),
      default: !0,
      tag: "tag:yaml.org,2002:int",
      format: "TIME",
      test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,
      resolve: (e, t, { intAsBigInt: n }) => i5(e, n),
      stringify: KT,
    },
    xp = {
      identify: (e) => typeof e == "number",
      default: !0,
      tag: "tag:yaml.org,2002:float",
      format: "TIME",
      test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,
      resolve: (e) => i5(e, !1),
      stringify: KT,
    },
    ta = {
      identify: (e) => e instanceof Date,
      default: !0,
      tag: "tag:yaml.org,2002:timestamp",
      test: RegExp(
        "^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$",
      ),
      resolve(e) {
        let t = e.match(ta.test);
        if (!t)
          throw new Error(
            "!!timestamp expects a date, starting with yyyy-mm-dd",
          );
        let [, n, r, i, o, s, u] = t.map(Number),
          a = t[7] ? Number((t[7] + "00").substr(1, 3)) : 0,
          l = Date.UTC(n, r - 1, i, o || 0, s || 0, u || 0, a),
          h = t[8];
        if (h && h !== "Z") {
          let m = i5(h, !1);
          (Math.abs(m) < 30 && (m *= 60), (l -= 6e4 * m));
        }
        return new Date(l);
      },
      stringify: ({ value: e }) =>
        e?.toISOString().replace(/(T00:00:00)?\.000Z$/, "") ?? "",
    };
  var o5 = [
    Ur,
    Vr,
    l0,
    Ns,
    t5,
    n5,
    GT,
    YT,
    XT,
    WT,
    UT,
    VT,
    jT,
    fc,
    Hr,
    dc,
    hc,
    mc,
    bp,
    xp,
    ta,
  ];
  var ZT = new Map([
      ["core", RT],
      ["failsafe", [Ur, Vr, l0]],
      ["json", $T],
      ["yaml11", o5],
      ["yaml-1.1", o5],
    ]),
    JT = {
      binary: fc,
      bool: cc,
      float: cp,
      floatExp: lp,
      floatNaN: ap,
      floatTime: xp,
      int: dp,
      intHex: pp,
      intOct: hp,
      intTime: bp,
      map: Ur,
      merge: Hr,
      null: Ns,
      omap: dc,
      pairs: hc,
      seq: Vr,
      set: mc,
      timestamp: ta,
    },
    QT = {
      "tag:yaml.org,2002:binary": fc,
      "tag:yaml.org,2002:merge": Hr,
      "tag:yaml.org,2002:omap": dc,
      "tag:yaml.org,2002:pairs": hc,
      "tag:yaml.org,2002:set": mc,
      "tag:yaml.org,2002:timestamp": ta,
    };
  function yp(e, t, n) {
    let r = ZT.get(t);
    if (r && !e) return n && !r.includes(Hr) ? r.concat(Hr) : r.slice();
    let i = r;
    if (!i)
      if (Array.isArray(e)) i = [];
      else {
        let o = Array.from(ZT.keys())
          .filter((s) => s !== "yaml11")
          .map((s) => JSON.stringify(s))
          .join(", ");
        throw new Error(
          `Unknown schema "${t}"; use one of ${o} or define customTags array`,
        );
      }
    if (Array.isArray(e)) for (let o of e) i = i.concat(o);
    else typeof e == "function" && (i = e(i.slice()));
    return (
      n && (i = i.concat(Hr)),
      i.reduce((o, s) => {
        let u = typeof s == "string" ? JT[s] : s;
        if (!u) {
          let a = JSON.stringify(s),
            l = Object.keys(JT)
              .map((h) => JSON.stringify(h))
              .join(", ");
          throw new Error(`Unknown custom tag ${a}; use one of ${l}`);
        }
        return (o.includes(u) || o.push(u), o);
      }, [])
    );
  }
  var hU = (e, t) => (e.key < t.key ? -1 : e.key > t.key ? 1 : 0),
    gc = class e {
      constructor({
        compat: t,
        customTags: n,
        merge: r,
        resolveKnownTags: i,
        schema: o,
        sortMapEntries: s,
        toStringDefaults: u,
      }) {
        ((this.compat = Array.isArray(t)
          ? yp(t, "compat")
          : t
            ? yp(null, t)
            : null),
          (this.name = (typeof o == "string" && o) || "core"),
          (this.knownTags = i ? QT : {}),
          (this.tags = yp(n, this.name, r)),
          (this.toStringOptions = u ?? null),
          Object.defineProperty(this, Rr, { value: Ur }),
          Object.defineProperty(this, Jn, { value: l0 }),
          Object.defineProperty(this, po, { value: Vr }),
          (this.sortMapEntries =
            typeof s == "function" ? s : s === !0 ? hU : null));
      }
      clone() {
        let t = Object.create(
          e.prototype,
          Object.getOwnPropertyDescriptors(this),
        );
        return ((t.tags = this.tags.slice()), t);
      }
    };
  function eE(e, t) {
    let n = [],
      r = t.directives === !0;
    if (t.directives !== !1 && e.directives) {
      let a = e.directives.toString(e);
      a ? (n.push(a), (r = !0)) : e.directives.docStart && (r = !0);
    }
    r && n.push("---");
    let i = tp(e, t),
      { commentString: o } = i.options;
    if (e.commentBefore) {
      n.length !== 1 && n.unshift("");
      let a = o(e.commentBefore);
      n.unshift(vr(a, ""));
    }
    let s = !1,
      u = null;
    if (e.contents) {
      if (We(e.contents)) {
        if (
          (e.contents.spaceBefore && r && n.push(""), e.contents.commentBefore)
        ) {
          let h = o(e.contents.commentBefore);
          n.push(vr(h, ""));
        }
        ((i.forceBlockIndent = !!e.comment), (u = e.contents.comment));
      }
      let a = u ? void 0 : () => (s = !0),
        l = bo(e.contents, i, () => (u = null), a);
      (u && (l += Ci(l, "", o(u))),
        (l[0] === "|" || l[0] === ">") && n[n.length - 1] === "---"
          ? (n[n.length - 1] = `--- ${l}`)
          : n.push(l));
    } else n.push(bo(e.contents, i));
    if (e.directives?.docEnd)
      if (e.comment) {
        let a = o(e.comment);
        a.includes(`
`)
          ? (n.push("..."), n.push(vr(a, "")))
          : n.push(`... ${a}`);
      } else n.push("...");
    else {
      let a = e.comment;
      (a && s && (a = a.replace(/^\n+/, "")),
        a &&
          ((!s || u) && n[n.length - 1] !== "" && n.push(""),
          n.push(vr(o(a), ""))));
    }
    return (
      n.join(`
`) +
      `
`
    );
  }
  var c0 = class e {
    constructor(t, n, r) {
      ((this.commentBefore = null),
        (this.comment = null),
        (this.errors = []),
        (this.warnings = []),
        Object.defineProperty(this, In, { value: jd }));
      let i = null;
      typeof n == "function" || Array.isArray(n)
        ? (i = n)
        : r === void 0 && n && ((r = n), (n = void 0));
      let o = Object.assign(
        {
          intAsBigInt: !1,
          keepSourceTokens: !1,
          logLevel: "warn",
          prettyErrors: !0,
          strict: !0,
          stringKeys: !1,
          uniqueKeys: !0,
          version: "1.2",
        },
        r,
      );
      this.options = o;
      let { version: s } = o;
      (r?._directives
        ? ((this.directives = r._directives.atDocument()),
          this.directives.yaml.explicit && (s = this.directives.yaml.version))
        : (this.directives = new Ei({ version: s })),
        this.setSchema(s, r),
        (this.contents = t === void 0 ? null : this.createNode(t, i, r)));
    }
    clone() {
      let t = Object.create(e.prototype, { [In]: { value: jd } });
      return (
        (t.commentBefore = this.commentBefore),
        (t.comment = this.comment),
        (t.errors = this.errors.slice()),
        (t.warnings = this.warnings.slice()),
        (t.options = Object.assign({}, this.options)),
        this.directives && (t.directives = this.directives.clone()),
        (t.schema = this.schema.clone()),
        (t.contents = We(this.contents)
          ? this.contents.clone(t.schema)
          : this.contents),
        this.range && (t.range = this.range.slice()),
        t
      );
    }
    add(t) {
      na(this.contents) && this.contents.add(t);
    }
    addIn(t, n) {
      na(this.contents) && this.contents.addIn(t, n);
    }
    createAlias(t, n) {
      if (!t.anchor) {
        let r = jg(this);
        t.anchor = !n || r.has(n) ? Gg(n || "a", r) : n;
      }
      return new mo(t.anchor);
    }
    createNode(t, n, r) {
      let i;
      if (typeof n == "function") ((t = n.call({ "": t }, "", t)), (i = n));
      else if (Array.isArray(n)) {
        let v = (T) =>
            typeof T == "number" || T instanceof String || T instanceof Number,
          k = n.filter(v).map(String);
        (k.length > 0 && (n = n.concat(k)), (i = n));
      } else r === void 0 && n && ((r = n), (n = void 0));
      let {
          aliasDuplicateObjects: o,
          anchorPrefix: s,
          flow: u,
          keepUndefined: a,
          onTagObj: l,
          tag: h,
        } = r ?? {},
        { onAnchor: m, setAnchors: p, sourceObjects: b } = FT(this, s || "a"),
        x = {
          aliasDuplicateObjects: o ?? !0,
          keepUndefined: a ?? !1,
          onAnchor: m,
          onTagObj: l,
          replacer: i,
          schema: this.schema,
          sourceObjects: b,
        },
        y = go(t, h, x);
      return (u && at(y) && (y.flow = !0), p(), y);
    }
    createPair(t, n, r = {}) {
      let i = this.createNode(t, null, r),
        o = this.createNode(n, null, r);
      return new Rt(i, o);
    }
    delete(t) {
      return na(this.contents) ? this.contents.delete(t) : !1;
    }
    deleteIn(t) {
      return Ku(t)
        ? this.contents == null
          ? !1
          : ((this.contents = null), !0)
        : na(this.contents)
          ? this.contents.deleteIn(t)
          : !1;
    }
    get(t, n) {
      return at(this.contents) ? this.contents.get(t, n) : void 0;
    }
    getIn(t, n) {
      return Ku(t)
        ? !n && Re(this.contents)
          ? this.contents.value
          : this.contents
        : at(this.contents)
          ? this.contents.getIn(t, n)
          : void 0;
    }
    has(t) {
      return at(this.contents) ? this.contents.has(t) : !1;
    }
    hasIn(t) {
      return Ku(t)
        ? this.contents !== void 0
        : at(this.contents)
          ? this.contents.hasIn(t)
          : !1;
    }
    set(t, n) {
      this.contents == null
        ? (this.contents = sc(this.schema, [t], n))
        : na(this.contents) && this.contents.set(t, n);
    }
    setIn(t, n) {
      Ku(t)
        ? (this.contents = n)
        : this.contents == null
          ? (this.contents = sc(this.schema, Array.from(t), n))
          : na(this.contents) && this.contents.setIn(t, n);
    }
    setSchema(t, n = {}) {
      typeof t == "number" && (t = String(t));
      let r;
      switch (t) {
        case "1.1":
          (this.directives
            ? (this.directives.yaml.version = "1.1")
            : (this.directives = new Ei({ version: "1.1" })),
            (r = { resolveKnownTags: !1, schema: "yaml-1.1" }));
          break;
        case "1.2":
        case "next":
          (this.directives
            ? (this.directives.yaml.version = t)
            : (this.directives = new Ei({ version: t })),
            (r = { resolveKnownTags: !0, schema: "core" }));
          break;
        case null:
          (this.directives && delete this.directives, (r = null));
          break;
        default: {
          let i = JSON.stringify(t);
          throw new Error(
            `Expected '1.1', '1.2' or null as first argument, but found: ${i}`,
          );
        }
      }
      if (n.schema instanceof Object) this.schema = n.schema;
      else if (r) this.schema = new gc(Object.assign(r, n));
      else
        throw new Error(
          "With a null YAML version, the { schema: Schema } option is required",
        );
    }
    toJS({
      json: t,
      jsonArg: n,
      mapAsMap: r,
      maxAliasCount: i,
      onAnchor: o,
      reviver: s,
    } = {}) {
      let u = {
          anchors: new Map(),
          doc: this,
          keep: !t,
          mapAsMap: r === !0,
          mapKeyWarned: !1,
          maxAliasCount: typeof i == "number" ? i : 100,
        },
        a = Qt(this.contents, n ?? "", u);
      if (typeof o == "function")
        for (let { count: l, res: h } of u.anchors.values()) o(h, l);
      return typeof s == "function" ? s0(s, { "": a }, "", a) : a;
    }
    toJSON(t, n) {
      return this.toJS({ json: !0, jsonArg: t, mapAsMap: !1, onAnchor: n });
    }
    toString(t = {}) {
      if (this.errors.length > 0)
        throw new Error("Document with errors cannot be stringified");
      if (
        "indent" in t &&
        (!Number.isInteger(t.indent) || Number(t.indent) <= 0)
      ) {
        let n = JSON.stringify(t.indent);
        throw new Error(`"indent" option must be a positive integer, not ${n}`);
      }
      return eE(this, t);
    }
  };
  function na(e) {
    if (at(e)) return !0;
    throw new Error("Expected a YAML collection as document contents");
  }
  var bc = class extends Error {
      constructor(t, n, r, i) {
        (super(),
          (this.name = t),
          (this.code = r),
          (this.message = i),
          (this.pos = n));
      }
    },
    jr = class extends bc {
      constructor(t, n, r) {
        super("YAMLParseError", t, n, r);
      }
    },
    xc = class extends bc {
      constructor(t, n, r) {
        super("YAMLWarning", t, n, r);
      }
    },
    s5 = (e, t) => (n) => {
      if (n.pos[0] === -1) return;
      n.linePos = n.pos.map((u) => t.linePos(u));
      let { line: r, col: i } = n.linePos[0];
      n.message += ` at line ${r}, column ${i}`;
      let o = i - 1,
        s = e
          .substring(t.lineStarts[r - 1], t.lineStarts[r])
          .replace(/[\n\r]+$/, "");
      if (o >= 60 && s.length > 80) {
        let u = Math.min(o - 39, s.length - 79);
        ((s = "\u2026" + s.substring(u)), (o -= u - 1));
      }
      if (
        (s.length > 80 && (s = s.substring(0, 79) + "\u2026"),
        r > 1 && /^ *$/.test(s.substring(0, o)))
      ) {
        let u = e.substring(t.lineStarts[r - 2], t.lineStarts[r - 1]);
        (u.length > 80 &&
          (u =
            u.substring(0, 79) +
            `\u2026
`),
          (s = u + s));
      }
      if (/[^ ]/.test(s)) {
        let u = 1,
          a = n.linePos[1];
        a?.line === r &&
          a.col > i &&
          (u = Math.max(1, Math.min(a.col - i, 80 - o)));
        let l = " ".repeat(o) + "^".repeat(u);
        n.message += `:

${s}
${l}
`;
      }
    };
  function Ni(
    e,
    {
      flow: t,
      indicator: n,
      next: r,
      offset: i,
      onError: o,
      parentIndent: s,
      startOnNewline: u,
    },
  ) {
    let a = !1,
      l = u,
      h = u,
      m = "",
      p = "",
      b = !1,
      x = !1,
      y = null,
      v = null,
      k = null,
      T = null,
      E = null,
      M = null,
      D = null;
    for (let O of e)
      switch (
        (x &&
          (O.type !== "space" &&
            O.type !== "newline" &&
            O.type !== "comma" &&
            o(
              O.offset,
              "MISSING_CHAR",
              "Tags and anchors must be separated from the next token by white space",
            ),
          (x = !1)),
        y &&
          (l &&
            O.type !== "comment" &&
            O.type !== "newline" &&
            o(y, "TAB_AS_INDENT", "Tabs are not allowed as indentation"),
          (y = null)),
        O.type)
      ) {
        case "space":
          (!t &&
            (n !== "doc-start" || r?.type !== "flow-collection") &&
            O.source.includes("	") &&
            (y = O),
            (h = !0));
          break;
        case "comment": {
          h ||
            o(
              O,
              "MISSING_CHAR",
              "Comments must be separated from other tokens by white space characters",
            );
          let H = O.source.substring(1) || " ";
          (m ? (m += p + H) : (m = H), (p = ""), (l = !1));
          break;
        }
        case "newline":
          (l
            ? m
              ? (m += O.source)
              : (!M || n !== "seq-item-ind") && (a = !0)
            : (p += O.source),
            (l = !0),
            (b = !0),
            (v || k) && (T = O),
            (h = !0));
          break;
        case "anchor":
          (v && o(O, "MULTIPLE_ANCHORS", "A node can have at most one anchor"),
            O.source.endsWith(":") &&
              o(
                O.offset + O.source.length - 1,
                "BAD_ALIAS",
                "Anchor ending in : is ambiguous",
                !0,
              ),
            (v = O),
            D ?? (D = O.offset),
            (l = !1),
            (h = !1),
            (x = !0));
          break;
        case "tag": {
          (k && o(O, "MULTIPLE_TAGS", "A node can have at most one tag"),
            (k = O),
            D ?? (D = O.offset),
            (l = !1),
            (h = !1),
            (x = !0));
          break;
        }
        case n:
          ((v || k) &&
            o(
              O,
              "BAD_PROP_ORDER",
              `Anchors and tags must be after the ${O.source} indicator`,
            ),
            M &&
              o(
                O,
                "UNEXPECTED_TOKEN",
                `Unexpected ${O.source} in ${t ?? "collection"}`,
              ),
            (M = O),
            (l = n === "seq-item-ind" || n === "explicit-key-ind"),
            (h = !1));
          break;
        case "comma":
          if (t) {
            (E && o(O, "UNEXPECTED_TOKEN", `Unexpected , in ${t}`),
              (E = O),
              (l = !1),
              (h = !1));
            break;
          }
        default:
          (o(O, "UNEXPECTED_TOKEN", `Unexpected ${O.type} token`),
            (l = !1),
            (h = !1));
      }
    let I = e[e.length - 1],
      P = I ? I.offset + I.source.length : i;
    return (
      x &&
        r &&
        r.type !== "space" &&
        r.type !== "newline" &&
        r.type !== "comma" &&
        (r.type !== "scalar" || r.source !== "") &&
        o(
          r.offset,
          "MISSING_CHAR",
          "Tags and anchors must be separated from the next token by white space",
        ),
      y &&
        ((l && y.indent <= s) ||
          r?.type === "block-map" ||
          r?.type === "block-seq") &&
        o(y, "TAB_AS_INDENT", "Tabs are not allowed as indentation"),
      {
        comma: E,
        found: M,
        spaceBefore: a,
        comment: m,
        hasNewline: b,
        anchor: v,
        tag: k,
        newlineAfterProp: T,
        end: P,
        start: D ?? P,
      }
    );
  }
  function f0(e) {
    if (!e) return null;
    switch (e.type) {
      case "alias":
      case "scalar":
      case "double-quoted-scalar":
      case "single-quoted-scalar":
        if (
          e.source.includes(`
`)
        )
          return !0;
        if (e.end) {
          for (let t of e.end) if (t.type === "newline") return !0;
        }
        return !1;
      case "flow-collection":
        for (let t of e.items) {
          for (let n of t.start) if (n.type === "newline") return !0;
          if (t.sep) {
            for (let n of t.sep) if (n.type === "newline") return !0;
          }
          if (f0(t.key) || f0(t.value)) return !0;
        }
        return !1;
      default:
        return !0;
    }
  }
  function yc(e, t, n) {
    if (t?.type === "flow-collection") {
      let r = t.end[0];
      r.indent === e &&
        (r.source === "]" || r.source === "}") &&
        f0(t) &&
        n(
          r,
          "BAD_INDENT",
          "Flow end indicator should be more indented than parent",
          !0,
        );
    }
  }
  function wp(e, t, n) {
    let { uniqueKeys: r } = e.options;
    if (r === !1) return !1;
    let i =
      typeof r == "function"
        ? r
        : (o, s) => o === s || (Re(o) && Re(s) && o.value === s.value);
    return t.some((o) => i(o.key, n));
  }
  var tE = "All mapping items must start at the same column";
  function nE({ composeNode: e, composeEmptyNode: t }, n, r, i, o) {
    let s = o?.nodeClass ?? Ut,
      u = new s(n.schema);
    n.atRoot && (n.atRoot = !1);
    let a = r.offset,
      l = null;
    for (let h of r.items) {
      let { start: m, key: p, sep: b, value: x } = h,
        y = Ni(m, {
          indicator: "explicit-key-ind",
          next: p ?? b?.[0],
          offset: a,
          onError: i,
          parentIndent: r.indent,
          startOnNewline: !0,
        }),
        v = !y.found;
      if (v) {
        if (
          (p &&
            (p.type === "block-seq"
              ? i(
                  a,
                  "BLOCK_AS_IMPLICIT_KEY",
                  "A block sequence may not be used as an implicit map key",
                )
              : "indent" in p &&
                p.indent !== r.indent &&
                i(a, "BAD_INDENT", tE)),
          !y.anchor && !y.tag && !b)
        ) {
          ((l = y.end),
            y.comment &&
              (u.comment
                ? (u.comment +=
                    `
` + y.comment)
                : (u.comment = y.comment)));
          continue;
        }
        (y.newlineAfterProp || f0(p)) &&
          i(
            p ?? m[m.length - 1],
            "MULTILINE_IMPLICIT_KEY",
            "Implicit keys need to be on a single line",
          );
      } else y.found?.indent !== r.indent && i(a, "BAD_INDENT", tE);
      n.atKey = !0;
      let k = y.end,
        T = p ? e(n, p, y, i) : t(n, k, m, null, y, i);
      (n.schema.compat && yc(r.indent, p, i),
        (n.atKey = !1),
        wp(n, u.items, T) && i(k, "DUPLICATE_KEY", "Map keys must be unique"));
      let E = Ni(b ?? [], {
        indicator: "map-value-ind",
        next: x,
        offset: T.range[2],
        onError: i,
        parentIndent: r.indent,
        startOnNewline: !p || p.type === "block-scalar",
      });
      if (((a = E.end), E.found)) {
        v &&
          (x?.type === "block-map" &&
            !E.hasNewline &&
            i(
              a,
              "BLOCK_AS_IMPLICIT_KEY",
              "Nested mappings are not allowed in compact mappings",
            ),
          n.options.strict &&
            y.start < E.found.offset - 1024 &&
            i(
              T.range,
              "KEY_OVER_1024_CHARS",
              "The : indicator must be at most 1024 chars after the start of an implicit block mapping key",
            ));
        let M = x ? e(n, x, E, i) : t(n, a, b, null, E, i);
        (n.schema.compat && yc(r.indent, x, i), (a = M.range[2]));
        let D = new Rt(T, M);
        (n.options.keepSourceTokens && (D.srcToken = h), u.items.push(D));
      } else {
        (v &&
          i(
            T.range,
            "MISSING_CHAR",
            "Implicit map keys need to be followed by map values",
          ),
          E.comment &&
            (T.comment
              ? (T.comment +=
                  `
` + E.comment)
              : (T.comment = E.comment)));
        let M = new Rt(T);
        (n.options.keepSourceTokens && (M.srcToken = h), u.items.push(M));
      }
    }
    return (
      l && l < a && i(l, "IMPOSSIBLE", "Map comment with trailing content"),
      (u.range = [r.offset, a, l ?? a]),
      u
    );
  }
  function rE({ composeNode: e, composeEmptyNode: t }, n, r, i, o) {
    let s = o?.nodeClass ?? _n,
      u = new s(n.schema);
    (n.atRoot && (n.atRoot = !1), n.atKey && (n.atKey = !1));
    let a = r.offset,
      l = null;
    for (let { start: h, value: m } of r.items) {
      let p = Ni(h, {
        indicator: "seq-item-ind",
        next: m,
        offset: a,
        onError: i,
        parentIndent: r.indent,
        startOnNewline: !0,
      });
      if (!p.found)
        if (p.anchor || p.tag || m)
          m?.type === "block-seq"
            ? i(
                p.end,
                "BAD_INDENT",
                "All sequence items must start at the same column",
              )
            : i(a, "MISSING_CHAR", "Sequence item without - indicator");
        else {
          ((l = p.end), p.comment && (u.comment = p.comment));
          continue;
        }
      let b = m ? e(n, m, p, i) : t(n, p.end, h, null, p, i);
      (n.schema.compat && yc(r.indent, m, i),
        (a = b.range[2]),
        u.items.push(b));
    }
    return ((u.range = [r.offset, a, l ?? a]), u);
  }
  function Di(e, t, n, r) {
    let i = "";
    if (e) {
      let o = !1,
        s = "";
      for (let u of e) {
        let { source: a, type: l } = u;
        switch (l) {
          case "space":
            o = !0;
            break;
          case "comment": {
            n &&
              !o &&
              r(
                u,
                "MISSING_CHAR",
                "Comments must be separated from other tokens by white space characters",
              );
            let h = a.substring(1) || " ";
            (i ? (i += s + h) : (i = h), (s = ""));
            break;
          }
          case "newline":
            (i && (s += a), (o = !0));
            break;
          default:
            r(u, "UNEXPECTED_TOKEN", `Unexpected ${l} at node end`);
        }
        t += a.length;
      }
    }
    return { comment: i, offset: t };
  }
  var u5 = "Block collections are not allowed within flow collections",
    a5 = (e) => e && (e.type === "block-map" || e.type === "block-seq");
  function iE({ composeNode: e, composeEmptyNode: t }, n, r, i, o) {
    let s = r.start.source === "{",
      u = s ? "flow map" : "flow sequence",
      a = o?.nodeClass ?? (s ? Ut : _n),
      l = new a(n.schema);
    l.flow = !0;
    let h = n.atRoot;
    (h && (n.atRoot = !1), n.atKey && (n.atKey = !1));
    let m = r.offset + r.start.source.length;
    for (let v = 0; v < r.items.length; ++v) {
      let k = r.items[v],
        { start: T, key: E, sep: M, value: D } = k,
        I = Ni(T, {
          flow: u,
          indicator: "explicit-key-ind",
          next: E ?? M?.[0],
          offset: m,
          onError: i,
          parentIndent: r.indent,
          startOnNewline: !1,
        });
      if (!I.found) {
        if (!I.anchor && !I.tag && !M && !D) {
          (v === 0 && I.comma
            ? i(I.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${u}`)
            : v < r.items.length - 1 &&
              i(I.start, "UNEXPECTED_TOKEN", `Unexpected empty item in ${u}`),
            I.comment &&
              (l.comment
                ? (l.comment +=
                    `
` + I.comment)
                : (l.comment = I.comment)),
            (m = I.end));
          continue;
        }
        !s &&
          n.options.strict &&
          f0(E) &&
          i(
            E,
            "MULTILINE_IMPLICIT_KEY",
            "Implicit keys of flow sequence pairs need to be on a single line",
          );
      }
      if (v === 0)
        I.comma && i(I.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${u}`);
      else if (
        (I.comma || i(I.start, "MISSING_CHAR", `Missing , between ${u} items`),
        I.comment)
      ) {
        let P = "";
        e: for (let O of T)
          switch (O.type) {
            case "comma":
            case "space":
              break;
            case "comment":
              P = O.source.substring(1);
              break e;
            default:
              break e;
          }
        if (P) {
          let O = l.items[l.items.length - 1];
          (Ge(O) && (O = O.value ?? O.key),
            O.comment
              ? (O.comment +=
                  `
` + P)
              : (O.comment = P),
            (I.comment = I.comment.substring(P.length + 1)));
        }
      }
      if (!s && !M && !I.found) {
        let P = D ? e(n, D, I, i) : t(n, I.end, M, null, I, i);
        (l.items.push(P),
          (m = P.range[2]),
          a5(D) && i(P.range, "BLOCK_IN_FLOW", u5));
      } else {
        n.atKey = !0;
        let P = I.end,
          O = E ? e(n, E, I, i) : t(n, P, T, null, I, i);
        (a5(E) && i(O.range, "BLOCK_IN_FLOW", u5), (n.atKey = !1));
        let H = Ni(M ?? [], {
          flow: u,
          indicator: "map-value-ind",
          next: D,
          offset: O.range[2],
          onError: i,
          parentIndent: r.indent,
          startOnNewline: !1,
        });
        if (H.found) {
          if (!s && !I.found && n.options.strict) {
            if (M)
              for (let Z of M) {
                if (Z === H.found) break;
                if (Z.type === "newline") {
                  i(
                    Z,
                    "MULTILINE_IMPLICIT_KEY",
                    "Implicit keys of flow sequence pairs need to be on a single line",
                  );
                  break;
                }
              }
            I.start < H.found.offset - 1024 &&
              i(
                H.found,
                "KEY_OVER_1024_CHARS",
                "The : indicator must be at most 1024 chars after the start of an implicit flow sequence key",
              );
          }
        } else
          D &&
            ("source" in D && D.source?.[0] === ":"
              ? i(D, "MISSING_CHAR", `Missing space after : in ${u}`)
              : i(
                  H.start,
                  "MISSING_CHAR",
                  `Missing , or : between ${u} items`,
                ));
        let U = D ? e(n, D, H, i) : H.found ? t(n, H.end, M, null, H, i) : null;
        U
          ? a5(D) && i(U.range, "BLOCK_IN_FLOW", u5)
          : H.comment &&
            (O.comment
              ? (O.comment +=
                  `
` + H.comment)
              : (O.comment = H.comment));
        let j = new Rt(O, U);
        if ((n.options.keepSourceTokens && (j.srcToken = k), s)) {
          let Z = l;
          (wp(n, Z.items, O) &&
            i(P, "DUPLICATE_KEY", "Map keys must be unique"),
            Z.items.push(j));
        } else {
          let Z = new Ut(n.schema);
          ((Z.flow = !0), Z.items.push(j));
          let Q = (U ?? O).range;
          ((Z.range = [O.range[0], Q[1], Q[2]]), l.items.push(Z));
        }
        m = U ? U.range[2] : H.end;
      }
    }
    let p = s ? "}" : "]",
      [b, ...x] = r.end,
      y = m;
    if (b?.source === p) y = b.offset + b.source.length;
    else {
      let v = u[0].toUpperCase() + u.substring(1),
        k = h
          ? `${v} must end with a ${p}`
          : `${v} in block collection must be sufficiently indented and end with a ${p}`;
      (i(m, h ? "MISSING_CHAR" : "BAD_INDENT", k),
        b && b.source.length !== 1 && x.unshift(b));
    }
    if (x.length > 0) {
      let v = Di(x, y, n.options.strict, i);
      (v.comment &&
        (l.comment
          ? (l.comment +=
              `
` + v.comment)
          : (l.comment = v.comment)),
        (l.range = [r.offset, y, v.offset]));
    } else l.range = [r.offset, y, y];
    return l;
  }
  function l5(e, t, n, r, i, o) {
    let s =
        n.type === "block-map"
          ? nE(e, t, n, r, o)
          : n.type === "block-seq"
            ? rE(e, t, n, r, o)
            : iE(e, t, n, r, o),
      u = s.constructor;
    return i === "!" || i === u.tagName
      ? ((s.tag = u.tagName), s)
      : (i && (s.tag = i), s);
  }
  function oE(e, t, n, r, i) {
    let o = r.tag,
      s = o
        ? t.directives.tagName(o.source, (p) => i(o, "TAG_RESOLVE_FAILED", p))
        : null;
    if (n.type === "block-seq") {
      let { anchor: p, newlineAfterProp: b } = r,
        x = p && o ? (p.offset > o.offset ? p : o) : (p ?? o);
      x &&
        (!b || b.offset < x.offset) &&
        i(x, "MISSING_CHAR", "Missing newline after block sequence props");
    }
    let u =
      n.type === "block-map"
        ? "map"
        : n.type === "block-seq"
          ? "seq"
          : n.start.source === "{"
            ? "map"
            : "seq";
    if (
      !o ||
      !s ||
      s === "!" ||
      (s === Ut.tagName && u === "map") ||
      (s === _n.tagName && u === "seq")
    )
      return l5(e, t, n, i, s);
    let a = t.schema.tags.find((p) => p.tag === s && p.collection === u);
    if (!a) {
      let p = t.schema.knownTags[s];
      if (p?.collection === u)
        (t.schema.tags.push(Object.assign({}, p, { default: !1 })), (a = p));
      else
        return (
          p
            ? i(
                o,
                "BAD_COLLECTION_TYPE",
                `${p.tag} used for ${u} collection, but expects ${p.collection ?? "scalar"}`,
                !0,
              )
            : i(o, "TAG_RESOLVE_FAILED", `Unresolved tag: ${s}`, !0),
          l5(e, t, n, i, s)
        );
    }
    let l = l5(e, t, n, i, s, a),
      h = a.resolve?.(l, (p) => i(o, "TAG_RESOLVE_FAILED", p), t.options) ?? l,
      m = We(h) ? h : new ke(h);
    return (
      (m.range = l.range),
      (m.tag = s),
      a?.format && (m.format = a.format),
      m
    );
  }
  function c5(e, t, n) {
    let r = t.offset,
      i = dU(t, e.options.strict, n);
    if (!i) return { value: "", type: null, comment: "", range: [r, r, r] };
    let o = i.mode === ">" ? ke.BLOCK_FOLDED : ke.BLOCK_LITERAL,
      s = t.source ? pU(t.source) : [],
      u = s.length;
    for (let y = s.length - 1; y >= 0; --y) {
      let v = s[y][1];
      if (v === "" || v === "\r") u = y;
      else break;
    }
    if (u === 0) {
      let y =
          i.chomp === "+" && s.length > 0
            ? `
`.repeat(Math.max(1, s.length - 1))
            : "",
        v = r + i.length;
      return (
        t.source && (v += t.source.length),
        { value: y, type: o, comment: i.comment, range: [r, v, v] }
      );
    }
    let a = t.indent + i.indent,
      l = t.offset + i.length,
      h = 0;
    for (let y = 0; y < u; ++y) {
      let [v, k] = s[y];
      if (k === "" || k === "\r")
        i.indent === 0 && v.length > a && (a = v.length);
      else {
        (v.length < a &&
          n(
            l + v.length,
            "MISSING_CHAR",
            "Block scalars with more-indented leading empty lines must use an explicit indentation indicator",
          ),
          i.indent === 0 && (a = v.length),
          (h = y),
          a === 0 &&
            !e.atRoot &&
            n(
              l,
              "BAD_INDENT",
              "Block scalar values in collections must be indented",
            ));
        break;
      }
      l += v.length + k.length + 1;
    }
    for (let y = s.length - 1; y >= u; --y) s[y][0].length > a && (u = y + 1);
    let m = "",
      p = "",
      b = !1;
    for (let y = 0; y < h; ++y)
      m +=
        s[y][0].slice(a) +
        `
`;
    for (let y = h; y < u; ++y) {
      let [v, k] = s[y];
      l += v.length + k.length + 1;
      let T = k[k.length - 1] === "\r";
      if ((T && (k = k.slice(0, -1)), k && v.length < a)) {
        let M = `Block scalar lines must not be less indented than their ${i.indent ? "explicit indentation indicator" : "first line"}`;
        (n(l - k.length - (T ? 2 : 1), "BAD_INDENT", M), (v = ""));
      }
      o === ke.BLOCK_LITERAL
        ? ((m += p + v.slice(a) + k),
          (p = `
`))
        : v.length > a || k[0] === "	"
          ? (p === " "
              ? (p = `
`)
              : !b &&
                p ===
                  `
` &&
                (p = `

`),
            (m += p + v.slice(a) + k),
            (p = `
`),
            (b = !0))
          : k === ""
            ? p ===
              `
`
              ? (m += `
`)
              : (p = `
`)
            : ((m += p + k), (p = " "), (b = !1));
    }
    switch (i.chomp) {
      case "-":
        break;
      case "+":
        for (let y = u; y < s.length; ++y)
          m +=
            `
` + s[y][0].slice(a);
        m[m.length - 1] !==
          `
` &&
          (m += `
`);
        break;
      default:
        m += `
`;
    }
    let x = r + i.length + t.source.length;
    return { value: m, type: o, comment: i.comment, range: [r, x, x] };
  }
  function dU({ offset: e, props: t }, n, r) {
    if (t[0].type !== "block-scalar-header")
      return (r(t[0], "IMPOSSIBLE", "Block scalar header not found"), null);
    let { source: i } = t[0],
      o = i[0],
      s = 0,
      u = "",
      a = -1;
    for (let p = 1; p < i.length; ++p) {
      let b = i[p];
      if (!u && (b === "-" || b === "+")) u = b;
      else {
        let x = Number(b);
        !s && x ? (s = x) : a === -1 && (a = e + p);
      }
    }
    a !== -1 &&
      r(
        a,
        "UNEXPECTED_TOKEN",
        `Block scalar header includes extra characters: ${i}`,
      );
    let l = !1,
      h = "",
      m = i.length;
    for (let p = 1; p < t.length; ++p) {
      let b = t[p];
      switch (b.type) {
        case "space":
          l = !0;
        case "newline":
          m += b.source.length;
          break;
        case "comment":
          (n &&
            !l &&
            r(
              b,
              "MISSING_CHAR",
              "Comments must be separated from other tokens by white space characters",
            ),
            (m += b.source.length),
            (h = b.source.substring(1)));
          break;
        case "error":
          (r(b, "UNEXPECTED_TOKEN", b.message), (m += b.source.length));
          break;
        default: {
          let x = `Unexpected token in block scalar header: ${b.type}`;
          r(b, "UNEXPECTED_TOKEN", x);
          let y = b.source;
          y && typeof y == "string" && (m += y.length);
        }
      }
    }
    return { mode: o, indent: s, chomp: u, comment: h, length: m };
  }
  function pU(e) {
    let t = e.split(/\n( *)/),
      n = t[0],
      r = n.match(/^( *)/),
      o = [r?.[1] ? [r[1], n.slice(r[1].length)] : ["", n]];
    for (let s = 1; s < t.length; s += 2) o.push([t[s], t[s + 1]]);
    return o;
  }
  function f5(e, t, n) {
    let { offset: r, type: i, source: o, end: s } = e,
      u,
      a,
      l = (p, b, x) => n(r + p, b, x);
    switch (i) {
      case "scalar":
        ((u = ke.PLAIN), (a = mU(o, l)));
        break;
      case "single-quoted-scalar":
        ((u = ke.QUOTE_SINGLE), (a = gU(o, l)));
        break;
      case "double-quoted-scalar":
        ((u = ke.QUOTE_DOUBLE), (a = bU(o, l)));
        break;
      default:
        return (
          n(
            e,
            "UNEXPECTED_TOKEN",
            `Expected a flow scalar value, but found: ${i}`,
          ),
          {
            value: "",
            type: null,
            comment: "",
            range: [r, r + o.length, r + o.length],
          }
        );
    }
    let h = r + o.length,
      m = Di(s, h, t, n);
    return { value: a, type: u, comment: m.comment, range: [r, h, m.offset] };
  }
  function mU(e, t) {
    let n = "";
    switch (e[0]) {
      case "	":
        n = "a tab character";
        break;
      case ",":
        n = "flow indicator character ,";
        break;
      case "%":
        n = "directive indicator character %";
        break;
      case "|":
      case ">": {
        n = `block scalar indicator ${e[0]}`;
        break;
      }
      case "@":
      case "`": {
        n = `reserved character ${e[0]}`;
        break;
      }
    }
    return (
      n && t(0, "BAD_SCALAR_START", `Plain value cannot start with ${n}`),
      sE(e)
    );
  }
  function gU(e, t) {
    return (
      (e[e.length - 1] !== "'" || e.length === 1) &&
        t(e.length, "MISSING_CHAR", "Missing closing 'quote"),
      sE(e.slice(1, -1)).replace(/''/g, "'")
    );
  }
  function sE(e) {
    let t, n;
    try {
      ((t = new RegExp(
        `(.*?)(?<![ 	])[ 	]*\r?
`,
        "sy",
      )),
        (n = new RegExp(
          `[ 	]*(.*?)(?:(?<![ 	])[ 	]*)?\r?
`,
          "sy",
        )));
    } catch {
      ((t = /(.*?)[ \t]*\r?\n/sy), (n = /[ \t]*(.*?)[ \t]*\r?\n/sy));
    }
    let r = t.exec(e);
    if (!r) return e;
    let i = r[1],
      o = " ",
      s = t.lastIndex;
    for (n.lastIndex = s; (r = n.exec(e)); )
      (r[1] === ""
        ? o ===
          `
`
          ? (i += o)
          : (o = `
`)
        : ((i += o + r[1]), (o = " ")),
        (s = n.lastIndex));
    let u = /[ \t]*(.*)/sy;
    return ((u.lastIndex = s), (r = u.exec(e)), i + o + (r?.[1] ?? ""));
  }
  function bU(e, t) {
    let n = "";
    for (let r = 1; r < e.length - 1; ++r) {
      let i = e[r];
      if (
        !(
          i === "\r" &&
          e[r + 1] ===
            `
`
        )
      )
        if (
          i ===
          `
`
        ) {
          let { fold: o, offset: s } = xU(e, r);
          ((n += o), (r = s));
        } else if (i === "\\") {
          let o = e[++r],
            s = yU[o];
          if (s) n += s;
          else if (
            o ===
            `
`
          )
            for (o = e[r + 1]; o === " " || o === "	"; ) o = e[++r + 1];
          else if (
            o === "\r" &&
            e[r + 1] ===
              `
`
          )
            for (o = e[++r + 1]; o === " " || o === "	"; ) o = e[++r + 1];
          else if (o === "x" || o === "u" || o === "U") {
            let u = { x: 2, u: 4, U: 8 }[o];
            ((n += wU(e, r + 1, u, t)), (r += u));
          } else {
            let u = e.substr(r - 1, 2);
            (t(r - 1, "BAD_DQ_ESCAPE", `Invalid escape sequence ${u}`),
              (n += u));
          }
        } else if (i === " " || i === "	") {
          let o = r,
            s = e[r + 1];
          for (; s === " " || s === "	"; ) s = e[++r + 1];
          s !==
            `
` &&
            !(
              s === "\r" &&
              e[r + 2] ===
                `
`
            ) &&
            (n += r > o ? e.slice(o, r + 1) : i);
        } else n += i;
    }
    return (
      (e[e.length - 1] !== '"' || e.length === 1) &&
        t(e.length, "MISSING_CHAR", 'Missing closing "quote'),
      n
    );
  }
  function xU(e, t) {
    let n = "",
      r = e[t + 1];
    for (
      ;
      (r === " " ||
        r === "	" ||
        r ===
          `
` ||
        r === "\r") &&
      !(
        r === "\r" &&
        e[t + 2] !==
          `
`
      );
    )
      (r ===
        `
` &&
        (n += `
`),
        (t += 1),
        (r = e[t + 1]));
    return (n || (n = " "), { fold: n, offset: t });
  }
  var yU = {
    0: "\0",
    a: "\x07",
    b: "\b",
    e: "\x1B",
    f: "\f",
    n: `
`,
    r: "\r",
    t: "	",
    v: "\v",
    N: "\x85",
    _: "\xA0",
    L: "\u2028",
    P: "\u2029",
    " ": " ",
    '"': '"',
    "/": "/",
    "\\": "\\",
    "	": "	",
  };
  function wU(e, t, n, r) {
    let i = e.substr(t, n),
      s = i.length === n && /^[0-9a-fA-F]+$/.test(i) ? parseInt(i, 16) : NaN;
    if (isNaN(s)) {
      let u = e.substr(t - 2, n + 2);
      return (r(t - 2, "BAD_DQ_ESCAPE", `Invalid escape sequence ${u}`), u);
    }
    return String.fromCodePoint(s);
  }
  function h5(e, t, n, r) {
    let {
        value: i,
        type: o,
        comment: s,
        range: u,
      } = t.type === "block-scalar" ? c5(e, t, r) : f5(t, e.options.strict, r),
      a = n
        ? e.directives.tagName(n.source, (m) => r(n, "TAG_RESOLVE_FAILED", m))
        : null,
      l;
    e.options.stringKeys && e.atKey
      ? (l = e.schema[Jn])
      : a
        ? (l = vU(e.schema, i, a, n, r))
        : t.type === "scalar"
          ? (l = _U(e, i, t, r))
          : (l = e.schema[Jn]);
    let h;
    try {
      let m = l.resolve(
        i,
        (p) => r(n ?? t, "TAG_RESOLVE_FAILED", p),
        e.options,
      );
      h = Re(m) ? m : new ke(m);
    } catch (m) {
      let p = m instanceof Error ? m.message : String(m);
      (r(n ?? t, "TAG_RESOLVE_FAILED", p), (h = new ke(i)));
    }
    return (
      (h.range = u),
      (h.source = i),
      o && (h.type = o),
      a && (h.tag = a),
      l.format && (h.format = l.format),
      s && (h.comment = s),
      h
    );
  }
  function vU(e, t, n, r, i) {
    if (n === "!") return e[Jn];
    let o = [];
    for (let u of e.tags)
      if (!u.collection && u.tag === n)
        if (u.default && u.test) o.push(u);
        else return u;
    for (let u of o) if (u.test?.test(t)) return u;
    let s = e.knownTags[n];
    return s && !s.collection
      ? (e.tags.push(Object.assign({}, s, { default: !1, test: void 0 })), s)
      : (i(
          r,
          "TAG_RESOLVE_FAILED",
          `Unresolved tag: ${n}`,
          n !== "tag:yaml.org,2002:str",
        ),
        e[Jn]);
  }
  function _U({ atKey: e, directives: t, schema: n }, r, i, o) {
    let s =
      n.tags.find(
        (u) =>
          (u.default === !0 || (e && u.default === "key")) && u.test?.test(r),
      ) || n[Jn];
    if (n.compat) {
      let u = n.compat.find((a) => a.default && a.test?.test(r)) ?? n[Jn];
      if (s.tag !== u.tag) {
        let a = t.tagString(s.tag),
          l = t.tagString(u.tag),
          h = `Value may be parsed as either ${a} or ${l}`;
        o(i, "TAG_RESOLVE_FAILED", h, !0);
      }
    }
    return s;
  }
  function uE(e, t, n) {
    if (t) {
      n ?? (n = t.length);
      for (let r = n - 1; r >= 0; --r) {
        let i = t[r];
        switch (i.type) {
          case "space":
          case "comment":
          case "newline":
            e -= i.source.length;
            continue;
        }
        for (i = t[++r]; i?.type === "space"; )
          ((e += i.source.length), (i = t[++r]));
        break;
      }
    }
    return e;
  }
  var kU = { composeNode: d5, composeEmptyNode: vp };
  function d5(e, t, n, r) {
    let i = e.atKey,
      { spaceBefore: o, comment: s, anchor: u, tag: a } = n,
      l,
      h = !0;
    switch (t.type) {
      case "alias":
        ((l = SU(e, t, r)),
          (u || a) &&
            r(
              t,
              "ALIAS_PROPS",
              "An alias node must not specify any properties",
            ));
        break;
      case "scalar":
      case "single-quoted-scalar":
      case "double-quoted-scalar":
      case "block-scalar":
        ((l = h5(e, t, a, r)), u && (l.anchor = u.source.substring(1)));
        break;
      case "block-map":
      case "block-seq":
      case "flow-collection":
        ((l = oE(kU, e, t, n, r)), u && (l.anchor = u.source.substring(1)));
        break;
      default: {
        let m =
          t.type === "error"
            ? t.message
            : `Unsupported token (type: ${t.type})`;
        (r(t, "UNEXPECTED_TOKEN", m),
          (l = vp(e, t.offset, void 0, null, n, r)),
          (h = !1));
      }
    }
    return (
      u &&
        l.anchor === "" &&
        r(u, "BAD_ALIAS", "Anchor cannot be an empty string"),
      i &&
        e.options.stringKeys &&
        (!Re(l) ||
          typeof l.value != "string" ||
          (l.tag && l.tag !== "tag:yaml.org,2002:str")) &&
        r(
          a ?? t,
          "NON_STRING_KEY",
          "With stringKeys, all keys must be strings",
        ),
      o && (l.spaceBefore = !0),
      s &&
        (t.type === "scalar" && t.source === ""
          ? (l.comment = s)
          : (l.commentBefore = s)),
      e.options.keepSourceTokens && h && (l.srcToken = t),
      l
    );
  }
  function vp(
    e,
    t,
    n,
    r,
    { spaceBefore: i, comment: o, anchor: s, tag: u, end: a },
    l,
  ) {
    let h = { type: "scalar", offset: uE(t, n, r), indent: -1, source: "" },
      m = h5(e, h, u, l);
    return (
      s &&
        ((m.anchor = s.source.substring(1)),
        m.anchor === "" &&
          l(s, "BAD_ALIAS", "Anchor cannot be an empty string")),
      i && (m.spaceBefore = !0),
      o && ((m.comment = o), (m.range[2] = a)),
      m
    );
  }
  function SU({ options: e }, { offset: t, source: n, end: r }, i) {
    let o = new mo(n.substring(1));
    (o.source === "" && i(t, "BAD_ALIAS", "Alias cannot be an empty string"),
      o.source.endsWith(":") &&
        i(t + n.length - 1, "BAD_ALIAS", "Alias ending in : is ambiguous", !0));
    let s = t + n.length,
      u = Di(r, s, e.strict, i);
    return (
      (o.range = [t, s, u.offset]),
      u.comment && (o.comment = u.comment),
      o
    );
  }
  function aE(e, t, { offset: n, start: r, value: i, end: o }, s) {
    let u = Object.assign({ _directives: t }, e),
      a = new c0(void 0, u),
      l = {
        atKey: !1,
        atRoot: !0,
        directives: a.directives,
        options: a.options,
        schema: a.schema,
      },
      h = Ni(r, {
        indicator: "doc-start",
        next: i ?? o?.[0],
        offset: n,
        onError: s,
        parentIndent: 0,
        startOnNewline: !0,
      });
    (h.found &&
      ((a.directives.docStart = !0),
      i &&
        (i.type === "block-map" || i.type === "block-seq") &&
        !h.hasNewline &&
        s(
          h.end,
          "MISSING_CHAR",
          "Block collection cannot start on same line with directives-end marker",
        )),
      (a.contents = i ? d5(l, i, h, s) : vp(l, h.end, r, null, h, s)));
    let m = a.contents.range[2],
      p = Di(o, m, !1, s);
    return (
      p.comment && (a.comment = p.comment),
      (a.range = [n, m, p.offset]),
      a
    );
  }
  function wc(e) {
    if (typeof e == "number") return [e, e + 1];
    if (Array.isArray(e)) return e.length === 2 ? e : [e[0], e[1]];
    let { offset: t, source: n } = e;
    return [t, t + (typeof n == "string" ? n.length : 1)];
  }
  function lE(e) {
    let t = "",
      n = !1,
      r = !1;
    for (let i = 0; i < e.length; ++i) {
      let o = e[i];
      switch (o[0]) {
        case "#":
          ((t +=
            (t === ""
              ? ""
              : r
                ? `

`
                : `
`) + (o.substring(1) || " ")),
            (n = !0),
            (r = !1));
          break;
        case "%":
          (e[i + 1]?.[0] !== "#" && (i += 1), (n = !1));
          break;
        default:
          (n || (r = !0), (n = !1));
      }
    }
    return { comment: t, afterEmptyLine: r };
  }
  var vc = class {
    constructor(t = {}) {
      ((this.doc = null),
        (this.atDirectives = !1),
        (this.prelude = []),
        (this.errors = []),
        (this.warnings = []),
        (this.onError = (n, r, i, o) => {
          let s = wc(n);
          o
            ? this.warnings.push(new xc(s, r, i))
            : this.errors.push(new jr(s, r, i));
        }),
        (this.directives = new Ei({ version: t.version || "1.2" })),
        (this.options = t));
    }
    decorate(t, n) {
      let { comment: r, afterEmptyLine: i } = lE(this.prelude);
      if (r) {
        let o = t.contents;
        if (n)
          t.comment = t.comment
            ? `${t.comment}
${r}`
            : r;
        else if (i || t.directives.docStart || !o) t.commentBefore = r;
        else if (at(o) && !o.flow && o.items.length > 0) {
          let s = o.items[0];
          Ge(s) && (s = s.key);
          let u = s.commentBefore;
          s.commentBefore = u
            ? `${r}
${u}`
            : r;
        } else {
          let s = o.commentBefore;
          o.commentBefore = s
            ? `${r}
${s}`
            : r;
        }
      }
      (n
        ? (Array.prototype.push.apply(t.errors, this.errors),
          Array.prototype.push.apply(t.warnings, this.warnings))
        : ((t.errors = this.errors), (t.warnings = this.warnings)),
        (this.prelude = []),
        (this.errors = []),
        (this.warnings = []));
    }
    streamInfo() {
      return {
        comment: lE(this.prelude).comment,
        directives: this.directives,
        errors: this.errors,
        warnings: this.warnings,
      };
    }
    *compose(t, n = !1, r = -1) {
      for (let i of t) yield* this.next(i);
      yield* this.end(n, r);
    }
    *next(t) {
      switch (t.type) {
        case "directive":
          (this.directives.add(t.source, (n, r, i) => {
            let o = wc(t);
            ((o[0] += n), this.onError(o, "BAD_DIRECTIVE", r, i));
          }),
            this.prelude.push(t.source),
            (this.atDirectives = !0));
          break;
        case "document": {
          let n = aE(this.options, this.directives, t, this.onError);
          (this.atDirectives &&
            !n.directives.docStart &&
            this.onError(
              t,
              "MISSING_CHAR",
              "Missing directives-end/doc-start indicator line",
            ),
            this.decorate(n, !1),
            this.doc && (yield this.doc),
            (this.doc = n),
            (this.atDirectives = !1));
          break;
        }
        case "byte-order-mark":
        case "space":
          break;
        case "comment":
        case "newline":
          this.prelude.push(t.source);
          break;
        case "error": {
          let n = t.source
              ? `${t.message}: ${JSON.stringify(t.source)}`
              : t.message,
            r = new jr(wc(t), "UNEXPECTED_TOKEN", n);
          this.atDirectives || !this.doc
            ? this.errors.push(r)
            : this.doc.errors.push(r);
          break;
        }
        case "doc-end": {
          if (!this.doc) {
            let r = "Unexpected doc-end without preceding document";
            this.errors.push(new jr(wc(t), "UNEXPECTED_TOKEN", r));
            break;
          }
          this.doc.directives.docEnd = !0;
          let n = Di(
            t.end,
            t.offset + t.source.length,
            this.doc.options.strict,
            this.onError,
          );
          if ((this.decorate(this.doc, !0), n.comment)) {
            let r = this.doc.comment;
            this.doc.comment = r
              ? `${r}
${n.comment}`
              : n.comment;
          }
          this.doc.range[2] = n.offset;
          break;
        }
        default:
          this.errors.push(
            new jr(wc(t), "UNEXPECTED_TOKEN", `Unsupported token ${t.type}`),
          );
      }
    }
    *end(t = !1, n = -1) {
      if (this.doc)
        (this.decorate(this.doc, !0), yield this.doc, (this.doc = null));
      else if (t) {
        let r = Object.assign({ _directives: this.directives }, this.options),
          i = new c0(void 0, r);
        (this.atDirectives &&
          this.onError(
            n,
            "MISSING_CHAR",
            "Missing directives-end indicator line",
          ),
          (i.range = [0, n, n]),
          this.decorate(i, !1),
          yield i);
      }
    }
  };
  var p5 = Symbol("break visit"),
    AU = Symbol("skip children"),
    cE = Symbol("remove item");
  function Ds(e, t) {
    ("type" in e &&
      e.type === "document" &&
      (e = { start: e.start, value: e.value }),
      fE(Object.freeze([]), e, t));
  }
  Ds.BREAK = p5;
  Ds.SKIP = AU;
  Ds.REMOVE = cE;
  Ds.itemAtPath = (e, t) => {
    let n = e;
    for (let [r, i] of t) {
      let o = n?.[r];
      if (o && "items" in o) n = o.items[i];
      else return;
    }
    return n;
  };
  Ds.parentCollection = (e, t) => {
    let n = Ds.itemAtPath(e, t.slice(0, -1)),
      r = t[t.length - 1][0],
      i = n?.[r];
    if (i && "items" in i) return i;
    throw new Error("Parent collection not found");
  };
  function fE(e, t, n) {
    let r = n(t, e);
    if (typeof r == "symbol") return r;
    for (let i of ["key", "value"]) {
      let o = t[i];
      if (o && "items" in o) {
        for (let s = 0; s < o.items.length; ++s) {
          let u = fE(Object.freeze(e.concat([[i, s]])), o.items[s], n);
          if (typeof u == "number") s = u - 1;
          else {
            if (u === p5) return p5;
            u === cE && (o.items.splice(s, 1), (s -= 1));
          }
        }
        typeof r == "function" && i === "key" && (r = r(t, e));
      }
    }
    return typeof r == "function" ? r(t, e) : r;
  }
  var m5 = "\uFEFF",
    g5 = "",
    b5 = "",
    _p = "";
  function hE(e) {
    switch (e) {
      case m5:
        return "byte-order-mark";
      case g5:
        return "doc-mode";
      case b5:
        return "flow-error-end";
      case _p:
        return "scalar";
      case "---":
        return "doc-start";
      case "...":
        return "doc-end";
      case "":
      case `
`:
      case `\r
`:
        return "newline";
      case "-":
        return "seq-item-ind";
      case "?":
        return "explicit-key-ind";
      case ":":
        return "map-value-ind";
      case "{":
        return "flow-map-start";
      case "}":
        return "flow-map-end";
      case "[":
        return "flow-seq-start";
      case "]":
        return "flow-seq-end";
      case ",":
        return "comma";
    }
    switch (e[0]) {
      case " ":
      case "	":
        return "space";
      case "#":
        return "comment";
      case "%":
        return "directive-line";
      case "*":
        return "alias";
      case "&":
        return "anchor";
      case "!":
        return "tag";
      case "'":
        return "single-quoted-scalar";
      case '"':
        return "double-quoted-scalar";
      case "|":
      case ">":
        return "block-scalar-header";
    }
    return null;
  }
  function Gr(e) {
    switch (e) {
      case void 0:
      case " ":
      case `
`:
      case "\r":
      case "	":
        return !0;
      default:
        return !1;
    }
  }
  var dE = new Set("0123456789ABCDEFabcdef"),
    TU = new Set(
      "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()",
    ),
    kp = new Set(",[]{}"),
    EU = new Set(` ,[]{}
\r	`),
    x5 = (e) => !e || EU.has(e),
    _c = class {
      constructor() {
        ((this.atEnd = !1),
          (this.blockScalarIndent = -1),
          (this.blockScalarKeep = !1),
          (this.buffer = ""),
          (this.flowKey = !1),
          (this.flowLevel = 0),
          (this.indentNext = 0),
          (this.indentValue = 0),
          (this.lineEndPos = null),
          (this.next = null),
          (this.pos = 0));
      }
      *lex(t, n = !1) {
        if (t) {
          if (typeof t != "string") throw TypeError("source is not a string");
          ((this.buffer = this.buffer ? this.buffer + t : t),
            (this.lineEndPos = null));
        }
        this.atEnd = !n;
        let r = this.next ?? "stream";
        for (; r && (n || this.hasChars(1)); ) r = yield* this.parseNext(r);
      }
      atLineEnd() {
        let t = this.pos,
          n = this.buffer[t];
        for (; n === " " || n === "	"; ) n = this.buffer[++t];
        return !n ||
          n === "#" ||
          n ===
            `
`
          ? !0
          : n === "\r"
            ? this.buffer[t + 1] ===
              `
`
            : !1;
      }
      charAt(t) {
        return this.buffer[this.pos + t];
      }
      continueScalar(t) {
        let n = this.buffer[t];
        if (this.indentNext > 0) {
          let r = 0;
          for (; n === " "; ) n = this.buffer[++r + t];
          if (n === "\r") {
            let i = this.buffer[r + t + 1];
            if (
              i ===
                `
` ||
              (!i && !this.atEnd)
            )
              return t + r + 1;
          }
          return n ===
            `
` ||
            r >= this.indentNext ||
            (!n && !this.atEnd)
            ? t + r
            : -1;
        }
        if (n === "-" || n === ".") {
          let r = this.buffer.substr(t, 3);
          if ((r === "---" || r === "...") && Gr(this.buffer[t + 3])) return -1;
        }
        return t;
      }
      getLine() {
        let t = this.lineEndPos;
        return (
          (typeof t != "number" || (t !== -1 && t < this.pos)) &&
            ((t = this.buffer.indexOf(
              `
`,
              this.pos,
            )),
            (this.lineEndPos = t)),
          t === -1
            ? this.atEnd
              ? this.buffer.substring(this.pos)
              : null
            : (this.buffer[t - 1] === "\r" && (t -= 1),
              this.buffer.substring(this.pos, t))
        );
      }
      hasChars(t) {
        return this.pos + t <= this.buffer.length;
      }
      setNext(t) {
        return (
          (this.buffer = this.buffer.substring(this.pos)),
          (this.pos = 0),
          (this.lineEndPos = null),
          (this.next = t),
          null
        );
      }
      peek(t) {
        return this.buffer.substr(this.pos, t);
      }
      *parseNext(t) {
        switch (t) {
          case "stream":
            return yield* this.parseStream();
          case "line-start":
            return yield* this.parseLineStart();
          case "block-start":
            return yield* this.parseBlockStart();
          case "doc":
            return yield* this.parseDocument();
          case "flow":
            return yield* this.parseFlowCollection();
          case "quoted-scalar":
            return yield* this.parseQuotedScalar();
          case "block-scalar":
            return yield* this.parseBlockScalar();
          case "plain-scalar":
            return yield* this.parsePlainScalar();
        }
      }
      *parseStream() {
        let t = this.getLine();
        if (t === null) return this.setNext("stream");
        if (
          (t[0] === m5 && (yield* this.pushCount(1), (t = t.substring(1))),
          t[0] === "%")
        ) {
          let n = t.length,
            r = t.indexOf("#");
          for (; r !== -1; ) {
            let o = t[r - 1];
            if (o === " " || o === "	") {
              n = r - 1;
              break;
            } else r = t.indexOf("#", r + 1);
          }
          for (;;) {
            let o = t[n - 1];
            if (o === " " || o === "	") n -= 1;
            else break;
          }
          let i = (yield* this.pushCount(n)) + (yield* this.pushSpaces(!0));
          return (
            yield* this.pushCount(t.length - i),
            this.pushNewline(),
            "stream"
          );
        }
        if (this.atLineEnd()) {
          let n = yield* this.pushSpaces(!0);
          return (
            yield* this.pushCount(t.length - n),
            yield* this.pushNewline(),
            "stream"
          );
        }
        return (yield g5, yield* this.parseLineStart());
      }
      *parseLineStart() {
        let t = this.charAt(0);
        if (!t && !this.atEnd) return this.setNext("line-start");
        if (t === "-" || t === ".") {
          if (!this.atEnd && !this.hasChars(4))
            return this.setNext("line-start");
          let n = this.peek(3);
          if ((n === "---" || n === "...") && Gr(this.charAt(3)))
            return (
              yield* this.pushCount(3),
              (this.indentValue = 0),
              (this.indentNext = 0),
              n === "---" ? "doc" : "stream"
            );
        }
        return (
          (this.indentValue = yield* this.pushSpaces(!1)),
          this.indentNext > this.indentValue &&
            !Gr(this.charAt(1)) &&
            (this.indentNext = this.indentValue),
          yield* this.parseBlockStart()
        );
      }
      *parseBlockStart() {
        let [t, n] = this.peek(2);
        if (!n && !this.atEnd) return this.setNext("block-start");
        if ((t === "-" || t === "?" || t === ":") && Gr(n)) {
          let r = (yield* this.pushCount(1)) + (yield* this.pushSpaces(!0));
          return (
            (this.indentNext = this.indentValue + 1),
            (this.indentValue += r),
            yield* this.parseBlockStart()
          );
        }
        return "doc";
      }
      *parseDocument() {
        yield* this.pushSpaces(!0);
        let t = this.getLine();
        if (t === null) return this.setNext("doc");
        let n = yield* this.pushIndicators();
        switch (t[n]) {
          case "#":
            yield* this.pushCount(t.length - n);
          case void 0:
            return (yield* this.pushNewline(), yield* this.parseLineStart());
          case "{":
          case "[":
            return (
              yield* this.pushCount(1),
              (this.flowKey = !1),
              (this.flowLevel = 1),
              "flow"
            );
          case "}":
          case "]":
            return (yield* this.pushCount(1), "doc");
          case "*":
            return (yield* this.pushUntil(x5), "doc");
          case '"':
          case "'":
            return yield* this.parseQuotedScalar();
          case "|":
          case ">":
            return (
              (n += yield* this.parseBlockScalarHeader()),
              (n += yield* this.pushSpaces(!0)),
              yield* this.pushCount(t.length - n),
              yield* this.pushNewline(),
              yield* this.parseBlockScalar()
            );
          default:
            return yield* this.parsePlainScalar();
        }
      }
      *parseFlowCollection() {
        let t,
          n,
          r = -1;
        do
          ((t = yield* this.pushNewline()),
            t > 0
              ? ((n = yield* this.pushSpaces(!1)), (this.indentValue = r = n))
              : (n = 0),
            (n += yield* this.pushSpaces(!0)));
        while (t + n > 0);
        let i = this.getLine();
        if (i === null) return this.setNext("flow");
        if (
          ((r !== -1 && r < this.indentNext && i[0] !== "#") ||
            (r === 0 &&
              (i.startsWith("---") || i.startsWith("...")) &&
              Gr(i[3]))) &&
          !(
            r === this.indentNext - 1 &&
            this.flowLevel === 1 &&
            (i[0] === "]" || i[0] === "}")
          )
        )
          return ((this.flowLevel = 0), yield b5, yield* this.parseLineStart());
        let o = 0;
        for (; i[o] === ","; )
          ((o += yield* this.pushCount(1)),
            (o += yield* this.pushSpaces(!0)),
            (this.flowKey = !1));
        switch (((o += yield* this.pushIndicators()), i[o])) {
          case void 0:
            return "flow";
          case "#":
            return (yield* this.pushCount(i.length - o), "flow");
          case "{":
          case "[":
            return (
              yield* this.pushCount(1),
              (this.flowKey = !1),
              (this.flowLevel += 1),
              "flow"
            );
          case "}":
          case "]":
            return (
              yield* this.pushCount(1),
              (this.flowKey = !0),
              (this.flowLevel -= 1),
              this.flowLevel ? "flow" : "doc"
            );
          case "*":
            return (yield* this.pushUntil(x5), "flow");
          case '"':
          case "'":
            return ((this.flowKey = !0), yield* this.parseQuotedScalar());
          case ":": {
            let s = this.charAt(1);
            if (this.flowKey || Gr(s) || s === ",")
              return (
                (this.flowKey = !1),
                yield* this.pushCount(1),
                yield* this.pushSpaces(!0),
                "flow"
              );
          }
          default:
            return ((this.flowKey = !1), yield* this.parsePlainScalar());
        }
      }
      *parseQuotedScalar() {
        let t = this.charAt(0),
          n = this.buffer.indexOf(t, this.pos + 1);
        if (t === "'")
          for (; n !== -1 && this.buffer[n + 1] === "'"; )
            n = this.buffer.indexOf("'", n + 2);
        else
          for (; n !== -1; ) {
            let o = 0;
            for (; this.buffer[n - 1 - o] === "\\"; ) o += 1;
            if (o % 2 === 0) break;
            n = this.buffer.indexOf('"', n + 1);
          }
        let r = this.buffer.substring(0, n),
          i = r.indexOf(
            `
`,
            this.pos,
          );
        if (i !== -1) {
          for (; i !== -1; ) {
            let o = this.continueScalar(i + 1);
            if (o === -1) break;
            i = r.indexOf(
              `
`,
              o,
            );
          }
          i !== -1 && (n = i - (r[i - 1] === "\r" ? 2 : 1));
        }
        if (n === -1) {
          if (!this.atEnd) return this.setNext("quoted-scalar");
          n = this.buffer.length;
        }
        return (
          yield* this.pushToIndex(n + 1, !1),
          this.flowLevel ? "flow" : "doc"
        );
      }
      *parseBlockScalarHeader() {
        ((this.blockScalarIndent = -1), (this.blockScalarKeep = !1));
        let t = this.pos;
        for (;;) {
          let n = this.buffer[++t];
          if (n === "+") this.blockScalarKeep = !0;
          else if (n > "0" && n <= "9") this.blockScalarIndent = Number(n) - 1;
          else if (n !== "-") break;
        }
        return yield* this.pushUntil((n) => Gr(n) || n === "#");
      }
      *parseBlockScalar() {
        let t = this.pos - 1,
          n = 0,
          r;
        e: for (let o = this.pos; (r = this.buffer[o]); ++o)
          switch (r) {
            case " ":
              n += 1;
              break;
            case `
`:
              ((t = o), (n = 0));
              break;
            case "\r": {
              let s = this.buffer[o + 1];
              if (!s && !this.atEnd) return this.setNext("block-scalar");
              if (
                s ===
                `
`
              )
                break;
            }
            default:
              break e;
          }
        if (!r && !this.atEnd) return this.setNext("block-scalar");
        if (n >= this.indentNext) {
          this.blockScalarIndent === -1
            ? (this.indentNext = n)
            : (this.indentNext =
                this.blockScalarIndent +
                (this.indentNext === 0 ? 1 : this.indentNext));
          do {
            let o = this.continueScalar(t + 1);
            if (o === -1) break;
            t = this.buffer.indexOf(
              `
`,
              o,
            );
          } while (t !== -1);
          if (t === -1) {
            if (!this.atEnd) return this.setNext("block-scalar");
            t = this.buffer.length;
          }
        }
        let i = t + 1;
        for (r = this.buffer[i]; r === " "; ) r = this.buffer[++i];
        if (r === "	") {
          for (
            ;
            r === "	" ||
            r === " " ||
            r === "\r" ||
            r ===
              `
`;
          )
            r = this.buffer[++i];
          t = i - 1;
        } else if (!this.blockScalarKeep)
          do {
            let o = t - 1,
              s = this.buffer[o];
            s === "\r" && (s = this.buffer[--o]);
            let u = o;
            for (; s === " "; ) s = this.buffer[--o];
            if (
              s ===
                `
` &&
              o >= this.pos &&
              o + 1 + n > u
            )
              t = o;
            else break;
          } while (!0);
        return (
          yield _p,
          yield* this.pushToIndex(t + 1, !0),
          yield* this.parseLineStart()
        );
      }
      *parsePlainScalar() {
        let t = this.flowLevel > 0,
          n = this.pos - 1,
          r = this.pos - 1,
          i;
        for (; (i = this.buffer[++r]); )
          if (i === ":") {
            let o = this.buffer[r + 1];
            if (Gr(o) || (t && kp.has(o))) break;
            n = r;
          } else if (Gr(i)) {
            let o = this.buffer[r + 1];
            if (
              (i === "\r" &&
                (o ===
                `
`
                  ? ((r += 1),
                    (i = `
`),
                    (o = this.buffer[r + 1]))
                  : (n = r)),
              o === "#" || (t && kp.has(o)))
            )
              break;
            if (
              i ===
              `
`
            ) {
              let s = this.continueScalar(r + 1);
              if (s === -1) break;
              r = Math.max(r, s - 2);
            }
          } else {
            if (t && kp.has(i)) break;
            n = r;
          }
        return !i && !this.atEnd
          ? this.setNext("plain-scalar")
          : (yield _p, yield* this.pushToIndex(n + 1, !0), t ? "flow" : "doc");
      }
      *pushCount(t) {
        return t > 0
          ? (yield this.buffer.substr(this.pos, t), (this.pos += t), t)
          : 0;
      }
      *pushToIndex(t, n) {
        let r = this.buffer.slice(this.pos, t);
        return r
          ? (yield r, (this.pos += r.length), r.length)
          : (n && (yield ""), 0);
      }
      *pushIndicators() {
        switch (this.charAt(0)) {
          case "!":
            return (
              (yield* this.pushTag()) +
              (yield* this.pushSpaces(!0)) +
              (yield* this.pushIndicators())
            );
          case "&":
            return (
              (yield* this.pushUntil(x5)) +
              (yield* this.pushSpaces(!0)) +
              (yield* this.pushIndicators())
            );
          case "-":
          case "?":
          case ":": {
            let t = this.flowLevel > 0,
              n = this.charAt(1);
            if (Gr(n) || (t && kp.has(n)))
              return (
                t
                  ? this.flowKey && (this.flowKey = !1)
                  : (this.indentNext = this.indentValue + 1),
                (yield* this.pushCount(1)) +
                  (yield* this.pushSpaces(!0)) +
                  (yield* this.pushIndicators())
              );
          }
        }
        return 0;
      }
      *pushTag() {
        if (this.charAt(1) === "<") {
          let t = this.pos + 2,
            n = this.buffer[t];
          for (; !Gr(n) && n !== ">"; ) n = this.buffer[++t];
          return yield* this.pushToIndex(n === ">" ? t + 1 : t, !1);
        } else {
          let t = this.pos + 1,
            n = this.buffer[t];
          for (; n; )
            if (TU.has(n)) n = this.buffer[++t];
            else if (
              n === "%" &&
              dE.has(this.buffer[t + 1]) &&
              dE.has(this.buffer[t + 2])
            )
              n = this.buffer[(t += 3)];
            else break;
          return yield* this.pushToIndex(t, !1);
        }
      }
      *pushNewline() {
        let t = this.buffer[this.pos];
        return t ===
          `
`
          ? yield* this.pushCount(1)
          : t === "\r" &&
              this.charAt(1) ===
                `
`
            ? yield* this.pushCount(2)
            : 0;
      }
      *pushSpaces(t) {
        let n = this.pos - 1,
          r;
        do r = this.buffer[++n];
        while (r === " " || (t && r === "	"));
        let i = n - this.pos;
        return (
          i > 0 && (yield this.buffer.substr(this.pos, i), (this.pos = n)),
          i
        );
      }
      *pushUntil(t) {
        let n = this.pos,
          r = this.buffer[n];
        for (; !t(r); ) r = this.buffer[++n];
        return yield* this.pushToIndex(n, !1);
      }
    };
  var kc = class {
    constructor() {
      ((this.lineStarts = []),
        (this.addNewLine = (t) => this.lineStarts.push(t)),
        (this.linePos = (t) => {
          let n = 0,
            r = this.lineStarts.length;
          for (; n < r; ) {
            let o = (n + r) >> 1;
            this.lineStarts[o] < t ? (n = o + 1) : (r = o);
          }
          if (this.lineStarts[n] === t) return { line: n + 1, col: 1 };
          if (n === 0) return { line: 0, col: t };
          let i = this.lineStarts[n - 1];
          return { line: n, col: t - i + 1 };
        }));
    }
  };
  function h0(e, t) {
    for (let n = 0; n < e.length; ++n) if (e[n].type === t) return !0;
    return !1;
  }
  function pE(e) {
    for (let t = 0; t < e.length; ++t)
      switch (e[t].type) {
        case "space":
        case "comment":
        case "newline":
          break;
        default:
          return t;
      }
    return -1;
  }
  function gE(e) {
    switch (e?.type) {
      case "alias":
      case "scalar":
      case "single-quoted-scalar":
      case "double-quoted-scalar":
      case "flow-collection":
        return !0;
      default:
        return !1;
    }
  }
  function Sp(e) {
    switch (e.type) {
      case "document":
        return e.start;
      case "block-map": {
        let t = e.items[e.items.length - 1];
        return t.sep ?? t.start;
      }
      case "block-seq":
        return e.items[e.items.length - 1].start;
      default:
        return [];
    }
  }
  function ra(e) {
    if (e.length === 0) return [];
    let t = e.length;
    e: for (; --t >= 0; )
      switch (e[t].type) {
        case "doc-start":
        case "explicit-key-ind":
        case "map-value-ind":
        case "seq-item-ind":
        case "newline":
          break e;
      }
    for (; e[++t]?.type === "space"; );
    return e.splice(t, e.length);
  }
  function mE(e) {
    if (e.start.type === "flow-seq-start")
      for (let t of e.items)
        t.sep &&
          !t.value &&
          !h0(t.start, "explicit-key-ind") &&
          !h0(t.sep, "map-value-ind") &&
          (t.key && (t.value = t.key),
          delete t.key,
          gE(t.value)
            ? t.value.end
              ? Array.prototype.push.apply(t.value.end, t.sep)
              : (t.value.end = t.sep)
            : Array.prototype.push.apply(t.start, t.sep),
          delete t.sep);
  }
  var Sc = class {
    constructor(t) {
      ((this.atNewLine = !0),
        (this.atScalar = !1),
        (this.indent = 0),
        (this.offset = 0),
        (this.onKeyLine = !1),
        (this.stack = []),
        (this.source = ""),
        (this.type = ""),
        (this.lexer = new _c()),
        (this.onNewLine = t));
    }
    *parse(t, n = !1) {
      this.onNewLine && this.offset === 0 && this.onNewLine(0);
      for (let r of this.lexer.lex(t, n)) yield* this.next(r);
      n || (yield* this.end());
    }
    *next(t) {
      if (((this.source = t), this.atScalar)) {
        ((this.atScalar = !1), yield* this.step(), (this.offset += t.length));
        return;
      }
      let n = hE(t);
      if (n)
        if (n === "scalar")
          ((this.atNewLine = !1), (this.atScalar = !0), (this.type = "scalar"));
        else {
          switch (((this.type = n), yield* this.step(), n)) {
            case "newline":
              ((this.atNewLine = !0),
                (this.indent = 0),
                this.onNewLine && this.onNewLine(this.offset + t.length));
              break;
            case "space":
              this.atNewLine && t[0] === " " && (this.indent += t.length);
              break;
            case "explicit-key-ind":
            case "map-value-ind":
            case "seq-item-ind":
              this.atNewLine && (this.indent += t.length);
              break;
            case "doc-mode":
            case "flow-error-end":
              return;
            default:
              this.atNewLine = !1;
          }
          this.offset += t.length;
        }
      else {
        let r = `Not a YAML token: ${t}`;
        (yield* this.pop({
          type: "error",
          offset: this.offset,
          message: r,
          source: t,
        }),
          (this.offset += t.length));
      }
    }
    *end() {
      for (; this.stack.length > 0; ) yield* this.pop();
    }
    get sourceToken() {
      return {
        type: this.type,
        offset: this.offset,
        indent: this.indent,
        source: this.source,
      };
    }
    *step() {
      let t = this.peek(1);
      if (this.type === "doc-end" && t?.type !== "doc-end") {
        for (; this.stack.length > 0; ) yield* this.pop();
        this.stack.push({
          type: "doc-end",
          offset: this.offset,
          source: this.source,
        });
        return;
      }
      if (!t) return yield* this.stream();
      switch (t.type) {
        case "document":
          return yield* this.document(t);
        case "alias":
        case "scalar":
        case "single-quoted-scalar":
        case "double-quoted-scalar":
          return yield* this.scalar(t);
        case "block-scalar":
          return yield* this.blockScalar(t);
        case "block-map":
          return yield* this.blockMap(t);
        case "block-seq":
          return yield* this.blockSequence(t);
        case "flow-collection":
          return yield* this.flowCollection(t);
        case "doc-end":
          return yield* this.documentEnd(t);
      }
      yield* this.pop();
    }
    peek(t) {
      return this.stack[this.stack.length - t];
    }
    *pop(t) {
      let n = t ?? this.stack.pop();
      if (!n)
        yield {
          type: "error",
          offset: this.offset,
          source: "",
          message: "Tried to pop an empty stack",
        };
      else if (this.stack.length === 0) yield n;
      else {
        let r = this.peek(1);
        switch (
          (n.type === "block-scalar"
            ? (n.indent = "indent" in r ? r.indent : 0)
            : n.type === "flow-collection" &&
              r.type === "document" &&
              (n.indent = 0),
          n.type === "flow-collection" && mE(n),
          r.type)
        ) {
          case "document":
            r.value = n;
            break;
          case "block-scalar":
            r.props.push(n);
            break;
          case "block-map": {
            let i = r.items[r.items.length - 1];
            if (i.value) {
              (r.items.push({ start: [], key: n, sep: [] }),
                (this.onKeyLine = !0));
              return;
            } else if (i.sep) i.value = n;
            else {
              (Object.assign(i, { key: n, sep: [] }),
                (this.onKeyLine = !i.explicitKey));
              return;
            }
            break;
          }
          case "block-seq": {
            let i = r.items[r.items.length - 1];
            i.value ? r.items.push({ start: [], value: n }) : (i.value = n);
            break;
          }
          case "flow-collection": {
            let i = r.items[r.items.length - 1];
            !i || i.value
              ? r.items.push({ start: [], key: n, sep: [] })
              : i.sep
                ? (i.value = n)
                : Object.assign(i, { key: n, sep: [] });
            return;
          }
          default:
            (yield* this.pop(), yield* this.pop(n));
        }
        if (
          (r.type === "document" ||
            r.type === "block-map" ||
            r.type === "block-seq") &&
          (n.type === "block-map" || n.type === "block-seq")
        ) {
          let i = n.items[n.items.length - 1];
          i &&
            !i.sep &&
            !i.value &&
            i.start.length > 0 &&
            pE(i.start) === -1 &&
            (n.indent === 0 ||
              i.start.every(
                (o) => o.type !== "comment" || o.indent < n.indent,
              )) &&
            (r.type === "document"
              ? (r.end = i.start)
              : r.items.push({ start: i.start }),
            n.items.splice(-1, 1));
        }
      }
    }
    *stream() {
      switch (this.type) {
        case "directive-line":
          yield { type: "directive", offset: this.offset, source: this.source };
          return;
        case "byte-order-mark":
        case "space":
        case "comment":
        case "newline":
          yield this.sourceToken;
          return;
        case "doc-mode":
        case "doc-start": {
          let t = { type: "document", offset: this.offset, start: [] };
          (this.type === "doc-start" && t.start.push(this.sourceToken),
            this.stack.push(t));
          return;
        }
      }
      yield {
        type: "error",
        offset: this.offset,
        message: `Unexpected ${this.type} token in YAML stream`,
        source: this.source,
      };
    }
    *document(t) {
      if (t.value) return yield* this.lineEnd(t);
      switch (this.type) {
        case "doc-start": {
          pE(t.start) !== -1
            ? (yield* this.pop(), yield* this.step())
            : t.start.push(this.sourceToken);
          return;
        }
        case "anchor":
        case "tag":
        case "space":
        case "comment":
        case "newline":
          t.start.push(this.sourceToken);
          return;
      }
      let n = this.startBlockValue(t);
      n
        ? this.stack.push(n)
        : yield {
            type: "error",
            offset: this.offset,
            message: `Unexpected ${this.type} token in YAML document`,
            source: this.source,
          };
    }
    *scalar(t) {
      if (this.type === "map-value-ind") {
        let n = Sp(this.peek(2)),
          r = ra(n),
          i;
        t.end
          ? ((i = t.end), i.push(this.sourceToken), delete t.end)
          : (i = [this.sourceToken]);
        let o = {
          type: "block-map",
          offset: t.offset,
          indent: t.indent,
          items: [{ start: r, key: t, sep: i }],
        };
        ((this.onKeyLine = !0), (this.stack[this.stack.length - 1] = o));
      } else yield* this.lineEnd(t);
    }
    *blockScalar(t) {
      switch (this.type) {
        case "space":
        case "comment":
        case "newline":
          t.props.push(this.sourceToken);
          return;
        case "scalar":
          if (
            ((t.source = this.source),
            (this.atNewLine = !0),
            (this.indent = 0),
            this.onNewLine)
          ) {
            let n =
              this.source.indexOf(`
`) + 1;
            for (; n !== 0; )
              (this.onNewLine(this.offset + n),
                (n =
                  this.source.indexOf(
                    `
`,
                    n,
                  ) + 1));
          }
          yield* this.pop();
          break;
        default:
          (yield* this.pop(), yield* this.step());
      }
    }
    *blockMap(t) {
      let n = t.items[t.items.length - 1];
      switch (this.type) {
        case "newline":
          if (((this.onKeyLine = !1), n.value)) {
            let r = "end" in n.value ? n.value.end : void 0;
            (Array.isArray(r) ? r[r.length - 1] : void 0)?.type === "comment"
              ? r?.push(this.sourceToken)
              : t.items.push({ start: [this.sourceToken] });
          } else
            n.sep
              ? n.sep.push(this.sourceToken)
              : n.start.push(this.sourceToken);
          return;
        case "space":
        case "comment":
          if (n.value) t.items.push({ start: [this.sourceToken] });
          else if (n.sep) n.sep.push(this.sourceToken);
          else {
            if (this.atIndentedComment(n.start, t.indent)) {
              let i = t.items[t.items.length - 2]?.value?.end;
              if (Array.isArray(i)) {
                (Array.prototype.push.apply(i, n.start),
                  i.push(this.sourceToken),
                  t.items.pop());
                return;
              }
            }
            n.start.push(this.sourceToken);
          }
          return;
      }
      if (this.indent >= t.indent) {
        let r = !this.onKeyLine && this.indent === t.indent,
          i = r && (n.sep || n.explicitKey) && this.type !== "seq-item-ind",
          o = [];
        if (i && n.sep && !n.value) {
          let s = [];
          for (let u = 0; u < n.sep.length; ++u) {
            let a = n.sep[u];
            switch (a.type) {
              case "newline":
                s.push(u);
                break;
              case "space":
                break;
              case "comment":
                a.indent > t.indent && (s.length = 0);
                break;
              default:
                s.length = 0;
            }
          }
          s.length >= 2 && (o = n.sep.splice(s[1]));
        }
        switch (this.type) {
          case "anchor":
          case "tag":
            i || n.value
              ? (o.push(this.sourceToken),
                t.items.push({ start: o }),
                (this.onKeyLine = !0))
              : n.sep
                ? n.sep.push(this.sourceToken)
                : n.start.push(this.sourceToken);
            return;
          case "explicit-key-ind":
            (!n.sep && !n.explicitKey
              ? (n.start.push(this.sourceToken), (n.explicitKey = !0))
              : i || n.value
                ? (o.push(this.sourceToken),
                  t.items.push({ start: o, explicitKey: !0 }))
                : this.stack.push({
                    type: "block-map",
                    offset: this.offset,
                    indent: this.indent,
                    items: [{ start: [this.sourceToken], explicitKey: !0 }],
                  }),
              (this.onKeyLine = !0));
            return;
          case "map-value-ind":
            if (n.explicitKey)
              if (n.sep)
                if (n.value)
                  t.items.push({
                    start: [],
                    key: null,
                    sep: [this.sourceToken],
                  });
                else if (h0(n.sep, "map-value-ind"))
                  this.stack.push({
                    type: "block-map",
                    offset: this.offset,
                    indent: this.indent,
                    items: [{ start: o, key: null, sep: [this.sourceToken] }],
                  });
                else if (gE(n.key) && !h0(n.sep, "newline")) {
                  let s = ra(n.start),
                    u = n.key,
                    a = n.sep;
                  (a.push(this.sourceToken),
                    delete n.key,
                    delete n.sep,
                    this.stack.push({
                      type: "block-map",
                      offset: this.offset,
                      indent: this.indent,
                      items: [{ start: s, key: u, sep: a }],
                    }));
                } else
                  o.length > 0
                    ? (n.sep = n.sep.concat(o, this.sourceToken))
                    : n.sep.push(this.sourceToken);
              else if (h0(n.start, "newline"))
                Object.assign(n, { key: null, sep: [this.sourceToken] });
              else {
                let s = ra(n.start);
                this.stack.push({
                  type: "block-map",
                  offset: this.offset,
                  indent: this.indent,
                  items: [{ start: s, key: null, sep: [this.sourceToken] }],
                });
              }
            else
              n.sep
                ? n.value || i
                  ? t.items.push({
                      start: o,
                      key: null,
                      sep: [this.sourceToken],
                    })
                  : h0(n.sep, "map-value-ind")
                    ? this.stack.push({
                        type: "block-map",
                        offset: this.offset,
                        indent: this.indent,
                        items: [
                          { start: [], key: null, sep: [this.sourceToken] },
                        ],
                      })
                    : n.sep.push(this.sourceToken)
                : Object.assign(n, { key: null, sep: [this.sourceToken] });
            this.onKeyLine = !0;
            return;
          case "alias":
          case "scalar":
          case "single-quoted-scalar":
          case "double-quoted-scalar": {
            let s = this.flowScalar(this.type);
            i || n.value
              ? (t.items.push({ start: o, key: s, sep: [] }),
                (this.onKeyLine = !0))
              : n.sep
                ? this.stack.push(s)
                : (Object.assign(n, { key: s, sep: [] }),
                  (this.onKeyLine = !0));
            return;
          }
          default: {
            let s = this.startBlockValue(t);
            if (s) {
              if (s.type === "block-seq") {
                if (!n.explicitKey && n.sep && !h0(n.sep, "newline")) {
                  yield* this.pop({
                    type: "error",
                    offset: this.offset,
                    message: "Unexpected block-seq-ind on same line with key",
                    source: this.source,
                  });
                  return;
                }
              } else r && t.items.push({ start: o });
              this.stack.push(s);
              return;
            }
          }
        }
      }
      (yield* this.pop(), yield* this.step());
    }
    *blockSequence(t) {
      let n = t.items[t.items.length - 1];
      switch (this.type) {
        case "newline":
          if (n.value) {
            let r = "end" in n.value ? n.value.end : void 0;
            (Array.isArray(r) ? r[r.length - 1] : void 0)?.type === "comment"
              ? r?.push(this.sourceToken)
              : t.items.push({ start: [this.sourceToken] });
          } else n.start.push(this.sourceToken);
          return;
        case "space":
        case "comment":
          if (n.value) t.items.push({ start: [this.sourceToken] });
          else {
            if (this.atIndentedComment(n.start, t.indent)) {
              let i = t.items[t.items.length - 2]?.value?.end;
              if (Array.isArray(i)) {
                (Array.prototype.push.apply(i, n.start),
                  i.push(this.sourceToken),
                  t.items.pop());
                return;
              }
            }
            n.start.push(this.sourceToken);
          }
          return;
        case "anchor":
        case "tag":
          if (n.value || this.indent <= t.indent) break;
          n.start.push(this.sourceToken);
          return;
        case "seq-item-ind":
          if (this.indent !== t.indent) break;
          n.value || h0(n.start, "seq-item-ind")
            ? t.items.push({ start: [this.sourceToken] })
            : n.start.push(this.sourceToken);
          return;
      }
      if (this.indent > t.indent) {
        let r = this.startBlockValue(t);
        if (r) {
          this.stack.push(r);
          return;
        }
      }
      (yield* this.pop(), yield* this.step());
    }
    *flowCollection(t) {
      let n = t.items[t.items.length - 1];
      if (this.type === "flow-error-end") {
        let r;
        do (yield* this.pop(), (r = this.peek(1)));
        while (r?.type === "flow-collection");
      } else if (t.end.length === 0) {
        switch (this.type) {
          case "comma":
          case "explicit-key-ind":
            !n || n.sep
              ? t.items.push({ start: [this.sourceToken] })
              : n.start.push(this.sourceToken);
            return;
          case "map-value-ind":
            !n || n.value
              ? t.items.push({ start: [], key: null, sep: [this.sourceToken] })
              : n.sep
                ? n.sep.push(this.sourceToken)
                : Object.assign(n, { key: null, sep: [this.sourceToken] });
            return;
          case "space":
          case "comment":
          case "newline":
          case "anchor":
          case "tag":
            !n || n.value
              ? t.items.push({ start: [this.sourceToken] })
              : n.sep
                ? n.sep.push(this.sourceToken)
                : n.start.push(this.sourceToken);
            return;
          case "alias":
          case "scalar":
          case "single-quoted-scalar":
          case "double-quoted-scalar": {
            let i = this.flowScalar(this.type);
            !n || n.value
              ? t.items.push({ start: [], key: i, sep: [] })
              : n.sep
                ? this.stack.push(i)
                : Object.assign(n, { key: i, sep: [] });
            return;
          }
          case "flow-map-end":
          case "flow-seq-end":
            t.end.push(this.sourceToken);
            return;
        }
        let r = this.startBlockValue(t);
        r ? this.stack.push(r) : (yield* this.pop(), yield* this.step());
      } else {
        let r = this.peek(2);
        if (
          r.type === "block-map" &&
          ((this.type === "map-value-ind" && r.indent === t.indent) ||
            (this.type === "newline" && !r.items[r.items.length - 1].sep))
        )
          (yield* this.pop(), yield* this.step());
        else if (
          this.type === "map-value-ind" &&
          r.type !== "flow-collection"
        ) {
          let i = Sp(r),
            o = ra(i);
          mE(t);
          let s = t.end.splice(1, t.end.length);
          s.push(this.sourceToken);
          let u = {
            type: "block-map",
            offset: t.offset,
            indent: t.indent,
            items: [{ start: o, key: t, sep: s }],
          };
          ((this.onKeyLine = !0), (this.stack[this.stack.length - 1] = u));
        } else yield* this.lineEnd(t);
      }
    }
    flowScalar(t) {
      if (this.onNewLine) {
        let n =
          this.source.indexOf(`
`) + 1;
        for (; n !== 0; )
          (this.onNewLine(this.offset + n),
            (n =
              this.source.indexOf(
                `
`,
                n,
              ) + 1));
      }
      return {
        type: t,
        offset: this.offset,
        indent: this.indent,
        source: this.source,
      };
    }
    startBlockValue(t) {
      switch (this.type) {
        case "alias":
        case "scalar":
        case "single-quoted-scalar":
        case "double-quoted-scalar":
          return this.flowScalar(this.type);
        case "block-scalar-header":
          return {
            type: "block-scalar",
            offset: this.offset,
            indent: this.indent,
            props: [this.sourceToken],
            source: "",
          };
        case "flow-map-start":
        case "flow-seq-start":
          return {
            type: "flow-collection",
            offset: this.offset,
            indent: this.indent,
            start: this.sourceToken,
            items: [],
            end: [],
          };
        case "seq-item-ind":
          return {
            type: "block-seq",
            offset: this.offset,
            indent: this.indent,
            items: [{ start: [this.sourceToken] }],
          };
        case "explicit-key-ind": {
          this.onKeyLine = !0;
          let n = Sp(t),
            r = ra(n);
          return (
            r.push(this.sourceToken),
            {
              type: "block-map",
              offset: this.offset,
              indent: this.indent,
              items: [{ start: r, explicitKey: !0 }],
            }
          );
        }
        case "map-value-ind": {
          this.onKeyLine = !0;
          let n = Sp(t),
            r = ra(n);
          return {
            type: "block-map",
            offset: this.offset,
            indent: this.indent,
            items: [{ start: r, key: null, sep: [this.sourceToken] }],
          };
        }
      }
      return null;
    }
    atIndentedComment(t, n) {
      return this.type !== "comment" || this.indent <= n
        ? !1
        : t.every((r) => r.type === "newline" || r.type === "space");
    }
    *documentEnd(t) {
      this.type !== "doc-mode" &&
        (t.end ? t.end.push(this.sourceToken) : (t.end = [this.sourceToken]),
        this.type === "newline" && (yield* this.pop()));
    }
    *lineEnd(t) {
      switch (this.type) {
        case "comma":
        case "doc-start":
        case "doc-end":
        case "flow-seq-end":
        case "flow-map-end":
        case "map-value-ind":
          (yield* this.pop(), yield* this.step());
          break;
        case "newline":
          this.onKeyLine = !1;
        case "space":
        case "comment":
        default:
          (t.end ? t.end.push(this.sourceToken) : (t.end = [this.sourceToken]),
            this.type === "newline" && (yield* this.pop()));
      }
    }
  };
  function CU(e) {
    let t = e.prettyErrors !== !1;
    return {
      lineCounter: e.lineCounter || (t && new kc()) || null,
      prettyErrors: t,
    };
  }
  function bE(e, t = {}) {
    let { lineCounter: n, prettyErrors: r } = CU(t),
      i = new Sc(n?.addNewLine),
      o = new vc(t),
      s = null;
    for (let u of o.compose(i.parse(e), !0, e.length))
      if (!s) s = u;
      else if (s.options.logLevel !== "silent") {
        s.errors.push(
          new jr(
            u.range.slice(0, 2),
            "MULTIPLE_DOCS",
            "Source contains multiple documents; please use YAML.parseAllDocuments()",
          ),
        );
        break;
      }
    return (
      r && n && (s.errors.forEach(s5(e, n)), s.warnings.forEach(s5(e, n))),
      s
    );
  }
  function y5(e, t, n) {
    let r;
    typeof t == "function"
      ? (r = t)
      : n === void 0 && t && typeof t == "object" && (n = t);
    let i = bE(e, n);
    if (!i) return null;
    if (
      (i.warnings.forEach((o) => np(i.options.logLevel, o)),
      i.errors.length > 0)
    ) {
      if (i.options.logLevel !== "silent") throw i.errors[0];
      i.errors = [];
    }
    return i.toJS(Object.assign({ reviver: r }, n));
  }
  var TE = uN(SE(), 1);
  function RU() {
    let e = Rg({ html: !0, breaks: !0 });
    return (e.use(Pg).use($g).use(Hg).use(Ug), e);
  }
  function PU(e) {
    return {
      transformer: e,
      parser: new uo(),
      beforeParse: new uo(),
      afterParse: new uo(),
      retransform: new uo(),
    };
  }
  var $U = `<svg width="16" height="16" viewBox="0 -3 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"/></svg>
`,
    HU = `<svg width="16" height="16" viewBox="0 -3 24 24"><path fill-rule="evenodd" d="M6 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zM3 6a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v12a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-5z" clip-rule="evenodd"/></svg>
`,
    UU = "checkbox",
    AE = { " ": HU.trim(), x: $U.trim() },
    VU = {
      name: UU,
      transform(e) {
        return (
          e.parser.tap((t) => {
            t.core.ruler.before("inline", "checkbox", (n) => {
              for (let r = 2; r < n.tokens.length; r += 1) {
                let i = n.tokens[r];
                if (i.type === "inline" && i.content) {
                  let o = n.tokens[r - 1].type,
                    s = n.tokens[r - 2].type;
                  (o === "heading_open" ||
                    (o === "paragraph_open" && s === "list_item_open")) &&
                    (i.content = i.content.replace(/^\[(.)\] /, (u, a) =>
                      AE[a] ? `${AE[a]} ` : u,
                    ));
                }
              }
              return !1;
            });
          }),
          {}
        );
      },
    },
    jU = "frontmatter",
    GU = {
      name: jU,
      transform(e) {
        return (
          e.beforeParse.tap((t, n) => {
            var r;
            let { content: i } = n;
            if (!/^---\r?\n/.test(i)) return;
            let o = /\n---\r?\n/.exec(i);
            if (!o) return;
            let s = i.slice(4, o.index).trimEnd(),
              u;
            try {
              ((u = y5(
                s.replace(
                  /\r?\n|\r/g,
                  `
`,
                ),
              )),
                u?.markmap && (u.markmap = YU(u.markmap)));
            } catch {
              return;
            }
            ((n.frontmatter = u),
              (n.parserOptions = {
                ...n.parserOptions,
                ...((r = u?.markmap) == null ? void 0 : r.htmlParser),
              }),
              (n.frontmatterInfo = {
                lines:
                  i.slice(0, o.index).split(`
`).length + 1,
                offset: o.index + o[0].length,
              }));
          }),
          {}
        );
      },
    };
  function YU(e) {
    if (e)
      return (
        ["color", "extraJs", "extraCss"].forEach((t) => {
          e[t] != null && (e[t] = XU(e[t]));
        }),
        ["duration", "maxWidth", "initialExpandLevel"].forEach((t) => {
          e[t] != null && (e[t] = WU(e[t]));
        }),
        e
      );
  }
  function XU(e) {
    let t;
    return (
      typeof e == "string"
        ? (t = [e])
        : Array.isArray(e) && (t = e.filter((n) => n && typeof n == "string")),
      t?.length ? t : void 0
    );
  }
  function WU(e) {
    if (!isNaN(+e)) return +e;
  }
  function k5(e, t) {
    return t.type === "script" && t.data.src
      ? { ...t, data: { ...t.data, src: e.getFullUrl(t.data.src) } }
      : t;
  }
  function KU(e, t) {
    return t.type === "stylesheet" && t.data.href
      ? { ...t, data: { ...t.data, href: e.getFullUrl(t.data.href) } }
      : t;
  }
  var ME = "hljs",
    ZU = ["@highlightjs/cdn-assets@11.11.1/highlight.min.js"].map((e) => td(e)),
    JU = ["@highlightjs/cdn-assets@11.11.1/styles/default.min.css"].map((e) =>
      n6(e),
    ),
    QU = { versions: { hljs: "11.11.1" }, preloadScripts: ZU, styles: JU },
    _5 = {
      name: ME,
      config: QU,
      transform(e) {
        var t, n, r;
        let i,
          o =
            ((n = (t = _5.config) == null ? void 0 : t.preloadScripts) == null
              ? void 0
              : n.map((a) => k5(e.transformer.urlBuilder, a))) || [],
          s = () => (i || (i = ed(o)), i),
          u = Qo;
        return (
          e.parser.tap((a) => {
            a.set({
              highlight: (l, h) => {
                u();
                let { hljs: m } = window;
                return m
                  ? m.highlightAuto(l, h ? [h] : void 0).value
                  : (s().then(() => {
                      e.retransform.call();
                    }),
                    l);
              },
            });
          }),
          e.beforeParse.tap((a, l) => {
            u = () => {
              l.features[ME] = !0;
            };
          }),
          { styles: (r = _5.config) == null ? void 0 : r.styles }
        );
      },
    };
  function eV(e, t, n) {
    return e.map((r) => {
      if (typeof r == "string" && !r.includes("://")) {
        r.startsWith("npm:") || (r = `npm:${r}`);
        let i = 4 + t.length;
        r.startsWith(`npm:${t}/`) && (r = `${r.slice(0, i)}@${n}${r.slice(i)}`);
      }
      return r;
    });
  }
  var tV = [
      "katex@0.16.18/dist/fonts/KaTeX_AMS-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Caligraphic-Bold.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Caligraphic-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Fraktur-Bold.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Fraktur-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Main-Bold.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Main-BoldItalic.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Main-Italic.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Main-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Math-BoldItalic.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Math-Italic.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_SansSerif-Bold.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_SansSerif-Italic.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_SansSerif-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Script-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Size1-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Size2-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Size3-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Size4-Regular.woff2",
      "katex@0.16.18/dist/fonts/KaTeX_Typewriter-Regular.woff2",
    ],
    v5 = "katex",
    nV = ["katex@0.16.18/dist/katex.min.js"].map((e) => td(e)),
    EE = td("webfontloader@1.6.28/webfontloader.js");
  EE.data.defer = !0;
  var rV = ["katex@0.16.18/dist/katex.min.css"].map((e) => n6(e)),
    iV = {
      versions: { katex: "0.16.18", webfontloader: "1.6.28" },
      preloadScripts: nV,
      scripts: [
        {
          type: "iife",
          data: {
            fn: (e) => {
              window.WebFontConfig = {
                custom: {
                  families: [
                    "KaTeX_AMS",
                    "KaTeX_Caligraphic:n4,n7",
                    "KaTeX_Fraktur:n4,n7",
                    "KaTeX_Main:n4,n7,i4,i7",
                    "KaTeX_Math:i4,i7",
                    "KaTeX_Script",
                    "KaTeX_SansSerif:n4,n7,i4",
                    "KaTeX_Size1",
                    "KaTeX_Size2",
                    "KaTeX_Size3",
                    "KaTeX_Size4",
                    "KaTeX_Typewriter",
                  ],
                },
                active: () => {
                  e().refreshHook.call();
                },
              };
            },
            getParams({ getMarkmap: e }) {
              return [e];
            },
          },
        },
        EE,
      ],
      styles: rV,
      resources: tV,
    };
  function oV(e) {
    return e.default || e;
  }
  var sV = oV(TE.default),
    Tc = {
      name: v5,
      config: iV,
      transform(e) {
        var t, n, r, i;
        let o,
          s =
            ((n = (t = Tc.config) == null ? void 0 : t.preloadScripts) == null
              ? void 0
              : n.map((h) => k5(e.transformer.urlBuilder, h))) || [],
          u = () => (o || (o = ed(s)), o),
          a = (h, m) => {
            let { katex: p } = window;
            return p
              ? p.renderToString(h, { displayMode: m, throwOnError: !1 })
              : (u().then(() => {
                  e.retransform.call();
                }),
                h);
          },
          l = Qo;
        return (
          e.parser.tap((h) => {
            (h.use(sV),
              ["math_block", "math_inline"].forEach((m) => {
                let p = (b, x) => (l(), a(b[x].content, !!b[x].block));
                h.renderer.rules[m] = p;
              }));
          }),
          e.beforeParse.tap((h, m) => {
            l = () => {
              m.features[v5] = !0;
            };
          }),
          e.afterParse.tap((h, m) => {
            var p;
            let b = (p = m.frontmatter) == null ? void 0 : p.markmap;
            b &&
              ["extraJs", "extraCss"].forEach((x) => {
                var y, v;
                let k = b[x];
                k &&
                  (b[x] = eV(
                    k,
                    v5,
                    ((v = (y = Tc.config) == null ? void 0 : y.versions) == null
                      ? void 0
                      : v.katex) || "",
                  ));
              });
          }),
          {
            styles: (r = Tc.config) == null ? void 0 : r.styles,
            scripts: (i = Tc.config) == null ? void 0 : i.scripts,
          }
        );
      },
    },
    uV = "npmUrl",
    aV = {
      name: uV,
      transform(e) {
        return (
          e.afterParse.tap((t, n) => {
            let { frontmatter: r } = n,
              i = r?.markmap;
            i &&
              ["extraJs", "extraCss"].forEach((o) => {
                let s = i[o];
                s &&
                  (i[o] = s.map((u) =>
                    u.startsWith("npm:")
                      ? e.transformer.urlBuilder.getFullUrl(u.slice(4))
                      : u,
                  ));
              });
          }),
          {}
        );
      },
    },
    lV = "sourceLines",
    cV = {
      name: lV,
      transform(e) {
        let t = 0;
        return (
          e.beforeParse.tap((n, r) => {
            var i;
            t = ((i = r.frontmatterInfo) == null ? void 0 : i.lines) || 0;
          }),
          e.parser.tap((n) => {
            ((n.renderer.renderAttrs = e6(n.renderer.renderAttrs, (r, i) => {
              if (i.block && i.map) {
                let o = i.map.map((s) => s + t);
                i.attrSet("data-lines", o.join(","));
              }
              return r(i);
            })),
              n.renderer.rules.fence &&
                (n.renderer.rules.fence = e6(
                  n.renderer.rules.fence,
                  (r, i, o, ...s) => {
                    let u = r(i, o, ...s),
                      a = i[o];
                    if (u.startsWith("<pre>") && a.map) {
                      let l = a.map.map((h) => h + t);
                      u =
                        u.slice(0, 4) +
                        ` data-lines="${l.join(",")}"` +
                        u.slice(4);
                    }
                    return u;
                  },
                )));
          }),
          {}
        );
      },
    },
    fV = [GU, Tc, _5, aV, VU, cV],
    hV = fV;
  function CE(e) {
    for (; !e.content && e.children.length === 1; ) e = e.children[0];
    for (; e.children.length === 1 && !e.children[0].content; )
      e = { ...e, children: e.children[0].children };
    return { ...e, children: e.children.map(CE) };
  }
  var Mp = class {
    constructor(t = hV) {
      ((this.assetsMap = {}),
        (this.urlBuilder = new Vl()),
        (this.hooks = PU(this)),
        (this.plugins = t.map((i) => (typeof i == "function" ? i() : i))));
      let n = {};
      for (let { name: i, transform: o } of this.plugins) n[i] = o(this.hooks);
      this.assetsMap = n;
      let r = RU();
      ((this.md = r), this.hooks.parser.call(r));
    }
    transform(t, n) {
      var r;
      let i = { content: t, features: {}, parserOptions: n };
      this.hooks.beforeParse.call(this.md, i);
      let { content: o } = i;
      i.frontmatterInfo && (o = o.slice(i.frontmatterInfo.offset));
      let s = this.md.render(o, {});
      this.hooks.afterParse.call(this.md, i);
      let u = CE(MM(s, i.parserOptions));
      return (
        u.content ||
          (u.content = `${((r = i.frontmatter) == null ? void 0 : r.title) || ""}`),
        { ...i, root: u }
      );
    }
    resolveJS(t) {
      return k5(this.urlBuilder, t);
    }
    resolveCSS(t) {
      return KU(this.urlBuilder, t);
    }
    getAssets(t) {
      let n = [],
        r = [];
      t ?? (t = this.plugins.map((i) => i.name));
      for (let i of t.map((o) => this.assetsMap[o]))
        i &&
          (i.styles && n.push(...i.styles), i.scripts && r.push(...i.scripts));
      return {
        styles: n.map((i) => this.resolveCSS(i)),
        scripts: r.map((i) => this.resolveJS(i)),
      };
    }
    getUsedAssets(t) {
      let n = this.plugins.map((r) => r.name).filter((r) => t[r]);
      return this.getAssets(n);
    }
  };
  var DE = typeof navigator < "u" && navigator.userAgent.includes("Macintosh"),
    dV = Go(k1),
    pV =
      (e = 1, t = 3, n = 2) =>
      (r) =>
        e + t / n ** r.state.depth,
    mV = {
      autoFit: !1,
      duration: 500,
      embedGlobalCSS: !0,
      fitRatio: 0.95,
      maxInitialScale: 2,
      scrollForPan: DE,
      initialExpandLevel: -1,
      zoom: !0,
      pan: !0,
      toggleRecursively: !1,
      color: (e) => {
        var t;
        return dV(`${((t = e.state) == null ? void 0 : t.path) || ""}`);
      },
      lineWidth: pV(),
      maxWidth: 0,
      nodeMinHeight: 16,
      paddingX: 8,
      spacingHorizontal: 80,
      spacingVertical: 5,
    };
  function gV(e) {
    let t = 0;
    for (let n = 0; n < e.length; n++) t = ((t << 5) - t + e.charCodeAt(n)) | 0;
    return (t >>> 0).toString(36);
  }
  function Qn(e) {
    if (typeof e == "string") {
      let n = e;
      e = (r) => r.matches(n);
    }
    let t = e;
    return function () {
      let n = Array.from(this.childNodes);
      return (t && (n = n.filter((r) => t(r))), n);
    };
  }
  function bV(e) {
    var t = 0,
      n = e.children,
      r = n && n.length;
    if (!r) t = 1;
    else for (; --r >= 0; ) t += n[r].value;
    e.value = t;
  }
  function xV() {
    return this.eachAfter(bV);
  }
  function yV(e) {
    var t = this,
      n,
      r = [t],
      i,
      o,
      s;
    do
      for (n = r.reverse(), r = []; (t = n.pop()); )
        if ((e(t), (i = t.children), i))
          for (o = 0, s = i.length; o < s; ++o) r.push(i[o]);
    while (r.length);
    return this;
  }
  function wV(e) {
    for (var t = this, n = [t], r, i; (t = n.pop()); )
      if ((e(t), (r = t.children), r))
        for (i = r.length - 1; i >= 0; --i) n.push(r[i]);
    return this;
  }
  function vV(e) {
    for (var t = this, n = [t], r = [], i, o, s; (t = n.pop()); )
      if ((r.push(t), (i = t.children), i))
        for (o = 0, s = i.length; o < s; ++o) n.push(i[o]);
    for (; (t = r.pop()); ) e(t);
    return this;
  }
  function _V(e) {
    return this.eachAfter(function (t) {
      for (
        var n = +e(t.data) || 0, r = t.children, i = r && r.length;
        --i >= 0;
      )
        n += r[i].value;
      t.value = n;
    });
  }
  function kV(e) {
    return this.eachBefore(function (t) {
      t.children && t.children.sort(e);
    });
  }
  function SV(e) {
    for (var t = this, n = AV(t, e), r = [t]; t !== n; )
      ((t = t.parent), r.push(t));
    for (var i = r.length; e !== n; ) (r.splice(i, 0, e), (e = e.parent));
    return r;
  }
  function AV(e, t) {
    if (e === t) return e;
    var n = e.ancestors(),
      r = t.ancestors(),
      i = null;
    for (e = n.pop(), t = r.pop(); e === t; )
      ((i = e), (e = n.pop()), (t = r.pop()));
    return i;
  }
  function MV() {
    for (var e = this, t = [e]; (e = e.parent); ) t.push(e);
    return t;
  }
  function TV() {
    var e = [];
    return (
      this.each(function (t) {
        e.push(t);
      }),
      e
    );
  }
  function EV() {
    var e = [];
    return (
      this.eachBefore(function (t) {
        t.children || e.push(t);
      }),
      e
    );
  }
  function CV() {
    var e = this,
      t = [];
    return (
      e.each(function (n) {
        n !== e && t.push({ source: n.parent, target: n });
      }),
      t
    );
  }
  function T5(e, t) {
    var n = new Tp(e),
      r = +e.value && (n.value = e.value),
      i,
      o = [n],
      s,
      u,
      a,
      l;
    for (t == null && (t = DV); (i = o.pop()); )
      if ((r && (i.value = +i.data.value), (u = t(i.data)) && (l = u.length)))
        for (i.children = new Array(l), a = l - 1; a >= 0; --a)
          (o.push((s = i.children[a] = new Tp(u[a]))),
            (s.parent = i),
            (s.depth = i.depth + 1));
    return n.eachBefore(FV);
  }
  function NV() {
    return T5(this).eachBefore(IV);
  }
  function DV(e) {
    return e.children;
  }
  function IV(e) {
    e.data = e.data.data;
  }
  function FV(e) {
    var t = 0;
    do e.height = t;
    while ((e = e.parent) && e.height < ++t);
  }
  function Tp(e) {
    ((this.data = e), (this.depth = this.height = 0), (this.parent = null));
  }
  Tp.prototype = T5.prototype = {
    constructor: Tp,
    count: xV,
    each: yV,
    eachAfter: vV,
    eachBefore: wV,
    sum: _V,
    sort: kV,
    path: SV,
    ancestors: MV,
    descendants: TV,
    leaves: EV,
    links: CV,
    copy: NV,
  };
  var qV = "2.1.2",
    LV = { version: qV },
    { version: OV } = LV,
    BV = Object.freeze({
      children: (e) => e.children,
      nodeSize: (e) => e.data.size,
      spacing: 0,
    });
  function FE(e) {
    let t = Object.assign({}, BV, e);
    function n(u) {
      let a = t[u];
      return typeof a == "function" ? a : () => a;
    }
    function r(u) {
      let a = s(o(), u, (l) => l.children);
      return (a.update(), a.data);
    }
    function i() {
      let u = n("nodeSize"),
        a = n("spacing");
      return class IE extends T5.prototype.constructor {
        constructor(h) {
          super(h);
        }
        copy() {
          let h = s(this.constructor, this, (m) => m.children);
          return (h.each((m) => (m.data = m.data.data)), h);
        }
        get size() {
          return u(this);
        }
        spacing(h) {
          return a(this, h);
        }
        get nodes() {
          return this.descendants();
        }
        get xSize() {
          return this.size[0];
        }
        get ySize() {
          return this.size[1];
        }
        get top() {
          return this.y;
        }
        get bottom() {
          return this.y + this.ySize;
        }
        get left() {
          return this.x - this.xSize / 2;
        }
        get right() {
          return this.x + this.xSize / 2;
        }
        get root() {
          let h = this.ancestors();
          return h[h.length - 1];
        }
        get numChildren() {
          return this.hasChildren ? this.children.length : 0;
        }
        get hasChildren() {
          return !this.noChildren;
        }
        get noChildren() {
          return this.children === null;
        }
        get firstChild() {
          return this.hasChildren ? this.children[0] : null;
        }
        get lastChild() {
          return this.hasChildren ? this.children[this.numChildren - 1] : null;
        }
        get extents() {
          return (this.children || []).reduce(
            (h, m) => IE.maxExtents(h, m.extents),
            this.nodeExtents,
          );
        }
        get nodeExtents() {
          return {
            top: this.top,
            bottom: this.bottom,
            left: this.left,
            right: this.right,
          };
        }
        static maxExtents(h, m) {
          return {
            top: Math.min(h.top, m.top),
            bottom: Math.max(h.bottom, m.bottom),
            left: Math.min(h.left, m.left),
            right: Math.max(h.right, m.right),
          };
        }
      };
    }
    function o() {
      let u = i(),
        a = n("nodeSize"),
        l = n("spacing");
      return class extends u {
        constructor(h) {
          (super(h),
            Object.assign(this, {
              x: 0,
              y: 0,
              relX: 0,
              prelim: 0,
              shift: 0,
              change: 0,
              lExt: this,
              lExtRelX: 0,
              lThr: null,
              rExt: this,
              rExtRelX: 0,
              rThr: null,
            }));
        }
        get size() {
          return a(this.data);
        }
        spacing(h) {
          return l(this.data, h.data);
        }
        get x() {
          return this.data.x;
        }
        set x(h) {
          this.data.x = h;
        }
        get y() {
          return this.data.y;
        }
        set y(h) {
          this.data.y = h;
        }
        update() {
          return (qE(this), LE(this), this);
        }
      };
    }
    function s(u, a, l) {
      let h = (m, p) => {
        let b = new u(m);
        Object.assign(b, {
          parent: p,
          depth: p === null ? 0 : p.depth + 1,
          height: 0,
          length: 1,
        });
        let x = l(m) || [];
        return (
          (b.children = x.length === 0 ? null : x.map((y) => h(y, b))),
          b.children &&
            Object.assign(
              b,
              b.children.reduce(
                (y, v) => ({
                  height: Math.max(y.height, v.height + 1),
                  length: y.length + v.length,
                }),
                b,
              ),
            ),
          b
        );
      };
      return h(a, null);
    }
    return (
      Object.assign(r, {
        nodeSize(u) {
          return arguments.length ? ((t.nodeSize = u), r) : t.nodeSize;
        },
        spacing(u) {
          return arguments.length ? ((t.spacing = u), r) : t.spacing;
        },
        children(u) {
          return arguments.length ? ((t.children = u), r) : t.children;
        },
        hierarchy(u, a) {
          let l = typeof a > "u" ? t.children : a;
          return s(i(), u, l);
        },
        dump(u) {
          let a = n("nodeSize"),
            l = (h) => (m) => {
              let p = h + "  ",
                b = h + "    ",
                { x, y } = m,
                v = a(m),
                k = m.children || [],
                T =
                  k.length === 0
                    ? " "
                    : `,${p}children: [${b}${k.map(l(b)).join(b)}${p}],${h}`;
              return `{ size: [${v.join(", ")}],${p}x: ${x}, y: ${y}${T}},`;
            };
          return l(`
`)(u);
        },
      }),
      r
    );
  }
  FE.version = OV;
  var qE = (e, t = 0) => (
      (e.y = t),
      (e.children || []).reduce(
        (n, r) => {
          let [i, o] = n;
          qE(r, e.y + e.ySize);
          let s = (i === 0 ? r.lExt : r.rExt).bottom;
          i !== 0 && RV(e, i, o);
          let u = YV(s, i, o);
          return [i + 1, u];
        },
        [0, null],
      ),
      zV(e),
      GV(e),
      e
    ),
    LE = (e, t, n) => {
      typeof t > "u" && ((t = -e.relX - e.prelim), (n = 0));
      let r = t + e.relX;
      return (
        (e.relX = r + e.prelim - n),
        (e.prelim = 0),
        (e.x = n + e.relX),
        (e.children || []).forEach((i) => LE(i, r, e.x)),
        e
      );
    },
    zV = (e) => {
      (e.children || []).reduce(
        (t, n) => {
          let [r, i] = t,
            o = r + n.shift,
            s = i + o + n.change;
          return ((n.relX += s), [o, s]);
        },
        [0, 0],
      );
    },
    RV = (e, t, n) => {
      let r = e.children[t - 1],
        i = e.children[t],
        o = r,
        s = r.relX,
        u = i,
        a = i.relX,
        l = !0;
      for (; o && u; ) {
        o.bottom > n.lowY && (n = n.next);
        let h =
          s +
          o.prelim -
          (a + u.prelim) +
          o.xSize / 2 +
          u.xSize / 2 +
          o.spacing(u);
        ((h > 0 || (h < 0 && l)) && ((a += h), PV(i, h), $V(e, t, n.index, h)),
          (l = !1));
        let m = o.bottom,
          p = u.bottom;
        (m <= p && ((o = UV(o)), o && (s += o.relX)),
          m >= p && ((u = HV(u)), u && (a += u.relX)));
      }
      !o && u ? VV(e, t, u, a) : o && !u && jV(e, t, o, s);
    },
    PV = (e, t) => {
      ((e.relX += t), (e.lExtRelX += t), (e.rExtRelX += t));
    },
    $V = (e, t, n, r) => {
      let i = e.children[t],
        o = t - n;
      if (o > 1) {
        let s = r / o;
        ((e.children[n + 1].shift += s), (i.shift -= s), (i.change -= r - s));
      }
    },
    HV = (e) => (e.hasChildren ? e.firstChild : e.lThr),
    UV = (e) => (e.hasChildren ? e.lastChild : e.rThr),
    VV = (e, t, n, r) => {
      let i = e.firstChild,
        o = i.lExt,
        s = e.children[t];
      o.lThr = n;
      let u = r - n.relX - i.lExtRelX;
      ((o.relX += u),
        (o.prelim -= u),
        (i.lExt = s.lExt),
        (i.lExtRelX = s.lExtRelX));
    },
    jV = (e, t, n, r) => {
      let i = e.children[t],
        o = i.rExt,
        s = e.children[t - 1];
      o.rThr = n;
      let u = r - n.relX - i.rExtRelX;
      ((o.relX += u),
        (o.prelim -= u),
        (i.rExt = s.rExt),
        (i.rExtRelX = s.rExtRelX));
    },
    GV = (e) => {
      if (e.hasChildren) {
        let t = e.firstChild,
          n = e.lastChild,
          r =
            (t.prelim +
              t.relX -
              t.xSize / 2 +
              n.relX +
              n.prelim +
              n.xSize / 2) /
            2;
        Object.assign(e, {
          prelim: r,
          lExt: t.lExt,
          lExtRelX: t.lExtRelX,
          rExt: n.rExt,
          rExtRelX: n.rExtRelX,
        });
      }
    },
    YV = (e, t, n) => {
      for (; n !== null && e >= n.lowY; ) n = n.next;
      return { lowY: e, index: t, next: n };
    },
    XV =
      ".markmap{--markmap-max-width: 9999px;--markmap-a-color: #0097e6;--markmap-a-hover-color: #00a8ff;--markmap-code-bg: #f0f0f0;--markmap-code-color: #555;--markmap-highlight-bg: #ffeaa7;--markmap-table-border: 1px solid currentColor;--markmap-font: 300 16px/20px sans-serif;--markmap-circle-open-bg: #fff;--markmap-text-color: #333;--markmap-highlight-node-bg: #ff02;font:var(--markmap-font);color:var(--markmap-text-color)}.markmap-link{fill:none}.markmap-node>circle{cursor:pointer}.markmap-foreign{display:inline-block}.markmap-foreign p{margin:0}.markmap-foreign a{color:var(--markmap-a-color)}.markmap-foreign a:hover{color:var(--markmap-a-hover-color)}.markmap-foreign code{padding:.25em;font-size:calc(1em - 2px);color:var(--markmap-code-color);background-color:var(--markmap-code-bg);border-radius:2px}.markmap-foreign pre{margin:0}.markmap-foreign pre>code{display:block}.markmap-foreign del{text-decoration:line-through}.markmap-foreign em{font-style:italic}.markmap-foreign strong{font-weight:700}.markmap-foreign mark{background:var(--markmap-highlight-bg)}.markmap-foreign table,.markmap-foreign th,.markmap-foreign td{border-collapse:collapse;border:var(--markmap-table-border)}.markmap-foreign img{display:inline-block}.markmap-foreign svg{fill:currentColor}.markmap-foreign>div{width:var(--markmap-max-width);text-align:left}.markmap-foreign>div>div{display:inline-block}.markmap-highlight rect{fill:var(--markmap-highlight-node-bg)}.markmap-dark .markmap{--markmap-code-bg: #1a1b26;--markmap-code-color: #ddd;--markmap-circle-open-bg: #444;--markmap-text-color: #eee}";
  var S5 = "g.markmap-node",
    WV = "path.markmap-link",
    KV = "g.markmap-highlight",
    A5 = F1();
  function NE(e, t) {
    let n = Vi(e, t);
    return e[n];
  }
  function M5(e) {
    e.stopPropagation();
  }
  var ZV = new uo(),
    Ep = class e {
      constructor(t, n) {
        ((this.options = { ...mV }),
          (this._disposeList = []),
          (this.handleZoom = (r) => {
            let { transform: i } = r;
            this.g.attr("transform", i);
          }),
          (this.handlePan = (r) => {
            r.preventDefault();
            let i = xi(this.svg.node()),
              o = i.translate(-r.deltaX / i.k, -r.deltaY / i.k);
            this.svg.call(this.zoom.transform, o);
          }),
          (this.handleClick = (r, i) => {
            let o = this.options.toggleRecursively;
            ((DE ? r.metaKey : r.ctrlKey) && (o = !o), this.toggleNode(i, o));
          }),
          (this.ensureView = this.ensureVisible),
          (this.svg = t.datum ? t : Tt(t)),
          (this.styleNode = this.svg.append("style")),
          (this.zoom = Q1()
            .filter((r) =>
              this.options.scrollForPan && r.type === "wheel"
                ? r.ctrlKey && !r.button
                : (!r.ctrlKey || r.type === "wheel") && !r.button,
            )
            .on("zoom", this.handleZoom)),
          this.setOptions(n),
          (this.state = {
            id: this.options.id || this.svg.attr("id") || pA(),
            rect: { x1: 0, y1: 0, x2: 0, y2: 0 },
          }),
          (this.g = this.svg.append("g")),
          this.g.append("g").attr("class", "markmap-highlight"),
          (this._observer = new ResizeObserver(
            gA(() => {
              this.renderData();
            }, 100),
          )),
          this._disposeList.push(
            ZV.tap(() => {
              this.setData();
            }),
            () => this._observer.disconnect(),
          ));
      }
      getStyleContent() {
        let { style: t } = this.options,
          { id: n } = this.state,
          r = typeof t == "function" ? t(n) : "";
        return [this.options.embedGlobalCSS && XV, r].filter(Boolean).join(`
`);
      }
      updateStyle() {
        this.svg.attr(
          "class",
          mA(this.svg.attr("class"), "markmap", this.state.id),
        );
        let t = this.getStyleContent();
        this.styleNode.text(t);
      }
      async toggleNode(t, n = !1) {
        var r, i;
        let o = (r = t.payload) != null && r.fold ? 0 : 1;
        (n
          ? ms(t, (s, u) => {
              ((s.payload = { ...s.payload, fold: o }), u());
            })
          : (t.payload = {
              ...t.payload,
              fold: (i = t.payload) != null && i.fold ? 0 : 1,
            }),
          await this.renderData(t));
      }
      _initializeData(t) {
        let n = 0,
          { color: r, initialExpandLevel: i } = this.options,
          o = 0,
          s = 0;
        return (
          ms(t, (u, a, l) => {
            var h, m, p, b;
            ((s += 1),
              (u.children =
                (h = u.children) == null ? void 0 : h.map((y) => ({ ...y }))),
              (n += 1),
              (u.state = {
                ...u.state,
                depth: s,
                id: n,
                rect: { x: 0, y: 0, width: 0, height: 0 },
                size: [0, 0],
              }),
              (u.state.key =
                [(m = l?.state) == null ? void 0 : m.id, u.state.id]
                  .filter(Boolean)
                  .join(".") + gV(u.content)),
              (u.state.path = [
                (p = l?.state) == null ? void 0 : p.path,
                u.state.id,
              ]
                .filter(Boolean)
                .join(".")),
              r(u));
            let x = ((b = u.payload) == null ? void 0 : b.fold) === 2;
            (x
              ? (o += 1)
              : (o || (i >= 0 && u.state.depth >= i)) &&
                (u.payload = { ...u.payload, fold: 1 }),
              a(),
              x && (o -= 1),
              (s -= 1));
          }),
          t
        );
      }
      _relayout() {
        if (!this.state.data) return;
        this.g
          .selectAll(Qn(S5))
          .selectAll(Qn("foreignObject"))
          .each(function (a) {
            var l;
            let h = (l = this.firstChild) == null ? void 0 : l.firstChild,
              m = [h.scrollWidth, h.scrollHeight];
            a.state.size = m;
          });
        let {
            lineWidth: t,
            paddingX: n,
            spacingHorizontal: r,
            spacingVertical: i,
          } = this.options,
          o = FE({})
            .children((a) => {
              var l;
              if (!((l = a.payload) != null && l.fold)) return a.children;
            })
            .nodeSize((a) => {
              let [l, h] = a.data.state.size;
              return [h, l + (l ? n * 2 : 0) + r];
            })
            .spacing((a, l) => (a.parent === l.parent ? i : i * 2) + t(a.data)),
          s = o.hierarchy(this.state.data);
        o(s);
        let u = s.descendants();
        (u.forEach((a) => {
          let l = a.data;
          l.state.rect = {
            x: a.y,
            y: a.x - a.xSize / 2,
            width: a.ySize - r,
            height: a.xSize,
          };
        }),
          (this.state.rect = {
            x1: Ar(u, (a) => a.data.state.rect.x) || 0,
            y1: Ar(u, (a) => a.data.state.rect.y) || 0,
            x2:
              or(u, (a) => a.data.state.rect.x + a.data.state.rect.width) || 0,
            y2:
              or(u, (a) => a.data.state.rect.y + a.data.state.rect.height) || 0,
          }));
      }
      setOptions(t) {
        ((this.options = { ...this.options, ...t }),
          this.options.zoom
            ? this.svg.call(this.zoom)
            : this.svg.on(".zoom", null),
          this.options.pan
            ? this.svg.on("wheel", this.handlePan)
            : this.svg.on("wheel", null));
      }
      async setData(t, n) {
        (n && this.setOptions(n),
          t && (this.state.data = this._initializeData(t)),
          this.state.data && (this.updateStyle(), await this.renderData()));
      }
      async setHighlight(t) {
        ((this.state.highlight = t || void 0), await this.renderData());
      }
      _getHighlightRect(t) {
        let n = this.svg.node(),
          r = 4 / xi(n).k,
          i = { ...t.state.rect };
        return (
          (i.x -= r),
          (i.y -= r),
          (i.width += 2 * r),
          (i.height += 2 * r),
          i
        );
      }
      async renderData(t) {
        let {
            paddingX: n,
            autoFit: r,
            color: i,
            maxWidth: o,
            lineWidth: s,
          } = this.options,
          u = this.state.data;
        if (!u) return;
        let a = {},
          l = {},
          h = [];
        ms(u, (X, he, Ae) => {
          var Be;
          (((Be = X.payload) != null && Be.fold) || he(),
            (a[X.state.id] = X),
            Ae && (l[X.state.id] = Ae.state.id),
            h.push(X));
        });
        let m = {},
          p = {},
          b = (X) => {
            !X ||
              m[X.state.id] ||
              ms(X, (he, Ae) => {
                ((m[he.state.id] = X.state.id), Ae());
              });
          },
          x = (X) => p[m[X.state.id]] || u.state.rect,
          y = (X) => (a[m[X.state.id]] || u).state.rect;
        ((p[u.state.id] = u.state.rect), t && b(t));
        let { highlight: v } = this.state;
        v && !a[v.state.id] && (v = void 0);
        let k = this.g
            .selectAll(Qn(KV))
            .selectAll(Qn("rect"))
            .data(v ? [this._getHighlightRect(v)] : [])
            .join("rect")
            .attr("x", (X) => X.x)
            .attr("y", (X) => X.y)
            .attr("width", (X) => X.width)
            .attr("height", (X) => X.height),
          T = this.g
            .selectAll(Qn(S5))
            .each((X) => {
              p[X.state.id] = X.state.rect;
            })
            .data(h, (X) => X.state.key),
          E = T.enter()
            .append("g")
            .attr("data-depth", (X) => X.state.depth)
            .attr("data-path", (X) => X.state.path)
            .each((X) => {
              b(a[l[X.state.id]]);
            }),
          M = T.exit().each((X) => {
            b(a[l[X.state.id]]);
          }),
          D = T.merge(E).attr("class", (X) => {
            var he;
            return [
              "markmap-node",
              ((he = X.payload) == null ? void 0 : he.fold) && "markmap-fold",
            ]
              .filter(Boolean)
              .join(" ");
          }),
          I = D.selectAll(Qn("line")).data(
            (X) => [X],
            (X) => X.state.key,
          ),
          P = I.enter()
            .append("line")
            .attr("stroke", (X) => i(X))
            .attr("stroke-width", 0),
          O = I.merge(P),
          H = D.selectAll(Qn("circle")).data(
            (X) => {
              var he;
              return (he = X.children) != null && he.length ? [X] : [];
            },
            (X) => X.state.key,
          ),
          U = H.enter()
            .append("circle")
            .attr("stroke-width", 0)
            .attr("r", 0)
            .on("click", (X, he) => this.handleClick(X, he))
            .on("mousedown", M5)
            .merge(H)
            .attr("stroke", (X) => i(X))
            .attr("fill", (X) => {
              var he;
              return (he = X.payload) != null && he.fold && X.children
                ? i(X)
                : "var(--markmap-circle-open-bg)";
            }),
          j = this._observer,
          Z = D.selectAll(Qn("foreignObject")).data(
            (X) => [X],
            (X) => X.state.key,
          ),
          Q = Z.enter()
            .append("foreignObject")
            .attr("class", "markmap-foreign")
            .attr("x", n)
            .attr("y", 0)
            .style("opacity", 0)
            .on("mousedown", M5)
            .on("dblclick", M5);
        (Q.append("xhtml:div")
          .append("xhtml:div")
          .html((X) => X.content)
          .attr("xmlns", "http://www.w3.org/1999/xhtml"),
          Q.each(function () {
            var X;
            let he = (X = this.firstChild) == null ? void 0 : X.firstChild;
            j.observe(he);
          }));
        let B = M.selectAll(Qn("foreignObject"));
        B.each(function () {
          var X;
          let he = (X = this.firstChild) == null ? void 0 : X.firstChild;
          j.unobserve(he);
        });
        let V = Q.merge(Z),
          G = h.flatMap((X) => {
            var he;
            return (he = X.payload) != null && he.fold
              ? []
              : X.children.map((Ae) => ({ source: X, target: Ae }));
          }),
          ne = this.g.selectAll(Qn(WV)).data(G, (X) => X.target.state.key),
          te = ne.exit(),
          ie = ne
            .enter()
            .insert("path", "g")
            .attr("class", "markmap-link")
            .attr("data-depth", (X) => X.target.state.depth)
            .attr("data-path", (X) => X.target.state.path)
            .attr("d", (X) => {
              let he = x(X.target),
                Ae = [he.x + he.width, he.y + he.height];
              return A5({ source: Ae, target: Ae });
            })
            .attr("stroke-width", 0)
            .merge(ne);
        (this.svg.style("--markmap-max-width", o ? `${o}px` : null),
          await new Promise(requestAnimationFrame),
          this._relayout(),
          (k = k.data(v ? [this._getHighlightRect(v)] : []).join("rect")),
          this.transition(k)
            .attr("x", (X) => X.x)
            .attr("y", (X) => X.y)
            .attr("width", (X) => X.width)
            .attr("height", (X) => X.height),
          E.attr("transform", (X) => {
            let he = x(X);
            return `translate(${he.x + he.width - X.state.rect.width},${he.y + he.height - X.state.rect.height})`;
          }),
          this.transition(M)
            .attr("transform", (X) => {
              let he = y(X),
                Ae = he.x + he.width - X.state.rect.width,
                Be = he.y + he.height - X.state.rect.height;
              return `translate(${Ae},${Be})`;
            })
            .remove(),
          this.transition(D).attr(
            "transform",
            (X) => `translate(${X.state.rect.x},${X.state.rect.y})`,
          ));
        let ce = M.selectAll(Qn("line"));
        (this.transition(ce)
          .attr("x1", (X) => X.state.rect.width)
          .attr("stroke-width", 0),
          P.attr("x1", (X) => X.state.rect.width).attr(
            "x2",
            (X) => X.state.rect.width,
          ),
          O.attr("y1", (X) => X.state.rect.height + s(X) / 2).attr(
            "y2",
            (X) => X.state.rect.height + s(X) / 2,
          ),
          this.transition(O)
            .attr("x1", -1)
            .attr("x2", (X) => X.state.rect.width + 2)
            .attr("stroke", (X) => i(X))
            .attr("stroke-width", s));
        let xe = M.selectAll(Qn("circle"));
        (this.transition(xe).attr("r", 0).attr("stroke-width", 0),
          U.attr("cx", (X) => X.state.rect.width).attr(
            "cy",
            (X) => X.state.rect.height + s(X) / 2,
          ),
          this.transition(U).attr("r", 6).attr("stroke-width", "1.5"),
          this.transition(B).style("opacity", 0),
          V.attr("width", (X) => Math.max(0, X.state.rect.width - n * 2)).attr(
            "height",
            (X) => X.state.rect.height,
          ),
          this.transition(V).style("opacity", 1),
          this.transition(te)
            .attr("d", (X) => {
              let he = y(X.target),
                Ae = [he.x + he.width, he.y + he.height + s(X.target) / 2];
              return A5({ source: Ae, target: Ae });
            })
            .attr("stroke-width", 0)
            .remove(),
          this.transition(ie)
            .attr("stroke", (X) => i(X.target))
            .attr("stroke-width", (X) => s(X.target))
            .attr("d", (X) => {
              let he = X.source,
                Ae = X.target,
                Be = [
                  he.state.rect.x + he.state.rect.width,
                  he.state.rect.y + he.state.rect.height + s(he) / 2,
                ],
                kt = [
                  Ae.state.rect.x,
                  Ae.state.rect.y + Ae.state.rect.height + s(Ae) / 2,
                ];
              return A5({ source: Be, target: kt });
            }),
          r && this.fit());
      }
      transition(t) {
        let { duration: n } = this.options;
        return t.transition().duration(n);
      }
      async fit(t = this.options.maxInitialScale) {
        let n = this.svg.node(),
          { width: r, height: i } = n.getBoundingClientRect(),
          { fitRatio: o } = this.options,
          { x1: s, y1: u, x2: a, y2: l } = this.state.rect,
          h = a - s,
          m = l - u,
          p = Math.min((r / h) * o, (i / m) * o, t),
          b = Jo.translate(
            (r - h * p) / 2 - s * p,
            (i - m * p) / 2 - u * p,
          ).scale(p);
        return this.transition(this.svg)
          .call(this.zoom.transform, b)
          .end()
          .catch(Qo);
      }
      findElement(t) {
        let n;
        return (
          this.g.selectAll(Qn(S5)).each(function (r) {
            r === t && (n = { data: r, g: this });
          }),
          n
        );
      }
      async ensureVisible(t, n) {
        var r;
        let i = (r = this.findElement(t)) == null ? void 0 : r.data;
        if (!i) return;
        let o = this.svg.node(),
          s = o.getBoundingClientRect(),
          u = xi(o),
          [a, l] = [
            i.state.rect.x,
            i.state.rect.x + i.state.rect.width + 2,
          ].map((k) => k * u.k + u.x),
          [h, m] = [i.state.rect.y, i.state.rect.y + i.state.rect.height].map(
            (k) => k * u.k + u.y,
          ),
          p = { left: 0, right: 0, top: 0, bottom: 0, ...n },
          b = [p.left - a, s.width - p.right - l],
          x = [p.top - h, s.height - p.bottom - m],
          y = b[0] * b[1] > 0 ? NE(b, Math.abs) / u.k : 0,
          v = x[0] * x[1] > 0 ? NE(x, Math.abs) / u.k : 0;
        if (y || v) {
          let k = u.translate(y, v);
          return this.transition(this.svg)
            .call(this.zoom.transform, k)
            .end()
            .catch(Qo);
        }
      }
      async centerNode(t, n) {
        var r;
        let i = (r = this.findElement(t)) == null ? void 0 : r.data;
        if (!i) return;
        let o = this.svg.node(),
          s = o.getBoundingClientRect(),
          u = xi(o),
          a = (i.state.rect.x + i.state.rect.width / 2) * u.k + u.x,
          l = (i.state.rect.y + i.state.rect.height / 2) * u.k + u.y,
          h = { left: 0, right: 0, top: 0, bottom: 0, ...n },
          m = (h.left + s.width - h.right) / 2,
          p = (h.top + s.height - h.bottom) / 2,
          b = (m - a) / u.k,
          x = (p - l) / u.k;
        if (b || x) {
          let y = u.translate(b, x);
          return this.transition(this.svg)
            .call(this.zoom.transform, y)
            .end()
            .catch(Qo);
        }
      }
      async rescale(t) {
        let n = this.svg.node(),
          { width: r, height: i } = n.getBoundingClientRect(),
          o = r / 2,
          s = i / 2,
          u = xi(n),
          a = u
            .translate(((o - u.x) * (1 - t)) / u.k, ((s - u.y) * (1 - t)) / u.k)
            .scale(t);
        return this.transition(this.svg)
          .call(this.zoom.transform, a)
          .end()
          .catch(Qo);
      }
      destroy() {
        (this.svg.on(".zoom", null),
          this.svg.html(null),
          this._disposeList.forEach((t) => {
            t();
          }));
      }
      static create(t, n, r = null) {
        let i = new e(t, n);
        return (
          r &&
            i.setData(r).then(() => {
              i.fit();
            }),
          i
        );
      }
    };
  window.d3 = Z3;
  window.markmap = { Transformer: Mp, Markmap: Ep };
  console.log("[markmap-bundle] \u5DF2\u52A0\u8F7D");
})();
/*! Bundled license information:

markmap-common/dist/index.mjs:
  (*! @gera2ld/jsx-dom v2.2.2 | ISC License *)
*/
