const {
  SvelteComponent: O4,
  assign: L4,
  create_slot: B4,
  detach: P4,
  element: F4,
  get_all_dirty_from_scope: H4,
  get_slot_changes: U4,
  get_spread_update: z4,
  init: q4,
  insert: Y4,
  safe_not_equal: V4,
  set_dynamic_element_data: vc,
  set_style: Ut,
  toggle_class: qr,
  transition_in: D1,
  transition_out: R1,
  update_slot_base: G4
} = window.__gradio__svelte__internal;
function X4(e) {
  let t, r, n;
  const i = (
    /*#slots*/
    e[18].default
  ), a = B4(
    i,
    e,
    /*$$scope*/
    e[17],
    null
  );
  let o = [
    { "data-testid": (
      /*test_id*/
      e[7]
    ) },
    { id: (
      /*elem_id*/
      e[2]
    ) },
    {
      class: r = "block " + /*elem_classes*/
      e[3].join(" ") + " svelte-1t38q2d"
    }
  ], c = {};
  for (let f = 0; f < o.length; f += 1)
    c = L4(c, o[f]);
  return {
    c() {
      t = F4(
        /*tag*/
        e[14]
      ), a && a.c(), vc(
        /*tag*/
        e[14]
      )(t, c), qr(
        t,
        "hidden",
        /*visible*/
        e[10] === !1
      ), qr(
        t,
        "padded",
        /*padding*/
        e[6]
      ), qr(
        t,
        "border_focus",
        /*border_mode*/
        e[5] === "focus"
      ), qr(t, "hide-container", !/*explicit_call*/
      e[8] && !/*container*/
      e[9]), Ut(
        t,
        "height",
        /*get_dimension*/
        e[15](
          /*height*/
          e[0]
        )
      ), Ut(t, "width", typeof /*width*/
      e[1] == "number" ? `calc(min(${/*width*/
      e[1]}px, 100%))` : (
        /*get_dimension*/
        e[15](
          /*width*/
          e[1]
        )
      )), Ut(
        t,
        "border-style",
        /*variant*/
        e[4]
      ), Ut(
        t,
        "overflow",
        /*allow_overflow*/
        e[11] ? "visible" : "hidden"
      ), Ut(
        t,
        "flex-grow",
        /*scale*/
        e[12]
      ), Ut(t, "min-width", `calc(min(${/*min_width*/
      e[13]}px, 100%))`), Ut(t, "border-width", "var(--block-border-width)");
    },
    m(f, m) {
      Y4(f, t, m), a && a.m(t, null), n = !0;
    },
    p(f, m) {
      a && a.p && (!n || m & /*$$scope*/
      131072) && G4(
        a,
        i,
        f,
        /*$$scope*/
        f[17],
        n ? U4(
          i,
          /*$$scope*/
          f[17],
          m,
          null
        ) : H4(
          /*$$scope*/
          f[17]
        ),
        null
      ), vc(
        /*tag*/
        f[14]
      )(t, c = z4(o, [
        (!n || m & /*test_id*/
        128) && { "data-testid": (
          /*test_id*/
          f[7]
        ) },
        (!n || m & /*elem_id*/
        4) && { id: (
          /*elem_id*/
          f[2]
        ) },
        (!n || m & /*elem_classes*/
        8 && r !== (r = "block " + /*elem_classes*/
        f[3].join(" ") + " svelte-1t38q2d")) && { class: r }
      ])), qr(
        t,
        "hidden",
        /*visible*/
        f[10] === !1
      ), qr(
        t,
        "padded",
        /*padding*/
        f[6]
      ), qr(
        t,
        "border_focus",
        /*border_mode*/
        f[5] === "focus"
      ), qr(t, "hide-container", !/*explicit_call*/
      f[8] && !/*container*/
      f[9]), m & /*height*/
      1 && Ut(
        t,
        "height",
        /*get_dimension*/
        f[15](
          /*height*/
          f[0]
        )
      ), m & /*width*/
      2 && Ut(t, "width", typeof /*width*/
      f[1] == "number" ? `calc(min(${/*width*/
      f[1]}px, 100%))` : (
        /*get_dimension*/
        f[15](
          /*width*/
          f[1]
        )
      )), m & /*variant*/
      16 && Ut(
        t,
        "border-style",
        /*variant*/
        f[4]
      ), m & /*allow_overflow*/
      2048 && Ut(
        t,
        "overflow",
        /*allow_overflow*/
        f[11] ? "visible" : "hidden"
      ), m & /*scale*/
      4096 && Ut(
        t,
        "flex-grow",
        /*scale*/
        f[12]
      ), m & /*min_width*/
      8192 && Ut(t, "min-width", `calc(min(${/*min_width*/
      f[13]}px, 100%))`);
    },
    i(f) {
      n || (D1(a, f), n = !0);
    },
    o(f) {
      R1(a, f), n = !1;
    },
    d(f) {
      f && P4(t), a && a.d(f);
    }
  };
}
function W4(e) {
  let t, r = (
    /*tag*/
    e[14] && X4(e)
  );
  return {
    c() {
      r && r.c();
    },
    m(n, i) {
      r && r.m(n, i), t = !0;
    },
    p(n, [i]) {
      /*tag*/
      n[14] && r.p(n, i);
    },
    i(n) {
      t || (D1(r, n), t = !0);
    },
    o(n) {
      R1(r, n), t = !1;
    },
    d(n) {
      r && r.d(n);
    }
  };
}
function j4(e, t, r) {
  let { $$slots: n = {}, $$scope: i } = t, { height: a = void 0 } = t, { width: o = void 0 } = t, { elem_id: c = "" } = t, { elem_classes: f = [] } = t, { variant: m = "solid" } = t, { border_mode: b = "base" } = t, { padding: A = !0 } = t, { type: k = "normal" } = t, { test_id: N = void 0 } = t, { explicit_call: M = !1 } = t, { container: F = !0 } = t, { visible: q = !0 } = t, { allow_overflow: B = !0 } = t, { scale: $ = null } = t, { min_width: V = 0 } = t, oe = k === "fieldset" ? "fieldset" : "div";
  const pe = (se) => {
    if (se !== void 0) {
      if (typeof se == "number")
        return se + "px";
      if (typeof se == "string")
        return se;
    }
  };
  return e.$$set = (se) => {
    "height" in se && r(0, a = se.height), "width" in se && r(1, o = se.width), "elem_id" in se && r(2, c = se.elem_id), "elem_classes" in se && r(3, f = se.elem_classes), "variant" in se && r(4, m = se.variant), "border_mode" in se && r(5, b = se.border_mode), "padding" in se && r(6, A = se.padding), "type" in se && r(16, k = se.type), "test_id" in se && r(7, N = se.test_id), "explicit_call" in se && r(8, M = se.explicit_call), "container" in se && r(9, F = se.container), "visible" in se && r(10, q = se.visible), "allow_overflow" in se && r(11, B = se.allow_overflow), "scale" in se && r(12, $ = se.scale), "min_width" in se && r(13, V = se.min_width), "$$scope" in se && r(17, i = se.$$scope);
  }, [
    a,
    o,
    c,
    f,
    m,
    b,
    A,
    N,
    M,
    F,
    q,
    B,
    $,
    V,
    oe,
    pe,
    k,
    i,
    n
  ];
}
class K4 extends O4 {
  constructor(t) {
    super(), q4(this, t, j4, W4, V4, {
      height: 0,
      width: 1,
      elem_id: 2,
      elem_classes: 3,
      variant: 4,
      border_mode: 5,
      padding: 6,
      type: 16,
      test_id: 7,
      explicit_call: 8,
      container: 9,
      visible: 10,
      allow_overflow: 11,
      scale: 12,
      min_width: 13
    });
  }
}
const {
  SvelteComponent: $4,
  attr: Q4,
  create_slot: Z4,
  detach: J4,
  element: ep,
  get_all_dirty_from_scope: tp,
  get_slot_changes: rp,
  init: np,
  insert: ip,
  safe_not_equal: ap,
  transition_in: sp,
  transition_out: up,
  update_slot_base: op
} = window.__gradio__svelte__internal;
function lp(e) {
  let t, r;
  const n = (
    /*#slots*/
    e[1].default
  ), i = Z4(
    n,
    e,
    /*$$scope*/
    e[0],
    null
  );
  return {
    c() {
      t = ep("div"), i && i.c(), Q4(t, "class", "svelte-1hnfib2");
    },
    m(a, o) {
      ip(a, t, o), i && i.m(t, null), r = !0;
    },
    p(a, [o]) {
      i && i.p && (!r || o & /*$$scope*/
      1) && op(
        i,
        n,
        a,
        /*$$scope*/
        a[0],
        r ? rp(
          n,
          /*$$scope*/
          a[0],
          o,
          null
        ) : tp(
          /*$$scope*/
          a[0]
        ),
        null
      );
    },
    i(a) {
      r || (sp(i, a), r = !0);
    },
    o(a) {
      up(i, a), r = !1;
    },
    d(a) {
      a && J4(t), i && i.d(a);
    }
  };
}
function cp(e, t, r) {
  let { $$slots: n = {}, $$scope: i } = t;
  return e.$$set = (a) => {
    "$$scope" in a && r(0, i = a.$$scope);
  }, [i, n];
}
class hp extends $4 {
  constructor(t) {
    super(), np(this, t, cp, lp, ap, {});
  }
}
const {
  SvelteComponent: fp,
  attr: _c,
  check_outros: dp,
  create_component: mp,
  create_slot: pp,
  destroy_component: gp,
  detach: zi,
  element: bp,
  empty: Ep,
  get_all_dirty_from_scope: vp,
  get_slot_changes: _p,
  group_outros: Tp,
  init: Ap,
  insert: qi,
  mount_component: xp,
  safe_not_equal: yp,
  set_data: Sp,
  space: Cp,
  text: kp,
  toggle_class: Mn,
  transition_in: v0,
  transition_out: Yi,
  update_slot_base: wp
} = window.__gradio__svelte__internal;
function Tc(e) {
  let t, r;
  return t = new hp({
    props: {
      $$slots: { default: [Np] },
      $$scope: { ctx: e }
    }
  }), {
    c() {
      mp(t.$$.fragment);
    },
    m(n, i) {
      xp(t, n, i), r = !0;
    },
    p(n, i) {
      const a = {};
      i & /*$$scope, info*/
      10 && (a.$$scope = { dirty: i, ctx: n }), t.$set(a);
    },
    i(n) {
      r || (v0(t.$$.fragment, n), r = !0);
    },
    o(n) {
      Yi(t.$$.fragment, n), r = !1;
    },
    d(n) {
      gp(t, n);
    }
  };
}
function Np(e) {
  let t;
  return {
    c() {
      t = kp(
        /*info*/
        e[1]
      );
    },
    m(r, n) {
      qi(r, t, n);
    },
    p(r, n) {
      n & /*info*/
      2 && Sp(
        t,
        /*info*/
        r[1]
      );
    },
    d(r) {
      r && zi(t);
    }
  };
}
function Ip(e) {
  let t, r, n, i;
  const a = (
    /*#slots*/
    e[2].default
  ), o = pp(
    a,
    e,
    /*$$scope*/
    e[3],
    null
  );
  let c = (
    /*info*/
    e[1] && Tc(e)
  );
  return {
    c() {
      t = bp("span"), o && o.c(), r = Cp(), c && c.c(), n = Ep(), _c(t, "data-testid", "block-info"), _c(t, "class", "svelte-22c38v"), Mn(t, "sr-only", !/*show_label*/
      e[0]), Mn(t, "hide", !/*show_label*/
      e[0]), Mn(
        t,
        "has-info",
        /*info*/
        e[1] != null
      );
    },
    m(f, m) {
      qi(f, t, m), o && o.m(t, null), qi(f, r, m), c && c.m(f, m), qi(f, n, m), i = !0;
    },
    p(f, [m]) {
      o && o.p && (!i || m & /*$$scope*/
      8) && wp(
        o,
        a,
        f,
        /*$$scope*/
        f[3],
        i ? _p(
          a,
          /*$$scope*/
          f[3],
          m,
          null
        ) : vp(
          /*$$scope*/
          f[3]
        ),
        null
      ), (!i || m & /*show_label*/
      1) && Mn(t, "sr-only", !/*show_label*/
      f[0]), (!i || m & /*show_label*/
      1) && Mn(t, "hide", !/*show_label*/
      f[0]), (!i || m & /*info*/
      2) && Mn(
        t,
        "has-info",
        /*info*/
        f[1] != null
      ), /*info*/
      f[1] ? c ? (c.p(f, m), m & /*info*/
      2 && v0(c, 1)) : (c = Tc(f), c.c(), v0(c, 1), c.m(n.parentNode, n)) : c && (Tp(), Yi(c, 1, 1, () => {
        c = null;
      }), dp());
    },
    i(f) {
      i || (v0(o, f), v0(c), i = !0);
    },
    o(f) {
      Yi(o, f), Yi(c), i = !1;
    },
    d(f) {
      f && (zi(t), zi(r), zi(n)), o && o.d(f), c && c.d(f);
    }
  };
}
function Mp(e, t, r) {
  let { $$slots: n = {}, $$scope: i } = t, { show_label: a = !0 } = t, { info: o = void 0 } = t;
  return e.$$set = (c) => {
    "show_label" in c && r(0, a = c.show_label), "info" in c && r(1, o = c.info), "$$scope" in c && r(3, i = c.$$scope);
  }, [a, o, n, i];
}
class Dp extends fp {
  constructor(t) {
    super(), Ap(this, t, Mp, Ip, yp, { show_label: 0, info: 1 });
  }
}
const Rp = [
  { color: "red", primary: 600, secondary: 100 },
  { color: "green", primary: 600, secondary: 100 },
  { color: "blue", primary: 600, secondary: 100 },
  { color: "yellow", primary: 500, secondary: 100 },
  { color: "purple", primary: 600, secondary: 100 },
  { color: "teal", primary: 600, secondary: 100 },
  { color: "orange", primary: 600, secondary: 100 },
  { color: "cyan", primary: 600, secondary: 100 },
  { color: "lime", primary: 500, secondary: 100 },
  { color: "pink", primary: 600, secondary: 100 }
], Ac = {
  inherit: "inherit",
  current: "currentColor",
  transparent: "transparent",
  black: "#000",
  white: "#fff",
  slate: {
    50: "#f8fafc",
    100: "#f1f5f9",
    200: "#e2e8f0",
    300: "#cbd5e1",
    400: "#94a3b8",
    500: "#64748b",
    600: "#475569",
    700: "#334155",
    800: "#1e293b",
    900: "#0f172a",
    950: "#020617"
  },
  gray: {
    50: "#f9fafb",
    100: "#f3f4f6",
    200: "#e5e7eb",
    300: "#d1d5db",
    400: "#9ca3af",
    500: "#6b7280",
    600: "#4b5563",
    700: "#374151",
    800: "#1f2937",
    900: "#111827",
    950: "#030712"
  },
  zinc: {
    50: "#fafafa",
    100: "#f4f4f5",
    200: "#e4e4e7",
    300: "#d4d4d8",
    400: "#a1a1aa",
    500: "#71717a",
    600: "#52525b",
    700: "#3f3f46",
    800: "#27272a",
    900: "#18181b",
    950: "#09090b"
  },
  neutral: {
    50: "#fafafa",
    100: "#f5f5f5",
    200: "#e5e5e5",
    300: "#d4d4d4",
    400: "#a3a3a3",
    500: "#737373",
    600: "#525252",
    700: "#404040",
    800: "#262626",
    900: "#171717",
    950: "#0a0a0a"
  },
  stone: {
    50: "#fafaf9",
    100: "#f5f5f4",
    200: "#e7e5e4",
    300: "#d6d3d1",
    400: "#a8a29e",
    500: "#78716c",
    600: "#57534e",
    700: "#44403c",
    800: "#292524",
    900: "#1c1917",
    950: "#0c0a09"
  },
  red: {
    50: "#fef2f2",
    100: "#fee2e2",
    200: "#fecaca",
    300: "#fca5a5",
    400: "#f87171",
    500: "#ef4444",
    600: "#dc2626",
    700: "#b91c1c",
    800: "#991b1b",
    900: "#7f1d1d",
    950: "#450a0a"
  },
  orange: {
    50: "#fff7ed",
    100: "#ffedd5",
    200: "#fed7aa",
    300: "#fdba74",
    400: "#fb923c",
    500: "#f97316",
    600: "#ea580c",
    700: "#c2410c",
    800: "#9a3412",
    900: "#7c2d12",
    950: "#431407"
  },
  amber: {
    50: "#fffbeb",
    100: "#fef3c7",
    200: "#fde68a",
    300: "#fcd34d",
    400: "#fbbf24",
    500: "#f59e0b",
    600: "#d97706",
    700: "#b45309",
    800: "#92400e",
    900: "#78350f",
    950: "#451a03"
  },
  yellow: {
    50: "#fefce8",
    100: "#fef9c3",
    200: "#fef08a",
    300: "#fde047",
    400: "#facc15",
    500: "#eab308",
    600: "#ca8a04",
    700: "#a16207",
    800: "#854d0e",
    900: "#713f12",
    950: "#422006"
  },
  lime: {
    50: "#f7fee7",
    100: "#ecfccb",
    200: "#d9f99d",
    300: "#bef264",
    400: "#a3e635",
    500: "#84cc16",
    600: "#65a30d",
    700: "#4d7c0f",
    800: "#3f6212",
    900: "#365314",
    950: "#1a2e05"
  },
  green: {
    50: "#f0fdf4",
    100: "#dcfce7",
    200: "#bbf7d0",
    300: "#86efac",
    400: "#4ade80",
    500: "#22c55e",
    600: "#16a34a",
    700: "#15803d",
    800: "#166534",
    900: "#14532d",
    950: "#052e16"
  },
  emerald: {
    50: "#ecfdf5",
    100: "#d1fae5",
    200: "#a7f3d0",
    300: "#6ee7b7",
    400: "#34d399",
    500: "#10b981",
    600: "#059669",
    700: "#047857",
    800: "#065f46",
    900: "#064e3b",
    950: "#022c22"
  },
  teal: {
    50: "#f0fdfa",
    100: "#ccfbf1",
    200: "#99f6e4",
    300: "#5eead4",
    400: "#2dd4bf",
    500: "#14b8a6",
    600: "#0d9488",
    700: "#0f766e",
    800: "#115e59",
    900: "#134e4a",
    950: "#042f2e"
  },
  cyan: {
    50: "#ecfeff",
    100: "#cffafe",
    200: "#a5f3fc",
    300: "#67e8f9",
    400: "#22d3ee",
    500: "#06b6d4",
    600: "#0891b2",
    700: "#0e7490",
    800: "#155e75",
    900: "#164e63",
    950: "#083344"
  },
  sky: {
    50: "#f0f9ff",
    100: "#e0f2fe",
    200: "#bae6fd",
    300: "#7dd3fc",
    400: "#38bdf8",
    500: "#0ea5e9",
    600: "#0284c7",
    700: "#0369a1",
    800: "#075985",
    900: "#0c4a6e",
    950: "#082f49"
  },
  blue: {
    50: "#eff6ff",
    100: "#dbeafe",
    200: "#bfdbfe",
    300: "#93c5fd",
    400: "#60a5fa",
    500: "#3b82f6",
    600: "#2563eb",
    700: "#1d4ed8",
    800: "#1e40af",
    900: "#1e3a8a",
    950: "#172554"
  },
  indigo: {
    50: "#eef2ff",
    100: "#e0e7ff",
    200: "#c7d2fe",
    300: "#a5b4fc",
    400: "#818cf8",
    500: "#6366f1",
    600: "#4f46e5",
    700: "#4338ca",
    800: "#3730a3",
    900: "#312e81",
    950: "#1e1b4b"
  },
  violet: {
    50: "#f5f3ff",
    100: "#ede9fe",
    200: "#ddd6fe",
    300: "#c4b5fd",
    400: "#a78bfa",
    500: "#8b5cf6",
    600: "#7c3aed",
    700: "#6d28d9",
    800: "#5b21b6",
    900: "#4c1d95",
    950: "#2e1065"
  },
  purple: {
    50: "#faf5ff",
    100: "#f3e8ff",
    200: "#e9d5ff",
    300: "#d8b4fe",
    400: "#c084fc",
    500: "#a855f7",
    600: "#9333ea",
    700: "#7e22ce",
    800: "#6b21a8",
    900: "#581c87",
    950: "#3b0764"
  },
  fuchsia: {
    50: "#fdf4ff",
    100: "#fae8ff",
    200: "#f5d0fe",
    300: "#f0abfc",
    400: "#e879f9",
    500: "#d946ef",
    600: "#c026d3",
    700: "#a21caf",
    800: "#86198f",
    900: "#701a75",
    950: "#4a044e"
  },
  pink: {
    50: "#fdf2f8",
    100: "#fce7f3",
    200: "#fbcfe8",
    300: "#f9a8d4",
    400: "#f472b6",
    500: "#ec4899",
    600: "#db2777",
    700: "#be185d",
    800: "#9d174d",
    900: "#831843",
    950: "#500724"
  },
  rose: {
    50: "#fff1f2",
    100: "#ffe4e6",
    200: "#fecdd3",
    300: "#fda4af",
    400: "#fb7185",
    500: "#f43f5e",
    600: "#e11d48",
    700: "#be123c",
    800: "#9f1239",
    900: "#881337",
    950: "#4c0519"
  }
};
Rp.reduce(
  (e, { color: t, primary: r, secondary: n }) => ({
    ...e,
    [t]: {
      primary: Ac[t][r],
      secondary: Ac[t][n]
    }
  }),
  {}
);
function Hn(e) {
  let t = ["", "k", "M", "G", "T", "P", "E", "Z"], r = 0;
  for (; e > 1e3 && r < t.length - 1; )
    e /= 1e3, r++;
  let n = t[r];
  return (Number.isInteger(e) ? e : e.toFixed(1)) + n;
}
function Vi() {
}
function Op(e, t) {
  return e != e ? t == t : e !== t || e && typeof e == "object" || typeof e == "function";
}
const O1 = typeof window < "u";
let xc = O1 ? () => window.performance.now() : () => Date.now(), L1 = O1 ? (e) => requestAnimationFrame(e) : Vi;
const Vn = /* @__PURE__ */ new Set();
function B1(e) {
  Vn.forEach((t) => {
    t.c(e) || (Vn.delete(t), t.f());
  }), Vn.size !== 0 && L1(B1);
}
function Lp(e) {
  let t;
  return Vn.size === 0 && L1(B1), {
    promise: new Promise((r) => {
      Vn.add(t = { c: e, f: r });
    }),
    abort() {
      Vn.delete(t);
    }
  };
}
const Dn = [];
function Bp(e, t = Vi) {
  let r;
  const n = /* @__PURE__ */ new Set();
  function i(c) {
    if (Op(e, c) && (e = c, r)) {
      const f = !Dn.length;
      for (const m of n)
        m[1](), Dn.push(m, e);
      if (f) {
        for (let m = 0; m < Dn.length; m += 2)
          Dn[m][0](Dn[m + 1]);
        Dn.length = 0;
      }
    }
  }
  function a(c) {
    i(c(e));
  }
  function o(c, f = Vi) {
    const m = [c, f];
    return n.add(m), n.size === 1 && (r = t(i, a) || Vi), c(e), () => {
      n.delete(m), n.size === 0 && r && (r(), r = null);
    };
  }
  return { set: i, update: a, subscribe: o };
}
function yc(e) {
  return Object.prototype.toString.call(e) === "[object Date]";
}
function ou(e, t, r, n) {
  if (typeof r == "number" || yc(r)) {
    const i = n - r, a = (r - t) / (e.dt || 1 / 60), o = e.opts.stiffness * i, c = e.opts.damping * a, f = (o - c) * e.inv_mass, m = (a + f) * e.dt;
    return Math.abs(m) < e.opts.precision && Math.abs(i) < e.opts.precision ? n : (e.settled = !1, yc(r) ? new Date(r.getTime() + m) : r + m);
  } else {
    if (Array.isArray(r))
      return r.map(
        (i, a) => ou(e, t[a], r[a], n[a])
      );
    if (typeof r == "object") {
      const i = {};
      for (const a in r)
        i[a] = ou(e, t[a], r[a], n[a]);
      return i;
    } else
      throw new Error(`Cannot spring ${typeof r} values`);
  }
}
function Sc(e, t = {}) {
  const r = Bp(e), { stiffness: n = 0.15, damping: i = 0.8, precision: a = 0.01 } = t;
  let o, c, f, m = e, b = e, A = 1, k = 0, N = !1;
  function M(q, B = {}) {
    b = q;
    const $ = f = {};
    return e == null || B.hard || F.stiffness >= 1 && F.damping >= 1 ? (N = !0, o = xc(), m = q, r.set(e = b), Promise.resolve()) : (B.soft && (k = 1 / ((B.soft === !0 ? 0.5 : +B.soft) * 60), A = 0), c || (o = xc(), N = !1, c = Lp((V) => {
      if (N)
        return N = !1, c = null, !1;
      A = Math.min(A + k, 1);
      const oe = {
        inv_mass: A,
        opts: F,
        settled: !0,
        dt: (V - o) * 60 / 1e3
      }, pe = ou(oe, m, e, b);
      return o = V, m = e, r.set(e = pe), oe.settled && (c = null), !oe.settled;
    })), new Promise((V) => {
      c.promise.then(() => {
        $ === f && V();
      });
    }));
  }
  const F = {
    set: M,
    update: (q, B) => M(q(b, e), B),
    subscribe: r.subscribe,
    stiffness: n,
    damping: i,
    precision: a
  };
  return F;
}
const {
  SvelteComponent: Pp,
  append: tr,
  attr: Fe,
  component_subscribe: Cc,
  detach: Fp,
  element: Hp,
  init: Up,
  insert: zp,
  noop: kc,
  safe_not_equal: qp,
  set_style: Si,
  svg_element: rr,
  toggle_class: wc
} = window.__gradio__svelte__internal, { onMount: Yp } = window.__gradio__svelte__internal;
function Vp(e) {
  let t, r, n, i, a, o, c, f, m, b, A, k;
  return {
    c() {
      t = Hp("div"), r = rr("svg"), n = rr("g"), i = rr("path"), a = rr("path"), o = rr("path"), c = rr("path"), f = rr("g"), m = rr("path"), b = rr("path"), A = rr("path"), k = rr("path"), Fe(i, "d", "M255.926 0.754768L509.702 139.936V221.027L255.926 81.8465V0.754768Z"), Fe(i, "fill", "#FF7C00"), Fe(i, "fill-opacity", "0.4"), Fe(i, "class", "svelte-43sxxs"), Fe(a, "d", "M509.69 139.936L254.981 279.641V361.255L509.69 221.55V139.936Z"), Fe(a, "fill", "#FF7C00"), Fe(a, "class", "svelte-43sxxs"), Fe(o, "d", "M0.250138 139.937L254.981 279.641V361.255L0.250138 221.55V139.937Z"), Fe(o, "fill", "#FF7C00"), Fe(o, "fill-opacity", "0.4"), Fe(o, "class", "svelte-43sxxs"), Fe(c, "d", "M255.923 0.232622L0.236328 139.936V221.55L255.923 81.8469V0.232622Z"), Fe(c, "fill", "#FF7C00"), Fe(c, "class", "svelte-43sxxs"), Si(n, "transform", "translate(" + /*$top*/
      e[1][0] + "px, " + /*$top*/
      e[1][1] + "px)"), Fe(m, "d", "M255.926 141.5L509.702 280.681V361.773L255.926 222.592V141.5Z"), Fe(m, "fill", "#FF7C00"), Fe(m, "fill-opacity", "0.4"), Fe(m, "class", "svelte-43sxxs"), Fe(b, "d", "M509.69 280.679L254.981 420.384V501.998L509.69 362.293V280.679Z"), Fe(b, "fill", "#FF7C00"), Fe(b, "class", "svelte-43sxxs"), Fe(A, "d", "M0.250138 280.681L254.981 420.386V502L0.250138 362.295V280.681Z"), Fe(A, "fill", "#FF7C00"), Fe(A, "fill-opacity", "0.4"), Fe(A, "class", "svelte-43sxxs"), Fe(k, "d", "M255.923 140.977L0.236328 280.68V362.294L255.923 222.591V140.977Z"), Fe(k, "fill", "#FF7C00"), Fe(k, "class", "svelte-43sxxs"), Si(f, "transform", "translate(" + /*$bottom*/
      e[2][0] + "px, " + /*$bottom*/
      e[2][1] + "px)"), Fe(r, "viewBox", "-1200 -1200 3000 3000"), Fe(r, "fill", "none"), Fe(r, "xmlns", "http://www.w3.org/2000/svg"), Fe(r, "class", "svelte-43sxxs"), Fe(t, "class", "svelte-43sxxs"), wc(
        t,
        "margin",
        /*margin*/
        e[0]
      );
    },
    m(N, M) {
      zp(N, t, M), tr(t, r), tr(r, n), tr(n, i), tr(n, a), tr(n, o), tr(n, c), tr(r, f), tr(f, m), tr(f, b), tr(f, A), tr(f, k);
    },
    p(N, [M]) {
      M & /*$top*/
      2 && Si(n, "transform", "translate(" + /*$top*/
      N[1][0] + "px, " + /*$top*/
      N[1][1] + "px)"), M & /*$bottom*/
      4 && Si(f, "transform", "translate(" + /*$bottom*/
      N[2][0] + "px, " + /*$bottom*/
      N[2][1] + "px)"), M & /*margin*/
      1 && wc(
        t,
        "margin",
        /*margin*/
        N[0]
      );
    },
    i: kc,
    o: kc,
    d(N) {
      N && Fp(t);
    }
  };
}
function Gp(e, t, r) {
  let n, i, { margin: a = !0 } = t;
  const o = Sc([0, 0]);
  Cc(e, o, (k) => r(1, n = k));
  const c = Sc([0, 0]);
  Cc(e, c, (k) => r(2, i = k));
  let f;
  async function m() {
    await Promise.all([o.set([125, 140]), c.set([-125, -140])]), await Promise.all([o.set([-125, 140]), c.set([125, -140])]), await Promise.all([o.set([-125, 0]), c.set([125, -0])]), await Promise.all([o.set([125, 0]), c.set([-125, 0])]);
  }
  async function b() {
    await m(), f || b();
  }
  async function A() {
    await Promise.all([o.set([125, 0]), c.set([-125, 0])]), b();
  }
  return Yp(() => (A(), () => f = !0)), e.$$set = (k) => {
    "margin" in k && r(0, a = k.margin);
  }, [a, n, i, o, c];
}
class Xp extends Pp {
  constructor(t) {
    super(), Up(this, t, Gp, Vp, qp, { margin: 0 });
  }
}
const {
  SvelteComponent: Wp,
  append: cn,
  attr: fr,
  binding_callbacks: Nc,
  check_outros: P1,
  create_component: jp,
  create_slot: Kp,
  destroy_component: $p,
  destroy_each: F1,
  detach: Me,
  element: wr,
  empty: t0,
  ensure_array_like: Zi,
  get_all_dirty_from_scope: Qp,
  get_slot_changes: Zp,
  group_outros: H1,
  init: Jp,
  insert: De,
  mount_component: e3,
  noop: lu,
  safe_not_equal: t3,
  set_data: Qt,
  set_style: Xr,
  space: dr,
  text: it,
  toggle_class: Kt,
  transition_in: jn,
  transition_out: Kn,
  update_slot_base: r3
} = window.__gradio__svelte__internal, { tick: n3 } = window.__gradio__svelte__internal, { onDestroy: i3 } = window.__gradio__svelte__internal, a3 = (e) => ({}), Ic = (e) => ({});
function Mc(e, t, r) {
  const n = e.slice();
  return n[38] = t[r], n[40] = r, n;
}
function Dc(e, t, r) {
  const n = e.slice();
  return n[38] = t[r], n;
}
function s3(e) {
  let t, r = (
    /*i18n*/
    e[1]("common.error") + ""
  ), n, i, a;
  const o = (
    /*#slots*/
    e[29].error
  ), c = Kp(
    o,
    e,
    /*$$scope*/
    e[28],
    Ic
  );
  return {
    c() {
      t = wr("span"), n = it(r), i = dr(), c && c.c(), fr(t, "class", "error svelte-1txqlrd");
    },
    m(f, m) {
      De(f, t, m), cn(t, n), De(f, i, m), c && c.m(f, m), a = !0;
    },
    p(f, m) {
      (!a || m[0] & /*i18n*/
      2) && r !== (r = /*i18n*/
      f[1]("common.error") + "") && Qt(n, r), c && c.p && (!a || m[0] & /*$$scope*/
      268435456) && r3(
        c,
        o,
        f,
        /*$$scope*/
        f[28],
        a ? Zp(
          o,
          /*$$scope*/
          f[28],
          m,
          a3
        ) : Qp(
          /*$$scope*/
          f[28]
        ),
        Ic
      );
    },
    i(f) {
      a || (jn(c, f), a = !0);
    },
    o(f) {
      Kn(c, f), a = !1;
    },
    d(f) {
      f && (Me(t), Me(i)), c && c.d(f);
    }
  };
}
function u3(e) {
  let t, r, n, i, a, o, c, f, m, b = (
    /*variant*/
    e[8] === "default" && /*show_eta_bar*/
    e[18] && /*show_progress*/
    e[6] === "full" && Rc(e)
  );
  function A(V, oe) {
    if (
      /*progress*/
      V[7]
    )
      return c3;
    if (
      /*queue_position*/
      V[2] !== null && /*queue_size*/
      V[3] !== void 0 && /*queue_position*/
      V[2] >= 0
    )
      return l3;
    if (
      /*queue_position*/
      V[2] === 0
    )
      return o3;
  }
  let k = A(e), N = k && k(e), M = (
    /*timer*/
    e[5] && Bc(e)
  );
  const F = [m3, d3], q = [];
  function B(V, oe) {
    return (
      /*last_progress_level*/
      V[15] != null ? 0 : (
        /*show_progress*/
        V[6] === "full" ? 1 : -1
      )
    );
  }
  ~(a = B(e)) && (o = q[a] = F[a](e));
  let $ = !/*timer*/
  e[5] && Yc(e);
  return {
    c() {
      b && b.c(), t = dr(), r = wr("div"), N && N.c(), n = dr(), M && M.c(), i = dr(), o && o.c(), c = dr(), $ && $.c(), f = t0(), fr(r, "class", "progress-text svelte-1txqlrd"), Kt(
        r,
        "meta-text-center",
        /*variant*/
        e[8] === "center"
      ), Kt(
        r,
        "meta-text",
        /*variant*/
        e[8] === "default"
      );
    },
    m(V, oe) {
      b && b.m(V, oe), De(V, t, oe), De(V, r, oe), N && N.m(r, null), cn(r, n), M && M.m(r, null), De(V, i, oe), ~a && q[a].m(V, oe), De(V, c, oe), $ && $.m(V, oe), De(V, f, oe), m = !0;
    },
    p(V, oe) {
      /*variant*/
      V[8] === "default" && /*show_eta_bar*/
      V[18] && /*show_progress*/
      V[6] === "full" ? b ? b.p(V, oe) : (b = Rc(V), b.c(), b.m(t.parentNode, t)) : b && (b.d(1), b = null), k === (k = A(V)) && N ? N.p(V, oe) : (N && N.d(1), N = k && k(V), N && (N.c(), N.m(r, n))), /*timer*/
      V[5] ? M ? M.p(V, oe) : (M = Bc(V), M.c(), M.m(r, null)) : M && (M.d(1), M = null), (!m || oe[0] & /*variant*/
      256) && Kt(
        r,
        "meta-text-center",
        /*variant*/
        V[8] === "center"
      ), (!m || oe[0] & /*variant*/
      256) && Kt(
        r,
        "meta-text",
        /*variant*/
        V[8] === "default"
      );
      let pe = a;
      a = B(V), a === pe ? ~a && q[a].p(V, oe) : (o && (H1(), Kn(q[pe], 1, 1, () => {
        q[pe] = null;
      }), P1()), ~a ? (o = q[a], o ? o.p(V, oe) : (o = q[a] = F[a](V), o.c()), jn(o, 1), o.m(c.parentNode, c)) : o = null), /*timer*/
      V[5] ? $ && ($.d(1), $ = null) : $ ? $.p(V, oe) : ($ = Yc(V), $.c(), $.m(f.parentNode, f));
    },
    i(V) {
      m || (jn(o), m = !0);
    },
    o(V) {
      Kn(o), m = !1;
    },
    d(V) {
      V && (Me(t), Me(r), Me(i), Me(c), Me(f)), b && b.d(V), N && N.d(), M && M.d(), ~a && q[a].d(V), $ && $.d(V);
    }
  };
}
function Rc(e) {
  let t, r = `translateX(${/*eta_level*/
  (e[17] || 0) * 100 - 100}%)`;
  return {
    c() {
      t = wr("div"), fr(t, "class", "eta-bar svelte-1txqlrd"), Xr(t, "transform", r);
    },
    m(n, i) {
      De(n, t, i);
    },
    p(n, i) {
      i[0] & /*eta_level*/
      131072 && r !== (r = `translateX(${/*eta_level*/
      (n[17] || 0) * 100 - 100}%)`) && Xr(t, "transform", r);
    },
    d(n) {
      n && Me(t);
    }
  };
}
function o3(e) {
  let t;
  return {
    c() {
      t = it("processing |");
    },
    m(r, n) {
      De(r, t, n);
    },
    p: lu,
    d(r) {
      r && Me(t);
    }
  };
}
function l3(e) {
  let t, r = (
    /*queue_position*/
    e[2] + 1 + ""
  ), n, i, a, o;
  return {
    c() {
      t = it("queue: "), n = it(r), i = it("/"), a = it(
        /*queue_size*/
        e[3]
      ), o = it(" |");
    },
    m(c, f) {
      De(c, t, f), De(c, n, f), De(c, i, f), De(c, a, f), De(c, o, f);
    },
    p(c, f) {
      f[0] & /*queue_position*/
      4 && r !== (r = /*queue_position*/
      c[2] + 1 + "") && Qt(n, r), f[0] & /*queue_size*/
      8 && Qt(
        a,
        /*queue_size*/
        c[3]
      );
    },
    d(c) {
      c && (Me(t), Me(n), Me(i), Me(a), Me(o));
    }
  };
}
function c3(e) {
  let t, r = Zi(
    /*progress*/
    e[7]
  ), n = [];
  for (let i = 0; i < r.length; i += 1)
    n[i] = Lc(Dc(e, r, i));
  return {
    c() {
      for (let i = 0; i < n.length; i += 1)
        n[i].c();
      t = t0();
    },
    m(i, a) {
      for (let o = 0; o < n.length; o += 1)
        n[o] && n[o].m(i, a);
      De(i, t, a);
    },
    p(i, a) {
      if (a[0] & /*progress*/
      128) {
        r = Zi(
          /*progress*/
          i[7]
        );
        let o;
        for (o = 0; o < r.length; o += 1) {
          const c = Dc(i, r, o);
          n[o] ? n[o].p(c, a) : (n[o] = Lc(c), n[o].c(), n[o].m(t.parentNode, t));
        }
        for (; o < n.length; o += 1)
          n[o].d(1);
        n.length = r.length;
      }
    },
    d(i) {
      i && Me(t), F1(n, i);
    }
  };
}
function Oc(e) {
  let t, r = (
    /*p*/
    e[38].unit + ""
  ), n, i, a = " ", o;
  function c(b, A) {
    return (
      /*p*/
      b[38].length != null ? f3 : h3
    );
  }
  let f = c(e), m = f(e);
  return {
    c() {
      m.c(), t = dr(), n = it(r), i = it(" | "), o = it(a);
    },
    m(b, A) {
      m.m(b, A), De(b, t, A), De(b, n, A), De(b, i, A), De(b, o, A);
    },
    p(b, A) {
      f === (f = c(b)) && m ? m.p(b, A) : (m.d(1), m = f(b), m && (m.c(), m.m(t.parentNode, t))), A[0] & /*progress*/
      128 && r !== (r = /*p*/
      b[38].unit + "") && Qt(n, r);
    },
    d(b) {
      b && (Me(t), Me(n), Me(i), Me(o)), m.d(b);
    }
  };
}
function h3(e) {
  let t = Hn(
    /*p*/
    e[38].index || 0
  ) + "", r;
  return {
    c() {
      r = it(t);
    },
    m(n, i) {
      De(n, r, i);
    },
    p(n, i) {
      i[0] & /*progress*/
      128 && t !== (t = Hn(
        /*p*/
        n[38].index || 0
      ) + "") && Qt(r, t);
    },
    d(n) {
      n && Me(r);
    }
  };
}
function f3(e) {
  let t = Hn(
    /*p*/
    e[38].index || 0
  ) + "", r, n, i = Hn(
    /*p*/
    e[38].length
  ) + "", a;
  return {
    c() {
      r = it(t), n = it("/"), a = it(i);
    },
    m(o, c) {
      De(o, r, c), De(o, n, c), De(o, a, c);
    },
    p(o, c) {
      c[0] & /*progress*/
      128 && t !== (t = Hn(
        /*p*/
        o[38].index || 0
      ) + "") && Qt(r, t), c[0] & /*progress*/
      128 && i !== (i = Hn(
        /*p*/
        o[38].length
      ) + "") && Qt(a, i);
    },
    d(o) {
      o && (Me(r), Me(n), Me(a));
    }
  };
}
function Lc(e) {
  let t, r = (
    /*p*/
    e[38].index != null && Oc(e)
  );
  return {
    c() {
      r && r.c(), t = t0();
    },
    m(n, i) {
      r && r.m(n, i), De(n, t, i);
    },
    p(n, i) {
      /*p*/
      n[38].index != null ? r ? r.p(n, i) : (r = Oc(n), r.c(), r.m(t.parentNode, t)) : r && (r.d(1), r = null);
    },
    d(n) {
      n && Me(t), r && r.d(n);
    }
  };
}
function Bc(e) {
  let t, r = (
    /*eta*/
    e[0] ? `/${/*formatted_eta*/
    e[19]}` : ""
  ), n, i;
  return {
    c() {
      t = it(
        /*formatted_timer*/
        e[20]
      ), n = it(r), i = it("s");
    },
    m(a, o) {
      De(a, t, o), De(a, n, o), De(a, i, o);
    },
    p(a, o) {
      o[0] & /*formatted_timer*/
      1048576 && Qt(
        t,
        /*formatted_timer*/
        a[20]
      ), o[0] & /*eta, formatted_eta*/
      524289 && r !== (r = /*eta*/
      a[0] ? `/${/*formatted_eta*/
      a[19]}` : "") && Qt(n, r);
    },
    d(a) {
      a && (Me(t), Me(n), Me(i));
    }
  };
}
function d3(e) {
  let t, r;
  return t = new Xp({
    props: { margin: (
      /*variant*/
      e[8] === "default"
    ) }
  }), {
    c() {
      jp(t.$$.fragment);
    },
    m(n, i) {
      e3(t, n, i), r = !0;
    },
    p(n, i) {
      const a = {};
      i[0] & /*variant*/
      256 && (a.margin = /*variant*/
      n[8] === "default"), t.$set(a);
    },
    i(n) {
      r || (jn(t.$$.fragment, n), r = !0);
    },
    o(n) {
      Kn(t.$$.fragment, n), r = !1;
    },
    d(n) {
      $p(t, n);
    }
  };
}
function m3(e) {
  let t, r, n, i, a, o = `${/*last_progress_level*/
  e[15] * 100}%`, c = (
    /*progress*/
    e[7] != null && Pc(e)
  );
  return {
    c() {
      t = wr("div"), r = wr("div"), c && c.c(), n = dr(), i = wr("div"), a = wr("div"), fr(r, "class", "progress-level-inner svelte-1txqlrd"), fr(a, "class", "progress-bar svelte-1txqlrd"), Xr(a, "width", o), fr(i, "class", "progress-bar-wrap svelte-1txqlrd"), fr(t, "class", "progress-level svelte-1txqlrd");
    },
    m(f, m) {
      De(f, t, m), cn(t, r), c && c.m(r, null), cn(t, n), cn(t, i), cn(i, a), e[30](a);
    },
    p(f, m) {
      /*progress*/
      f[7] != null ? c ? c.p(f, m) : (c = Pc(f), c.c(), c.m(r, null)) : c && (c.d(1), c = null), m[0] & /*last_progress_level*/
      32768 && o !== (o = `${/*last_progress_level*/
      f[15] * 100}%`) && Xr(a, "width", o);
    },
    i: lu,
    o: lu,
    d(f) {
      f && Me(t), c && c.d(), e[30](null);
    }
  };
}
function Pc(e) {
  let t, r = Zi(
    /*progress*/
    e[7]
  ), n = [];
  for (let i = 0; i < r.length; i += 1)
    n[i] = qc(Mc(e, r, i));
  return {
    c() {
      for (let i = 0; i < n.length; i += 1)
        n[i].c();
      t = t0();
    },
    m(i, a) {
      for (let o = 0; o < n.length; o += 1)
        n[o] && n[o].m(i, a);
      De(i, t, a);
    },
    p(i, a) {
      if (a[0] & /*progress_level, progress*/
      16512) {
        r = Zi(
          /*progress*/
          i[7]
        );
        let o;
        for (o = 0; o < r.length; o += 1) {
          const c = Mc(i, r, o);
          n[o] ? n[o].p(c, a) : (n[o] = qc(c), n[o].c(), n[o].m(t.parentNode, t));
        }
        for (; o < n.length; o += 1)
          n[o].d(1);
        n.length = r.length;
      }
    },
    d(i) {
      i && Me(t), F1(n, i);
    }
  };
}
function Fc(e) {
  let t, r, n, i, a = (
    /*i*/
    e[40] !== 0 && p3()
  ), o = (
    /*p*/
    e[38].desc != null && Hc(e)
  ), c = (
    /*p*/
    e[38].desc != null && /*progress_level*/
    e[14] && /*progress_level*/
    e[14][
      /*i*/
      e[40]
    ] != null && Uc()
  ), f = (
    /*progress_level*/
    e[14] != null && zc(e)
  );
  return {
    c() {
      a && a.c(), t = dr(), o && o.c(), r = dr(), c && c.c(), n = dr(), f && f.c(), i = t0();
    },
    m(m, b) {
      a && a.m(m, b), De(m, t, b), o && o.m(m, b), De(m, r, b), c && c.m(m, b), De(m, n, b), f && f.m(m, b), De(m, i, b);
    },
    p(m, b) {
      /*p*/
      m[38].desc != null ? o ? o.p(m, b) : (o = Hc(m), o.c(), o.m(r.parentNode, r)) : o && (o.d(1), o = null), /*p*/
      m[38].desc != null && /*progress_level*/
      m[14] && /*progress_level*/
      m[14][
        /*i*/
        m[40]
      ] != null ? c || (c = Uc(), c.c(), c.m(n.parentNode, n)) : c && (c.d(1), c = null), /*progress_level*/
      m[14] != null ? f ? f.p(m, b) : (f = zc(m), f.c(), f.m(i.parentNode, i)) : f && (f.d(1), f = null);
    },
    d(m) {
      m && (Me(t), Me(r), Me(n), Me(i)), a && a.d(m), o && o.d(m), c && c.d(m), f && f.d(m);
    }
  };
}
function p3(e) {
  let t;
  return {
    c() {
      t = it(" /");
    },
    m(r, n) {
      De(r, t, n);
    },
    d(r) {
      r && Me(t);
    }
  };
}
function Hc(e) {
  let t = (
    /*p*/
    e[38].desc + ""
  ), r;
  return {
    c() {
      r = it(t);
    },
    m(n, i) {
      De(n, r, i);
    },
    p(n, i) {
      i[0] & /*progress*/
      128 && t !== (t = /*p*/
      n[38].desc + "") && Qt(r, t);
    },
    d(n) {
      n && Me(r);
    }
  };
}
function Uc(e) {
  let t;
  return {
    c() {
      t = it("-");
    },
    m(r, n) {
      De(r, t, n);
    },
    d(r) {
      r && Me(t);
    }
  };
}
function zc(e) {
  let t = (100 * /*progress_level*/
  (e[14][
    /*i*/
    e[40]
  ] || 0)).toFixed(1) + "", r, n;
  return {
    c() {
      r = it(t), n = it("%");
    },
    m(i, a) {
      De(i, r, a), De(i, n, a);
    },
    p(i, a) {
      a[0] & /*progress_level*/
      16384 && t !== (t = (100 * /*progress_level*/
      (i[14][
        /*i*/
        i[40]
      ] || 0)).toFixed(1) + "") && Qt(r, t);
    },
    d(i) {
      i && (Me(r), Me(n));
    }
  };
}
function qc(e) {
  let t, r = (
    /*p*/
    (e[38].desc != null || /*progress_level*/
    e[14] && /*progress_level*/
    e[14][
      /*i*/
      e[40]
    ] != null) && Fc(e)
  );
  return {
    c() {
      r && r.c(), t = t0();
    },
    m(n, i) {
      r && r.m(n, i), De(n, t, i);
    },
    p(n, i) {
      /*p*/
      n[38].desc != null || /*progress_level*/
      n[14] && /*progress_level*/
      n[14][
        /*i*/
        n[40]
      ] != null ? r ? r.p(n, i) : (r = Fc(n), r.c(), r.m(t.parentNode, t)) : r && (r.d(1), r = null);
    },
    d(n) {
      n && Me(t), r && r.d(n);
    }
  };
}
function Yc(e) {
  let t, r;
  return {
    c() {
      t = wr("p"), r = it(
        /*loading_text*/
        e[9]
      ), fr(t, "class", "loading svelte-1txqlrd");
    },
    m(n, i) {
      De(n, t, i), cn(t, r);
    },
    p(n, i) {
      i[0] & /*loading_text*/
      512 && Qt(
        r,
        /*loading_text*/
        n[9]
      );
    },
    d(n) {
      n && Me(t);
    }
  };
}
function g3(e) {
  let t, r, n, i, a;
  const o = [u3, s3], c = [];
  function f(m, b) {
    return (
      /*status*/
      m[4] === "pending" ? 0 : (
        /*status*/
        m[4] === "error" ? 1 : -1
      )
    );
  }
  return ~(r = f(e)) && (n = c[r] = o[r](e)), {
    c() {
      t = wr("div"), n && n.c(), fr(t, "class", i = "wrap " + /*variant*/
      e[8] + " " + /*show_progress*/
      e[6] + " svelte-1txqlrd"), Kt(t, "hide", !/*status*/
      e[4] || /*status*/
      e[4] === "complete" || /*show_progress*/
      e[6] === "hidden"), Kt(
        t,
        "translucent",
        /*variant*/
        e[8] === "center" && /*status*/
        (e[4] === "pending" || /*status*/
        e[4] === "error") || /*translucent*/
        e[11] || /*show_progress*/
        e[6] === "minimal"
      ), Kt(
        t,
        "generating",
        /*status*/
        e[4] === "generating"
      ), Kt(
        t,
        "border",
        /*border*/
        e[12]
      ), Xr(
        t,
        "position",
        /*absolute*/
        e[10] ? "absolute" : "static"
      ), Xr(
        t,
        "padding",
        /*absolute*/
        e[10] ? "0" : "var(--size-8) 0"
      );
    },
    m(m, b) {
      De(m, t, b), ~r && c[r].m(t, null), e[31](t), a = !0;
    },
    p(m, b) {
      let A = r;
      r = f(m), r === A ? ~r && c[r].p(m, b) : (n && (H1(), Kn(c[A], 1, 1, () => {
        c[A] = null;
      }), P1()), ~r ? (n = c[r], n ? n.p(m, b) : (n = c[r] = o[r](m), n.c()), jn(n, 1), n.m(t, null)) : n = null), (!a || b[0] & /*variant, show_progress*/
      320 && i !== (i = "wrap " + /*variant*/
      m[8] + " " + /*show_progress*/
      m[6] + " svelte-1txqlrd")) && fr(t, "class", i), (!a || b[0] & /*variant, show_progress, status, show_progress*/
      336) && Kt(t, "hide", !/*status*/
      m[4] || /*status*/
      m[4] === "complete" || /*show_progress*/
      m[6] === "hidden"), (!a || b[0] & /*variant, show_progress, variant, status, translucent, show_progress*/
      2384) && Kt(
        t,
        "translucent",
        /*variant*/
        m[8] === "center" && /*status*/
        (m[4] === "pending" || /*status*/
        m[4] === "error") || /*translucent*/
        m[11] || /*show_progress*/
        m[6] === "minimal"
      ), (!a || b[0] & /*variant, show_progress, status*/
      336) && Kt(
        t,
        "generating",
        /*status*/
        m[4] === "generating"
      ), (!a || b[0] & /*variant, show_progress, border*/
      4416) && Kt(
        t,
        "border",
        /*border*/
        m[12]
      ), b[0] & /*absolute*/
      1024 && Xr(
        t,
        "position",
        /*absolute*/
        m[10] ? "absolute" : "static"
      ), b[0] & /*absolute*/
      1024 && Xr(
        t,
        "padding",
        /*absolute*/
        m[10] ? "0" : "var(--size-8) 0"
      );
    },
    i(m) {
      a || (jn(n), a = !0);
    },
    o(m) {
      Kn(n), a = !1;
    },
    d(m) {
      m && Me(t), ~r && c[r].d(), e[31](null);
    }
  };
}
let Ci = [], Ms = !1;
async function b3(e, t = !0) {
  if (!(window.__gradio_mode__ === "website" || window.__gradio_mode__ !== "app" && t !== !0)) {
    if (Ci.push(e), !Ms)
      Ms = !0;
    else
      return;
    await n3(), requestAnimationFrame(() => {
      let r = [0, 0];
      for (let n = 0; n < Ci.length; n++) {
        const a = Ci[n].getBoundingClientRect();
        (n === 0 || a.top + window.scrollY <= r[0]) && (r[0] = a.top + window.scrollY, r[1] = n);
      }
      window.scrollTo({ top: r[0] - 20, behavior: "smooth" }), Ms = !1, Ci = [];
    });
  }
}
function E3(e, t, r) {
  let n, { $$slots: i = {}, $$scope: a } = t, { i18n: o } = t, { eta: c = null } = t, { queue_position: f } = t, { queue_size: m } = t, { status: b } = t, { scroll_to_output: A = !1 } = t, { timer: k = !0 } = t, { show_progress: N = "full" } = t, { message: M = null } = t, { progress: F = null } = t, { variant: q = "default" } = t, { loading_text: B = "Loading..." } = t, { absolute: $ = !0 } = t, { translucent: V = !1 } = t, { border: oe = !1 } = t, { autoscroll: pe } = t, se, We = !1, Qe = 0, Ve = 0, Ze = null, X = null, Te = 0, Re = null, Y, ce = null, re = !0;
  const be = () => {
    r(0, c = r(26, Ze = r(19, ke = null))), r(24, Qe = performance.now()), r(25, Ve = 0), We = !0, Ce();
  };
  function Ce() {
    requestAnimationFrame(() => {
      r(25, Ve = (performance.now() - Qe) / 1e3), We && Ce();
    });
  }
  function we() {
    r(25, Ve = 0), r(0, c = r(26, Ze = r(19, ke = null))), We && (We = !1);
  }
  i3(() => {
    We && we();
  });
  let ke = null;
  function ae(ge) {
    Nc[ge ? "unshift" : "push"](() => {
      ce = ge, r(16, ce), r(7, F), r(14, Re), r(15, Y);
    });
  }
  function Ge(ge) {
    Nc[ge ? "unshift" : "push"](() => {
      se = ge, r(13, se);
    });
  }
  return e.$$set = (ge) => {
    "i18n" in ge && r(1, o = ge.i18n), "eta" in ge && r(0, c = ge.eta), "queue_position" in ge && r(2, f = ge.queue_position), "queue_size" in ge && r(3, m = ge.queue_size), "status" in ge && r(4, b = ge.status), "scroll_to_output" in ge && r(21, A = ge.scroll_to_output), "timer" in ge && r(5, k = ge.timer), "show_progress" in ge && r(6, N = ge.show_progress), "message" in ge && r(22, M = ge.message), "progress" in ge && r(7, F = ge.progress), "variant" in ge && r(8, q = ge.variant), "loading_text" in ge && r(9, B = ge.loading_text), "absolute" in ge && r(10, $ = ge.absolute), "translucent" in ge && r(11, V = ge.translucent), "border" in ge && r(12, oe = ge.border), "autoscroll" in ge && r(23, pe = ge.autoscroll), "$$scope" in ge && r(28, a = ge.$$scope);
  }, e.$$.update = () => {
    e.$$.dirty[0] & /*eta, old_eta, timer_start, eta_from_start*/
    218103809 && (c === null && r(0, c = Ze), c != null && Ze !== c && (r(27, X = (performance.now() - Qe) / 1e3 + c), r(19, ke = X.toFixed(1)), r(26, Ze = c))), e.$$.dirty[0] & /*eta_from_start, timer_diff*/
    167772160 && r(17, Te = X === null || X <= 0 || !Ve ? null : Math.min(Ve / X, 1)), e.$$.dirty[0] & /*progress*/
    128 && F != null && r(18, re = !1), e.$$.dirty[0] & /*progress, progress_level, progress_bar, last_progress_level*/
    114816 && (F != null ? r(14, Re = F.map((ge) => {
      if (ge.index != null && ge.length != null)
        return ge.index / ge.length;
      if (ge.progress != null)
        return ge.progress;
    })) : r(14, Re = null), Re ? (r(15, Y = Re[Re.length - 1]), ce && (Y === 0 ? r(16, ce.style.transition = "0", ce) : r(16, ce.style.transition = "150ms", ce))) : r(15, Y = void 0)), e.$$.dirty[0] & /*status*/
    16 && (b === "pending" ? be() : we()), e.$$.dirty[0] & /*el, scroll_to_output, status, autoscroll*/
    10493968 && se && A && (b === "pending" || b === "complete") && b3(se, pe), e.$$.dirty[0] & /*status, message*/
    4194320, e.$$.dirty[0] & /*timer_diff*/
    33554432 && r(20, n = Ve.toFixed(1));
  }, [
    c,
    o,
    f,
    m,
    b,
    k,
    N,
    F,
    q,
    B,
    $,
    V,
    oe,
    se,
    Re,
    Y,
    ce,
    Te,
    re,
    ke,
    n,
    A,
    M,
    pe,
    Qe,
    Ve,
    Ze,
    X,
    a,
    i,
    ae,
    Ge
  ];
}
class v3 extends Wp {
  constructor(t) {
    super(), Jp(
      this,
      t,
      E3,
      g3,
      t3,
      {
        i18n: 1,
        eta: 0,
        queue_position: 2,
        queue_size: 3,
        status: 4,
        scroll_to_output: 21,
        timer: 5,
        show_progress: 6,
        message: 22,
        progress: 7,
        variant: 8,
        loading_text: 9,
        absolute: 10,
        translucent: 11,
        border: 12,
        autoscroll: 23
      },
      null,
      [-1, -1]
    );
  }
}
const _3 = "npm2url/dist/index.cjs", T3 = {
  jsdelivr: (e) => `https://cdn.jsdelivr.net/npm/${e}`,
  unpkg: (e) => `https://unpkg.com/${e}`
};
async function A3(e, t) {
  const r = await fetch(e, {
    signal: t
  });
  if (!r.ok)
    throw r;
  await r.text();
}
class x3 {
  constructor() {
    this.providers = { ...T3 }, this.provider = "jsdelivr";
  }
  /**
   * Get the fastest provider name.
   * If none of the providers returns a valid response within `timeout`, an error will be thrown.
   */
  async getFastestProvider(t = 5e3, r = _3) {
    const n = new AbortController();
    let i = 0;
    try {
      return await new Promise((a, o) => {
        Promise.all(
          Object.entries(this.providers).map(async ([c, f]) => {
            try {
              await A3(f(r), n.signal), a(c);
            } catch {
            }
          })
        ).then(() => o(new Error("All providers failed"))), i = setTimeout(o, t, new Error("Timed out"));
      });
    } finally {
      n.abort(), clearTimeout(i);
    }
  }
  /**
   * Set the current provider to the fastest provider found by `getFastestProvider`.
   */
  async findFastestProvider(t, r) {
    return this.provider = await this.getFastestProvider(t, r), this.provider;
  }
  setProvider(t, r) {
    r ? this.providers[t] = r : delete this.providers[t];
  }
  getFullUrl(t, r = this.provider) {
    if (t.includes("://"))
      return t;
    const n = this.providers[r];
    if (!n)
      throw new Error(`Provider ${r} not found`);
    return n(t);
  }
}
class Pn {
  constructor() {
    this.listeners = [];
  }
  tap(t) {
    return this.listeners.push(t), () => this.revoke(t);
  }
  revoke(t) {
    const r = this.listeners.indexOf(t);
    r >= 0 && this.listeners.splice(r, 1);
  }
  revokeAll() {
    this.listeners.splice(0);
  }
  call(...t) {
    for (const r of this.listeners)
      r(...t);
  }
}
const y3 = Math.random().toString(36).slice(2, 8);
let Vc = 0;
function S3() {
  return Vc += 1, `mm-${y3}-${Vc}`;
}
function S0() {
}
function C0(e, t) {
  const r = (n, i) => t(
    n,
    () => {
      var a;
      return (a = n.children) == null ? void 0 : a.map((o) => r(o, n));
    },
    i
  );
  return r(e);
}
function C3(e, ...t) {
  const r = (e || "").split(" ").filter(Boolean);
  return t.forEach((n) => {
    n && r.indexOf(n) < 0 && r.push(n);
  }), r.join(" ");
}
function Rn(e) {
  if (typeof e == "string") {
    const r = e;
    e = (n) => n.tagName === r;
  }
  const t = e;
  return function() {
    let n = Array.from(this.childNodes);
    return t && (n = n.filter((i) => t(i))), n;
  };
}
function U1(e, t) {
  return (...r) => t(e, ...r);
}
function k3() {
  const e = {};
  return e.promise = new Promise((t, r) => {
    e.resolve = t, e.reject = r;
  }), e;
}
function w3(e) {
  const t = {};
  return function(...n) {
    const i = `${n[0]}`;
    let a = t[i];
    return a || (a = {
      value: e(...n)
    }, t[i] = a), a.value;
  };
}
function N3(e, t) {
  const r = {
    timer: 0
  };
  function n() {
    r.timer && (window.clearTimeout(r.timer), r.timer = 0);
  }
  function i() {
    n(), r.args && (r.result = e(...r.args));
  }
  return function(...o) {
    return n(), r.args = o, r.timer = window.setTimeout(i, t), r.result;
  };
}
/*! @gera2ld/jsx-dom v2.2.2 | ISC License */
const z1 = 1, q1 = 2, I3 = "http://www.w3.org/2000/svg", Ds = "http://www.w3.org/1999/xlink", M3 = {
  show: Ds,
  actuate: Ds,
  href: Ds
}, D3 = (e) => typeof e == "string" || typeof e == "number", R3 = (e) => (e == null ? void 0 : e.vtype) === z1, O3 = (e) => (e == null ? void 0 : e.vtype) === q1;
function L3(e, t, ...r) {
  return t = Object.assign({}, t, {
    children: r.length === 1 ? r[0] : r
  }), B3(e, t);
}
function B3(e, t) {
  let r;
  if (typeof e == "string")
    r = z1;
  else if (typeof e == "function")
    r = q1;
  else
    throw new Error("Invalid VNode type");
  return {
    vtype: r,
    type: e,
    props: t
  };
}
function P3(e) {
  return e.children;
}
const F3 = {
  isSvg: !1
};
function Gc(e, t) {
  Array.isArray(t) || (t = [t]), t = t.filter(Boolean), t.length && e.append(...t);
}
function H3(e, t, r) {
  for (const n in t)
    if (!(n === "key" || n === "children" || n === "ref"))
      if (n === "dangerouslySetInnerHTML")
        e.innerHTML = t[n].__html;
      else if (n === "innerHTML" || n === "textContent" || n === "innerText" || n === "value" && ["textarea", "select"].includes(e.tagName)) {
        const i = t[n];
        i != null && (e[n] = i);
      } else
        n.startsWith("on") ? e[n.toLowerCase()] = t[n] : z3(e, n, t[n], r.isSvg);
}
const U3 = {
  className: "class",
  labelFor: "for"
};
function z3(e, t, r, n) {
  if (t = U3[t] || t, r === !0)
    e.setAttribute(t, "");
  else if (r === !1)
    e.removeAttribute(t);
  else {
    const i = n ? M3[t] : void 0;
    i !== void 0 ? e.setAttributeNS(i, t, r) : e.setAttribute(t, r);
  }
}
function q3(e) {
  return e.reduce((t, r) => t.concat(r), []);
}
function cu(e, t) {
  return Array.isArray(e) ? q3(e.map((r) => cu(r, t))) : Xu(e, t);
}
function Xu(e, t = F3) {
  if (e == null || typeof e == "boolean")
    return null;
  if (e instanceof Node)
    return e;
  if (O3(e)) {
    const {
      type: r,
      props: n
    } = e;
    if (r === P3) {
      const a = document.createDocumentFragment();
      if (n.children) {
        const o = cu(n.children, t);
        Gc(a, o);
      }
      return a;
    }
    const i = r(n);
    return Xu(i, t);
  }
  if (D3(e))
    return document.createTextNode(`${e}`);
  if (R3(e)) {
    let r;
    const {
      type: n,
      props: i
    } = e;
    if (!t.isSvg && n === "svg" && (t = Object.assign({}, t, {
      isSvg: !0
    })), t.isSvg ? r = document.createElementNS(I3, n) : r = document.createElement(n), H3(r, i, t), i.children) {
      let o = t;
      t.isSvg && n === "foreignObject" && (o = Object.assign({}, o, {
        isSvg: !1
      }));
      const c = cu(i.children, o);
      c != null && Gc(r, c);
    }
    const {
      ref: a
    } = i;
    return typeof a == "function" && a(r), r;
  }
  throw new Error("mount: Invalid Vnode!");
}
function Y3(e) {
  return Xu(e);
}
function Y1(...e) {
  return Y3(L3(...e));
}
const V3 = w3((e) => {
  document.head.append(
    Y1("link", {
      rel: "preload",
      as: "script",
      href: e
    })
  );
}), Xc = {};
async function G3(e, t) {
  var r;
  const n = e.type === "script" && ((r = e.data) == null ? void 0 : r.src) || "";
  if (e.loaded || (e.loaded = Xc[n]), !e.loaded) {
    const i = k3();
    if (e.loaded = i.promise, e.type === "script" && (document.head.append(
      Y1("script", {
        ...e.data,
        onLoad: () => i.resolve(),
        onError: i.reject
      })
    ), n ? Xc[n] = e.loaded : i.resolve()), e.type === "iife") {
      const { fn: a, getParams: o } = e.data;
      a(...(o == null ? void 0 : o(t)) || []), i.resolve();
    }
  }
  await e.loaded;
}
async function V1(e, t) {
  e.forEach((r) => {
    var n;
    r.type === "script" && ((n = r.data) != null && n.src) && V3(r.data.src);
  }), t = {
    getMarkmap: () => window.markmap,
    ...t
  };
  for (const r of e)
    await G3(r, t);
}
function Wu(e) {
  return {
    type: "script",
    data: {
      src: e
    }
  };
}
function G1(e) {
  return {
    type: "stylesheet",
    data: {
      href: e
    }
  };
}
class Wc extends Map {
  constructor(t, r = j3) {
    if (super(), Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: r } }), t != null)
      for (const [n, i] of t)
        this.set(n, i);
  }
  get(t) {
    return super.get(jc(this, t));
  }
  has(t) {
    return super.has(jc(this, t));
  }
  set(t, r) {
    return super.set(X3(this, t), r);
  }
  delete(t) {
    return super.delete(W3(this, t));
  }
}
function jc({ _intern: e, _key: t }, r) {
  const n = t(r);
  return e.has(n) ? e.get(n) : r;
}
function X3({ _intern: e, _key: t }, r) {
  const n = t(r);
  return e.has(n) ? e.get(n) : (e.set(n, r), r);
}
function W3({ _intern: e, _key: t }, r) {
  const n = t(r);
  return e.has(n) && (r = e.get(n), e.delete(n)), r;
}
function j3(e) {
  return e !== null && typeof e == "object" ? e.valueOf() : e;
}
function Kc(e, t) {
  let r;
  if (t === void 0)
    for (const n of e)
      n != null && (r < n || r === void 0 && n >= n) && (r = n);
  else {
    let n = -1;
    for (let i of e)
      (i = t(i, ++n, e)) != null && (r < i || r === void 0 && i >= i) && (r = i);
  }
  return r;
}
function $c(e, t) {
  let r;
  if (t === void 0)
    for (const n of e)
      n != null && (r > n || r === void 0 && n >= n) && (r = n);
  else {
    let n = -1;
    for (let i of e)
      (i = t(i, ++n, e)) != null && (r > i || r === void 0 && i >= i) && (r = i);
  }
  return r;
}
function K3(e, t) {
  let r, n = -1, i = -1;
  if (t === void 0)
    for (const a of e)
      ++i, a != null && (r > a || r === void 0 && a >= a) && (r = a, n = i);
  else
    for (let a of e)
      (a = t(a, ++i, e)) != null && (r > a || r === void 0 && a >= a) && (r = a, n = i);
  return n;
}
var $3 = { value: () => {
} };
function ju() {
  for (var e = 0, t = arguments.length, r = {}, n; e < t; ++e) {
    if (!(n = arguments[e] + "") || n in r || /[\s.]/.test(n))
      throw new Error("illegal type: " + n);
    r[n] = [];
  }
  return new Gi(r);
}
function Gi(e) {
  this._ = e;
}
function Q3(e, t) {
  return e.trim().split(/^|\s+/).map(function(r) {
    var n = "", i = r.indexOf(".");
    if (i >= 0 && (n = r.slice(i + 1), r = r.slice(0, i)), r && !t.hasOwnProperty(r))
      throw new Error("unknown type: " + r);
    return { type: r, name: n };
  });
}
Gi.prototype = ju.prototype = {
  constructor: Gi,
  on: function(e, t) {
    var r = this._, n = Q3(e + "", r), i, a = -1, o = n.length;
    if (arguments.length < 2) {
      for (; ++a < o; )
        if ((i = (e = n[a]).type) && (i = Z3(r[i], e.name)))
          return i;
      return;
    }
    if (t != null && typeof t != "function")
      throw new Error("invalid callback: " + t);
    for (; ++a < o; )
      if (i = (e = n[a]).type)
        r[i] = Qc(r[i], e.name, t);
      else if (t == null)
        for (i in r)
          r[i] = Qc(r[i], e.name, null);
    return this;
  },
  copy: function() {
    var e = {}, t = this._;
    for (var r in t)
      e[r] = t[r].slice();
    return new Gi(e);
  },
  call: function(e, t) {
    if ((i = arguments.length - 2) > 0)
      for (var r = new Array(i), n = 0, i, a; n < i; ++n)
        r[n] = arguments[n + 2];
    if (!this._.hasOwnProperty(e))
      throw new Error("unknown type: " + e);
    for (a = this._[e], n = 0, i = a.length; n < i; ++n)
      a[n].value.apply(t, r);
  },
  apply: function(e, t, r) {
    if (!this._.hasOwnProperty(e))
      throw new Error("unknown type: " + e);
    for (var n = this._[e], i = 0, a = n.length; i < a; ++i)
      n[i].value.apply(t, r);
  }
};
function Z3(e, t) {
  for (var r = 0, n = e.length, i; r < n; ++r)
    if ((i = e[r]).name === t)
      return i.value;
}
function Qc(e, t, r) {
  for (var n = 0, i = e.length; n < i; ++n)
    if (e[n].name === t) {
      e[n] = $3, e = e.slice(0, n).concat(e.slice(n + 1));
      break;
    }
  return r != null && e.push({ name: t, value: r }), e;
}
var hu = "http://www.w3.org/1999/xhtml";
const Zc = {
  svg: "http://www.w3.org/2000/svg",
  xhtml: hu,
  xlink: "http://www.w3.org/1999/xlink",
  xml: "http://www.w3.org/XML/1998/namespace",
  xmlns: "http://www.w3.org/2000/xmlns/"
};
function Aa(e) {
  var t = e += "", r = t.indexOf(":");
  return r >= 0 && (t = e.slice(0, r)) !== "xmlns" && (e = e.slice(r + 1)), Zc.hasOwnProperty(t) ? { space: Zc[t], local: e } : e;
}
function J3(e) {
  return function() {
    var t = this.ownerDocument, r = this.namespaceURI;
    return r === hu && t.documentElement.namespaceURI === hu ? t.createElement(e) : t.createElementNS(r, e);
  };
}
function e6(e) {
  return function() {
    return this.ownerDocument.createElementNS(e.space, e.local);
  };
}
function X1(e) {
  var t = Aa(e);
  return (t.local ? e6 : J3)(t);
}
function t6() {
}
function Ku(e) {
  return e == null ? t6 : function() {
    return this.querySelector(e);
  };
}
function r6(e) {
  typeof e != "function" && (e = Ku(e));
  for (var t = this._groups, r = t.length, n = new Array(r), i = 0; i < r; ++i)
    for (var a = t[i], o = a.length, c = n[i] = new Array(o), f, m, b = 0; b < o; ++b)
      (f = a[b]) && (m = e.call(f, f.__data__, b, a)) && ("__data__" in f && (m.__data__ = f.__data__), c[b] = m);
  return new qt(n, this._parents);
}
function n6(e) {
  return e == null ? [] : Array.isArray(e) ? e : Array.from(e);
}
function i6() {
  return [];
}
function W1(e) {
  return e == null ? i6 : function() {
    return this.querySelectorAll(e);
  };
}
function a6(e) {
  return function() {
    return n6(e.apply(this, arguments));
  };
}
function s6(e) {
  typeof e == "function" ? e = a6(e) : e = W1(e);
  for (var t = this._groups, r = t.length, n = [], i = [], a = 0; a < r; ++a)
    for (var o = t[a], c = o.length, f, m = 0; m < c; ++m)
      (f = o[m]) && (n.push(e.call(f, f.__data__, m, o)), i.push(f));
  return new qt(n, i);
}
function j1(e) {
  return function() {
    return this.matches(e);
  };
}
function K1(e) {
  return function(t) {
    return t.matches(e);
  };
}
var u6 = Array.prototype.find;
function o6(e) {
  return function() {
    return u6.call(this.children, e);
  };
}
function l6() {
  return this.firstElementChild;
}
function c6(e) {
  return this.select(e == null ? l6 : o6(typeof e == "function" ? e : K1(e)));
}
var h6 = Array.prototype.filter;
function f6() {
  return Array.from(this.children);
}
function d6(e) {
  return function() {
    return h6.call(this.children, e);
  };
}
function m6(e) {
  return this.selectAll(e == null ? f6 : d6(typeof e == "function" ? e : K1(e)));
}
function p6(e) {
  typeof e != "function" && (e = j1(e));
  for (var t = this._groups, r = t.length, n = new Array(r), i = 0; i < r; ++i)
    for (var a = t[i], o = a.length, c = n[i] = [], f, m = 0; m < o; ++m)
      (f = a[m]) && e.call(f, f.__data__, m, a) && c.push(f);
  return new qt(n, this._parents);
}
function $1(e) {
  return new Array(e.length);
}
function g6() {
  return new qt(this._enter || this._groups.map($1), this._parents);
}
function Ji(e, t) {
  this.ownerDocument = e.ownerDocument, this.namespaceURI = e.namespaceURI, this._next = null, this._parent = e, this.__data__ = t;
}
Ji.prototype = {
  constructor: Ji,
  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 b6(e) {
  return function() {
    return e;
  };
}
function E6(e, t, r, n, i, a) {
  for (var o = 0, c, f = t.length, m = a.length; o < m; ++o)
    (c = t[o]) ? (c.__data__ = a[o], n[o] = c) : r[o] = new Ji(e, a[o]);
  for (; o < f; ++o)
    (c = t[o]) && (i[o] = c);
}
function v6(e, t, r, n, i, a, o) {
  var c, f, m = /* @__PURE__ */ new Map(), b = t.length, A = a.length, k = new Array(b), N;
  for (c = 0; c < b; ++c)
    (f = t[c]) && (k[c] = N = o.call(f, f.__data__, c, t) + "", m.has(N) ? i[c] = f : m.set(N, f));
  for (c = 0; c < A; ++c)
    N = o.call(e, a[c], c, a) + "", (f = m.get(N)) ? (n[c] = f, f.__data__ = a[c], m.delete(N)) : r[c] = new Ji(e, a[c]);
  for (c = 0; c < b; ++c)
    (f = t[c]) && m.get(k[c]) === f && (i[c] = f);
}
function _6(e) {
  return e.__data__;
}
function T6(e, t) {
  if (!arguments.length)
    return Array.from(this, _6);
  var r = t ? v6 : E6, n = this._parents, i = this._groups;
  typeof e != "function" && (e = b6(e));
  for (var a = i.length, o = new Array(a), c = new Array(a), f = new Array(a), m = 0; m < a; ++m) {
    var b = n[m], A = i[m], k = A.length, N = A6(e.call(b, b && b.__data__, m, n)), M = N.length, F = c[m] = new Array(M), q = o[m] = new Array(M), B = f[m] = new Array(k);
    r(b, A, F, q, B, N, t);
    for (var $ = 0, V = 0, oe, pe; $ < M; ++$)
      if (oe = F[$]) {
        for ($ >= V && (V = $ + 1); !(pe = q[V]) && ++V < M; )
          ;
        oe._next = pe || null;
      }
  }
  return o = new qt(o, n), o._enter = c, o._exit = f, o;
}
function A6(e) {
  return typeof e == "object" && "length" in e ? e : Array.from(e);
}
function x6() {
  return new qt(this._exit || this._groups.map($1), this._parents);
}
function y6(e, t, r) {
  var n = this.enter(), i = this, a = this.exit();
  return typeof e == "function" ? (n = e(n), n && (n = n.selection())) : n = n.append(e + ""), t != null && (i = t(i), i && (i = i.selection())), r == null ? a.remove() : r(a), n && i ? n.merge(i).order() : i;
}
function S6(e) {
  for (var t = e.selection ? e.selection() : e, r = this._groups, n = t._groups, i = r.length, a = n.length, o = Math.min(i, a), c = new Array(i), f = 0; f < o; ++f)
    for (var m = r[f], b = n[f], A = m.length, k = c[f] = new Array(A), N, M = 0; M < A; ++M)
      (N = m[M] || b[M]) && (k[M] = N);
  for (; f < i; ++f)
    c[f] = r[f];
  return new qt(c, this._parents);
}
function C6() {
  for (var e = this._groups, t = -1, r = e.length; ++t < r; )
    for (var n = e[t], i = n.length - 1, a = n[i], o; --i >= 0; )
      (o = n[i]) && (a && o.compareDocumentPosition(a) ^ 4 && a.parentNode.insertBefore(o, a), a = o);
  return this;
}
function k6(e) {
  e || (e = w6);
  function t(A, k) {
    return A && k ? e(A.__data__, k.__data__) : !A - !k;
  }
  for (var r = this._groups, n = r.length, i = new Array(n), a = 0; a < n; ++a) {
    for (var o = r[a], c = o.length, f = i[a] = new Array(c), m, b = 0; b < c; ++b)
      (m = o[b]) && (f[b] = m);
    f.sort(t);
  }
  return new qt(i, this._parents).order();
}
function w6(e, t) {
  return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
}
function N6() {
  var e = arguments[0];
  return arguments[0] = this, e.apply(null, arguments), this;
}
function I6() {
  return Array.from(this);
}
function M6() {
  for (var e = this._groups, t = 0, r = e.length; t < r; ++t)
    for (var n = e[t], i = 0, a = n.length; i < a; ++i) {
      var o = n[i];
      if (o)
        return o;
    }
  return null;
}
function D6() {
  let e = 0;
  for (const t of this)
    ++e;
  return e;
}
function R6() {
  return !this.node();
}
function O6(e) {
  for (var t = this._groups, r = 0, n = t.length; r < n; ++r)
    for (var i = t[r], a = 0, o = i.length, c; a < o; ++a)
      (c = i[a]) && e.call(c, c.__data__, a, i);
  return this;
}
function L6(e) {
  return function() {
    this.removeAttribute(e);
  };
}
function B6(e) {
  return function() {
    this.removeAttributeNS(e.space, e.local);
  };
}
function P6(e, t) {
  return function() {
    this.setAttribute(e, t);
  };
}
function F6(e, t) {
  return function() {
    this.setAttributeNS(e.space, e.local, t);
  };
}
function H6(e, t) {
  return function() {
    var r = t.apply(this, arguments);
    r == null ? this.removeAttribute(e) : this.setAttribute(e, r);
  };
}
function U6(e, t) {
  return function() {
    var r = t.apply(this, arguments);
    r == null ? this.removeAttributeNS(e.space, e.local) : this.setAttributeNS(e.space, e.local, r);
  };
}
function z6(e, t) {
  var r = Aa(e);
  if (arguments.length < 2) {
    var n = this.node();
    return r.local ? n.getAttributeNS(r.space, r.local) : n.getAttribute(r);
  }
  return this.each((t == null ? r.local ? B6 : L6 : typeof t == "function" ? r.local ? U6 : H6 : r.local ? F6 : P6)(r, t));
}
function Q1(e) {
  return e.ownerDocument && e.ownerDocument.defaultView || e.document && e || e.defaultView;
}
function q6(e) {
  return function() {
    this.style.removeProperty(e);
  };
}
function Y6(e, t, r) {
  return function() {
    this.style.setProperty(e, t, r);
  };
}
function V6(e, t, r) {
  return function() {
    var n = t.apply(this, arguments);
    n == null ? this.style.removeProperty(e) : this.style.setProperty(e, n, r);
  };
}
function G6(e, t, r) {
  return arguments.length > 1 ? this.each((t == null ? q6 : typeof t == "function" ? V6 : Y6)(e, t, r ?? "")) : $n(this.node(), e);
}
function $n(e, t) {
  return e.style.getPropertyValue(t) || Q1(e).getComputedStyle(e, null).getPropertyValue(t);
}
function X6(e) {
  return function() {
    delete this[e];
  };
}
function W6(e, t) {
  return function() {
    this[e] = t;
  };
}
function j6(e, t) {
  return function() {
    var r = t.apply(this, arguments);
    r == null ? delete this[e] : this[e] = r;
  };
}
function K6(e, t) {
  return arguments.length > 1 ? this.each((t == null ? X6 : typeof t == "function" ? j6 : W6)(e, t)) : this.node()[e];
}
function Z1(e) {
  return e.trim().split(/^|\s+/);
}
function $u(e) {
  return e.classList || new J1(e);
}
function J1(e) {
  this._node = e, this._names = Z1(e.getAttribute("class") || "");
}
J1.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 ef(e, t) {
  for (var r = $u(e), n = -1, i = t.length; ++n < i; )
    r.add(t[n]);
}
function tf(e, t) {
  for (var r = $u(e), n = -1, i = t.length; ++n < i; )
    r.remove(t[n]);
}
function $6(e) {
  return function() {
    ef(this, e);
  };
}
function Q6(e) {
  return function() {
    tf(this, e);
  };
}
function Z6(e, t) {
  return function() {
    (t.apply(this, arguments) ? ef : tf)(this, e);
  };
}
function J6(e, t) {
  var r = Z1(e + "");
  if (arguments.length < 2) {
    for (var n = $u(this.node()), i = -1, a = r.length; ++i < a; )
      if (!n.contains(r[i]))
        return !1;
    return !0;
  }
  return this.each((typeof t == "function" ? Z6 : t ? $6 : Q6)(r, t));
}
function e5() {
  this.textContent = "";
}
function t5(e) {
  return function() {
    this.textContent = e;
  };
}
function r5(e) {
  return function() {
    var t = e.apply(this, arguments);
    this.textContent = t ?? "";
  };
}
function n5(e) {
  return arguments.length ? this.each(e == null ? e5 : (typeof e == "function" ? r5 : t5)(e)) : this.node().textContent;
}
function i5() {
  this.innerHTML = "";
}
function a5(e) {
  return function() {
    this.innerHTML = e;
  };
}
function s5(e) {
  return function() {
    var t = e.apply(this, arguments);
    this.innerHTML = t ?? "";
  };
}
function u5(e) {
  return arguments.length ? this.each(e == null ? i5 : (typeof e == "function" ? s5 : a5)(e)) : this.node().innerHTML;
}
function o5() {
  this.nextSibling && this.parentNode.appendChild(this);
}
function l5() {
  return this.each(o5);
}
function c5() {
  this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);
}
function h5() {
  return this.each(c5);
}
function f5(e) {
  var t = typeof e == "function" ? e : X1(e);
  return this.select(function() {
    return this.appendChild(t.apply(this, arguments));
  });
}
function d5() {
  return null;
}
function m5(e, t) {
  var r = typeof e == "function" ? e : X1(e), n = t == null ? d5 : typeof t == "function" ? t : Ku(t);
  return this.select(function() {
    return this.insertBefore(r.apply(this, arguments), n.apply(this, arguments) || null);
  });
}
function p5() {
  var e = this.parentNode;
  e && e.removeChild(this);
}
function g5() {
  return this.each(p5);
}
function b5() {
  var e = this.cloneNode(!1), t = this.parentNode;
  return t ? t.insertBefore(e, this.nextSibling) : e;
}
function E5() {
  var e = this.cloneNode(!0), t = this.parentNode;
  return t ? t.insertBefore(e, this.nextSibling) : e;
}
function v5(e) {
  return this.select(e ? E5 : b5);
}
function _5(e) {
  return arguments.length ? this.property("__data__", e) : this.node().__data__;
}
function T5(e) {
  return function(t) {
    e.call(this, t, this.__data__);
  };
}
function A5(e) {
  return e.trim().split(/^|\s+/).map(function(t) {
    var r = "", n = t.indexOf(".");
    return n >= 0 && (r = t.slice(n + 1), t = t.slice(0, n)), { type: t, name: r };
  });
}
function x5(e) {
  return function() {
    var t = this.__on;
    if (t) {
      for (var r = 0, n = -1, i = t.length, a; r < i; ++r)
        a = t[r], (!e.type || a.type === e.type) && a.name === e.name ? this.removeEventListener(a.type, a.listener, a.options) : t[++n] = a;
      ++n ? t.length = n : delete this.__on;
    }
  };
}
function y5(e, t, r) {
  return function() {
    var n = this.__on, i, a = T5(t);
    if (n) {
      for (var o = 0, c = n.length; o < c; ++o)
        if ((i = n[o]).type === e.type && i.name === e.name) {
          this.removeEventListener(i.type, i.listener, i.options), this.addEventListener(i.type, i.listener = a, i.options = r), i.value = t;
          return;
        }
    }
    this.addEventListener(e.type, a, r), i = { type: e.type, name: e.name, value: t, listener: a, options: r }, n ? n.push(i) : this.__on = [i];
  };
}
function S5(e, t, r) {
  var n = A5(e + ""), i, a = n.length, o;
  if (arguments.length < 2) {
    var c = this.node().__on;
    if (c) {
      for (var f = 0, m = c.length, b; f < m; ++f)
        for (i = 0, b = c[f]; i < a; ++i)
          if ((o = n[i]).type === b.type && o.name === b.name)
            return b.value;
    }
    return;
  }
  for (c = t ? y5 : x5, i = 0; i < a; ++i)
    this.each(c(n[i], t, r));
  return this;
}
function rf(e, t, r) {
  var n = Q1(e), i = n.CustomEvent;
  typeof i == "function" ? i = new i(t, r) : (i = n.document.createEvent("Event"), r ? (i.initEvent(t, r.bubbles, r.cancelable), i.detail = r.detail) : i.initEvent(t, !1, !1)), e.dispatchEvent(i);
}
function C5(e, t) {
  return function() {
    return rf(this, e, t);
  };
}
function k5(e, t) {
  return function() {
    return rf(this, e, t.apply(this, arguments));
  };
}
function w5(e, t) {
  return this.each((typeof t == "function" ? k5 : C5)(e, t));
}
function* N5() {
  for (var e = this._groups, t = 0, r = e.length; t < r; ++t)
    for (var n = e[t], i = 0, a = n.length, o; i < a; ++i)
      (o = n[i]) && (yield o);
}
var nf = [null];
function qt(e, t) {
  this._groups = e, this._parents = t;
}
function K0() {
  return new qt([[document.documentElement]], nf);
}
function I5() {
  return this;
}
qt.prototype = K0.prototype = {
  constructor: qt,
  select: r6,
  selectAll: s6,
  selectChild: c6,
  selectChildren: m6,
  filter: p6,
  data: T6,
  enter: g6,
  exit: x6,
  join: y6,
  merge: S6,
  selection: I5,
  order: C6,
  sort: k6,
  call: N6,
  nodes: I6,
  node: M6,
  size: D6,
  empty: R6,
  each: O6,
  attr: z6,
  style: G6,
  property: K6,
  classed: J6,
  text: n5,
  html: u5,
  raise: l5,
  lower: h5,
  append: f5,
  insert: m5,
  remove: g5,
  clone: v5,
  datum: _5,
  on: S5,
  dispatch: w5,
  [Symbol.iterator]: N5
};
function Gr(e) {
  return typeof e == "string" ? new qt([[document.querySelector(e)]], [document.documentElement]) : new qt([[e]], nf);
}
function M5(e) {
  let t;
  for (; t = e.sourceEvent; )
    e = t;
  return e;
}
function nn(e, t) {
  if (e = M5(e), t === void 0 && (t = e.currentTarget), t) {
    var r = t.ownerSVGElement || t;
    if (r.createSVGPoint) {
      var n = r.createSVGPoint();
      return n.x = e.clientX, n.y = e.clientY, n = n.matrixTransform(t.getScreenCTM().inverse()), [n.x, n.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];
}
const fu = { capture: !0, passive: !1 };
function du(e) {
  e.preventDefault(), e.stopImmediatePropagation();
}
function D5(e) {
  var t = e.document.documentElement, r = Gr(e).on("dragstart.drag", du, fu);
  "onselectstart" in t ? r.on("selectstart.drag", du, fu) : (t.__noselect = t.style.MozUserSelect, t.style.MozUserSelect = "none");
}
function R5(e, t) {
  var r = e.document.documentElement, n = Gr(e).on("dragstart.drag", null);
  t && (n.on("click.drag", du, fu), setTimeout(function() {
    n.on("click.drag", null);
  }, 0)), "onselectstart" in r ? n.on("selectstart.drag", null) : (r.style.MozUserSelect = r.__noselect, delete r.__noselect);
}
function Qu(e, t, r) {
  e.prototype = t.prototype = r, r.constructor = e;
}
function af(e, t) {
  var r = Object.create(e.prototype);
  for (var n in t)
    r[n] = t[n];
  return r;
}
function $0() {
}
var L0 = 0.7, ea = 1 / L0, Gn = "\\s*([+-]?\\d+)\\s*", B0 = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", mr = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", O5 = /^#([0-9a-f]{3,8})$/, L5 = new RegExp(`^rgb\\(${Gn},${Gn},${Gn}\\)$`), B5 = new RegExp(`^rgb\\(${mr},${mr},${mr}\\)$`), P5 = new RegExp(`^rgba\\(${Gn},${Gn},${Gn},${B0}\\)$`), F5 = new RegExp(`^rgba\\(${mr},${mr},${mr},${B0}\\)$`), H5 = new RegExp(`^hsl\\(${B0},${mr},${mr}\\)$`), U5 = new RegExp(`^hsla\\(${B0},${mr},${mr},${B0}\\)$`), Jc = {
  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
};
Qu($0, P0, {
  copy(e) {
    return Object.assign(new this.constructor(), this, e);
  },
  displayable() {
    return this.rgb().displayable();
  },
  hex: eh,
  // Deprecated! Use color.formatHex.
  formatHex: eh,
  formatHex8: z5,
  formatHsl: q5,
  formatRgb: th,
  toString: th
});
function eh() {
  return this.rgb().formatHex();
}
function z5() {
  return this.rgb().formatHex8();
}
function q5() {
  return sf(this).formatHsl();
}
function th() {
  return this.rgb().formatRgb();
}
function P0(e) {
  var t, r;
  return e = (e + "").trim().toLowerCase(), (t = O5.exec(e)) ? (r = t[1].length, t = parseInt(t[1], 16), r === 6 ? rh(t) : r === 3 ? new Ot(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : r === 8 ? ki(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : r === 4 ? ki(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 = L5.exec(e)) ? new Ot(t[1], t[2], t[3], 1) : (t = B5.exec(e)) ? new Ot(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = P5.exec(e)) ? ki(t[1], t[2], t[3], t[4]) : (t = F5.exec(e)) ? ki(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = H5.exec(e)) ? ah(t[1], t[2] / 100, t[3] / 100, 1) : (t = U5.exec(e)) ? ah(t[1], t[2] / 100, t[3] / 100, t[4]) : Jc.hasOwnProperty(e) ? rh(Jc[e]) : e === "transparent" ? new Ot(NaN, NaN, NaN, 0) : null;
}
function rh(e) {
  return new Ot(e >> 16 & 255, e >> 8 & 255, e & 255, 1);
}
function ki(e, t, r, n) {
  return n <= 0 && (e = t = r = NaN), new Ot(e, t, r, n);
}
function Y5(e) {
  return e instanceof $0 || (e = P0(e)), e ? (e = e.rgb(), new Ot(e.r, e.g, e.b, e.opacity)) : new Ot();
}
function mu(e, t, r, n) {
  return arguments.length === 1 ? Y5(e) : new Ot(e, t, r, n ?? 1);
}
function Ot(e, t, r, n) {
  this.r = +e, this.g = +t, this.b = +r, this.opacity = +n;
}
Qu(Ot, mu, af($0, {
  brighter(e) {
    return e = e == null ? ea : Math.pow(ea, e), new Ot(this.r * e, this.g * e, this.b * e, this.opacity);
  },
  darker(e) {
    return e = e == null ? L0 : Math.pow(L0, e), new Ot(this.r * e, this.g * e, this.b * e, this.opacity);
  },
  rgb() {
    return this;
  },
  clamp() {
    return new Ot(fn(this.r), fn(this.g), fn(this.b), ta(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: nh,
  // Deprecated! Use color.formatHex.
  formatHex: nh,
  formatHex8: V5,
  formatRgb: ih,
  toString: ih
}));
function nh() {
  return `#${hn(this.r)}${hn(this.g)}${hn(this.b)}`;
}
function V5() {
  return `#${hn(this.r)}${hn(this.g)}${hn(this.b)}${hn((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
}
function ih() {
  const e = ta(this.opacity);
  return `${e === 1 ? "rgb(" : "rgba("}${fn(this.r)}, ${fn(this.g)}, ${fn(this.b)}${e === 1 ? ")" : `, ${e})`}`;
}
function ta(e) {
  return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));
}
function fn(e) {
  return Math.max(0, Math.min(255, Math.round(e) || 0));
}
function hn(e) {
  return e = fn(e), (e < 16 ? "0" : "") + e.toString(16);
}
function ah(e, t, r, n) {
  return n <= 0 ? e = t = r = NaN : r <= 0 || r >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new ir(e, t, r, n);
}
function sf(e) {
  if (e instanceof ir)
    return new ir(e.h, e.s, e.l, e.opacity);
  if (e instanceof $0 || (e = P0(e)), !e)
    return new ir();
  if (e instanceof ir)
    return e;
  e = e.rgb();
  var t = e.r / 255, r = e.g / 255, n = e.b / 255, i = Math.min(t, r, n), a = Math.max(t, r, n), o = NaN, c = a - i, f = (a + i) / 2;
  return c ? (t === a ? o = (r - n) / c + (r < n) * 6 : r === a ? o = (n - t) / c + 2 : o = (t - r) / c + 4, c /= f < 0.5 ? a + i : 2 - a - i, o *= 60) : c = f > 0 && f < 1 ? 0 : o, new ir(o, c, f, e.opacity);
}
function G5(e, t, r, n) {
  return arguments.length === 1 ? sf(e) : new ir(e, t, r, n ?? 1);
}
function ir(e, t, r, n) {
  this.h = +e, this.s = +t, this.l = +r, this.opacity = +n;
}
Qu(ir, G5, af($0, {
  brighter(e) {
    return e = e == null ? ea : Math.pow(ea, e), new ir(this.h, this.s, this.l * e, this.opacity);
  },
  darker(e) {
    return e = e == null ? L0 : Math.pow(L0, e), new ir(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, r = this.l, n = r + (r < 0.5 ? r : 1 - r) * t, i = 2 * r - n;
    return new Ot(
      Rs(e >= 240 ? e - 240 : e + 120, i, n),
      Rs(e, i, n),
      Rs(e < 120 ? e + 240 : e - 120, i, n),
      this.opacity
    );
  },
  clamp() {
    return new ir(sh(this.h), wi(this.s), wi(this.l), ta(this.opacity));
  },
  displayable() {
    return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
  },
  formatHsl() {
    const e = ta(this.opacity);
    return `${e === 1 ? "hsl(" : "hsla("}${sh(this.h)}, ${wi(this.s) * 100}%, ${wi(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`;
  }
}));
function sh(e) {
  return e = (e || 0) % 360, e < 0 ? e + 360 : e;
}
function wi(e) {
  return Math.max(0, Math.min(1, e || 0));
}
function Rs(e, t, r) {
  return (e < 60 ? t + (r - t) * e / 60 : e < 180 ? r : e < 240 ? t + (r - t) * (240 - e) / 60 : t) * 255;
}
const uf = (e) => () => e;
function X5(e, t) {
  return function(r) {
    return e + r * t;
  };
}
function W5(e, t, r) {
  return e = Math.pow(e, r), t = Math.pow(t, r) - e, r = 1 / r, function(n) {
    return Math.pow(e + n * t, r);
  };
}
function j5(e) {
  return (e = +e) == 1 ? of : function(t, r) {
    return r - t ? W5(t, r, e) : uf(isNaN(t) ? r : t);
  };
}
function of(e, t) {
  var r = t - e;
  return r ? X5(e, r) : uf(isNaN(e) ? t : e);
}
const uh = function e(t) {
  var r = j5(t);
  function n(i, a) {
    var o = r((i = mu(i)).r, (a = mu(a)).r), c = r(i.g, a.g), f = r(i.b, a.b), m = of(i.opacity, a.opacity);
    return function(b) {
      return i.r = o(b), i.g = c(b), i.b = f(b), i.opacity = m(b), i + "";
    };
  }
  return n.gamma = e, n;
}(1);
function Vr(e, t) {
  return e = +e, t = +t, function(r) {
    return e * (1 - r) + t * r;
  };
}
var pu = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Os = new RegExp(pu.source, "g");
function K5(e) {
  return function() {
    return e;
  };
}
function $5(e) {
  return function(t) {
    return e(t) + "";
  };
}
function Q5(e, t) {
  var r = pu.lastIndex = Os.lastIndex = 0, n, i, a, o = -1, c = [], f = [];
  for (e = e + "", t = t + ""; (n = pu.exec(e)) && (i = Os.exec(t)); )
    (a = i.index) > r && (a = t.slice(r, a), c[o] ? c[o] += a : c[++o] = a), (n = n[0]) === (i = i[0]) ? c[o] ? c[o] += i : c[++o] = i : (c[++o] = null, f.push({ i: o, x: Vr(n, i) })), r = Os.lastIndex;
  return r < t.length && (a = t.slice(r), c[o] ? c[o] += a : c[++o] = a), c.length < 2 ? f[0] ? $5(f[0].x) : K5(t) : (t = f.length, function(m) {
    for (var b = 0, A; b < t; ++b)
      c[(A = f[b]).i] = A.x(m);
    return c.join("");
  });
}
var oh = 180 / Math.PI, gu = {
  translateX: 0,
  translateY: 0,
  rotate: 0,
  skewX: 0,
  scaleX: 1,
  scaleY: 1
};
function lf(e, t, r, n, i, a) {
  var o, c, f;
  return (o = Math.sqrt(e * e + t * t)) && (e /= o, t /= o), (f = e * r + t * n) && (r -= e * f, n -= t * f), (c = Math.sqrt(r * r + n * n)) && (r /= c, n /= c, f /= c), e * n < t * r && (e = -e, t = -t, f = -f, o = -o), {
    translateX: i,
    translateY: a,
    rotate: Math.atan2(t, e) * oh,
    skewX: Math.atan(f) * oh,
    scaleX: o,
    scaleY: c
  };
}
var Ni;
function Z5(e) {
  const t = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(e + "");
  return t.isIdentity ? gu : lf(t.a, t.b, t.c, t.d, t.e, t.f);
}
function J5(e) {
  return e == null || (Ni || (Ni = document.createElementNS("http://www.w3.org/2000/svg", "g")), Ni.setAttribute("transform", e), !(e = Ni.transform.baseVal.consolidate())) ? gu : (e = e.matrix, lf(e.a, e.b, e.c, e.d, e.e, e.f));
}
function cf(e, t, r, n) {
  function i(m) {
    return m.length ? m.pop() + " " : "";
  }
  function a(m, b, A, k, N, M) {
    if (m !== A || b !== k) {
      var F = N.push("translate(", null, t, null, r);
      M.push({ i: F - 4, x: Vr(m, A) }, { i: F - 2, x: Vr(b, k) });
    } else
      (A || k) && N.push("translate(" + A + t + k + r);
  }
  function o(m, b, A, k) {
    m !== b ? (m - b > 180 ? b += 360 : b - m > 180 && (m += 360), k.push({ i: A.push(i(A) + "rotate(", null, n) - 2, x: Vr(m, b) })) : b && A.push(i(A) + "rotate(" + b + n);
  }
  function c(m, b, A, k) {
    m !== b ? k.push({ i: A.push(i(A) + "skewX(", null, n) - 2, x: Vr(m, b) }) : b && A.push(i(A) + "skewX(" + b + n);
  }
  function f(m, b, A, k, N, M) {
    if (m !== A || b !== k) {
      var F = N.push(i(N) + "scale(", null, ",", null, ")");
      M.push({ i: F - 4, x: Vr(m, A) }, { i: F - 2, x: Vr(b, k) });
    } else
      (A !== 1 || k !== 1) && N.push(i(N) + "scale(" + A + "," + k + ")");
  }
  return function(m, b) {
    var A = [], k = [];
    return m = e(m), b = e(b), a(m.translateX, m.translateY, b.translateX, b.translateY, A, k), o(m.rotate, b.rotate, A, k), c(m.skewX, b.skewX, A, k), f(m.scaleX, m.scaleY, b.scaleX, b.scaleY, A, k), m = b = null, function(N) {
      for (var M = -1, F = k.length, q; ++M < F; )
        A[(q = k[M]).i] = q.x(N);
      return A.join("");
    };
  };
}
var e8 = cf(Z5, "px, ", "px)", "deg)"), t8 = cf(J5, ", ", ")", ")"), r8 = 1e-12;
function lh(e) {
  return ((e = Math.exp(e)) + 1 / e) / 2;
}
function n8(e) {
  return ((e = Math.exp(e)) - 1 / e) / 2;
}
function i8(e) {
  return ((e = Math.exp(2 * e)) - 1) / (e + 1);
}
const a8 = function e(t, r, n) {
  function i(a, o) {
    var c = a[0], f = a[1], m = a[2], b = o[0], A = o[1], k = o[2], N = b - c, M = A - f, F = N * N + M * M, q, B;
    if (F < r8)
      B = Math.log(k / m) / t, q = function(We) {
        return [
          c + We * N,
          f + We * M,
          m * Math.exp(t * We * B)
        ];
      };
    else {
      var $ = Math.sqrt(F), V = (k * k - m * m + n * F) / (2 * m * r * $), oe = (k * k - m * m - n * F) / (2 * k * r * $), pe = Math.log(Math.sqrt(V * V + 1) - V), se = Math.log(Math.sqrt(oe * oe + 1) - oe);
      B = (se - pe) / t, q = function(We) {
        var Qe = We * B, Ve = lh(pe), Ze = m / (r * $) * (Ve * i8(t * Qe + pe) - n8(pe));
        return [
          c + Ze * N,
          f + Ze * M,
          m * Ve / lh(t * Qe + pe)
        ];
      };
    }
    return q.duration = B * 1e3 * t / Math.SQRT2, q;
  }
  return i.rho = function(a) {
    var o = Math.max(1e-3, +a), c = o * o, f = c * c;
    return e(o, c, f);
  }, i;
}(Math.SQRT2, 2, 4);
var Qn = 0, _0 = 0, m0 = 0, hf = 1e3, ra, T0, na = 0, mn = 0, xa = 0, F0 = typeof performance == "object" && performance.now ? performance : Date, ff = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(e) {
  setTimeout(e, 17);
};
function Zu() {
  return mn || (ff(s8), mn = F0.now() + xa);
}
function s8() {
  mn = 0;
}
function ia() {
  this._call = this._time = this._next = null;
}
ia.prototype = df.prototype = {
  constructor: ia,
  restart: function(e, t, r) {
    if (typeof e != "function")
      throw new TypeError("callback is not a function");
    r = (r == null ? Zu() : +r) + (t == null ? 0 : +t), !this._next && T0 !== this && (T0 ? T0._next = this : ra = this, T0 = this), this._call = e, this._time = r, bu();
  },
  stop: function() {
    this._call && (this._call = null, this._time = 1 / 0, bu());
  }
};
function df(e, t, r) {
  var n = new ia();
  return n.restart(e, t, r), n;
}
function u8() {
  Zu(), ++Qn;
  for (var e = ra, t; e; )
    (t = mn - e._time) >= 0 && e._call.call(void 0, t), e = e._next;
  --Qn;
}
function ch() {
  mn = (na = F0.now()) + xa, Qn = _0 = 0;
  try {
    u8();
  } finally {
    Qn = 0, l8(), mn = 0;
  }
}
function o8() {
  var e = F0.now(), t = e - na;
  t > hf && (xa -= t, na = e);
}
function l8() {
  for (var e, t = ra, r, n = 1 / 0; t; )
    t._call ? (n > t._time && (n = t._time), e = t, t = t._next) : (r = t._next, t._next = null, t = e ? e._next = r : ra = r);
  T0 = e, bu(n);
}
function bu(e) {
  if (!Qn) {
    _0 && (_0 = clearTimeout(_0));
    var t = e - mn;
    t > 24 ? (e < 1 / 0 && (_0 = setTimeout(ch, e - F0.now() - xa)), m0 && (m0 = clearInterval(m0))) : (m0 || (na = F0.now(), m0 = setInterval(o8, hf)), Qn = 1, ff(ch));
  }
}
function hh(e, t, r) {
  var n = new ia();
  return t = t == null ? 0 : +t, n.restart((i) => {
    n.stop(), e(i + t);
  }, t, r), n;
}
var c8 = ju("start", "end", "cancel", "interrupt"), h8 = [], mf = 0, fh = 1, Eu = 2, Xi = 3, dh = 4, vu = 5, Wi = 6;
function ya(e, t, r, n, i, a) {
  var o = e.__transition;
  if (!o)
    e.__transition = {};
  else if (r in o)
    return;
  f8(e, r, {
    name: t,
    index: n,
    // For context during callback.
    group: i,
    // For context during callback.
    on: c8,
    tween: h8,
    time: a.time,
    delay: a.delay,
    duration: a.duration,
    ease: a.ease,
    timer: null,
    state: mf
  });
}
function Ju(e, t) {
  var r = ar(e, t);
  if (r.state > mf)
    throw new Error("too late; already scheduled");
  return r;
}
function Er(e, t) {
  var r = ar(e, t);
  if (r.state > Xi)
    throw new Error("too late; already running");
  return r;
}
function ar(e, t) {
  var r = e.__transition;
  if (!r || !(r = r[t]))
    throw new Error("transition not found");
  return r;
}
function f8(e, t, r) {
  var n = e.__transition, i;
  n[t] = r, r.timer = df(a, 0, r.time);
  function a(m) {
    r.state = fh, r.timer.restart(o, r.delay, r.time), r.delay <= m && o(m - r.delay);
  }
  function o(m) {
    var b, A, k, N;
    if (r.state !== fh)
      return f();
    for (b in n)
      if (N = n[b], N.name === r.name) {
        if (N.state === Xi)
          return hh(o);
        N.state === dh ? (N.state = Wi, N.timer.stop(), N.on.call("interrupt", e, e.__data__, N.index, N.group), delete n[b]) : +b < t && (N.state = Wi, N.timer.stop(), N.on.call("cancel", e, e.__data__, N.index, N.group), delete n[b]);
      }
    if (hh(function() {
      r.state === Xi && (r.state = dh, r.timer.restart(c, r.delay, r.time), c(m));
    }), r.state = Eu, r.on.call("start", e, e.__data__, r.index, r.group), r.state === Eu) {
      for (r.state = Xi, i = new Array(k = r.tween.length), b = 0, A = -1; b < k; ++b)
        (N = r.tween[b].value.call(e, e.__data__, r.index, r.group)) && (i[++A] = N);
      i.length = A + 1;
    }
  }
  function c(m) {
    for (var b = m < r.duration ? r.ease.call(null, m / r.duration) : (r.timer.restart(f), r.state = vu, 1), A = -1, k = i.length; ++A < k; )
      i[A].call(e, b);
    r.state === vu && (r.on.call("end", e, e.__data__, r.index, r.group), f());
  }
  function f() {
    r.state = Wi, r.timer.stop(), delete n[t];
    for (var m in n)
      return;
    delete e.__transition;
  }
}
function ji(e, t) {
  var r = e.__transition, n, i, a = !0, o;
  if (r) {
    t = t == null ? null : t + "";
    for (o in r) {
      if ((n = r[o]).name !== t) {
        a = !1;
        continue;
      }
      i = n.state > Eu && n.state < vu, n.state = Wi, n.timer.stop(), n.on.call(i ? "interrupt" : "cancel", e, e.__data__, n.index, n.group), delete r[o];
    }
    a && delete e.__transition;
  }
}
function d8(e) {
  return this.each(function() {
    ji(this, e);
  });
}
function m8(e, t) {
  var r, n;
  return function() {
    var i = Er(this, e), a = i.tween;
    if (a !== r) {
      n = r = a;
      for (var o = 0, c = n.length; o < c; ++o)
        if (n[o].name === t) {
          n = n.slice(), n.splice(o, 1);
          break;
        }
    }
    i.tween = n;
  };
}
function p8(e, t, r) {
  var n, i;
  if (typeof r != "function")
    throw new Error();
  return function() {
    var a = Er(this, e), o = a.tween;
    if (o !== n) {
      i = (n = o).slice();
      for (var c = { name: t, value: r }, f = 0, m = i.length; f < m; ++f)
        if (i[f].name === t) {
          i[f] = c;
          break;
        }
      f === m && i.push(c);
    }
    a.tween = i;
  };
}
function g8(e, t) {
  var r = this._id;
  if (e += "", arguments.length < 2) {
    for (var n = ar(this.node(), r).tween, i = 0, a = n.length, o; i < a; ++i)
      if ((o = n[i]).name === e)
        return o.value;
    return null;
  }
  return this.each((t == null ? m8 : p8)(r, e, t));
}
function eo(e, t, r) {
  var n = e._id;
  return e.each(function() {
    var i = Er(this, n);
    (i.value || (i.value = {}))[t] = r.apply(this, arguments);
  }), function(i) {
    return ar(i, n).value[t];
  };
}
function pf(e, t) {
  var r;
  return (typeof t == "number" ? Vr : t instanceof P0 ? uh : (r = P0(t)) ? (t = r, uh) : Q5)(e, t);
}
function b8(e) {
  return function() {
    this.removeAttribute(e);
  };
}
function E8(e) {
  return function() {
    this.removeAttributeNS(e.space, e.local);
  };
}
function v8(e, t, r) {
  var n, i = r + "", a;
  return function() {
    var o = this.getAttribute(e);
    return o === i ? null : o === n ? a : a = t(n = o, r);
  };
}
function _8(e, t, r) {
  var n, i = r + "", a;
  return function() {
    var o = this.getAttributeNS(e.space, e.local);
    return o === i ? null : o === n ? a : a = t(n = o, r);
  };
}
function T8(e, t, r) {
  var n, i, a;
  return function() {
    var o, c = r(this), f;
    return c == null ? void this.removeAttribute(e) : (o = this.getAttribute(e), f = c + "", o === f ? null : o === n && f === i ? a : (i = f, a = t(n = o, c)));
  };
}
function A8(e, t, r) {
  var n, i, a;
  return function() {
    var o, c = r(this), f;
    return c == null ? void this.removeAttributeNS(e.space, e.local) : (o = this.getAttributeNS(e.space, e.local), f = c + "", o === f ? null : o === n && f === i ? a : (i = f, a = t(n = o, c)));
  };
}
function x8(e, t) {
  var r = Aa(e), n = r === "transform" ? t8 : pf;
  return this.attrTween(e, typeof t == "function" ? (r.local ? A8 : T8)(r, n, eo(this, "attr." + e, t)) : t == null ? (r.local ? E8 : b8)(r) : (r.local ? _8 : v8)(r, n, t));
}
function y8(e, t) {
  return function(r) {
    this.setAttribute(e, t.call(this, r));
  };
}
function S8(e, t) {
  return function(r) {
    this.setAttributeNS(e.space, e.local, t.call(this, r));
  };
}
function C8(e, t) {
  var r, n;
  function i() {
    var a = t.apply(this, arguments);
    return a !== n && (r = (n = a) && S8(e, a)), r;
  }
  return i._value = t, i;
}
function k8(e, t) {
  var r, n;
  function i() {
    var a = t.apply(this, arguments);
    return a !== n && (r = (n = a) && y8(e, a)), r;
  }
  return i._value = t, i;
}
function w8(e, t) {
  var r = "attr." + 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();
  var n = Aa(e);
  return this.tween(r, (n.local ? C8 : k8)(n, t));
}
function N8(e, t) {
  return function() {
    Ju(this, e).delay = +t.apply(this, arguments);
  };
}
function I8(e, t) {
  return t = +t, function() {
    Ju(this, e).delay = t;
  };
}
function M8(e) {
  var t = this._id;
  return arguments.length ? this.each((typeof e == "function" ? N8 : I8)(t, e)) : ar(this.node(), t).delay;
}
function D8(e, t) {
  return function() {
    Er(this, e).duration = +t.apply(this, arguments);
  };
}
function R8(e, t) {
  return t = +t, function() {
    Er(this, e).duration = t;
  };
}
function O8(e) {
  var t = this._id;
  return arguments.length ? this.each((typeof e == "function" ? D8 : R8)(t, e)) : ar(this.node(), t).duration;
}
function L8(e, t) {
  if (typeof t != "function")
    throw new Error();
  return function() {
    Er(this, e).ease = t;
  };
}
function B8(e) {
  var t = this._id;
  return arguments.length ? this.each(L8(t, e)) : ar(this.node(), t).ease;
}
function P8(e, t) {
  return function() {
    var r = t.apply(this, arguments);
    if (typeof r != "function")
      throw new Error();
    Er(this, e).ease = r;
  };
}
function F8(e) {
  if (typeof e != "function")
    throw new Error();
  return this.each(P8(this._id, e));
}
function H8(e) {
  typeof e != "function" && (e = j1(e));
  for (var t = this._groups, r = t.length, n = new Array(r), i = 0; i < r; ++i)
    for (var a = t[i], o = a.length, c = n[i] = [], f, m = 0; m < o; ++m)
      (f = a[m]) && e.call(f, f.__data__, m, a) && c.push(f);
  return new Ir(n, this._parents, this._name, this._id);
}
function U8(e) {
  if (e._id !== this._id)
    throw new Error();
  for (var t = this._groups, r = e._groups, n = t.length, i = r.length, a = Math.min(n, i), o = new Array(n), c = 0; c < a; ++c)
    for (var f = t[c], m = r[c], b = f.length, A = o[c] = new Array(b), k, N = 0; N < b; ++N)
      (k = f[N] || m[N]) && (A[N] = k);
  for (; c < n; ++c)
    o[c] = t[c];
  return new Ir(o, this._parents, this._name, this._id);
}
function z8(e) {
  return (e + "").trim().split(/^|\s+/).every(function(t) {
    var r = t.indexOf(".");
    return r >= 0 && (t = t.slice(0, r)), !t || t === "start";
  });
}
function q8(e, t, r) {
  var n, i, a = z8(t) ? Ju : Er;
  return function() {
    var o = a(this, e), c = o.on;
    c !== n && (i = (n = c).copy()).on(t, r), o.on = i;
  };
}
function Y8(e, t) {
  var r = this._id;
  return arguments.length < 2 ? ar(this.node(), r).on.on(e) : this.each(q8(r, e, t));
}
function V8(e) {
  return function() {
    var t = this.parentNode;
    for (var r in this.__transition)
      if (+r !== e)
        return;
    t && t.removeChild(this);
  };
}
function G8() {
  return this.on("end.remove", V8(this._id));
}
function X8(e) {
  var t = this._name, r = this._id;
  typeof e != "function" && (e = Ku(e));
  for (var n = this._groups, i = n.length, a = new Array(i), o = 0; o < i; ++o)
    for (var c = n[o], f = c.length, m = a[o] = new Array(f), b, A, k = 0; k < f; ++k)
      (b = c[k]) && (A = e.call(b, b.__data__, k, c)) && ("__data__" in b && (A.__data__ = b.__data__), m[k] = A, ya(m[k], t, r, k, m, ar(b, r)));
  return new Ir(a, this._parents, t, r);
}
function W8(e) {
  var t = this._name, r = this._id;
  typeof e != "function" && (e = W1(e));
  for (var n = this._groups, i = n.length, a = [], o = [], c = 0; c < i; ++c)
    for (var f = n[c], m = f.length, b, A = 0; A < m; ++A)
      if (b = f[A]) {
        for (var k = e.call(b, b.__data__, A, f), N, M = ar(b, r), F = 0, q = k.length; F < q; ++F)
          (N = k[F]) && ya(N, t, r, F, k, M);
        a.push(k), o.push(b);
      }
  return new Ir(a, o, t, r);
}
var j8 = K0.prototype.constructor;
function K8() {
  return new j8(this._groups, this._parents);
}
function $8(e, t) {
  var r, n, i;
  return function() {
    var a = $n(this, e), o = (this.style.removeProperty(e), $n(this, e));
    return a === o ? null : a === r && o === n ? i : i = t(r = a, n = o);
  };
}
function gf(e) {
  return function() {
    this.style.removeProperty(e);
  };
}
function Q8(e, t, r) {
  var n, i = r + "", a;
  return function() {
    var o = $n(this, e);
    return o === i ? null : o === n ? a : a = t(n = o, r);
  };
}
function Z8(e, t, r) {
  var n, i, a;
  return function() {
    var o = $n(this, e), c = r(this), f = c + "";
    return c == null && (f = c = (this.style.removeProperty(e), $n(this, e))), o === f ? null : o === n && f === i ? a : (i = f, a = t(n = o, c));
  };
}
function J8(e, t) {
  var r, n, i, a = "style." + t, o = "end." + a, c;
  return function() {
    var f = Er(this, e), m = f.on, b = f.value[a] == null ? c || (c = gf(t)) : void 0;
    (m !== r || i !== b) && (n = (r = m).copy()).on(o, i = b), f.on = n;
  };
}
function e7(e, t, r) {
  var n = (e += "") == "transform" ? e8 : pf;
  return t == null ? this.styleTween(e, $8(e, n)).on("end.style." + e, gf(e)) : typeof t == "function" ? this.styleTween(e, Z8(e, n, eo(this, "style." + e, t))).each(J8(this._id, e)) : this.styleTween(e, Q8(e, n, t), r).on("end.style." + e, null);
}
function t7(e, t, r) {
  return function(n) {
    this.style.setProperty(e, t.call(this, n), r);
  };
}
function r7(e, t, r) {
  var n, i;
  function a() {
    var o = t.apply(this, arguments);
    return o !== i && (n = (i = o) && t7(e, o, r)), n;
  }
  return a._value = t, a;
}
function n7(e, t, r) {
  var n = "style." + (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();
  return this.tween(n, r7(e, t, r ?? ""));
}
function i7(e) {
  return function() {
    this.textContent = e;
  };
}
function a7(e) {
  return function() {
    var t = e(this);
    this.textContent = t ?? "";
  };
}
function s7(e) {
  return this.tween("text", typeof e == "function" ? a7(eo(this, "text", e)) : i7(e == null ? "" : e + ""));
}
function u7(e) {
  return function(t) {
    this.textContent = e.call(this, t);
  };
}
function o7(e) {
  var t, r;
  function n() {
    var i = e.apply(this, arguments);
    return i !== r && (t = (r = i) && u7(i)), t;
  }
  return n._value = e, n;
}
function l7(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, o7(e));
}
function c7() {
  for (var e = this._name, t = this._id, r = bf(), n = this._groups, i = n.length, a = 0; a < i; ++a)
    for (var o = n[a], c = o.length, f, m = 0; m < c; ++m)
      if (f = o[m]) {
        var b = ar(f, t);
        ya(f, e, r, m, o, {
          time: b.time + b.delay + b.duration,
          delay: 0,
          duration: b.duration,
          ease: b.ease
        });
      }
  return new Ir(n, this._parents, e, r);
}
function h7() {
  var e, t, r = this, n = r._id, i = r.size();
  return new Promise(function(a, o) {
    var c = { value: o }, f = { value: function() {
      --i === 0 && a();
    } };
    r.each(function() {
      var m = Er(this, n), b = m.on;
      b !== e && (t = (e = b).copy(), t._.cancel.push(c), t._.interrupt.push(c), t._.end.push(f)), m.on = t;
    }), i === 0 && a();
  });
}
var f7 = 0;
function Ir(e, t, r, n) {
  this._groups = e, this._parents = t, this._name = r, this._id = n;
}
function bf() {
  return ++f7;
}
var Sr = K0.prototype;
Ir.prototype = {
  constructor: Ir,
  select: X8,
  selectAll: W8,
  selectChild: Sr.selectChild,
  selectChildren: Sr.selectChildren,
  filter: H8,
  merge: U8,
  selection: K8,
  transition: c7,
  call: Sr.call,
  nodes: Sr.nodes,
  node: Sr.node,
  size: Sr.size,
  empty: Sr.empty,
  each: Sr.each,
  on: Y8,
  attr: x8,
  attrTween: w8,
  style: e7,
  styleTween: n7,
  text: s7,
  textTween: l7,
  remove: G8,
  tween: g8,
  delay: M8,
  duration: O8,
  ease: B8,
  easeVarying: F8,
  end: h7,
  [Symbol.iterator]: Sr[Symbol.iterator]
};
function d7(e) {
  return ((e *= 2) <= 1 ? e * e * e : (e -= 2) * e * e + 2) / 2;
}
var m7 = {
  time: null,
  // Set on use.
  delay: 0,
  duration: 250,
  ease: d7
};
function p7(e, t) {
  for (var r; !(r = e.__transition) || !(r = r[t]); )
    if (!(e = e.parentNode))
      throw new Error(`transition ${t} not found`);
  return r;
}
function g7(e) {
  var t, r;
  e instanceof Ir ? (t = e._id, e = e._name) : (t = bf(), (r = m7).time = Zu(), e = e == null ? null : e + "");
  for (var n = this._groups, i = n.length, a = 0; a < i; ++a)
    for (var o = n[a], c = o.length, f, m = 0; m < c; ++m)
      (f = o[m]) && ya(f, e, t, m, o, r || p7(f, t));
  return new Ir(n, this._parents, e, t);
}
K0.prototype.interrupt = d8;
K0.prototype.transition = g7;
const _u = Math.PI, Tu = 2 * _u, sn = 1e-6, b7 = Tu - sn;
function Ef(e) {
  this._ += e[0];
  for (let t = 1, r = e.length; t < r; ++t)
    this._ += arguments[t] + e[t];
}
function E7(e) {
  let t = Math.floor(e);
  if (!(t >= 0))
    throw new Error(`invalid digits: ${e}`);
  if (t > 15)
    return Ef;
  const r = 10 ** t;
  return function(n) {
    this._ += n[0];
    for (let i = 1, a = n.length; i < a; ++i)
      this._ += Math.round(arguments[i] * r) / r + n[i];
  };
}
class v7 {
  constructor(t) {
    this._x0 = this._y0 = // start of current subpath
    this._x1 = this._y1 = null, this._ = "", this._append = t == null ? Ef : E7(t);
  }
  moveTo(t, r) {
    this._append`M${this._x0 = this._x1 = +t},${this._y0 = this._y1 = +r}`;
  }
  closePath() {
    this._x1 !== null && (this._x1 = this._x0, this._y1 = this._y0, this._append`Z`);
  }
  lineTo(t, r) {
    this._append`L${this._x1 = +t},${this._y1 = +r}`;
  }
  quadraticCurveTo(t, r, n, i) {
    this._append`Q${+t},${+r},${this._x1 = +n},${this._y1 = +i}`;
  }
  bezierCurveTo(t, r, n, i, a, o) {
    this._append`C${+t},${+r},${+n},${+i},${this._x1 = +a},${this._y1 = +o}`;
  }
  arcTo(t, r, n, i, a) {
    if (t = +t, r = +r, n = +n, i = +i, a = +a, a < 0)
      throw new Error(`negative radius: ${a}`);
    let o = this._x1, c = this._y1, f = n - t, m = i - r, b = o - t, A = c - r, k = b * b + A * A;
    if (this._x1 === null)
      this._append`M${this._x1 = t},${this._y1 = r}`;
    else if (k > sn)
      if (!(Math.abs(A * f - m * b) > sn) || !a)
        this._append`L${this._x1 = t},${this._y1 = r}`;
      else {
        let N = n - o, M = i - c, F = f * f + m * m, q = N * N + M * M, B = Math.sqrt(F), $ = Math.sqrt(k), V = a * Math.tan((_u - Math.acos((F + k - q) / (2 * B * $))) / 2), oe = V / $, pe = V / B;
        Math.abs(oe - 1) > sn && this._append`L${t + oe * b},${r + oe * A}`, this._append`A${a},${a},0,0,${+(A * N > b * M)},${this._x1 = t + pe * f},${this._y1 = r + pe * m}`;
      }
  }
  arc(t, r, n, i, a, o) {
    if (t = +t, r = +r, n = +n, o = !!o, n < 0)
      throw new Error(`negative radius: ${n}`);
    let c = n * Math.cos(i), f = n * Math.sin(i), m = t + c, b = r + f, A = 1 ^ o, k = o ? i - a : a - i;
    this._x1 === null ? this._append`M${m},${b}` : (Math.abs(this._x1 - m) > sn || Math.abs(this._y1 - b) > sn) && this._append`L${m},${b}`, n && (k < 0 && (k = k % Tu + Tu), k > b7 ? this._append`A${n},${n},0,1,${A},${t - c},${r - f}A${n},${n},0,1,${A},${this._x1 = m},${this._y1 = b}` : k > sn && this._append`A${n},${n},0,${+(k >= _u)},${A},${this._x1 = t + n * Math.cos(a)},${this._y1 = r + n * Math.sin(a)}`);
  }
  rect(t, r, n, i) {
    this._append`M${this._x0 = this._x1 = +t},${this._y0 = this._y1 = +r}h${n = +n}v${+i}h${-n}Z`;
  }
  toString() {
    return this._;
  }
}
function _7(e, t) {
  switch (arguments.length) {
    case 0:
      break;
    case 1:
      this.range(e);
      break;
    default:
      this.range(t).domain(e);
      break;
  }
  return this;
}
const mh = Symbol("implicit");
function vf() {
  var e = new Wc(), t = [], r = [], n = mh;
  function i(a) {
    let o = e.get(a);
    if (o === void 0) {
      if (n !== mh)
        return n;
      e.set(a, o = t.push(a) - 1);
    }
    return r[o % r.length];
  }
  return i.domain = function(a) {
    if (!arguments.length)
      return t.slice();
    t = [], e = new Wc();
    for (const o of a)
      e.has(o) || e.set(o, t.push(o) - 1);
    return i;
  }, i.range = function(a) {
    return arguments.length ? (r = Array.from(a), i) : r.slice();
  }, i.unknown = function(a) {
    return arguments.length ? (n = a, i) : n;
  }, i.copy = function() {
    return vf(t, r).unknown(n);
  }, _7.apply(i, arguments), i;
}
function T7(e) {
  for (var t = e.length / 6 | 0, r = new Array(t), n = 0; n < t; )
    r[n] = "#" + e.slice(n * 6, ++n * 6);
  return r;
}
const A7 = T7("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");
function ph(e) {
  return function() {
    return e;
  };
}
function x7(e) {
  let t = 3;
  return e.digits = function(r) {
    if (!arguments.length)
      return t;
    if (r == null)
      t = null;
    else {
      const n = Math.floor(r);
      if (!(n >= 0))
        throw new RangeError(`invalid digits: ${r}`);
      t = n;
    }
    return e;
  }, () => new v7(t);
}
var y7 = Array.prototype.slice;
function S7(e) {
  return e[0];
}
function C7(e) {
  return e[1];
}
class k7 {
  constructor(t, r) {
    this._context = t, this._x = r;
  }
  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, r) {
    switch (t = +t, r = +r, this._point) {
      case 0: {
        this._point = 1, this._line ? this._context.lineTo(t, r) : this._context.moveTo(t, r);
        break;
      }
      case 1:
        this._point = 2;
      default: {
        this._x ? this._context.bezierCurveTo(this._x0 = (this._x0 + t) / 2, this._y0, this._x0, r, t, r) : this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + r) / 2, t, this._y0, t, r);
        break;
      }
    }
    this._x0 = t, this._y0 = r;
  }
}
function w7(e) {
  return new k7(e, !0);
}
function N7(e) {
  return e.source;
}
function I7(e) {
  return e.target;
}
function M7(e) {
  let t = N7, r = I7, n = S7, i = C7, a = null, o = null, c = x7(f);
  function f() {
    let m;
    const b = y7.call(arguments), A = t.apply(this, b), k = r.apply(this, b);
    if (a == null && (o = e(m = c())), o.lineStart(), b[0] = A, o.point(+n.apply(this, b), +i.apply(this, b)), b[0] = k, o.point(+n.apply(this, b), +i.apply(this, b)), o.lineEnd(), m)
      return o = null, m + "" || null;
  }
  return f.source = function(m) {
    return arguments.length ? (t = m, f) : t;
  }, f.target = function(m) {
    return arguments.length ? (r = m, f) : r;
  }, f.x = function(m) {
    return arguments.length ? (n = typeof m == "function" ? m : ph(+m), f) : n;
  }, f.y = function(m) {
    return arguments.length ? (i = typeof m == "function" ? m : ph(+m), f) : i;
  }, f.context = function(m) {
    return arguments.length ? (m == null ? a = o = null : o = e(a = m), f) : a;
  }, f;
}
function D7() {
  return M7(w7);
}
const Ii = (e) => () => e;
function R7(e, {
  sourceEvent: t,
  target: r,
  transform: n,
  dispatch: i
}) {
  Object.defineProperties(this, {
    type: { value: e, enumerable: !0, configurable: !0 },
    sourceEvent: { value: t, enumerable: !0, configurable: !0 },
    target: { value: r, enumerable: !0, configurable: !0 },
    transform: { value: n, enumerable: !0, configurable: !0 },
    _: { value: i }
  });
}
function Nr(e, t, r) {
  this.k = e, this.x = t, this.y = r;
}
Nr.prototype = {
  constructor: Nr,
  scale: function(e) {
    return e === 1 ? this : new Nr(this.k * e, this.x, this.y);
  },
  translate: function(e, t) {
    return e === 0 & t === 0 ? this : new Nr(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 Sa = new Nr(1, 0, 0);
Ki.prototype = Nr.prototype;
function Ki(e) {
  for (; !e.__zoom; )
    if (!(e = e.parentNode))
      return Sa;
  return e.__zoom;
}
function Ls(e) {
  e.stopImmediatePropagation();
}
function p0(e) {
  e.preventDefault(), e.stopImmediatePropagation();
}
function O7(e) {
  return (!e.ctrlKey || e.type === "wheel") && !e.button;
}
function L7() {
  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 gh() {
  return this.__zoom || Sa;
}
function B7(e) {
  return -e.deltaY * (e.deltaMode === 1 ? 0.05 : e.deltaMode ? 1 : 2e-3) * (e.ctrlKey ? 10 : 1);
}
function P7() {
  return navigator.maxTouchPoints || "ontouchstart" in this;
}
function F7(e, t, r) {
  var n = e.invertX(t[0][0]) - r[0][0], i = e.invertX(t[1][0]) - r[1][0], a = e.invertY(t[0][1]) - r[0][1], o = e.invertY(t[1][1]) - r[1][1];
  return e.translate(
    i > n ? (n + i) / 2 : Math.min(0, n) || Math.max(0, i),
    o > a ? (a + o) / 2 : Math.min(0, a) || Math.max(0, o)
  );
}
function H7() {
  var e = O7, t = L7, r = F7, n = B7, i = P7, a = [0, 1 / 0], o = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], c = 250, f = a8, m = ju("start", "zoom", "end"), b, A, k, N = 500, M = 150, F = 0, q = 10;
  function B(Y) {
    Y.property("__zoom", gh).on("wheel.zoom", Qe, { passive: !1 }).on("mousedown.zoom", Ve).on("dblclick.zoom", Ze).filter(i).on("touchstart.zoom", X).on("touchmove.zoom", Te).on("touchend.zoom touchcancel.zoom", Re).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
  }
  B.transform = function(Y, ce, re, be) {
    var Ce = Y.selection ? Y.selection() : Y;
    Ce.property("__zoom", gh), Y !== Ce ? pe(Y, ce, re, be) : Ce.interrupt().each(function() {
      se(this, arguments).event(be).start().zoom(null, typeof ce == "function" ? ce.apply(this, arguments) : ce).end();
    });
  }, B.scaleBy = function(Y, ce, re, be) {
    B.scaleTo(Y, function() {
      var Ce = this.__zoom.k, we = typeof ce == "function" ? ce.apply(this, arguments) : ce;
      return Ce * we;
    }, re, be);
  }, B.scaleTo = function(Y, ce, re, be) {
    B.transform(Y, function() {
      var Ce = t.apply(this, arguments), we = this.__zoom, ke = re == null ? oe(Ce) : typeof re == "function" ? re.apply(this, arguments) : re, ae = we.invert(ke), Ge = typeof ce == "function" ? ce.apply(this, arguments) : ce;
      return r(V($(we, Ge), ke, ae), Ce, o);
    }, re, be);
  }, B.translateBy = function(Y, ce, re, be) {
    B.transform(Y, function() {
      return r(this.__zoom.translate(
        typeof ce == "function" ? ce.apply(this, arguments) : ce,
        typeof re == "function" ? re.apply(this, arguments) : re
      ), t.apply(this, arguments), o);
    }, null, be);
  }, B.translateTo = function(Y, ce, re, be, Ce) {
    B.transform(Y, function() {
      var we = t.apply(this, arguments), ke = this.__zoom, ae = be == null ? oe(we) : typeof be == "function" ? be.apply(this, arguments) : be;
      return r(Sa.translate(ae[0], ae[1]).scale(ke.k).translate(
        typeof ce == "function" ? -ce.apply(this, arguments) : -ce,
        typeof re == "function" ? -re.apply(this, arguments) : -re
      ), we, o);
    }, be, Ce);
  };
  function $(Y, ce) {
    return ce = Math.max(a[0], Math.min(a[1], ce)), ce === Y.k ? Y : new Nr(ce, Y.x, Y.y);
  }
  function V(Y, ce, re) {
    var be = ce[0] - re[0] * Y.k, Ce = ce[1] - re[1] * Y.k;
    return be === Y.x && Ce === Y.y ? Y : new Nr(Y.k, be, Ce);
  }
  function oe(Y) {
    return [(+Y[0][0] + +Y[1][0]) / 2, (+Y[0][1] + +Y[1][1]) / 2];
  }
  function pe(Y, ce, re, be) {
    Y.on("start.zoom", function() {
      se(this, arguments).event(be).start();
    }).on("interrupt.zoom end.zoom", function() {
      se(this, arguments).event(be).end();
    }).tween("zoom", function() {
      var Ce = this, we = arguments, ke = se(Ce, we).event(be), ae = t.apply(Ce, we), Ge = re == null ? oe(ae) : typeof re == "function" ? re.apply(Ce, we) : re, ge = Math.max(ae[1][0] - ae[0][0], ae[1][1] - ae[0][1]), Je = Ce.__zoom, St = typeof ce == "function" ? ce.apply(Ce, we) : ce, Et = f(Je.invert(Ge).concat(ge / Je.k), St.invert(Ge).concat(ge / St.k));
      return function(Pt) {
        if (Pt === 1)
          Pt = St;
        else {
          var Zt = Et(Pt), a0 = ge / Zt[2];
          Pt = new Nr(a0, Ge[0] - Zt[0] * a0, Ge[1] - Zt[1] * a0);
        }
        ke.zoom(null, Pt);
      };
    });
  }
  function se(Y, ce, re) {
    return !re && Y.__zooming || new We(Y, ce);
  }
  function We(Y, ce) {
    this.that = Y, this.args = ce, this.active = 0, this.sourceEvent = null, this.extent = t.apply(Y, ce), this.taps = 0;
  }
  We.prototype = {
    event: function(Y) {
      return Y && (this.sourceEvent = Y), this;
    },
    start: function() {
      return ++this.active === 1 && (this.that.__zooming = this, this.emit("start")), this;
    },
    zoom: function(Y, ce) {
      return this.mouse && Y !== "mouse" && (this.mouse[1] = ce.invert(this.mouse[0])), this.touch0 && Y !== "touch" && (this.touch0[1] = ce.invert(this.touch0[0])), this.touch1 && Y !== "touch" && (this.touch1[1] = ce.invert(this.touch1[0])), this.that.__zoom = ce, this.emit("zoom"), this;
    },
    end: function() {
      return --this.active === 0 && (delete this.that.__zooming, this.emit("end")), this;
    },
    emit: function(Y) {
      var ce = Gr(this.that).datum();
      m.call(
        Y,
        this.that,
        new R7(Y, {
          sourceEvent: this.sourceEvent,
          target: B,
          type: Y,
          transform: this.that.__zoom,
          dispatch: m
        }),
        ce
      );
    }
  };
  function Qe(Y, ...ce) {
    if (!e.apply(this, arguments))
      return;
    var re = se(this, ce).event(Y), be = this.__zoom, Ce = Math.max(a[0], Math.min(a[1], be.k * Math.pow(2, n.apply(this, arguments)))), we = nn(Y);
    if (re.wheel)
      (re.mouse[0][0] !== we[0] || re.mouse[0][1] !== we[1]) && (re.mouse[1] = be.invert(re.mouse[0] = we)), clearTimeout(re.wheel);
    else {
      if (be.k === Ce)
        return;
      re.mouse = [we, be.invert(we)], ji(this), re.start();
    }
    p0(Y), re.wheel = setTimeout(ke, M), re.zoom("mouse", r(V($(be, Ce), re.mouse[0], re.mouse[1]), re.extent, o));
    function ke() {
      re.wheel = null, re.end();
    }
  }
  function Ve(Y, ...ce) {
    if (k || !e.apply(this, arguments))
      return;
    var re = Y.currentTarget, be = se(this, ce, !0).event(Y), Ce = Gr(Y.view).on("mousemove.zoom", Ge, !0).on("mouseup.zoom", ge, !0), we = nn(Y, re), ke = Y.clientX, ae = Y.clientY;
    D5(Y.view), Ls(Y), be.mouse = [we, this.__zoom.invert(we)], ji(this), be.start();
    function Ge(Je) {
      if (p0(Je), !be.moved) {
        var St = Je.clientX - ke, Et = Je.clientY - ae;
        be.moved = St * St + Et * Et > F;
      }
      be.event(Je).zoom("mouse", r(V(be.that.__zoom, be.mouse[0] = nn(Je, re), be.mouse[1]), be.extent, o));
    }
    function ge(Je) {
      Ce.on("mousemove.zoom mouseup.zoom", null), R5(Je.view, be.moved), p0(Je), be.event(Je).end();
    }
  }
  function Ze(Y, ...ce) {
    if (e.apply(this, arguments)) {
      var re = this.__zoom, be = nn(Y.changedTouches ? Y.changedTouches[0] : Y, this), Ce = re.invert(be), we = re.k * (Y.shiftKey ? 0.5 : 2), ke = r(V($(re, we), be, Ce), t.apply(this, ce), o);
      p0(Y), c > 0 ? Gr(this).transition().duration(c).call(pe, ke, be, Y) : Gr(this).call(B.transform, ke, be, Y);
    }
  }
  function X(Y, ...ce) {
    if (e.apply(this, arguments)) {
      var re = Y.touches, be = re.length, Ce = se(this, ce, Y.changedTouches.length === be).event(Y), we, ke, ae, Ge;
      for (Ls(Y), ke = 0; ke < be; ++ke)
        ae = re[ke], Ge = nn(ae, this), Ge = [Ge, this.__zoom.invert(Ge), ae.identifier], Ce.touch0 ? !Ce.touch1 && Ce.touch0[2] !== Ge[2] && (Ce.touch1 = Ge, Ce.taps = 0) : (Ce.touch0 = Ge, we = !0, Ce.taps = 1 + !!b);
      b && (b = clearTimeout(b)), we && (Ce.taps < 2 && (A = Ge[0], b = setTimeout(function() {
        b = null;
      }, N)), ji(this), Ce.start());
    }
  }
  function Te(Y, ...ce) {
    if (this.__zooming) {
      var re = se(this, ce).event(Y), be = Y.changedTouches, Ce = be.length, we, ke, ae, Ge;
      for (p0(Y), we = 0; we < Ce; ++we)
        ke = be[we], ae = nn(ke, this), re.touch0 && re.touch0[2] === ke.identifier ? re.touch0[0] = ae : re.touch1 && re.touch1[2] === ke.identifier && (re.touch1[0] = ae);
      if (ke = re.that.__zoom, re.touch1) {
        var ge = re.touch0[0], Je = re.touch0[1], St = re.touch1[0], Et = re.touch1[1], Pt = (Pt = St[0] - ge[0]) * Pt + (Pt = St[1] - ge[1]) * Pt, Zt = (Zt = Et[0] - Je[0]) * Zt + (Zt = Et[1] - Je[1]) * Zt;
        ke = $(ke, Math.sqrt(Pt / Zt)), ae = [(ge[0] + St[0]) / 2, (ge[1] + St[1]) / 2], Ge = [(Je[0] + Et[0]) / 2, (Je[1] + Et[1]) / 2];
      } else if (re.touch0)
        ae = re.touch0[0], Ge = re.touch0[1];
      else
        return;
      re.zoom("touch", r(V(ke, ae, Ge), re.extent, o));
    }
  }
  function Re(Y, ...ce) {
    if (this.__zooming) {
      var re = se(this, ce).event(Y), be = Y.changedTouches, Ce = be.length, we, ke;
      for (Ls(Y), k && clearTimeout(k), k = setTimeout(function() {
        k = null;
      }, N), we = 0; we < Ce; ++we)
        ke = be[we], re.touch0 && re.touch0[2] === ke.identifier ? delete re.touch0 : re.touch1 && re.touch1[2] === ke.identifier && delete re.touch1;
      if (re.touch1 && !re.touch0 && (re.touch0 = re.touch1, delete re.touch1), re.touch0)
        re.touch0[1] = this.__zoom.invert(re.touch0[0]);
      else if (re.end(), re.taps === 2 && (ke = nn(ke, this), Math.hypot(A[0] - ke[0], A[1] - ke[1]) < q)) {
        var ae = Gr(this).on("dblclick.zoom");
        ae && ae.apply(this, arguments);
      }
    }
  }
  return B.wheelDelta = function(Y) {
    return arguments.length ? (n = typeof Y == "function" ? Y : Ii(+Y), B) : n;
  }, B.filter = function(Y) {
    return arguments.length ? (e = typeof Y == "function" ? Y : Ii(!!Y), B) : e;
  }, B.touchable = function(Y) {
    return arguments.length ? (i = typeof Y == "function" ? Y : Ii(!!Y), B) : i;
  }, B.extent = function(Y) {
    return arguments.length ? (t = typeof Y == "function" ? Y : Ii([[+Y[0][0], +Y[0][1]], [+Y[1][0], +Y[1][1]]]), B) : t;
  }, B.scaleExtent = function(Y) {
    return arguments.length ? (a[0] = +Y[0], a[1] = +Y[1], B) : [a[0], a[1]];
  }, B.translateExtent = function(Y) {
    return arguments.length ? (o[0][0] = +Y[0][0], o[1][0] = +Y[1][0], o[0][1] = +Y[0][1], o[1][1] = +Y[1][1], B) : [[o[0][0], o[0][1]], [o[1][0], o[1][1]]];
  }, B.constrain = function(Y) {
    return arguments.length ? (r = Y, B) : r;
  }, B.duration = function(Y) {
    return arguments.length ? (c = +Y, B) : c;
  }, B.interpolate = function(Y) {
    return arguments.length ? (f = Y, B) : f;
  }, B.on = function() {
    var Y = m.on.apply(m, arguments);
    return Y === m ? B : Y;
  }, B.clickDistance = function(Y) {
    return arguments.length ? (F = (Y = +Y) * Y, B) : Math.sqrt(F);
  }, B.tapDistance = function(Y) {
    return arguments.length ? (q = +Y, B) : q;
  }, B;
}
const _f = typeof navigator < "u" && navigator.userAgent.includes("Macintosh"), U7 = vf(A7), z7 = {
  autoFit: !1,
  color: (e) => {
    var t;
    return U7(`${((t = e.state) == null ? void 0 : t.path) || ""}`);
  },
  duration: 500,
  embedGlobalCSS: !0,
  fitRatio: 0.95,
  maxWidth: 0,
  nodeMinHeight: 16,
  paddingX: 8,
  scrollForPan: _f,
  spacingHorizontal: 80,
  spacingVertical: 5,
  initialExpandLevel: -1,
  zoom: !0,
  pan: !0,
  toggleRecursively: !1
};
/*! @gera2ld/jsx-dom v2.2.2 | ISC License */
const Tf = 1, Af = 2, q7 = "http://www.w3.org/2000/svg", Bs = "http://www.w3.org/1999/xlink", Y7 = {
  show: Bs,
  actuate: Bs,
  href: Bs
}, V7 = (e) => typeof e == "string" || typeof e == "number", G7 = (e) => (e == null ? void 0 : e.vtype) === Tf, X7 = (e) => (e == null ? void 0 : e.vtype) === Af;
function Mi(e, t) {
  let r;
  if (typeof e == "string")
    r = Tf;
  else if (typeof e == "function")
    r = Af;
  else
    throw new Error("Invalid VNode type");
  return {
    vtype: r,
    type: e,
    props: t
  };
}
function W7(e) {
  return e.children;
}
const j7 = {
  isSvg: !1
};
function bh(e, t) {
  Array.isArray(t) || (t = [t]), t = t.filter(Boolean), t.length && e.append(...t);
}
function K7(e, t, r) {
  for (const n in t)
    if (!(n === "key" || n === "children" || n === "ref"))
      if (n === "dangerouslySetInnerHTML")
        e.innerHTML = t[n].__html;
      else if (n === "innerHTML" || n === "textContent" || n === "innerText" || n === "value" && ["textarea", "select"].includes(e.tagName)) {
        const i = t[n];
        i != null && (e[n] = i);
      } else
        n.startsWith("on") ? e[n.toLowerCase()] = t[n] : Q7(e, n, t[n], r.isSvg);
}
const $7 = {
  className: "class",
  labelFor: "for"
};
function Q7(e, t, r, n) {
  if (t = $7[t] || t, r === !0)
    e.setAttribute(t, "");
  else if (r === !1)
    e.removeAttribute(t);
  else {
    const i = n ? Y7[t] : void 0;
    i !== void 0 ? e.setAttributeNS(i, t, r) : e.setAttribute(t, r);
  }
}
function Z7(e) {
  return e.reduce((t, r) => t.concat(r), []);
}
function Au(e, t) {
  return Array.isArray(e) ? Z7(e.map((r) => Au(r, t))) : to(e, t);
}
function to(e, t = j7) {
  if (e == null || typeof e == "boolean")
    return null;
  if (e instanceof Node)
    return e;
  if (X7(e)) {
    const {
      type: r,
      props: n
    } = e;
    if (r === W7) {
      const a = document.createDocumentFragment();
      if (n.children) {
        const o = Au(n.children, t);
        bh(a, o);
      }
      return a;
    }
    const i = r(n);
    return to(i, t);
  }
  if (V7(e))
    return document.createTextNode(`${e}`);
  if (G7(e)) {
    let r;
    const {
      type: n,
      props: i
    } = e;
    if (!t.isSvg && n === "svg" && (t = Object.assign({}, t, {
      isSvg: !0
    })), t.isSvg ? r = document.createElementNS(q7, n) : r = document.createElement(n), K7(r, i, t), i.children) {
      let o = t;
      t.isSvg && n === "foreignObject" && (o = Object.assign({}, o, {
        isSvg: !1
      }));
      const c = Au(i.children, o);
      c != null && bh(r, c);
    }
    const {
      ref: a
    } = i;
    return typeof a == "function" && a(r), r;
  }
  throw new Error("mount: Invalid Vnode!");
}
function Ps(e) {
  return to(e);
}
function J7(e) {
  var t = 0, r = e.children, n = r && r.length;
  if (!n)
    t = 1;
  else
    for (; --n >= 0; )
      t += r[n].value;
  e.value = t;
}
function eg() {
  return this.eachAfter(J7);
}
function tg(e) {
  var t = this, r, n = [t], i, a, o;
  do
    for (r = n.reverse(), n = []; t = r.pop(); )
      if (e(t), i = t.children, i)
        for (a = 0, o = i.length; a < o; ++a)
          n.push(i[a]);
  while (n.length);
  return this;
}
function rg(e) {
  for (var t = this, r = [t], n, i; t = r.pop(); )
    if (e(t), n = t.children, n)
      for (i = n.length - 1; i >= 0; --i)
        r.push(n[i]);
  return this;
}
function ng(e) {
  for (var t = this, r = [t], n = [], i, a, o; t = r.pop(); )
    if (n.push(t), i = t.children, i)
      for (a = 0, o = i.length; a < o; ++a)
        r.push(i[a]);
  for (; t = n.pop(); )
    e(t);
  return this;
}
function ig(e) {
  return this.eachAfter(function(t) {
    for (var r = +e(t.data) || 0, n = t.children, i = n && n.length; --i >= 0; )
      r += n[i].value;
    t.value = r;
  });
}
function ag(e) {
  return this.eachBefore(function(t) {
    t.children && t.children.sort(e);
  });
}
function sg(e) {
  for (var t = this, r = ug(t, e), n = [t]; t !== r; )
    t = t.parent, n.push(t);
  for (var i = n.length; e !== r; )
    n.splice(i, 0, e), e = e.parent;
  return n;
}
function ug(e, t) {
  if (e === t)
    return e;
  var r = e.ancestors(), n = t.ancestors(), i = null;
  for (e = r.pop(), t = n.pop(); e === t; )
    i = e, e = r.pop(), t = n.pop();
  return i;
}
function og() {
  for (var e = this, t = [e]; e = e.parent; )
    t.push(e);
  return t;
}
function lg() {
  var e = [];
  return this.each(function(t) {
    e.push(t);
  }), e;
}
function cg() {
  var e = [];
  return this.eachBefore(function(t) {
    t.children || e.push(t);
  }), e;
}
function hg() {
  var e = this, t = [];
  return e.each(function(r) {
    r !== e && t.push({ source: r.parent, target: r });
  }), t;
}
function ro(e, t) {
  var r = new aa(e), n = +e.value && (r.value = e.value), i, a = [r], o, c, f, m;
  for (t == null && (t = dg); i = a.pop(); )
    if (n && (i.value = +i.data.value), (c = t(i.data)) && (m = c.length))
      for (i.children = new Array(m), f = m - 1; f >= 0; --f)
        a.push(o = i.children[f] = new aa(c[f])), o.parent = i, o.depth = i.depth + 1;
  return r.eachBefore(pg);
}
function fg() {
  return ro(this).eachBefore(mg);
}
function dg(e) {
  return e.children;
}
function mg(e) {
  e.data = e.data.data;
}
function pg(e) {
  var t = 0;
  do
    e.height = t;
  while ((e = e.parent) && e.height < ++t);
}
function aa(e) {
  this.data = e, this.depth = this.height = 0, this.parent = null;
}
aa.prototype = ro.prototype = {
  constructor: aa,
  count: eg,
  each: tg,
  eachAfter: ng,
  eachBefore: rg,
  sum: ig,
  sort: ag,
  path: sg,
  ancestors: og,
  descendants: lg,
  leaves: cg,
  links: hg,
  copy: fg
};
const gg = "d3-flextree", bg = "2.1.2", Eg = "build/d3-flextree.js", vg = "index", _g = {
  name: "Chris Maloney",
  url: "http://chrismaloney.org"
}, Tg = "Flexible tree layout algorithm that allows for variable node sizes.", Ag = [
  "d3",
  "d3-module",
  "layout",
  "tree",
  "hierarchy",
  "d3-hierarchy",
  "plugin",
  "d3-plugin",
  "infovis",
  "visualization",
  "2d"
], xg = "https://github.com/klortho/d3-flextree", yg = "WTFPL", Sg = {
  type: "git",
  url: "https://github.com/klortho/d3-flextree.git"
}, Cg = {
  clean: "rm -rf build demo test",
  "build:demo": "rollup -c --environment BUILD:demo",
  "build:dev": "rollup -c --environment BUILD:dev",
  "build:prod": "rollup -c --environment BUILD:prod",
  "build:test": "rollup -c --environment BUILD:test",
  build: "rollup -c",
  lint: "eslint index.js src",
  "test:main": "node test/bundle.js",
  "test:browser": "node test/browser-tests.js",
  test: "npm-run-all test:*",
  prepare: "npm-run-all clean build lint test"
}, kg = {
  "d3-hierarchy": "^1.1.5"
}, wg = {
  "babel-plugin-external-helpers": "^6.22.0",
  "babel-preset-es2015-rollup": "^3.0.0",
  d3: "^4.13.0",
  "d3-selection-multi": "^1.0.1",
  eslint: "^4.19.1",
  jsdom: "^11.6.2",
  "npm-run-all": "^4.1.2",
  rollup: "^0.55.3",
  "rollup-plugin-babel": "^2.7.1",
  "rollup-plugin-commonjs": "^8.0.2",
  "rollup-plugin-copy": "^0.2.3",
  "rollup-plugin-json": "^2.3.0",
  "rollup-plugin-node-resolve": "^3.0.2",
  "rollup-plugin-uglify": "^3.0.0",
  "uglify-es": "^3.3.9"
}, Ng = {
  name: gg,
  version: bg,
  main: Eg,
  module: vg,
  "jsnext:main": "index",
  author: _g,
  description: Tg,
  keywords: Ag,
  homepage: xg,
  license: yg,
  repository: Sg,
  scripts: Cg,
  dependencies: kg,
  devDependencies: wg
}, { version: Ig } = Ng, Mg = Object.freeze({
  children: (e) => e.children,
  nodeSize: (e) => e.data.size,
  spacing: 0
});
function yf(e) {
  const t = Object.assign({}, Mg, e);
  function r(c) {
    const f = t[c];
    return typeof f == "function" ? f : () => f;
  }
  function n(c) {
    const f = o(a(), c, (m) => m.children);
    return f.update(), f.data;
  }
  function i() {
    const c = r("nodeSize"), f = r("spacing");
    return class xf extends ro.prototype.constructor {
      constructor(b) {
        super(b);
      }
      copy() {
        const b = o(this.constructor, this, (A) => A.children);
        return b.each((A) => A.data = A.data.data), b;
      }
      get size() {
        return c(this);
      }
      spacing(b) {
        return f(this, b);
      }
      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() {
        const b = this.ancestors();
        return b[b.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(
          (b, A) => xf.maxExtents(b, A.extents),
          this.nodeExtents
        );
      }
      get nodeExtents() {
        return {
          top: this.top,
          bottom: this.bottom,
          left: this.left,
          right: this.right
        };
      }
      static maxExtents(b, A) {
        return {
          top: Math.min(b.top, A.top),
          bottom: Math.max(b.bottom, A.bottom),
          left: Math.min(b.left, A.left),
          right: Math.max(b.right, A.right)
        };
      }
    };
  }
  function a() {
    const c = i(), f = r("nodeSize"), m = r("spacing");
    return class extends c {
      constructor(b) {
        super(b), 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 f(this.data);
      }
      spacing(b) {
        return m(this.data, b.data);
      }
      get x() {
        return this.data.x;
      }
      set x(b) {
        this.data.x = b;
      }
      get y() {
        return this.data.y;
      }
      set y(b) {
        this.data.y = b;
      }
      update() {
        return Sf(this), Cf(this), this;
      }
    };
  }
  function o(c, f, m) {
    const b = (A, k) => {
      const N = new c(A);
      Object.assign(N, {
        parent: k,
        depth: k === null ? 0 : k.depth + 1,
        height: 0,
        length: 1
      });
      const M = m(A) || [];
      return N.children = M.length === 0 ? null : M.map((F) => b(F, N)), N.children && Object.assign(N, N.children.reduce(
        (F, q) => ({
          height: Math.max(F.height, q.height + 1),
          length: F.length + q.length
        }),
        N
      )), N;
    };
    return b(f, null);
  }
  return Object.assign(n, {
    nodeSize(c) {
      return arguments.length ? (t.nodeSize = c, n) : t.nodeSize;
    },
    spacing(c) {
      return arguments.length ? (t.spacing = c, n) : t.spacing;
    },
    children(c) {
      return arguments.length ? (t.children = c, n) : t.children;
    },
    hierarchy(c, f) {
      const m = typeof f > "u" ? t.children : f;
      return o(i(), c, m);
    },
    dump(c) {
      const f = r("nodeSize"), m = (b) => (A) => {
        const k = b + "  ", N = b + "    ", { x: M, y: F } = A, q = f(A), B = A.children || [], $ = B.length === 0 ? " " : `,${k}children: [${N}${B.map(m(N)).join(N)}${k}],${b}`;
        return `{ size: [${q.join(", ")}],${k}x: ${M}, y: ${F}${$}},`;
      };
      return m(`
`)(c);
    }
  }), n;
}
yf.version = Ig;
const Sf = (e, t = 0) => (e.y = t, (e.children || []).reduce((r, n) => {
  const [i, a] = r;
  Sf(n, e.y + e.ySize);
  const o = (i === 0 ? n.lExt : n.rExt).bottom;
  i !== 0 && Rg(e, i, a);
  const c = zg(o, i, a);
  return [i + 1, c];
}, [0, null]), Dg(e), Ug(e), e), Cf = (e, t, r) => {
  typeof t > "u" && (t = -e.relX - e.prelim, r = 0);
  const n = t + e.relX;
  return e.relX = n + e.prelim - r, e.prelim = 0, e.x = r + e.relX, (e.children || []).forEach((i) => Cf(i, n, e.x)), e;
}, Dg = (e) => {
  (e.children || []).reduce((t, r) => {
    const [n, i] = t, a = n + r.shift, o = i + a + r.change;
    return r.relX += o, [a, o];
  }, [0, 0]);
}, Rg = (e, t, r) => {
  const n = e.children[t - 1], i = e.children[t];
  let a = n, o = n.relX, c = i, f = i.relX, m = !0;
  for (; a && c; ) {
    a.bottom > r.lowY && (r = r.next);
    const b = o + a.prelim - (f + c.prelim) + a.xSize / 2 + c.xSize / 2 + a.spacing(c);
    (b > 0 || b < 0 && m) && (f += b, Og(i, b), Lg(e, t, r.index, b)), m = !1;
    const A = a.bottom, k = c.bottom;
    A <= k && (a = Pg(a), a && (o += a.relX)), A >= k && (c = Bg(c), c && (f += c.relX));
  }
  !a && c ? Fg(e, t, c, f) : a && !c && Hg(e, t, a, o);
}, Og = (e, t) => {
  e.relX += t, e.lExtRelX += t, e.rExtRelX += t;
}, Lg = (e, t, r, n) => {
  const i = e.children[t], a = t - r;
  if (a > 1) {
    const o = n / a;
    e.children[r + 1].shift += o, i.shift -= o, i.change -= n - o;
  }
}, Bg = (e) => e.hasChildren ? e.firstChild : e.lThr, Pg = (e) => e.hasChildren ? e.lastChild : e.rThr, Fg = (e, t, r, n) => {
  const i = e.firstChild, a = i.lExt, o = e.children[t];
  a.lThr = r;
  const c = n - r.relX - i.lExtRelX;
  a.relX += c, a.prelim -= c, i.lExt = o.lExt, i.lExtRelX = o.lExtRelX;
}, Hg = (e, t, r, n) => {
  const i = e.children[t], a = i.rExt, o = e.children[t - 1];
  a.rThr = r;
  const c = n - r.relX - i.rExtRelX;
  a.relX += c, a.prelim -= c, i.rExt = o.rExt, i.rExtRelX = o.rExtRelX;
}, Ug = (e) => {
  if (e.hasChildren) {
    const t = e.firstChild, r = e.lastChild, n = (t.prelim + t.relX - t.xSize / 2 + r.relX + r.prelim + r.xSize / 2) / 2;
    Object.assign(e, {
      prelim: n,
      lExt: t.lExt,
      lExtRelX: t.lExtRelX,
      rExt: r.rExt,
      rExtRelX: r.rExtRelX
    });
  }
}, zg = (e, t, r) => {
  for (; r !== null && e >= r.lowY; )
    r = r.next;
  return {
    lowY: e,
    index: t,
    next: r
  };
}, qg = ".markmap-container{position:absolute;width:0;height:0;top:-100px;left:-100px;overflow:hidden}.markmap-container>.markmap-foreign{display:inline-block}.markmap-container>.markmap-foreign>div:last-child,.markmap-container>.markmap-foreign>div:last-child :not(pre){white-space:nowrap}.markmap-container>.markmap-foreign>div:last-child code{white-space:inherit}", Yg = ".markmap{--markmap-max-width: none;--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;font:var(--markmap-font)}.markmap-link{fill:none}.markmap-node>circle{cursor:pointer}.markmap-foreign{display:inline-block}.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-testing-max{max-width:var(--markmap-max-width)}.markmap-foreign-testing-max img{max-width:var(--markmap-max-width);max-height:none}";
function Eh(e) {
  const t = e.data;
  return Math.max(4 - 2 * t.state.depth, 1.5);
}
function vh(e, t) {
  const r = K3(e, t);
  return e[r];
}
function Fs(e) {
  e.stopPropagation();
}
const Vg = new Pn();
class no {
  constructor(t, r) {
    this.options = z7, this.revokers = [], this.imgCache = {}, this.handleZoom = (n) => {
      const { transform: i } = n;
      this.g.attr("transform", i);
    }, this.handlePan = (n) => {
      n.preventDefault();
      const i = Ki(this.svg.node()), a = i.translate(
        -n.deltaX / i.k,
        -n.deltaY / i.k
      );
      this.svg.call(this.zoom.transform, a);
    }, this.handleClick = (n, i) => {
      let a = this.options.toggleRecursively;
      (_f ? n.metaKey : n.ctrlKey) && (a = !a), this.toggleNode(i.data, a);
    }, this.svg = t.datum ? t : Gr(t), this.styleNode = this.svg.append("style"), this.zoom = H7().filter((n) => this.options.scrollForPan && n.type === "wheel" ? n.ctrlKey && !n.button : (!n.ctrlKey || n.type === "wheel") && !n.button).on("zoom", this.handleZoom), this.setOptions(r), this.state = {
      id: this.options.id || this.svg.attr("id") || S3(),
      minX: 0,
      maxX: 0,
      minY: 0,
      maxY: 0
    }, this.g = this.svg.append("g"), this.debouncedRefresh = N3(() => this.setData(), 200), this.revokers.push(
      Vg.tap(() => {
        this.setData();
      })
    );
  }
  getStyleContent() {
    const { style: t } = this.options, { id: r } = this.state, n = typeof t == "function" ? t(r) : "";
    return [this.options.embedGlobalCSS && Yg, n].filter(Boolean).join(`
`);
  }
  updateStyle() {
    this.svg.attr(
      "class",
      C3(this.svg.attr("class"), "markmap", this.state.id)
    );
    const t = this.getStyleContent();
    this.styleNode.text(t);
  }
  toggleNode(t, r = !1) {
    var n, i;
    const a = (n = t.payload) != null && n.fold ? 0 : 1;
    r ? C0(t, (o, c) => {
      o.payload = {
        ...o.payload,
        fold: a
      }, c();
    }) : t.payload = {
      ...t.payload,
      fold: (i = t.payload) != null && i.fold ? 0 : 1
    }, this.renderData(t);
  }
  initializeData(t) {
    let r = 0;
    const { color: n, nodeMinHeight: i, maxWidth: a, initialExpandLevel: o } = this.options, { id: c } = this.state, f = Ps(
      /* @__PURE__ */ Mi("div", { className: `markmap-container markmap ${c}-g` })
    ), m = Ps(
      /* @__PURE__ */ Mi("style", { children: [this.getStyleContent(), qg].join(`
`) })
    );
    document.body.append(f, m);
    const b = a ? `--markmap-max-width: ${a}px` : "";
    let A = 0, k = 0;
    C0(t, (M, F, q) => {
      var B, $, V;
      k += 1, M.children = (B = M.children) == null ? void 0 : B.map((se) => ({ ...se })), r += 1;
      const oe = Ps(
        /* @__PURE__ */ Mi(
          "div",
          {
            className: "markmap-foreign markmap-foreign-testing-max",
            style: b,
            children: /* @__PURE__ */ Mi("div", { dangerouslySetInnerHTML: { __html: M.content } })
          }
        )
      );
      f.append(oe), M.state = {
        ...M.state,
        depth: k,
        id: r,
        el: oe.firstChild
      }, M.state.path = [($ = q == null ? void 0 : q.state) == null ? void 0 : $.path, M.state.id].filter(Boolean).join("."), n(M);
      const pe = ((V = M.payload) == null ? void 0 : V.fold) === 2;
      pe ? A += 1 : (A || o >= 0 && M.state.depth >= o) && (M.payload = { ...M.payload, fold: 1 }), F(), pe && (A -= 1), k -= 1;
    });
    const N = Array.from(f.childNodes).map(
      (M) => M.firstChild
    );
    this._checkImages(f), N.forEach((M) => {
      var F;
      (F = M.parentNode) == null || F.append(M.cloneNode(!0));
    }), C0(t, (M, F, q) => {
      var B;
      const $ = M.state, V = $.el.getBoundingClientRect();
      M.content = $.el.innerHTML, $.size = [
        Math.ceil(V.width) + 1,
        Math.max(Math.ceil(V.height), i)
      ], $.key = [(B = q == null ? void 0 : q.state) == null ? void 0 : B.id, $.id].filter(Boolean).join(".") + // FIXME: find a way to check content hash
      M.content, F();
    }), f.remove(), m.remove();
  }
  _checkImages(t) {
    t.querySelectorAll("img").forEach((r) => {
      if (r.width)
        return;
      const n = this.imgCache[r.src];
      n != null && n[0] ? [r.width, r.height] = n : n || this._loadImage(r.src);
    });
  }
  _loadImage(t) {
    this.imgCache[t] = [0, 0];
    const r = new Image();
    r.src = t, r.onload = () => {
      this.imgCache[t] = [r.naturalWidth, r.naturalHeight], this.debouncedRefresh();
    };
  }
  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);
  }
  setData(t, r) {
    r && this.setOptions(r), t && (this.state.data = t), this.state.data && (this.initializeData(this.state.data), this.updateStyle(), this.renderData());
  }
  renderData(t) {
    if (!this.state.data)
      return;
    const { spacingHorizontal: r, paddingX: n, spacingVertical: i, autoFit: a, color: o } = this.options, c = yf({}).children((X) => {
      var Te;
      if (!((Te = X.payload) != null && Te.fold))
        return X.children;
    }).nodeSize((X) => {
      const [Te, Re] = X.data.state.size;
      return [Re, Te + (Te ? n * 2 : 0) + r];
    }).spacing((X, Te) => X.parent === Te.parent ? i : i * 2), f = c.hierarchy(this.state.data);
    c(f);
    const m = f.descendants().reverse(), b = f.links(), A = D7(), k = $c(m, (X) => X.x - X.xSize / 2), N = Kc(m, (X) => X.x + X.xSize / 2), M = $c(m, (X) => X.y), F = Kc(m, (X) => X.y + X.ySize - r);
    Object.assign(this.state, {
      minX: k,
      maxX: N,
      minY: M,
      maxY: F
    }), a && this.fit();
    const q = t && m.find((X) => X.data === t) || f, B = q.data.state.x0 ?? q.x, $ = q.data.state.y0 ?? q.y, V = this.g.selectAll(
      Rn("g")
    ).data(m, (X) => X.data.state.key), oe = V.enter().append("g").attr("data-depth", (X) => X.data.state.depth).attr("data-path", (X) => X.data.state.path).attr(
      "transform",
      (X) => `translate(${$ + q.ySize - X.ySize},${B + q.xSize / 2 - X.xSize})`
    ), pe = this.transition(V.exit());
    pe.select("line").attr("x1", (X) => X.ySize - r).attr("x2", (X) => X.ySize - r), pe.select("foreignObject").style("opacity", 0), pe.attr(
      "transform",
      (X) => `translate(${q.y + q.ySize - X.ySize},${q.x + q.xSize / 2 - X.xSize})`
    ).remove();
    const se = V.merge(oe).attr(
      "class",
      (X) => {
        var Te;
        return ["markmap-node", ((Te = X.data.payload) == null ? void 0 : Te.fold) && "markmap-fold"].filter(Boolean).join(" ");
      }
    );
    this.transition(se).attr(
      "transform",
      (X) => `translate(${X.y},${X.x - X.xSize / 2})`
    );
    const We = se.selectAll(
      Rn("line")
    ).data(
      (X) => [X],
      (X) => X.data.state.key
    ).join(
      (X) => X.append("line").attr("x1", (Te) => Te.ySize - r).attr("x2", (Te) => Te.ySize - r),
      (X) => X,
      (X) => X.remove()
    );
    this.transition(We).attr("x1", -1).attr("x2", (X) => X.ySize - r + 2).attr("y1", (X) => X.xSize).attr("y2", (X) => X.xSize).attr("stroke", (X) => o(X.data)).attr("stroke-width", Eh);
    const Qe = se.selectAll(
      Rn("circle")
    ).data(
      (X) => {
        var Te;
        return (Te = X.data.children) != null && Te.length ? [X] : [];
      },
      (X) => X.data.state.key
    ).join(
      (X) => X.append("circle").attr("stroke-width", "1.5").attr("cx", (Te) => Te.ySize - r).attr("cy", (Te) => Te.xSize).attr("r", 0).on("click", (Te, Re) => this.handleClick(Te, Re)).on("mousedown", Fs),
      (X) => X,
      (X) => X.remove()
    );
    this.transition(Qe).attr("r", 6).attr("cx", (X) => X.ySize - r).attr("cy", (X) => X.xSize).attr("stroke", (X) => o(X.data)).attr(
      "fill",
      (X) => {
        var Te;
        return (Te = X.data.payload) != null && Te.fold && X.data.children ? o(X.data) : "#fff";
      }
    );
    const Ve = se.selectAll(
      Rn("foreignObject")
    ).data(
      (X) => [X],
      (X) => X.data.state.key
    ).join(
      (X) => {
        const Te = X.append("foreignObject").attr("class", "markmap-foreign").attr("x", n).attr("y", 0).style("opacity", 0).on("mousedown", Fs).on("dblclick", Fs);
        return Te.append("xhtml:div").select(function(Re) {
          const Y = Re.data.state.el.cloneNode(!0);
          return this.replaceWith(Y), Y;
        }).attr("xmlns", "http://www.w3.org/1999/xhtml"), Te;
      },
      (X) => X,
      (X) => X.remove()
    ).attr(
      "width",
      (X) => Math.max(0, X.ySize - r - n * 2)
    ).attr("height", (X) => X.xSize);
    this.transition(Ve).style("opacity", 1);
    const Ze = this.g.selectAll(
      Rn("path")
    ).data(b, (X) => X.target.data.state.key).join(
      (X) => {
        const Te = [
          $ + q.ySize - r,
          B + q.xSize / 2
        ];
        return X.insert("path", "g").attr("class", "markmap-link").attr("data-depth", (Re) => Re.target.data.state.depth).attr("data-path", (Re) => Re.target.data.state.path).attr("d", A({ source: Te, target: Te }));
      },
      (X) => X,
      (X) => {
        const Te = [
          q.y + q.ySize - r,
          q.x + q.xSize / 2
        ];
        return this.transition(X).attr("d", A({ source: Te, target: Te })).remove();
      }
    );
    this.transition(Ze).attr("stroke", (X) => o(X.target.data)).attr("stroke-width", (X) => Eh(X.target)).attr("d", (X) => {
      const Te = X.source, Re = X.target, Y = [
        Te.y + Te.ySize - r,
        Te.x + Te.xSize / 2
      ], ce = [
        Re.y,
        Re.x + Re.xSize / 2
      ];
      return A({ source: Y, target: ce });
    }), m.forEach((X) => {
      X.data.state.x0 = X.x, X.data.state.y0 = X.y;
    });
  }
  transition(t) {
    const { duration: r } = this.options;
    return t.transition().duration(r);
  }
  /**
   * Fit the content to the viewport.
   */
  async fit() {
    const t = this.svg.node(), { width: r, height: n } = t.getBoundingClientRect(), { fitRatio: i } = this.options, { minX: a, maxX: o, minY: c, maxY: f } = this.state, m = f - c, b = o - a, A = Math.min(
      r / m * i,
      n / b * i,
      2
    ), k = Sa.translate(
      (r - m * A) / 2 - c * A,
      (n - b * A) / 2 - a * A
    ).scale(A);
    return this.transition(this.svg).call(this.zoom.transform, k).end().catch(S0);
  }
  findElement(t) {
    let r;
    return this.g.selectAll(
      Rn("g")
    ).each(function(n) {
      n.data === t && (r = {
        data: n,
        g: this
      });
    }), r;
  }
  /**
   * Pan the content to make the provided node visible in the viewport.
   */
  async ensureView(t, r) {
    var n;
    const i = (n = this.findElement(t)) == null ? void 0 : n.data;
    if (!i)
      return;
    const a = this.svg.node(), { spacingHorizontal: o } = this.options, c = a.getBoundingClientRect(), f = Ki(a), [m, b] = [
      i.y,
      i.y + i.ySize - o + 2
    ].map(($) => $ * f.k + f.x), [A, k] = [
      i.x - i.xSize / 2,
      i.x + i.xSize / 2
    ].map(($) => $ * f.k + f.y), N = {
      left: 0,
      right: 0,
      top: 0,
      bottom: 0,
      ...r
    }, M = [N.left - m, c.width - N.right - b], F = [N.top - A, c.height - N.bottom - k], q = M[0] * M[1] > 0 ? vh(M, Math.abs) / f.k : 0, B = F[0] * F[1] > 0 ? vh(F, Math.abs) / f.k : 0;
    if (q || B) {
      const $ = f.translate(q, B);
      return this.transition(this.svg).call(this.zoom.transform, $).end().catch(S0);
    }
  }
  /**
   * Scale content with it pinned at the center of the viewport.
   */
  async rescale(t) {
    const r = this.svg.node(), { width: n, height: i } = r.getBoundingClientRect(), a = n / 2, o = i / 2, c = Ki(r), f = c.translate(
      (a - c.x) * (1 - t) / c.k,
      (o - c.y) * (1 - t) / c.k
    ).scale(t);
    return this.transition(this.svg).call(this.zoom.transform, f).end().catch(S0);
  }
  destroy() {
    this.svg.on(".zoom", null), this.svg.html(null), this.revokers.forEach((t) => {
      t();
    });
  }
  static create(t, r, n = null) {
    const i = new no(t, r);
    return n && (i.setData(n), i.fit()), i;
  }
}
const io = {
  xml: !1,
  decodeEntities: !0
}, _h = {
  _useHtmlParser2: !0,
  xmlMode: !0
};
function xu(e) {
  return e != null && e.xml ? typeof e.xml == "boolean" ? _h : { ..._h, ...e.xml } : e ?? void 0;
}
var Ue;
(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";
})(Ue || (Ue = {}));
function Gg(e) {
  return e.type === Ue.Tag || e.type === Ue.Script || e.type === Ue.Style;
}
const Xg = Ue.Root, Wg = Ue.Text, jg = Ue.Directive, Kg = Ue.Comment, $g = Ue.Script, Qg = Ue.Style, Zg = Ue.Tag, Jg = Ue.CDATA, eb = Ue.Doctype;
let kf = class {
  constructor() {
    this.parent = null, this.prev = null, this.next = null, this.startIndex = null, this.endIndex = null;
  }
  // Read-write aliases for properties
  /**
   * Same as {@link parent}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get parentNode() {
    return this.parent;
  }
  set parentNode(t) {
    this.parent = t;
  }
  /**
   * Same as {@link prev}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get previousSibling() {
    return this.prev;
  }
  set previousSibling(t) {
    this.prev = t;
  }
  /**
   * Same as {@link next}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get nextSibling() {
    return this.next;
  }
  set nextSibling(t) {
    this.next = t;
  }
  /**
   * Clone this node, and optionally its children.
   *
   * @param recursive Clone child nodes as well.
   * @returns A clone of the node.
   */
  cloneNode(t = !1) {
    return sa(this, t);
  }
};
class ao extends kf {
  /**
   * @param data The content of the data node
   */
  constructor(t) {
    super(), this.data = t;
  }
  /**
   * Same as {@link data}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get nodeValue() {
    return this.data;
  }
  set nodeValue(t) {
    this.data = t;
  }
}
class H0 extends ao {
  constructor() {
    super(...arguments), this.type = Ue.Text;
  }
  get nodeType() {
    return 3;
  }
}
class so extends ao {
  constructor() {
    super(...arguments), this.type = Ue.Comment;
  }
  get nodeType() {
    return 8;
  }
}
class uo extends ao {
  constructor(t, r) {
    super(r), this.name = t, this.type = Ue.Directive;
  }
  get nodeType() {
    return 1;
  }
}
class oo extends kf {
  /**
   * @param children Children of the node. Only certain node types can have children.
   */
  constructor(t) {
    super(), this.children = t;
  }
  // Aliases
  /** First child of the node. */
  get firstChild() {
    var t;
    return (t = this.children[0]) !== null && t !== void 0 ? t : null;
  }
  /** Last child of the node. */
  get lastChild() {
    return this.children.length > 0 ? this.children[this.children.length - 1] : null;
  }
  /**
   * Same as {@link children}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get childNodes() {
    return this.children;
  }
  set childNodes(t) {
    this.children = t;
  }
}
class wf extends oo {
  constructor() {
    super(...arguments), this.type = Ue.CDATA;
  }
  get nodeType() {
    return 4;
  }
}
class pn extends oo {
  constructor() {
    super(...arguments), this.type = Ue.Root;
  }
  get nodeType() {
    return 9;
  }
}
class lo extends oo {
  /**
   * @param name Name of the tag, eg. `div`, `span`.
   * @param attribs Object mapping attribute names to attribute values.
   * @param children Children of the node.
   */
  constructor(t, r, n = [], i = t === "script" ? Ue.Script : t === "style" ? Ue.Style : Ue.Tag) {
    super(n), this.name = t, this.attribs = r, this.type = i;
  }
  get nodeType() {
    return 1;
  }
  // DOM Level 1 aliases
  /**
   * Same as {@link name}.
   * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.
   */
  get tagName() {
    return this.name;
  }
  set tagName(t) {
    this.name = t;
  }
  get attributes() {
    return Object.keys(this.attribs).map((t) => {
      var r, n;
      return {
        name: t,
        value: this.attribs[t],
        namespace: (r = this["x-attribsNamespace"]) === null || r === void 0 ? void 0 : r[t],
        prefix: (n = this["x-attribsPrefix"]) === null || n === void 0 ? void 0 : n[t]
      };
    });
  }
}
function Se(e) {
  return Gg(e);
}
function Ca(e) {
  return e.type === Ue.CDATA;
}
function pr(e) {
  return e.type === Ue.Text;
}
function ka(e) {
  return e.type === Ue.Comment;
}
function yu(e) {
  return e.type === Ue.Directive;
}
function En(e) {
  return e.type === Ue.Root;
}
function pt(e) {
  return Object.prototype.hasOwnProperty.call(e, "children");
}
function sa(e, t = !1) {
  let r;
  if (pr(e))
    r = new H0(e.data);
  else if (ka(e))
    r = new so(e.data);
  else if (Se(e)) {
    const n = t ? Hs(e.children) : [], i = new lo(e.name, { ...e.attribs }, n);
    n.forEach((a) => a.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"] }), r = i;
  } else if (Ca(e)) {
    const n = t ? Hs(e.children) : [], i = new wf(n);
    n.forEach((a) => a.parent = i), r = i;
  } else if (En(e)) {
    const n = t ? Hs(e.children) : [], i = new pn(n);
    n.forEach((a) => a.parent = i), e["x-mode"] && (i["x-mode"] = e["x-mode"]), r = i;
  } else if (yu(e)) {
    const n = new uo(e.name, e.data);
    e["x-name"] != null && (n["x-name"] = e["x-name"], n["x-publicId"] = e["x-publicId"], n["x-systemId"] = e["x-systemId"]), r = n;
  } else
    throw new Error(`Not implemented yet: ${e.type}`);
  return r.startIndex = e.startIndex, r.endIndex = e.endIndex, e.sourceCodeLocation != null && (r.sourceCodeLocation = e.sourceCodeLocation), r;
}
function Hs(e) {
  const t = e.map((r) => sa(r, !0));
  for (let r = 1; r < t.length; r++)
    t[r].prev = t[r - 1], t[r - 1].next = t[r];
  return t;
}
const Th = {
  withStartIndices: !1,
  withEndIndices: !1,
  xmlMode: !1
};
class tb {
  /**
   * @param callback Called once parsing has completed.
   * @param options Settings for the handler.
   * @param elementCB Callback whenever a tag is closed.
   */
  constructor(t, r, n) {
    this.dom = [], this.root = new pn(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null, typeof r == "function" && (n = r, r = Th), typeof t == "object" && (r = t, t = void 0), this.callback = t ?? null, this.options = r ?? Th, this.elementCB = n ?? null;
  }
  onparserinit(t) {
    this.parser = t;
  }
  // Resets the handler back to starting state
  onreset() {
    this.dom = [], this.root = new pn(this.dom), this.done = !1, this.tagStack = [this.root], this.lastNode = null, this.parser = null;
  }
  // Signals the handler that parsing is done
  onend() {
    this.done || (this.done = !0, this.parser = null, this.handleCallback(null));
  }
  onerror(t) {
    this.handleCallback(t);
  }
  onclosetag() {
    this.lastNode = null;
    const t = this.tagStack.pop();
    this.options.withEndIndices && (t.endIndex = this.parser.endIndex), this.elementCB && this.elementCB(t);
  }
  onopentag(t, r) {
    const n = this.options.xmlMode ? Ue.Tag : void 0, i = new lo(t, r, void 0, n);
    this.addNode(i), this.tagStack.push(i);
  }
  ontext(t) {
    const { lastNode: r } = this;
    if (r && r.type === Ue.Text)
      r.data += t, this.options.withEndIndices && (r.endIndex = this.parser.endIndex);
    else {
      const n = new H0(t);
      this.addNode(n), this.lastNode = n;
    }
  }
  oncomment(t) {
    if (this.lastNode && this.lastNode.type === Ue.Comment) {
      this.lastNode.data += t;
      return;
    }
    const r = new so(t);
    this.addNode(r), this.lastNode = r;
  }
  oncommentend() {
    this.lastNode = null;
  }
  oncdatastart() {
    const t = new H0(""), r = new wf([t]);
    this.addNode(r), t.parent = r, this.lastNode = t;
  }
  oncdataend() {
    this.lastNode = null;
  }
  onprocessinginstruction(t, r) {
    const n = new uo(t, r);
    this.addNode(n);
  }
  handleCallback(t) {
    if (typeof this.callback == "function")
      this.callback(t, this.dom);
    else if (t)
      throw t;
  }
  addNode(t) {
    const r = this.tagStack[this.tagStack.length - 1], n = r.children[r.children.length - 1];
    this.options.withStartIndices && (t.startIndex = this.parser.startIndex), this.options.withEndIndices && (t.endIndex = this.parser.endIndex), r.children.push(t), n && (t.prev = n, n.next = t), t.parent = r, this.lastNode = null;
  }
}
const kr = new Uint16Array(
  // prettier-ignore
  'ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTǇǋǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉ǲኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻ǲᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤĳạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ﬃɩᾹ\0\0᾽g;耀ﬀig;耀ﬄ;쀀𝔣lig;耀ﬁlig;쀀fjƀaltῙ῜ῡt;晭ig;耀ﬂns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒α‚‰‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସǳ⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗǈⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼ǲ㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((e) => e.charCodeAt(0))
), Nf = new Uint16Array(
  // prettier-ignore
  "Ȁaglq	\x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((e) => e.charCodeAt(0))
);
var Us;
const rb = /* @__PURE__ */ new Map([
  [0, 65533],
  // C1 Unicode control character reference replacements
  [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]
]), Su = (
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
  (Us = String.fromCodePoint) !== null && Us !== void 0 ? Us : 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 If(e) {
  var t;
  return e >= 55296 && e <= 57343 || e > 1114111 ? 65533 : (t = rb.get(e)) !== null && t !== void 0 ? t : e;
}
var mt;
(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";
})(mt || (mt = {}));
const nb = 32;
var zt;
(function(e) {
  e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.BRANCH_LENGTH = 16256] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE";
})(zt || (zt = {}));
function Cu(e) {
  return e >= mt.ZERO && e <= mt.NINE;
}
function ib(e) {
  return e >= mt.UPPER_A && e <= mt.UPPER_F || e >= mt.LOWER_A && e <= mt.LOWER_F;
}
function ab(e) {
  return e >= mt.UPPER_A && e <= mt.UPPER_Z || e >= mt.LOWER_A && e <= mt.LOWER_Z || Cu(e);
}
function sb(e) {
  return e === mt.EQUALS || ab(e);
}
var dt;
(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";
})(dt || (dt = {}));
var un;
(function(e) {
  e[e.Legacy = 0] = "Legacy", e[e.Strict = 1] = "Strict", e[e.Attribute = 2] = "Attribute";
})(un || (un = {}));
class ub {
  constructor(t, r, n) {
    this.decodeTree = t, this.emitCodePoint = r, this.errors = n, this.state = dt.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = un.Strict;
  }
  /** Resets the instance to make it reusable. */
  startEntity(t) {
    this.decodeMode = t, this.state = dt.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1;
  }
  /**
   * Write an entity to the decoder. This can be called multiple times with partial entities.
   * If the entity is incomplete, the decoder will return -1.
   *
   * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
   * entity is incomplete, and resume when the next string is written.
   *
   * @param string The string containing the entity (or a continuation of the entity).
   * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  write(t, r) {
    switch (this.state) {
      case dt.EntityStart:
        return t.charCodeAt(r) === mt.NUM ? (this.state = dt.NumericStart, this.consumed += 1, this.stateNumericStart(t, r + 1)) : (this.state = dt.NamedEntity, this.stateNamedEntity(t, r));
      case dt.NumericStart:
        return this.stateNumericStart(t, r);
      case dt.NumericDecimal:
        return this.stateNumericDecimal(t, r);
      case dt.NumericHex:
        return this.stateNumericHex(t, r);
      case dt.NamedEntity:
        return this.stateNamedEntity(t, r);
    }
  }
  /**
   * Switches between the numeric decimal and hexadecimal states.
   *
   * Equivalent to the `Numeric character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNumericStart(t, r) {
    return r >= t.length ? -1 : (t.charCodeAt(r) | nb) === mt.LOWER_X ? (this.state = dt.NumericHex, this.consumed += 1, this.stateNumericHex(t, r + 1)) : (this.state = dt.NumericDecimal, this.stateNumericDecimal(t, r));
  }
  addToNumericResult(t, r, n, i) {
    if (r !== n) {
      const a = n - r;
      this.result = this.result * Math.pow(i, a) + parseInt(t.substr(r, a), i), this.consumed += a;
    }
  }
  /**
   * Parses a hexadecimal numeric entity.
   *
   * Equivalent to the `Hexademical character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNumericHex(t, r) {
    const n = r;
    for (; r < t.length; ) {
      const i = t.charCodeAt(r);
      if (Cu(i) || ib(i))
        r += 1;
      else
        return this.addToNumericResult(t, n, r, 16), this.emitNumericEntity(i, 3);
    }
    return this.addToNumericResult(t, n, r, 16), -1;
  }
  /**
   * Parses a decimal numeric entity.
   *
   * Equivalent to the `Decimal character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNumericDecimal(t, r) {
    const n = r;
    for (; r < t.length; ) {
      const i = t.charCodeAt(r);
      if (Cu(i))
        r += 1;
      else
        return this.addToNumericResult(t, n, r, 10), this.emitNumericEntity(i, 2);
    }
    return this.addToNumericResult(t, n, r, 10), -1;
  }
  /**
   * Validate and emit a numeric entity.
   *
   * Implements the logic from the `Hexademical character reference start
   * state` and `Numeric character reference end state` in the HTML spec.
   *
   * @param lastCp The last code point of the entity. Used to see if the
   *               entity was terminated with a semicolon.
   * @param expectedLength The minimum number of characters that should be
   *                       consumed. Used to validate that at least one digit
   *                       was consumed.
   * @returns The number of characters that were consumed.
   */
  emitNumericEntity(t, r) {
    var n;
    if (this.consumed <= r)
      return (n = this.errors) === null || n === void 0 || n.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
    if (t === mt.SEMI)
      this.consumed += 1;
    else if (this.decodeMode === un.Strict)
      return 0;
    return this.emitCodePoint(If(this.result), this.consumed), this.errors && (t !== mt.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
  }
  /**
   * Parses a named entity.
   *
   * Equivalent to the `Named character reference state` in the HTML spec.
   *
   * @param str The string containing the entity (or a continuation of the entity).
   * @param offset The current offset.
   * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
   */
  stateNamedEntity(t, r) {
    const { decodeTree: n } = this;
    let i = n[this.treeIndex], a = (i & zt.VALUE_LENGTH) >> 14;
    for (; r < t.length; r++, this.excess++) {
      const o = t.charCodeAt(r);
      if (this.treeIndex = co(n, i, this.treeIndex + Math.max(1, a), o), this.treeIndex < 0)
        return this.result === 0 || // If we are parsing an attribute
        this.decodeMode === un.Attribute && // We shouldn't have consumed any characters after the entity,
        (a === 0 || // And there should be no invalid characters.
        sb(o)) ? 0 : this.emitNotTerminatedNamedEntity();
      if (i = n[this.treeIndex], a = (i & zt.VALUE_LENGTH) >> 14, a !== 0) {
        if (o === mt.SEMI)
          return this.emitNamedEntityData(this.treeIndex, a, this.consumed + this.excess);
        this.decodeMode !== un.Strict && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0);
      }
    }
    return -1;
  }
  /**
   * Emit a named entity that was not terminated with a semicolon.
   *
   * @returns The number of characters consumed.
   */
  emitNotTerminatedNamedEntity() {
    var t;
    const { result: r, decodeTree: n } = this, i = (n[r] & zt.VALUE_LENGTH) >> 14;
    return this.emitNamedEntityData(r, i, this.consumed), (t = this.errors) === null || t === void 0 || t.missingSemicolonAfterCharacterReference(), this.consumed;
  }
  /**
   * Emit a named entity.
   *
   * @param result The index of the entity in the decode tree.
   * @param valueLength The number of bytes in the entity.
   * @param consumed The number of characters consumed.
   *
   * @returns The number of characters consumed.
   */
  emitNamedEntityData(t, r, n) {
    const { decodeTree: i } = this;
    return this.emitCodePoint(r === 1 ? i[t] & ~zt.VALUE_LENGTH : i[t + 1], n), r === 3 && this.emitCodePoint(i[t + 2], n), n;
  }
  /**
   * Signal to the parser that the end of the input was reached.
   *
   * Remaining data will be emitted and relevant errors will be produced.
   *
   * @returns The number of characters consumed.
   */
  end() {
    var t;
    switch (this.state) {
      case dt.NamedEntity:
        return this.result !== 0 && (this.decodeMode !== un.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
      case dt.NumericDecimal:
        return this.emitNumericEntity(0, 2);
      case dt.NumericHex:
        return this.emitNumericEntity(0, 3);
      case dt.NumericStart:
        return (t = this.errors) === null || t === void 0 || t.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
      case dt.EntityStart:
        return 0;
    }
  }
}
function Mf(e) {
  let t = "";
  const r = new ub(e, (n) => t += Su(n));
  return function(i, a) {
    let o = 0, c = 0;
    for (; (c = i.indexOf("&", c)) >= 0; ) {
      t += i.slice(o, c), r.startEntity(a);
      const m = r.write(
        i,
        // Skip the "&"
        c + 1
      );
      if (m < 0) {
        o = c + r.end();
        break;
      }
      o = c + m, c = m === 0 ? o + 1 : o;
    }
    const f = t + i.slice(o);
    return t = "", f;
  };
}
function co(e, t, r, n) {
  const i = (t & zt.BRANCH_LENGTH) >> 7, a = t & zt.JUMP_TABLE;
  if (i === 0)
    return a !== 0 && n === a ? r : -1;
  if (a) {
    const f = n - a;
    return f < 0 || f >= i ? -1 : e[r + f] - 1;
  }
  let o = r, c = o + i - 1;
  for (; o <= c; ) {
    const f = o + c >>> 1, m = e[f];
    if (m < n)
      o = f + 1;
    else if (m > n)
      c = f - 1;
    else
      return e[f + i];
  }
  return -1;
}
Mf(kr);
Mf(Nf);
const Ah = /["&'<>$\x80-\uFFFF]/g, ob = /* @__PURE__ */ new Map([
  [34, "&quot;"],
  [38, "&amp;"],
  [39, "&apos;"],
  [60, "&lt;"],
  [62, "&gt;"]
]), lb = (
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
  String.prototype.codePointAt != null ? (e, t) => e.codePointAt(t) : (
    // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
    (e, t) => (e.charCodeAt(t) & 64512) === 55296 ? (e.charCodeAt(t) - 55296) * 1024 + e.charCodeAt(t + 1) - 56320 + 65536 : e.charCodeAt(t)
  )
);
function Df(e) {
  let t = "", r = 0, n;
  for (; (n = Ah.exec(e)) !== null; ) {
    const i = n.index, a = e.charCodeAt(i), o = ob.get(a);
    o !== void 0 ? (t += e.substring(r, i) + o, r = i + 1) : (t += `${e.substring(r, i)}&#x${lb(e, i).toString(16)};`, r = Ah.lastIndex += +((a & 64512) === 55296));
  }
  return t + e.substr(r);
}
function Rf(e, t) {
  return function(n) {
    let i, a = 0, o = "";
    for (; i = e.exec(n); )
      a !== i.index && (o += n.substring(a, i.index)), o += t.get(i[0].charCodeAt(0)), a = i.index + 1;
    return o + n.substring(a);
  };
}
const Of = Rf(/["&\u00A0]/g, /* @__PURE__ */ new Map([
  [34, "&quot;"],
  [38, "&amp;"],
  [160, "&nbsp;"]
])), Lf = Rf(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
  [38, "&amp;"],
  [60, "&lt;"],
  [62, "&gt;"],
  [160, "&nbsp;"]
])), cb = 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])), hb = 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])), fb = /* @__PURE__ */ new Set([
  "style",
  "script",
  "xmp",
  "iframe",
  "noembed",
  "noframes",
  "plaintext",
  "noscript"
]);
function db(e) {
  return e.replace(/"/g, "&quot;");
}
function mb(e, t) {
  var r;
  if (!e)
    return;
  const n = ((r = t.encodeEntities) !== null && r !== void 0 ? r : t.decodeEntities) === !1 ? db : t.xmlMode || t.encodeEntities !== "utf8" ? Df : Of;
  return Object.keys(e).map((i) => {
    var a, o;
    const c = (a = e[i]) !== null && a !== void 0 ? a : "";
    return t.xmlMode === "foreign" && (i = (o = hb.get(i)) !== null && o !== void 0 ? o : i), !t.emptyAttrs && !t.xmlMode && c === "" ? i : `${i}="${n(c)}"`;
  }).join(" ");
}
const xh = /* @__PURE__ */ new Set([
  "area",
  "base",
  "basefont",
  "br",
  "col",
  "command",
  "embed",
  "frame",
  "hr",
  "img",
  "input",
  "isindex",
  "keygen",
  "link",
  "meta",
  "param",
  "source",
  "track",
  "wbr"
]);
function wa(e, t = {}) {
  const r = "length" in e ? e : [e];
  let n = "";
  for (let i = 0; i < r.length; i++)
    n += pb(r[i], t);
  return n;
}
function pb(e, t) {
  switch (e.type) {
    case Xg:
      return wa(e.children, t);
    case eb:
    case jg:
      return vb(e);
    case Kg:
      return Ab(e);
    case Jg:
      return Tb(e);
    case $g:
    case Qg:
    case Zg:
      return Eb(e, t);
    case Wg:
      return _b(e, t);
  }
}
const gb = /* @__PURE__ */ new Set([
  "mi",
  "mo",
  "mn",
  "ms",
  "mtext",
  "annotation-xml",
  "foreignObject",
  "desc",
  "title"
]), bb = /* @__PURE__ */ new Set(["svg", "math"]);
function Eb(e, t) {
  var r;
  t.xmlMode === "foreign" && (e.name = (r = cb.get(e.name)) !== null && r !== void 0 ? r : e.name, e.parent && gb.has(e.parent.name) && (t = { ...t, xmlMode: !1 })), !t.xmlMode && bb.has(e.name) && (t = { ...t, xmlMode: "foreign" });
  let n = `<${e.name}`;
  const i = mb(e.attribs, t);
  return i && (n += ` ${i}`), e.children.length === 0 && (t.xmlMode ? (
    // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
    t.selfClosingTags !== !1
  ) : (
    // User explicitly asked for self-closing tags, even in HTML mode
    t.selfClosingTags && xh.has(e.name)
  )) ? (t.xmlMode || (n += " "), n += "/>") : (n += ">", e.children.length > 0 && (n += wa(e.children, t)), (t.xmlMode || !xh.has(e.name)) && (n += `</${e.name}>`)), n;
}
function vb(e) {
  return `<${e.data}>`;
}
function _b(e, t) {
  var r;
  let n = e.data || "";
  return ((r = t.encodeEntities) !== null && r !== void 0 ? r : t.decodeEntities) !== !1 && !(!t.xmlMode && e.parent && fb.has(e.parent.name)) && (n = t.xmlMode || t.encodeEntities !== "utf8" ? Df(n) : Lf(n)), n;
}
function Tb(e) {
  return `<![CDATA[${e.children[0].data}]]>`;
}
function Ab(e) {
  return `<!--${e.data}-->`;
}
function Bf(e, t) {
  return wa(e, t);
}
function xb(e, t) {
  return pt(e) ? e.children.map((r) => Bf(r, t)).join("") : "";
}
function $i(e) {
  return Array.isArray(e) ? e.map($i).join("") : Se(e) ? e.name === "br" ? `
` : $i(e.children) : Ca(e) ? $i(e.children) : pr(e) ? e.data : "";
}
function Zn(e) {
  return Array.isArray(e) ? e.map(Zn).join("") : pt(e) && !ka(e) ? Zn(e.children) : pr(e) ? e.data : "";
}
function ua(e) {
  return Array.isArray(e) ? e.map(ua).join("") : pt(e) && (e.type === Ue.Tag || Ca(e)) ? ua(e.children) : pr(e) ? e.data : "";
}
function Na(e) {
  return pt(e) ? e.children : [];
}
function Pf(e) {
  return e.parent || null;
}
function Ff(e) {
  const t = Pf(e);
  if (t != null)
    return Na(t);
  const r = [e];
  let { prev: n, next: i } = e;
  for (; n != null; )
    r.unshift(n), { prev: n } = n;
  for (; i != null; )
    r.push(i), { next: i } = i;
  return r;
}
function yb(e, t) {
  var r;
  return (r = e.attribs) === null || r === void 0 ? void 0 : r[t];
}
function Sb(e, t) {
  return e.attribs != null && Object.prototype.hasOwnProperty.call(e.attribs, t) && e.attribs[t] != null;
}
function Cb(e) {
  return e.name;
}
function ho(e) {
  let { next: t } = e;
  for (; t !== null && !Se(t); )
    ({ next: t } = t);
  return t;
}
function fo(e) {
  let { prev: t } = e;
  for (; t !== null && !Se(t); )
    ({ prev: t } = t);
  return t;
}
function vn(e) {
  if (e.prev && (e.prev.next = e.next), e.next && (e.next.prev = e.prev), e.parent) {
    const t = e.parent.children, r = t.lastIndexOf(e);
    r >= 0 && t.splice(r, 1);
  }
  e.next = null, e.prev = null, e.parent = null;
}
function kb(e, t) {
  const r = t.prev = e.prev;
  r && (r.next = t);
  const n = t.next = e.next;
  n && (n.prev = t);
  const i = t.parent = e.parent;
  if (i) {
    const a = i.children;
    a[a.lastIndexOf(e)] = t, e.parent = null;
  }
}
function wb(e, t) {
  if (vn(t), t.next = null, t.parent = e, e.children.push(t) > 1) {
    const r = e.children[e.children.length - 2];
    r.next = t, t.prev = r;
  } else
    t.prev = null;
}
function Nb(e, t) {
  vn(t);
  const { parent: r } = e, n = e.next;
  if (t.next = n, t.prev = e, e.next = t, t.parent = r, n) {
    if (n.prev = t, r) {
      const i = r.children;
      i.splice(i.lastIndexOf(n), 0, t);
    }
  } else
    r && r.children.push(t);
}
function Ib(e, t) {
  if (vn(t), t.parent = e, t.prev = null, e.children.unshift(t) !== 1) {
    const r = e.children[1];
    r.prev = t, t.next = r;
  } else
    t.next = null;
}
function Mb(e, t) {
  vn(t);
  const { parent: r } = e;
  if (r) {
    const n = r.children;
    n.splice(n.indexOf(e), 0, t);
  }
  e.prev && (e.prev.next = t), t.parent = r, t.prev = e.prev, t.next = e, e.prev = t;
}
function Ia(e, t, r = !0, n = 1 / 0) {
  return mo(e, Array.isArray(t) ? t : [t], r, n);
}
function mo(e, t, r, n) {
  const i = [], a = [t], o = [0];
  for (; ; ) {
    if (o[0] >= a[0].length) {
      if (o.length === 1)
        return i;
      a.shift(), o.shift();
      continue;
    }
    const c = a[0][o[0]++];
    if (e(c) && (i.push(c), --n <= 0))
      return i;
    r && pt(c) && c.children.length > 0 && (o.unshift(0), a.unshift(c.children));
  }
}
function Db(e, t) {
  return t.find(e);
}
function po(e, t, r = !0) {
  let n = null;
  for (let i = 0; i < t.length && !n; i++) {
    const a = t[i];
    if (Se(a))
      e(a) ? n = a : r && a.children.length > 0 && (n = po(e, a.children, !0));
    else
      continue;
  }
  return n;
}
function Hf(e, t) {
  return t.some((r) => Se(r) && (e(r) || Hf(e, r.children)));
}
function Rb(e, t) {
  const r = [], n = [t], i = [0];
  for (; ; ) {
    if (i[0] >= n[0].length) {
      if (n.length === 1)
        return r;
      n.shift(), i.shift();
      continue;
    }
    const a = n[0][i[0]++];
    Se(a) && (e(a) && r.push(a), a.children.length > 0 && (i.unshift(0), n.unshift(a.children)));
  }
}
const oa = {
  tag_name(e) {
    return typeof e == "function" ? (t) => Se(t) && e(t.name) : e === "*" ? Se : (t) => Se(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) => pr(t) && e(t.data) : (t) => pr(t) && t.data === e;
  }
};
function Uf(e, t) {
  return typeof t == "function" ? (r) => Se(r) && t(r.attribs[e]) : (r) => Se(r) && r.attribs[e] === t;
}
function Ob(e, t) {
  return (r) => e(r) || t(r);
}
function zf(e) {
  const t = Object.keys(e).map((r) => {
    const n = e[r];
    return Object.prototype.hasOwnProperty.call(oa, r) ? oa[r](n) : Uf(r, n);
  });
  return t.length === 0 ? null : t.reduce(Ob);
}
function Lb(e, t) {
  const r = zf(e);
  return r ? r(t) : !0;
}
function Bb(e, t, r, n = 1 / 0) {
  const i = zf(e);
  return i ? Ia(i, t, r, n) : [];
}
function Pb(e, t, r = !0) {
  return Array.isArray(t) || (t = [t]), po(Uf("id", e), t, r);
}
function r0(e, t, r = !0, n = 1 / 0) {
  return Ia(oa.tag_name(e), t, r, n);
}
function Fb(e, t, r = !0, n = 1 / 0) {
  return Ia(oa.tag_type(e), t, r, n);
}
function Hb(e) {
  let t = e.length;
  for (; --t >= 0; ) {
    const r = e[t];
    if (t > 0 && e.lastIndexOf(r, t - 1) >= 0) {
      e.splice(t, 1);
      continue;
    }
    for (let n = r.parent; n; n = n.parent)
      if (e.includes(n)) {
        e.splice(t, 1);
        break;
      }
  }
  return e;
}
var $t;
(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";
})($t || ($t = {}));
function qf(e, t) {
  const r = [], n = [];
  if (e === t)
    return 0;
  let i = pt(e) ? e : e.parent;
  for (; i; )
    r.unshift(i), i = i.parent;
  for (i = pt(t) ? t : t.parent; i; )
    n.unshift(i), i = i.parent;
  const a = Math.min(r.length, n.length);
  let o = 0;
  for (; o < a && r[o] === n[o]; )
    o++;
  if (o === 0)
    return $t.DISCONNECTED;
  const c = r[o - 1], f = c.children, m = r[o], b = n[o];
  return f.indexOf(m) > f.indexOf(b) ? c === t ? $t.FOLLOWING | $t.CONTAINED_BY : $t.FOLLOWING : c === e ? $t.PRECEDING | $t.CONTAINS : $t.PRECEDING;
}
function n0(e) {
  return e = e.filter((t, r, n) => !n.includes(t, r + 1)), e.sort((t, r) => {
    const n = qf(t, r);
    return n & $t.PRECEDING ? -1 : n & $t.FOLLOWING ? 1 : 0;
  }), e;
}
function Ub(e) {
  const t = la(Gb, e);
  return t ? t.name === "feed" ? zb(t) : qb(t) : null;
}
function zb(e) {
  var t;
  const r = e.children, n = {
    type: "atom",
    items: r0("entry", r).map((o) => {
      var c;
      const { children: f } = o, m = { media: Yf(f) };
      Mt(m, "id", "id", f), Mt(m, "title", "title", f);
      const b = (c = la("link", f)) === null || c === void 0 ? void 0 : c.attribs.href;
      b && (m.link = b);
      const A = Wr("summary", f) || Wr("content", f);
      A && (m.description = A);
      const k = Wr("updated", f);
      return k && (m.pubDate = new Date(k)), m;
    })
  };
  Mt(n, "id", "id", r), Mt(n, "title", "title", r);
  const i = (t = la("link", r)) === null || t === void 0 ? void 0 : t.attribs.href;
  i && (n.link = i), Mt(n, "description", "subtitle", r);
  const a = Wr("updated", r);
  return a && (n.updated = new Date(a)), Mt(n, "author", "email", r, !0), n;
}
function qb(e) {
  var t, r;
  const n = (r = (t = la("channel", e.children)) === null || t === void 0 ? void 0 : t.children) !== null && r !== void 0 ? r : [], i = {
    type: e.name.substr(0, 3),
    id: "",
    items: r0("item", e.children).map((o) => {
      const { children: c } = o, f = { media: Yf(c) };
      Mt(f, "id", "guid", c), Mt(f, "title", "title", c), Mt(f, "link", "link", c), Mt(f, "description", "description", c);
      const m = Wr("pubDate", c) || Wr("dc:date", c);
      return m && (f.pubDate = new Date(m)), f;
    })
  };
  Mt(i, "title", "title", n), Mt(i, "link", "link", n), Mt(i, "description", "description", n);
  const a = Wr("lastBuildDate", n);
  return a && (i.updated = new Date(a)), Mt(i, "author", "managingEditor", n, !0), i;
}
const Yb = ["url", "type", "lang"], Vb = [
  "fileSize",
  "bitrate",
  "framerate",
  "samplingrate",
  "channels",
  "duration",
  "height",
  "width"
];
function Yf(e) {
  return r0("media:content", e).map((t) => {
    const { attribs: r } = t, n = {
      medium: r.medium,
      isDefault: !!r.isDefault
    };
    for (const i of Yb)
      r[i] && (n[i] = r[i]);
    for (const i of Vb)
      r[i] && (n[i] = parseInt(r[i], 10));
    return r.expression && (n.expression = r.expression), n;
  });
}
function la(e, t) {
  return r0(e, t, !0, 1)[0];
}
function Wr(e, t, r = !1) {
  return Zn(r0(e, t, r, 1)).trim();
}
function Mt(e, t, r, n, i = !1) {
  const a = Wr(r, n, i);
  a && (e[t] = a);
}
function Gb(e) {
  return e === "rss" || e === "feed" || e === "rdf:RDF";
}
const Ma = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  get DocumentPosition() {
    return $t;
  },
  append: Nb,
  appendChild: wb,
  compareDocumentPosition: qf,
  existsOne: Hf,
  filter: Ia,
  find: mo,
  findAll: Rb,
  findOne: po,
  findOneChild: Db,
  getAttributeValue: yb,
  getChildren: Na,
  getElementById: Pb,
  getElements: Bb,
  getElementsByTagName: r0,
  getElementsByTagType: Fb,
  getFeed: Ub,
  getInnerHTML: xb,
  getName: Cb,
  getOuterHTML: Bf,
  getParent: Pf,
  getSiblings: Ff,
  getText: $i,
  hasAttrib: Sb,
  hasChildren: pt,
  innerText: ua,
  isCDATA: Ca,
  isComment: ka,
  isDocument: En,
  isTag: Se,
  isText: pr,
  nextElementSibling: ho,
  prepend: Mb,
  prependChild: Ib,
  prevElementSibling: fo,
  removeElement: vn,
  removeSubsets: Hb,
  replaceElement: kb,
  testElement: Lb,
  textContent: Zn,
  uniqueSort: n0
}, Symbol.toStringTag, { value: "Module" }));
function Vf(e, t, r) {
  return e ? e(t ?? e._root.children, null, void 0, r).toString() : "";
}
function Xb(e, t) {
  return !t && typeof e == "object" && e != null && !("length" in e) && !("type" in e);
}
function Wb(e, t) {
  const r = Xb(e) ? (t = e, void 0) : e, n = {
    ...io,
    ...this === null || this === void 0 ? void 0 : this._options,
    ...xu(t ?? {})
  };
  return Vf(this, r, n);
}
function jb(e) {
  const t = { ...this._options, xmlMode: !0 };
  return Vf(this, e, t);
}
function U0(e) {
  const t = e || (this ? this.root() : []);
  let r = "";
  for (let n = 0; n < t.length; n++)
    r += Zn(t[n]);
  return r;
}
function Kb(e, t, r = typeof t == "boolean" ? t : !1) {
  if (!e || typeof e != "string")
    return null;
  typeof t == "boolean" && (r = t);
  const n = this.load(e, io, !1);
  return r || n("script").remove(), n.root()[0].children.slice();
}
function $b() {
  return this(this._root);
}
function Gf(e, t) {
  if (t === e)
    return !1;
  let r = t;
  for (; r && r !== r.parent; )
    if (r = r.parent, r === e)
      return !0;
  return !1;
}
function Qb(e, t) {
  if (!yh(e) || !yh(t))
    return;
  let r = e.length;
  const n = +t.length;
  for (let i = 0; i < n; i++)
    e[r++] = t[i];
  return e.length = r, e;
}
function yh(e) {
  if (Array.isArray(e))
    return !0;
  if (typeof e != "object" || !Object.prototype.hasOwnProperty.call(e, "length") || 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;
}
const Zb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  contains: Gf,
  html: Wb,
  merge: Qb,
  parseHTML: Kb,
  root: $b,
  text: U0,
  xml: jb
}, Symbol.toStringTag, { value: "Module" }));
function gr(e) {
  return e.cheerio != null;
}
function Jb(e) {
  return e.replace(/[_.-](\w|$)/g, (t, r) => r.toUpperCase());
}
function e9(e) {
  return e.replace(/[A-Z]/g, "-$&").toLowerCase();
}
function at(e, t) {
  const r = e.length;
  for (let n = 0; n < r; n++)
    t(e[n], n);
  return e;
}
function ku(e) {
  const t = "length" in e ? Array.prototype.map.call(e, (n) => sa(n, !0)) : [sa(e, !0)], r = new pn(t);
  return t.forEach((n) => {
    n.parent = r;
  }), t;
}
var on;
(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";
})(on || (on = {}));
function wu(e) {
  const t = e.indexOf("<");
  if (t < 0 || t > e.length - 3)
    return !1;
  const r = e.charCodeAt(t + 1);
  return (r >= on.LowerA && r <= on.LowerZ || r >= on.UpperA && r <= on.UpperZ || r === on.Exclamation) && e.includes(">", t + 2);
}
const Xn = Object.prototype.hasOwnProperty, z0 = /\s+/, zs = "data-", Sh = {
  null: null,
  true: !0,
  false: !1
}, go = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, t9 = /^{[^]*}$|^\[[^]*]$/;
function ca(e, t, r) {
  var n;
  if (!(!e || !Se(e))) {
    if ((n = e.attribs) !== null && n !== void 0 || (e.attribs = {}), !t)
      return e.attribs;
    if (Xn.call(e.attribs, t))
      return !r && go.test(t) ? t : e.attribs[t];
    if (e.name === "option" && t === "value")
      return U0(e.children);
    if (e.name === "input" && (e.attribs.type === "radio" || e.attribs.type === "checkbox") && t === "value")
      return "on";
  }
}
function Wn(e, t, r) {
  r === null ? Xf(e, t) : e.attribs[t] = `${r}`;
}
function r9(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 at(this, (r, n) => {
        Se(r) && Wn(r, e, t.call(r, n, r.attribs[e]));
      });
    }
    return at(this, (r) => {
      Se(r) && (typeof e == "object" ? Object.keys(e).forEach((n) => {
        const i = e[n];
        Wn(r, n, i);
      }) : Wn(r, e, t));
    });
  }
  return arguments.length > 1 ? this : ca(this[0], e, this.options.xmlMode);
}
function Ch(e, t, r) {
  return t in e ? (
    // @ts-expect-error TS doesn't like us accessing the value directly here.
    e[t]
  ) : !r && go.test(t) ? ca(e, t, !1) !== void 0 : ca(e, t, r);
}
function qs(e, t, r, n) {
  t in e ? e[t] = r : Wn(e, t, !n && go.test(t) ? r ? "" : null : `${r}`);
}
function n9(e, t) {
  var r;
  if (typeof e == "string" && t === void 0) {
    const n = this[0];
    if (!n || !Se(n))
      return;
    switch (e) {
      case "style": {
        const i = this.css(), a = Object.keys(i);
        return a.forEach((o, c) => {
          i[c] = o;
        }), i.length = a.length, i;
      }
      case "tagName":
      case "nodeName":
        return n.name.toUpperCase();
      case "href":
      case "src": {
        const i = (r = n.attribs) === null || r === void 0 ? void 0 : r[e];
        return typeof URL < "u" && (e === "href" && (n.tagName === "a" || n.name === "link") || e === "src" && (n.tagName === "img" || n.tagName === "iframe" || n.tagName === "audio" || n.tagName === "video" || n.tagName === "source")) && i !== void 0 && this.options.baseURI ? new URL(i, this.options.baseURI).href : i;
      }
      case "innerText":
        return ua(n);
      case "textContent":
        return Zn(n);
      case "outerHTML":
        return this.clone().wrap("<container />").parent().html();
      case "innerHTML":
        return this.html();
      default:
        return Ch(n, e, this.options.xmlMode);
    }
  }
  if (typeof e == "object" || t !== void 0) {
    if (typeof t == "function") {
      if (typeof e == "object")
        throw new Error("Bad combination of arguments.");
      return at(this, (n, i) => {
        Se(n) && qs(n, e, t.call(n, i, Ch(n, e, this.options.xmlMode)), this.options.xmlMode);
      });
    }
    return at(this, (n) => {
      Se(n) && (typeof e == "object" ? Object.keys(e).forEach((i) => {
        const a = e[i];
        qs(n, i, a, this.options.xmlMode);
      }) : qs(n, e, t, this.options.xmlMode));
    });
  }
}
function kh(e, t, r) {
  var n;
  const i = e;
  (n = i.data) !== null && n !== void 0 || (i.data = {}), typeof t == "object" ? Object.assign(i.data, t) : typeof t == "string" && r !== void 0 && (i.data[t] = r);
}
function wh(e, t) {
  let r, n, i;
  t == null ? (r = Object.keys(e.attribs).filter((a) => a.startsWith(zs)), n = r.map((a) => Jb(a.slice(zs.length)))) : (r = [zs + e9(t)], n = [t]);
  for (let a = 0; a < r.length; ++a) {
    const o = r[a], c = n[a];
    if (Xn.call(e.attribs, o) && !Xn.call(e.data, c)) {
      if (i = e.attribs[o], Xn.call(Sh, i))
        i = Sh[i];
      else if (i === String(Number(i)))
        i = Number(i);
      else if (t9.test(i))
        try {
          i = JSON.parse(i);
        } catch {
        }
      e.data[c] = i;
    }
  }
  return t == null ? e.data : i;
}
function i9(e, t) {
  var r;
  const n = this[0];
  if (!n || !Se(n))
    return;
  const i = n;
  return (r = i.data) !== null && r !== void 0 || (i.data = {}), e ? typeof e == "object" || t !== void 0 ? (at(this, (a) => {
    Se(a) && (typeof e == "object" ? kh(a, e) : kh(a, e, t));
  }), this) : Xn.call(i.data, e) ? i.data[e] : wh(i, e) : wh(i);
}
function a9(e) {
  const t = arguments.length === 0, r = this[0];
  if (!r || !Se(r))
    return t ? void 0 : this;
  switch (r.name) {
    case "textarea":
      return this.text(e);
    case "select": {
      const n = this.find("option:selected");
      if (!t) {
        if (this.attr("multiple") == null && typeof e == "object")
          return this;
        this.find("option").removeAttr("selected");
        const i = typeof e != "object" ? [e] : e;
        for (let a = 0; a < i.length; a++)
          this.find(`option[value="${i[a]}"]`).attr("selected", "");
        return this;
      }
      return this.attr("multiple") ? n.toArray().map((i) => U0(i.children)) : n.attr("value");
    }
    case "input":
    case "option":
      return t ? this.attr("value") : this.attr("value", e);
  }
}
function Xf(e, t) {
  !e.attribs || !Xn.call(e.attribs, t) || delete e.attribs[t];
}
function ha(e) {
  return e ? e.trim().split(z0) : [];
}
function s9(e) {
  const t = ha(e);
  for (let r = 0; r < t.length; r++)
    at(this, (n) => {
      Se(n) && Xf(n, t[r]);
    });
  return this;
}
function u9(e) {
  return this.toArray().some((t) => {
    const r = Se(t) && t.attribs.class;
    let n = -1;
    if (r && e.length)
      for (; (n = r.indexOf(e, n + 1)) > -1; ) {
        const i = n + e.length;
        if ((n === 0 || z0.test(r[n - 1])) && (i === r.length || z0.test(r[i])))
          return !0;
      }
    return !1;
  });
}
function Wf(e) {
  if (typeof e == "function")
    return at(this, (n, i) => {
      if (Se(n)) {
        const a = n.attribs.class || "";
        Wf.call([n], e.call(n, i, a));
      }
    });
  if (!e || typeof e != "string")
    return this;
  const t = e.split(z0), r = this.length;
  for (let n = 0; n < r; n++) {
    const i = this[n];
    if (!Se(i))
      continue;
    const a = ca(i, "class", !1);
    if (!a)
      Wn(i, "class", t.join(" ").trim());
    else {
      let o = ` ${a} `;
      for (let c = 0; c < t.length; c++) {
        const f = `${t[c]} `;
        o.includes(` ${f}`) || (o += f);
      }
      Wn(i, "class", o.trim());
    }
  }
  return this;
}
function jf(e) {
  if (typeof e == "function")
    return at(this, (i, a) => {
      Se(i) && jf.call([i], e.call(i, a, i.attribs.class || ""));
    });
  const t = ha(e), r = t.length, n = arguments.length === 0;
  return at(this, (i) => {
    if (Se(i))
      if (n)
        i.attribs.class = "";
      else {
        const a = ha(i.attribs.class);
        let o = !1;
        for (let c = 0; c < r; c++) {
          const f = a.indexOf(t[c]);
          f >= 0 && (a.splice(f, 1), o = !0, c--);
        }
        o && (i.attribs.class = a.join(" "));
      }
  });
}
function Kf(e, t) {
  if (typeof e == "function")
    return at(this, (o, c) => {
      Se(o) && Kf.call([o], e.call(o, c, o.attribs.class || "", t), t);
    });
  if (!e || typeof e != "string")
    return this;
  const r = e.split(z0), n = r.length, i = typeof t == "boolean" ? t ? 1 : -1 : 0, a = this.length;
  for (let o = 0; o < a; o++) {
    const c = this[o];
    if (!Se(c))
      continue;
    const f = ha(c.attribs.class);
    for (let m = 0; m < n; m++) {
      const b = f.indexOf(r[m]);
      i >= 0 && b < 0 ? f.push(r[m]) : i <= 0 && b >= 0 && f.splice(b, 1);
    }
    c.attribs.class = f.join(" ");
  }
  return this;
}
const o9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  addClass: Wf,
  attr: r9,
  data: i9,
  hasClass: u9,
  prop: n9,
  removeAttr: s9,
  removeClass: jf,
  toggleClass: Kf,
  val: a9
}, Symbol.toStringTag, { value: "Module" }));
var xe;
(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";
})(xe || (xe = {}));
var ht;
(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";
})(ht || (ht = {}));
const Nh = /^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/, l9 = /\\([\da-f]{1,6}\s?|(\s)|.)/gi, c9 = /* @__PURE__ */ new Map([
  [126, ht.Element],
  [94, ht.Start],
  [36, ht.End],
  [42, ht.Any],
  [33, ht.Not],
  [124, ht.Hyphen]
]), h9 = /* @__PURE__ */ new Set([
  "has",
  "not",
  "matches",
  "is",
  "where",
  "host",
  "host-context"
]);
function k0(e) {
  switch (e.type) {
    case xe.Adjacent:
    case xe.Child:
    case xe.Descendant:
    case xe.Parent:
    case xe.Sibling:
    case xe.ColumnCombinator:
      return !0;
    default:
      return !1;
  }
}
const f9 = /* @__PURE__ */ new Set(["contains", "icontains"]);
function d9(e, t, r) {
  const n = parseInt(t, 16) - 65536;
  return n !== n || r ? t : n < 0 ? (
    // BMP codepoint
    String.fromCharCode(n + 65536)
  ) : (
    // Supplemental Plane codepoint (surrogate pair)
    String.fromCharCode(n >> 10 | 55296, n & 1023 | 56320)
  );
}
function g0(e) {
  return e.replace(l9, d9);
}
function Ys(e) {
  return e === 39 || e === 34;
}
function Ih(e) {
  return e === 32 || e === 9 || e === 10 || e === 12 || e === 13;
}
function Da(e) {
  const t = [], r = $f(t, `${e}`, 0);
  if (r < e.length)
    throw new Error(`Unmatched selector: ${e.slice(r)}`);
  return t;
}
function $f(e, t, r) {
  let n = [];
  function i(k) {
    const N = t.slice(r + k).match(Nh);
    if (!N)
      throw new Error(`Expected name, found ${t.slice(r)}`);
    const [M] = N;
    return r += k + M.length, g0(M);
  }
  function a(k) {
    for (r += k; r < t.length && Ih(t.charCodeAt(r)); )
      r++;
  }
  function o() {
    r += 1;
    const k = r;
    let N = 1;
    for (; N > 0 && r < t.length; r++)
      t.charCodeAt(r) === 40 && !c(r) ? N++ : t.charCodeAt(r) === 41 && !c(r) && N--;
    if (N)
      throw new Error("Parenthesis not matched");
    return g0(t.slice(k, r - 1));
  }
  function c(k) {
    let N = 0;
    for (; t.charCodeAt(--k) === 92; )
      N++;
    return (N & 1) === 1;
  }
  function f() {
    if (n.length > 0 && k0(n[n.length - 1]))
      throw new Error("Did not expect successive traversals.");
  }
  function m(k) {
    if (n.length > 0 && n[n.length - 1].type === xe.Descendant) {
      n[n.length - 1].type = k;
      return;
    }
    f(), n.push({ type: k });
  }
  function b(k, N) {
    n.push({
      type: xe.Attribute,
      name: k,
      action: N,
      value: i(1),
      namespace: null,
      ignoreCase: "quirks"
    });
  }
  function A() {
    if (n.length && n[n.length - 1].type === xe.Descendant && n.pop(), n.length === 0)
      throw new Error("Empty sub-selector");
    e.push(n);
  }
  if (a(0), t.length === r)
    return r;
  e:
    for (; r < t.length; ) {
      const k = t.charCodeAt(r);
      switch (k) {
        case 32:
        case 9:
        case 10:
        case 12:
        case 13: {
          (n.length === 0 || n[0].type !== xe.Descendant) && (f(), n.push({ type: xe.Descendant })), a(1);
          break;
        }
        case 62: {
          m(xe.Child), a(1);
          break;
        }
        case 60: {
          m(xe.Parent), a(1);
          break;
        }
        case 126: {
          m(xe.Sibling), a(1);
          break;
        }
        case 43: {
          m(xe.Adjacent), a(1);
          break;
        }
        case 46: {
          b("class", ht.Element);
          break;
        }
        case 35: {
          b("id", ht.Equals);
          break;
        }
        case 91: {
          a(1);
          let N, M = null;
          t.charCodeAt(r) === 124 ? N = i(1) : t.startsWith("*|", r) ? (M = "*", N = i(2)) : (N = i(0), t.charCodeAt(r) === 124 && t.charCodeAt(r + 1) !== 61 && (M = N, N = i(1))), a(0);
          let F = ht.Exists;
          const q = c9.get(t.charCodeAt(r));
          if (q) {
            if (F = q, t.charCodeAt(r + 1) !== 61)
              throw new Error("Expected `=`");
            a(2);
          } else
            t.charCodeAt(r) === 61 && (F = ht.Equals, a(1));
          let B = "", $ = null;
          if (F !== "exists") {
            if (Ys(t.charCodeAt(r))) {
              const pe = t.charCodeAt(r);
              let se = r + 1;
              for (; se < t.length && (t.charCodeAt(se) !== pe || c(se)); )
                se += 1;
              if (t.charCodeAt(se) !== pe)
                throw new Error("Attribute value didn't end");
              B = g0(t.slice(r + 1, se)), r = se + 1;
            } else {
              const pe = r;
              for (; r < t.length && (!Ih(t.charCodeAt(r)) && t.charCodeAt(r) !== 93 || c(r)); )
                r += 1;
              B = g0(t.slice(pe, r));
            }
            a(0);
            const oe = t.charCodeAt(r) | 32;
            oe === 115 ? ($ = !1, a(1)) : oe === 105 && ($ = !0, a(1));
          }
          if (t.charCodeAt(r) !== 93)
            throw new Error("Attribute selector didn't terminate");
          r += 1;
          const V = {
            type: xe.Attribute,
            name: N,
            action: F,
            value: B,
            namespace: M,
            ignoreCase: $
          };
          n.push(V);
          break;
        }
        case 58: {
          if (t.charCodeAt(r + 1) === 58) {
            n.push({
              type: xe.PseudoElement,
              name: i(2).toLowerCase(),
              data: t.charCodeAt(r) === 40 ? o() : null
            });
            continue;
          }
          const N = i(1).toLowerCase();
          let M = null;
          if (t.charCodeAt(r) === 40)
            if (h9.has(N)) {
              if (Ys(t.charCodeAt(r + 1)))
                throw new Error(`Pseudo-selector ${N} cannot be quoted`);
              if (M = [], r = $f(M, t, r + 1), t.charCodeAt(r) !== 41)
                throw new Error(`Missing closing parenthesis in :${N} (${t})`);
              r += 1;
            } else {
              if (M = o(), f9.has(N)) {
                const F = M.charCodeAt(0);
                F === M.charCodeAt(M.length - 1) && Ys(F) && (M = M.slice(1, -1));
              }
              M = g0(M);
            }
          n.push({ type: xe.Pseudo, name: N, data: M });
          break;
        }
        case 44: {
          A(), n = [], a(1);
          break;
        }
        default: {
          if (t.startsWith("/*", r)) {
            const F = t.indexOf("*/", r + 2);
            if (F < 0)
              throw new Error("Comment was not terminated");
            r = F + 2, n.length === 0 && a(0);
            break;
          }
          let N = null, M;
          if (k === 42)
            r += 1, M = "*";
          else if (k === 124) {
            if (M = "", t.charCodeAt(r + 1) === 124) {
              m(xe.ColumnCombinator), a(2);
              break;
            }
          } else if (Nh.test(t.slice(r)))
            M = i(0);
          else
            break e;
          t.charCodeAt(r) === 124 && t.charCodeAt(r + 1) !== 124 && (N = M, t.charCodeAt(r + 1) === 42 ? (M = "*", r += 2) : M = i(1)), n.push(M === "*" ? { type: xe.Universal, namespace: N } : { type: xe.Tag, name: M, namespace: N });
        }
      }
    }
  return A(), r;
}
var m9 = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Qf(e) {
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var fa = {
  trueFunc: function() {
    return !0;
  },
  falseFunc: function() {
    return !1;
  }
};
const Oe = /* @__PURE__ */ Qf(fa), Zf = /* @__PURE__ */ new Map([
  [xe.Universal, 50],
  [xe.Tag, 30],
  [xe.Attribute, 1],
  [xe.Pseudo, 0]
]);
function bo(e) {
  return !Zf.has(e.type);
}
const p9 = /* @__PURE__ */ new Map([
  [ht.Exists, 10],
  [ht.Equals, 8],
  [ht.Not, 7],
  [ht.Start, 6],
  [ht.End, 6],
  [ht.Any, 5]
]);
function g9(e) {
  const t = e.map(Jf);
  for (let r = 1; r < e.length; r++) {
    const n = t[r];
    if (!(n < 0))
      for (let i = r - 1; i >= 0 && n < t[i]; i--) {
        const a = e[i + 1];
        e[i + 1] = e[i], e[i] = a, t[i + 1] = t[i], t[i] = n;
      }
  }
}
function Jf(e) {
  var t, r;
  let n = (t = Zf.get(e.type)) !== null && t !== void 0 ? t : -1;
  return e.type === xe.Attribute ? (n = (r = p9.get(e.action)) !== null && r !== void 0 ? r : 4, e.action === ht.Equals && e.name === "id" && (n = 9), e.ignoreCase && (n >>= 1)) : e.type === xe.Pseudo && (e.data ? e.name === "has" || e.name === "contains" ? n = 0 : Array.isArray(e.data) ? (n = Math.min(...e.data.map((i) => Math.min(...i.map(Jf)))), n < 0 && (n = 0)) : n = 2 : n = 3), n;
}
const b9 = /[-[\]{}()*+?.,\\^$|#\s]/g;
function Mh(e) {
  return e.replace(b9, "\\$&");
}
const E9 = /* @__PURE__ */ 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 an(e, t) {
  return typeof e.ignoreCase == "boolean" ? e.ignoreCase : e.ignoreCase === "quirks" ? !!t.quirksMode : !t.xmlMode && E9.has(e.name);
}
const v9 = {
  equals(e, t, r) {
    const { adapter: n } = r, { name: i } = t;
    let { value: a } = t;
    return an(t, r) ? (a = a.toLowerCase(), (o) => {
      const c = n.getAttributeValue(o, i);
      return c != null && c.length === a.length && c.toLowerCase() === a && e(o);
    }) : (o) => n.getAttributeValue(o, i) === a && e(o);
  },
  hyphen(e, t, r) {
    const { adapter: n } = r, { name: i } = t;
    let { value: a } = t;
    const o = a.length;
    return an(t, r) ? (a = a.toLowerCase(), function(f) {
      const m = n.getAttributeValue(f, i);
      return m != null && (m.length === o || m.charAt(o) === "-") && m.substr(0, o).toLowerCase() === a && e(f);
    }) : function(f) {
      const m = n.getAttributeValue(f, i);
      return m != null && (m.length === o || m.charAt(o) === "-") && m.substr(0, o) === a && e(f);
    };
  },
  element(e, t, r) {
    const { adapter: n } = r, { name: i, value: a } = t;
    if (/\s/.test(a))
      return Oe.falseFunc;
    const o = new RegExp(`(?:^|\\s)${Mh(a)}(?:$|\\s)`, an(t, r) ? "i" : "");
    return function(f) {
      const m = n.getAttributeValue(f, i);
      return m != null && m.length >= a.length && o.test(m) && e(f);
    };
  },
  exists(e, { name: t }, { adapter: r }) {
    return (n) => r.hasAttrib(n, t) && e(n);
  },
  start(e, t, r) {
    const { adapter: n } = r, { name: i } = t;
    let { value: a } = t;
    const o = a.length;
    return o === 0 ? Oe.falseFunc : an(t, r) ? (a = a.toLowerCase(), (c) => {
      const f = n.getAttributeValue(c, i);
      return f != null && f.length >= o && f.substr(0, o).toLowerCase() === a && e(c);
    }) : (c) => {
      var f;
      return !!(!((f = n.getAttributeValue(c, i)) === null || f === void 0) && f.startsWith(a)) && e(c);
    };
  },
  end(e, t, r) {
    const { adapter: n } = r, { name: i } = t;
    let { value: a } = t;
    const o = -a.length;
    return o === 0 ? Oe.falseFunc : an(t, r) ? (a = a.toLowerCase(), (c) => {
      var f;
      return ((f = n.getAttributeValue(c, i)) === null || f === void 0 ? void 0 : f.substr(o).toLowerCase()) === a && e(c);
    }) : (c) => {
      var f;
      return !!(!((f = n.getAttributeValue(c, i)) === null || f === void 0) && f.endsWith(a)) && e(c);
    };
  },
  any(e, t, r) {
    const { adapter: n } = r, { name: i, value: a } = t;
    if (a === "")
      return Oe.falseFunc;
    if (an(t, r)) {
      const o = new RegExp(Mh(a), "i");
      return function(f) {
        const m = n.getAttributeValue(f, i);
        return m != null && m.length >= a.length && o.test(m) && e(f);
      };
    }
    return (o) => {
      var c;
      return !!(!((c = n.getAttributeValue(o, i)) === null || c === void 0) && c.includes(a)) && e(o);
    };
  },
  not(e, t, r) {
    const { adapter: n } = r, { name: i } = t;
    let { value: a } = t;
    return a === "" ? (o) => !!n.getAttributeValue(o, i) && e(o) : an(t, r) ? (a = a.toLowerCase(), (o) => {
      const c = n.getAttributeValue(o, i);
      return (c == null || c.length !== a.length || c.toLowerCase() !== a) && e(o);
    }) : (o) => n.getAttributeValue(o, i) !== a && e(o);
  }
}, _9 = /* @__PURE__ */ new Set([9, 10, 12, 13, 32]), Dh = "0".charCodeAt(0), T9 = "9".charCodeAt(0);
function A9(e) {
  if (e = e.trim().toLowerCase(), e === "even")
    return [2, 0];
  if (e === "odd")
    return [2, 1];
  let t = 0, r = 0, n = a(), i = o();
  if (t < e.length && e.charAt(t) === "n" && (t++, r = n * (i ?? 1), c(), t < e.length ? (n = a(), c(), i = o()) : n = i = 0), i === null || t < e.length)
    throw new Error(`n-th rule couldn't be parsed ('${e}')`);
  return [r, n * i];
  function a() {
    return e.charAt(t) === "-" ? (t++, -1) : (e.charAt(t) === "+" && t++, 1);
  }
  function o() {
    const f = t;
    let m = 0;
    for (; t < e.length && e.charCodeAt(t) >= Dh && e.charCodeAt(t) <= T9; )
      m = m * 10 + (e.charCodeAt(t) - Dh), t++;
    return t === f ? null : m;
  }
  function c() {
    for (; t < e.length && _9.has(e.charCodeAt(t)); )
      t++;
  }
}
function x9(e) {
  const t = e[0], r = e[1] - 1;
  if (r < 0 && t <= 0)
    return Oe.falseFunc;
  if (t === -1)
    return (a) => a <= r;
  if (t === 0)
    return (a) => a === r;
  if (t === 1)
    return r < 0 ? Oe.trueFunc : (a) => a >= r;
  const n = Math.abs(t), i = (r % n + n) % n;
  return t > 1 ? (a) => a >= r && a % n === i : (a) => a <= r && a % n === i;
}
function Di(e) {
  return x9(A9(e));
}
function Ri(e, t) {
  return (r) => {
    const n = t.getParent(r);
    return n != null && t.isTag(n) && e(r);
  };
}
const Nu = {
  contains(e, t, { adapter: r }) {
    return function(i) {
      return e(i) && r.getText(i).includes(t);
    };
  },
  icontains(e, t, { adapter: r }) {
    const n = t.toLowerCase();
    return function(a) {
      return e(a) && r.getText(a).toLowerCase().includes(n);
    };
  },
  // Location specific methods
  "nth-child"(e, t, { adapter: r, equals: n }) {
    const i = Di(t);
    return i === Oe.falseFunc ? Oe.falseFunc : i === Oe.trueFunc ? Ri(e, r) : function(o) {
      const c = r.getSiblings(o);
      let f = 0;
      for (let m = 0; m < c.length && !n(o, c[m]); m++)
        r.isTag(c[m]) && f++;
      return i(f) && e(o);
    };
  },
  "nth-last-child"(e, t, { adapter: r, equals: n }) {
    const i = Di(t);
    return i === Oe.falseFunc ? Oe.falseFunc : i === Oe.trueFunc ? Ri(e, r) : function(o) {
      const c = r.getSiblings(o);
      let f = 0;
      for (let m = c.length - 1; m >= 0 && !n(o, c[m]); m--)
        r.isTag(c[m]) && f++;
      return i(f) && e(o);
    };
  },
  "nth-of-type"(e, t, { adapter: r, equals: n }) {
    const i = Di(t);
    return i === Oe.falseFunc ? Oe.falseFunc : i === Oe.trueFunc ? Ri(e, r) : function(o) {
      const c = r.getSiblings(o);
      let f = 0;
      for (let m = 0; m < c.length; m++) {
        const b = c[m];
        if (n(o, b))
          break;
        r.isTag(b) && r.getName(b) === r.getName(o) && f++;
      }
      return i(f) && e(o);
    };
  },
  "nth-last-of-type"(e, t, { adapter: r, equals: n }) {
    const i = Di(t);
    return i === Oe.falseFunc ? Oe.falseFunc : i === Oe.trueFunc ? Ri(e, r) : function(o) {
      const c = r.getSiblings(o);
      let f = 0;
      for (let m = c.length - 1; m >= 0; m--) {
        const b = c[m];
        if (n(o, b))
          break;
        r.isTag(b) && r.getName(b) === r.getName(o) && f++;
      }
      return i(f) && e(o);
    };
  },
  // TODO determine the actual root element
  root(e, t, { adapter: r }) {
    return (n) => {
      const i = r.getParent(n);
      return (i == null || !r.isTag(i)) && e(n);
    };
  },
  scope(e, t, r, n) {
    const { equals: i } = r;
    return !n || n.length === 0 ? Nu.root(e, t, r) : n.length === 1 ? (a) => i(n[0], a) && e(a) : (a) => n.includes(a) && e(a);
  },
  hover: Vs("isHovered"),
  visited: Vs("isVisited"),
  active: Vs("isActive")
};
function Vs(e) {
  return function(r, n, { adapter: i }) {
    const a = i[e];
    return typeof a != "function" ? Oe.falseFunc : function(c) {
      return a(c) && r(c);
    };
  };
}
const Rh = {
  empty(e, { adapter: t }) {
    return !t.getChildren(e).some((r) => (
      // FIXME: `getText` call is potentially expensive.
      t.isTag(r) || t.getText(r) !== ""
    ));
  },
  "first-child"(e, { adapter: t, equals: r }) {
    if (t.prevElementSibling)
      return t.prevElementSibling(e) == null;
    const n = t.getSiblings(e).find((i) => t.isTag(i));
    return n != null && r(e, n);
  },
  "last-child"(e, { adapter: t, equals: r }) {
    const n = t.getSiblings(e);
    for (let i = n.length - 1; i >= 0; i--) {
      if (r(e, n[i]))
        return !0;
      if (t.isTag(n[i]))
        break;
    }
    return !1;
  },
  "first-of-type"(e, { adapter: t, equals: r }) {
    const n = t.getSiblings(e), i = t.getName(e);
    for (let a = 0; a < n.length; a++) {
      const o = n[a];
      if (r(e, o))
        return !0;
      if (t.isTag(o) && t.getName(o) === i)
        break;
    }
    return !1;
  },
  "last-of-type"(e, { adapter: t, equals: r }) {
    const n = t.getSiblings(e), i = t.getName(e);
    for (let a = n.length - 1; a >= 0; a--) {
      const o = n[a];
      if (r(e, o))
        return !0;
      if (t.isTag(o) && t.getName(o) === i)
        break;
    }
    return !1;
  },
  "only-of-type"(e, { adapter: t, equals: r }) {
    const n = t.getName(e);
    return t.getSiblings(e).every((i) => r(e, i) || !t.isTag(i) || t.getName(i) !== n);
  },
  "only-child"(e, { adapter: t, equals: r }) {
    return t.getSiblings(e).every((n) => r(e, n) || !t.isTag(n));
  }
};
function Oh(e, t, r, n) {
  if (r === null) {
    if (e.length > n)
      throw new Error(`Pseudo-class :${t} requires an argument`);
  } else if (e.length === n)
    throw new Error(`Pseudo-class :${t} doesn't have any arguments`);
}
const y9 = {
  // Links
  "any-link": ":is(a, area, link)[href]",
  link: ":any-link:not(:visited)",
  // Forms
  // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements
  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])",
  // JQuery extensions
  // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness
  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])"
}, ed = {};
function S9(e, t) {
  return e === Oe.falseFunc ? Oe.falseFunc : (r) => t.isTag(r) && e(r);
}
function td(e, t) {
  const r = t.getSiblings(e);
  if (r.length <= 1)
    return [];
  const n = r.indexOf(e);
  return n < 0 || n === r.length - 1 ? [] : r.slice(n + 1).filter(t.isTag);
}
function Iu(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
  };
}
const Gs = (e, t, r, n, i) => {
  const a = i(t, Iu(r), n);
  return a === Oe.trueFunc ? e : a === Oe.falseFunc ? Oe.falseFunc : (o) => a(o) && e(o);
}, Xs = {
  is: Gs,
  /**
   * `:matches` and `:where` are aliases for `:is`.
   */
  matches: Gs,
  where: Gs,
  not(e, t, r, n, i) {
    const a = i(t, Iu(r), n);
    return a === Oe.falseFunc ? e : a === Oe.trueFunc ? Oe.falseFunc : (o) => !a(o) && e(o);
  },
  has(e, t, r, n, i) {
    const { adapter: a } = r, o = Iu(r);
    o.relativeSelector = !0;
    const c = t.some((b) => b.some(bo)) ? (
      // Used as a placeholder. Will be replaced with the actual element.
      [ed]
    ) : void 0, f = i(t, o, c);
    if (f === Oe.falseFunc)
      return Oe.falseFunc;
    const m = S9(f, a);
    if (c && f !== Oe.trueFunc) {
      const { shouldTestNextSiblings: b = !1 } = f;
      return (A) => {
        if (!e(A))
          return !1;
        c[0] = A;
        const k = a.getChildren(A), N = b ? [...k, ...td(A, a)] : k;
        return a.existsOne(m, N);
      };
    }
    return (b) => e(b) && a.existsOne(m, a.getChildren(b));
  }
};
function C9(e, t, r, n, i) {
  var a;
  const { name: o, data: c } = t;
  if (Array.isArray(c)) {
    if (!(o in Xs))
      throw new Error(`Unknown pseudo-class :${o}(${c})`);
    return Xs[o](e, c, r, n, i);
  }
  const f = (a = r.pseudos) === null || a === void 0 ? void 0 : a[o], m = typeof f == "string" ? f : y9[o];
  if (typeof m == "string") {
    if (c != null)
      throw new Error(`Pseudo ${o} doesn't have any arguments`);
    const b = Da(m);
    return Xs.is(e, b, r, n, i);
  }
  if (typeof f == "function")
    return Oh(f, o, c, 1), (b) => f(b, c) && e(b);
  if (o in Nu)
    return Nu[o](e, c, r, n);
  if (o in Rh) {
    const b = Rh[o];
    return Oh(b, o, c, 2), (A) => b(A, r, c) && e(A);
  }
  throw new Error(`Unknown pseudo-class :${o}`);
}
function Ws(e, t) {
  const r = t.getParent(e);
  return r && t.isTag(r) ? r : null;
}
function k9(e, t, r, n, i) {
  const { adapter: a, equals: o } = r;
  switch (t.type) {
    case xe.PseudoElement:
      throw new Error("Pseudo-elements are not supported by css-select");
    case xe.ColumnCombinator:
      throw new Error("Column combinators are not yet supported by css-select");
    case xe.Attribute: {
      if (t.namespace != null)
        throw new Error("Namespaced attributes are not yet supported by css-select");
      return (!r.xmlMode || r.lowerCaseAttributeNames) && (t.name = t.name.toLowerCase()), v9[t.action](e, t, r);
    }
    case xe.Pseudo:
      return C9(e, t, r, n, i);
    case xe.Tag: {
      if (t.namespace != null)
        throw new Error("Namespaced tag names are not yet supported by css-select");
      let { name: c } = t;
      return (!r.xmlMode || r.lowerCaseTags) && (c = c.toLowerCase()), function(m) {
        return a.getName(m) === c && e(m);
      };
    }
    case xe.Descendant: {
      if (r.cacheResults === !1 || typeof WeakSet > "u")
        return function(m) {
          let b = m;
          for (; b = Ws(b, a); )
            if (e(b))
              return !0;
          return !1;
        };
      const c = /* @__PURE__ */ new WeakSet();
      return function(m) {
        let b = m;
        for (; b = Ws(b, a); )
          if (!c.has(b)) {
            if (a.isTag(b) && e(b))
              return !0;
            c.add(b);
          }
        return !1;
      };
    }
    case "_flexibleDescendant":
      return function(f) {
        let m = f;
        do
          if (e(m))
            return !0;
        while (m = Ws(m, a));
        return !1;
      };
    case xe.Parent:
      return function(f) {
        return a.getChildren(f).some((m) => a.isTag(m) && e(m));
      };
    case xe.Child:
      return function(f) {
        const m = a.getParent(f);
        return m != null && a.isTag(m) && e(m);
      };
    case xe.Sibling:
      return function(f) {
        const m = a.getSiblings(f);
        for (let b = 0; b < m.length; b++) {
          const A = m[b];
          if (o(f, A))
            break;
          if (a.isTag(A) && e(A))
            return !0;
        }
        return !1;
      };
    case xe.Adjacent:
      return a.prevElementSibling ? function(f) {
        const m = a.prevElementSibling(f);
        return m != null && e(m);
      } : function(f) {
        const m = a.getSiblings(f);
        let b;
        for (let A = 0; A < m.length; A++) {
          const k = m[A];
          if (o(f, k))
            break;
          a.isTag(k) && (b = k);
        }
        return !!b && e(b);
      };
    case xe.Universal: {
      if (t.namespace != null && t.namespace !== "*")
        throw new Error("Namespaced universal selectors are not yet supported by css-select");
      return e;
    }
  }
}
function rd(e) {
  return e.type === xe.Pseudo && (e.name === "scope" || Array.isArray(e.data) && e.data.some((t) => t.some(rd)));
}
const w9 = { type: xe.Descendant }, N9 = {
  type: "_flexibleDescendant"
}, I9 = {
  type: xe.Pseudo,
  name: "scope",
  data: null
};
function M9(e, { adapter: t }, r) {
  const n = !!(r != null && r.every((i) => {
    const a = t.isTag(i) && t.getParent(i);
    return i === ed || a && t.isTag(a);
  }));
  for (const i of e) {
    if (!(i.length > 0 && bo(i[0]) && i[0].type !== xe.Descendant))
      if (n && !i.some(rd))
        i.unshift(w9);
      else
        continue;
    i.unshift(I9);
  }
}
function nd(e, t, r) {
  var n;
  e.forEach(g9), r = (n = t.context) !== null && n !== void 0 ? n : r;
  const i = Array.isArray(r), a = r && (Array.isArray(r) ? r : [r]);
  if (t.relativeSelector !== !1)
    M9(e, t, a);
  else if (e.some((f) => f.length > 0 && bo(f[0])))
    throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");
  let o = !1;
  const c = e.map((f) => {
    if (f.length >= 2) {
      const [m, b] = f;
      m.type !== xe.Pseudo || m.name !== "scope" || (i && b.type === xe.Descendant ? f[1] = N9 : (b.type === xe.Adjacent || b.type === xe.Sibling) && (o = !0));
    }
    return D9(f, t, a);
  }).reduce(R9, Oe.falseFunc);
  return c.shouldTestNextSiblings = o, c;
}
function D9(e, t, r) {
  var n;
  return e.reduce((i, a) => i === Oe.falseFunc ? Oe.falseFunc : k9(i, a, t, r, nd), (n = t.rootFunc) !== null && n !== void 0 ? n : Oe.trueFunc);
}
function R9(e, t) {
  return t === Oe.falseFunc || e === Oe.trueFunc ? e : e === Oe.falseFunc || t === Oe.trueFunc ? t : function(n) {
    return e(n) || t(n);
  };
}
const id = (e, t) => e === t, O9 = {
  adapter: Ma,
  equals: id
};
function L9(e) {
  var t, r, n, i;
  const a = e ?? O9;
  return (t = a.adapter) !== null && t !== void 0 || (a.adapter = Ma), (r = a.equals) !== null && r !== void 0 || (a.equals = (i = (n = a.adapter) === null || n === void 0 ? void 0 : n.equals) !== null && i !== void 0 ? i : id), a;
}
function B9(e) {
  return function(r, n, i) {
    const a = L9(n);
    return e(r, a, i);
  };
}
const Eo = B9(nd);
function ad(e, t, r = !1) {
  return r && (e = P9(e, t)), Array.isArray(e) ? t.removeSubsets(e) : t.getChildren(e);
}
function P9(e, t) {
  const r = Array.isArray(e) ? e.slice(0) : [e], n = r.length;
  for (let i = 0; i < n; i++) {
    const a = td(r[i], t);
    r.push(...a);
  }
  return r;
}
const F9 = /* @__PURE__ */ new Set([
  "first",
  "last",
  "eq",
  "gt",
  "nth",
  "lt",
  "even",
  "odd"
]);
function da(e) {
  return e.type !== "pseudo" ? !1 : F9.has(e.name) ? !0 : e.name === "not" && Array.isArray(e.data) ? e.data.some((t) => t.some(da)) : !1;
}
function H9(e, t, r) {
  const n = t != null ? parseInt(t, 10) : NaN;
  switch (e) {
    case "first":
      return 1;
    case "nth":
    case "eq":
      return isFinite(n) ? n >= 0 ? n + 1 : 1 / 0 : 0;
    case "lt":
      return isFinite(n) ? n >= 0 ? Math.min(n, r) : 1 / 0 : 0;
    case "gt":
      return isFinite(n) ? 1 / 0 : 0;
    case "odd":
      return 2 * r;
    case "even":
      return 2 * r - 1;
    case "last":
    case "not":
      return 1 / 0;
  }
}
function U9(e) {
  for (; e.parent; )
    e = e.parent;
  return e;
}
function vo(e) {
  const t = [], r = [];
  for (const n of e)
    n.some(da) ? t.push(n) : r.push(n);
  return [r, t];
}
const z9 = {
  type: xe.Universal,
  namespace: null
}, q9 = {
  type: xe.Pseudo,
  name: "scope",
  data: null
};
function sd(e, t, r = {}) {
  return ud([e], t, r);
}
function ud(e, t, r = {}) {
  if (typeof t == "function")
    return e.some(t);
  const [n, i] = vo(Da(t));
  return n.length > 0 && e.some(Eo(n, r)) || i.some((a) => cd(a, e, r).length > 0);
}
function Y9(e, t, r, n) {
  const i = typeof r == "string" ? parseInt(r, 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((a, o) => o % 2 === 0);
    case "odd":
      return t.filter((a, o) => o % 2 === 1);
    case "not": {
      const a = new Set(ld(r, t, n));
      return t.filter((o) => !a.has(o));
    }
  }
}
function od(e, t, r = {}) {
  return ld(Da(e), t, r);
}
function ld(e, t, r) {
  if (t.length === 0)
    return [];
  const [n, i] = vo(e);
  let a;
  if (n.length) {
    const o = Du(t, n, r);
    if (i.length === 0)
      return o;
    o.length && (a = new Set(o));
  }
  for (let o = 0; o < i.length && (a == null ? void 0 : a.size) !== t.length; o++) {
    const c = i[o];
    if ((a ? t.filter((b) => Se(b) && !a.has(b)) : t).length === 0)
      break;
    const m = cd(c, t, r);
    if (m.length)
      if (a)
        m.forEach((b) => a.add(b));
      else {
        if (o === i.length - 1)
          return m;
        a = new Set(m);
      }
  }
  return typeof a < "u" ? a.size === t.length ? t : (
    // Filter elements to preserve order
    t.filter((o) => a.has(o))
  ) : [];
}
function cd(e, t, r) {
  var n;
  if (e.some(k0)) {
    const i = (n = r.root) !== null && n !== void 0 ? n : U9(t[0]), a = { ...r, context: t, relativeSelector: !1 };
    return e.push(q9), ma(i, e, a, !0, t.length);
  }
  return ma(t, e, r, !1, t.length);
}
function V9(e, t, r = {}, n = 1 / 0) {
  if (typeof e == "function")
    return hd(t, e);
  const [i, a] = vo(Da(e)), o = a.map((c) => ma(t, c, r, !0, n));
  return i.length && o.push(Mu(t, i, r, n)), o.length === 0 ? [] : o.length === 1 ? o[0] : n0(o.reduce((c, f) => [...c, ...f]));
}
function ma(e, t, r, n, i) {
  const a = t.findIndex(da), o = t.slice(0, a), c = t[a], f = t.length - 1 === a ? i : 1 / 0, m = H9(c.name, c.data, f);
  if (m === 0)
    return [];
  const A = (o.length === 0 && !Array.isArray(e) ? Na(e).filter(Se) : o.length === 0 ? (Array.isArray(e) ? e : [e]).filter(Se) : n || o.some(k0) ? Mu(e, [o], r, m) : Du(e, [o], r)).slice(0, m);
  let k = Y9(c.name, A, c.data, r);
  if (k.length === 0 || t.length === a + 1)
    return k;
  const N = t.slice(a + 1), M = N.some(k0);
  if (M) {
    if (k0(N[0])) {
      const { type: F } = N[0];
      (F === xe.Sibling || F === xe.Adjacent) && (k = ad(k, Ma, !0)), N.unshift(z9);
    }
    r = {
      ...r,
      // Avoid absolutizing the selector
      relativeSelector: !1,
      /*
       * Add a custom root func, to make sure traversals don't match elements
       * that aren't a part of the considered tree.
       */
      rootFunc: (F) => k.includes(F)
    };
  } else
    r.rootFunc && r.rootFunc !== fa.trueFunc && (r = { ...r, rootFunc: fa.trueFunc });
  return N.some(da) ? ma(k, N, r, !1, i) : M ? (
    // Query existing elements to resolve traversal.
    Mu(k, [N], r, i)
  ) : (
    // If we don't have any more traversals, simply filter elements.
    Du(k, [N], r)
  );
}
function Mu(e, t, r, n) {
  const i = Eo(t, r, e);
  return hd(e, i, n);
}
function hd(e, t, r = 1 / 0) {
  const n = ad(e, Ma, t.shouldTestNextSiblings);
  return mo((i) => Se(i) && t(i), n, !0, r);
}
function Du(e, t, r) {
  const n = (Array.isArray(e) ? e : [e]).filter(Se);
  if (n.length === 0)
    return n;
  const i = Eo(t, r);
  return i === fa.trueFunc ? n : n.filter(i);
}
const G9 = /^\s*[~+]/;
function X9(e) {
  var t;
  if (!e)
    return this._make([]);
  const r = this.toArray();
  if (typeof e != "string") {
    const a = gr(e) ? e.toArray() : [e];
    return this._make(a.filter((o) => r.some((c) => Gf(c, o))));
  }
  const n = G9.test(e) ? r : this.children().toArray(), i = {
    context: r,
    root: (t = this._root) === null || t === void 0 ? void 0 : t[0],
    // Pass options that are recognized by `cheerio-select`
    xmlMode: this.options.xmlMode,
    lowerCaseTags: this.options.lowerCaseTags,
    lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
    pseudos: this.options.pseudos,
    quirksMode: this.options.quirksMode
  };
  return this._make(V9(e, n, i));
}
function _o(e) {
  return function(t, ...r) {
    return function(n) {
      var i;
      let a = e(t, this);
      return n && (a = xo(a, n, this.options.xmlMode, (i = this._root) === null || i === void 0 ? void 0 : i[0])), this._make(
        // Post processing is only necessary if there is more than one element.
        this.length > 1 && a.length > 1 ? r.reduce((o, c) => c(o), a) : a
      );
    };
  };
}
const Q0 = _o((e, t) => {
  const r = [];
  for (let n = 0; n < t.length; n++) {
    const i = e(t[n]);
    r.push(i);
  }
  return new Array().concat(...r);
}), To = _o((e, t) => {
  const r = [];
  for (let n = 0; n < t.length; n++) {
    const i = e(t[n]);
    i !== null && r.push(i);
  }
  return r;
});
function Ao(e, ...t) {
  let r = null;
  const n = _o((i, a) => {
    const o = [];
    return at(a, (c) => {
      for (let f; (f = i(c)) && !(r != null && r(f, o.length)); c = f)
        o.push(f);
    }), o;
  })(e, ...t);
  return function(i, a) {
    r = typeof i == "string" ? (c) => sd(c, i, this.options) : i ? Z0(i) : null;
    const o = n.call(this, a);
    return r = null, o;
  };
}
function i0(e) {
  return Array.from(new Set(e));
}
const W9 = To(({ parent: e }) => e && !En(e) ? e : null, i0), j9 = Q0((e) => {
  const t = [];
  for (; e.parent && !En(e.parent); )
    t.push(e.parent), e = e.parent;
  return t;
}, n0, (e) => e.reverse()), K9 = Ao(({ parent: e }) => e && !En(e) ? e : null, n0, (e) => e.reverse());
function $9(e) {
  var t;
  const r = [];
  if (!e)
    return this._make(r);
  const n = {
    xmlMode: this.options.xmlMode,
    root: (t = this._root) === null || t === void 0 ? void 0 : t[0]
  }, i = typeof e == "string" ? (a) => sd(a, e, n) : Z0(e);
  return at(this, (a) => {
    for (; a && Se(a); ) {
      if (i(a, 0)) {
        r.includes(a) || r.push(a);
        break;
      }
      a = a.parent;
    }
  }), this._make(r);
}
const Q9 = To((e) => ho(e)), Z9 = Q0((e) => {
  const t = [];
  for (; e.next; )
    e = e.next, Se(e) && t.push(e);
  return t;
}, i0), J9 = Ao((e) => ho(e), i0), eE = To((e) => fo(e)), tE = Q0((e) => {
  const t = [];
  for (; e.prev; )
    e = e.prev, Se(e) && t.push(e);
  return t;
}, i0), rE = Ao((e) => fo(e), i0), nE = Q0((e) => Ff(e).filter((t) => Se(t) && t !== e), n0), iE = Q0((e) => Na(e).filter(Se), i0);
function aE() {
  const e = this.toArray().reduce((t, r) => pt(r) ? t.concat(r.children) : t, []);
  return this._make(e);
}
function sE(e) {
  let t = 0;
  const r = this.length;
  for (; t < r && e.call(this[t], t, this[t]) !== !1; )
    ++t;
  return this;
}
function uE(e) {
  let t = [];
  for (let r = 0; r < this.length; r++) {
    const n = this[r], i = e.call(n, r, n);
    i != null && (t = t.concat(i));
  }
  return this._make(t);
}
function Z0(e) {
  return typeof e == "function" ? (t, r) => e.call(t, r, t) : gr(e) ? (t) => Array.prototype.includes.call(e, t) : function(t) {
    return e === t;
  };
}
function oE(e) {
  var t;
  return this._make(xo(this.toArray(), e, this.options.xmlMode, (t = this._root) === null || t === void 0 ? void 0 : t[0]));
}
function xo(e, t, r, n) {
  return typeof t == "string" ? od(t, e, { xmlMode: r, root: n }) : e.filter(Z0(t));
}
function lE(e) {
  const t = this.toArray();
  return typeof e == "string" ? ud(t.filter(Se), e, this.options) : e ? t.some(Z0(e)) : !1;
}
function cE(e) {
  let t = this.toArray();
  if (typeof e == "string") {
    const r = new Set(od(e, t, this.options));
    t = t.filter((n) => !r.has(n));
  } else {
    const r = Z0(e);
    t = t.filter((n, i) => !r(n, i));
  }
  return this._make(t);
}
function hE(e) {
  return this.filter(typeof e == "string" ? (
    // Using the `:has` selector here short-circuits searches.
    `:has(${e})`
  ) : (t, r) => this._make(r).find(e).length > 0);
}
function fE() {
  return this.length > 1 ? this._make(this[0]) : this;
}
function dE() {
  return this.length > 0 ? this._make(this[this.length - 1]) : this;
}
function mE(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 pE(e) {
  return e == null ? this.toArray() : this[e < 0 ? this.length + e : e];
}
function gE() {
  return Array.prototype.slice.call(this);
}
function bE(e) {
  let t, r;
  return e == null ? (t = this.parent().children(), r = this[0]) : typeof e == "string" ? (t = this._make(e), r = this[0]) : (t = this, r = gr(e) ? e[0] : e), Array.prototype.indexOf.call(t, r);
}
function EE(e, t) {
  return this._make(Array.prototype.slice.call(this, e, t));
}
function vE() {
  var e;
  return (e = this.prevObject) !== null && e !== void 0 ? e : this._make([]);
}
function _E(e, t) {
  const r = this._make(e, t), n = n0([...this.get(), ...r.get()]);
  return this._make(n);
}
function TE(e) {
  return this.prevObject ? this.add(e ? this.prevObject.filter(e) : this.prevObject) : this;
}
const AE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  add: _E,
  addBack: TE,
  children: iE,
  closest: $9,
  contents: aE,
  each: sE,
  end: vE,
  eq: mE,
  filter: oE,
  filterArray: xo,
  find: X9,
  first: fE,
  get: pE,
  has: hE,
  index: bE,
  is: lE,
  last: dE,
  map: uE,
  next: Q9,
  nextAll: Z9,
  nextUntil: J9,
  not: cE,
  parent: W9,
  parents: j9,
  parentsUntil: K9,
  prev: eE,
  prevAll: tE,
  prevUntil: rE,
  siblings: nE,
  slice: EE,
  toArray: gE
}, Symbol.toStringTag, { value: "Module" }));
function xE(e) {
  return function(r, n, i, a) {
    if (typeof Buffer < "u" && Buffer.isBuffer(r) && (r = r.toString()), typeof r == "string")
      return e(r, n, i, a);
    const o = r;
    if (!Array.isArray(o) && En(o))
      return o;
    const c = new pn([]);
    return gn(o, c), c;
  };
}
function gn(e, t) {
  const r = Array.isArray(e) ? e : [e];
  t ? t.children = r : t = null;
  for (let n = 0; n < r.length; n++) {
    const i = r[n];
    i.parent && i.parent.children !== r && vn(i), t ? (i.prev = r[n - 1] || null, i.next = r[n + 1] || null) : i.prev = i.next = null, i.parent = t;
  }
  return t;
}
function yE(e, t) {
  return e == null ? [] : gr(e) ? t ? ku(e.get()) : e.get() : Array.isArray(e) ? e.reduce((r, n) => r.concat(this._makeDomArray(n, t)), []) : typeof e == "string" ? this._parse(e, this.options, !1, null).children : t ? ku([e]) : [e];
}
function fd(e) {
  return function(...t) {
    const r = this.length - 1;
    return at(this, (n, i) => {
      if (!pt(n))
        return;
      const a = typeof t[0] == "function" ? t[0].call(n, i, this._render(n.children)) : t, o = this._makeDomArray(a, i < r);
      e(o, n.children, n);
    });
  };
}
function Qr(e, t, r, n, i) {
  var a, o;
  const c = [
    t,
    r,
    ...n
  ], f = t === 0 ? null : e[t - 1], m = t + r >= e.length ? null : e[t + r];
  for (let b = 0; b < n.length; ++b) {
    const A = n[b], k = A.parent;
    if (k) {
      const M = k.children.indexOf(A);
      M > -1 && (k.children.splice(M, 1), i === k && t > M && c[0]--);
    }
    A.parent = i, A.prev && (A.prev.next = (a = A.next) !== null && a !== void 0 ? a : null), A.next && (A.next.prev = (o = A.prev) !== null && o !== void 0 ? o : null), A.prev = b === 0 ? f : n[b - 1], A.next = b === n.length - 1 ? m : n[b + 1];
  }
  return f && (f.next = n[0]), m && (m.prev = n[n.length - 1]), e.splice(...c);
}
function SE(e) {
  return (gr(e) ? e : this._make(e)).append(this), this;
}
function CE(e) {
  return (gr(e) ? e : this._make(e)).prepend(this), this;
}
const kE = fd((e, t, r) => {
  Qr(t, t.length, 0, e, r);
}), wE = fd((e, t, r) => {
  Qr(t, 0, 0, e, r);
});
function dd(e) {
  return function(t) {
    const r = this.length - 1, n = this.parents().last();
    for (let i = 0; i < this.length; i++) {
      const a = this[i], o = typeof t == "function" ? t.call(a, i, a) : typeof t == "string" && !wu(t) ? n.find(t).clone() : t, [c] = this._makeDomArray(o, i < r);
      if (!c || !pt(c))
        continue;
      let f = c, m = 0;
      for (; m < f.children.length; ) {
        const b = f.children[m];
        Se(b) ? (f = b, m = 0) : m++;
      }
      e(a, f, [c]);
    }
    return this;
  };
}
const NE = dd((e, t, r) => {
  const { parent: n } = e;
  if (!n)
    return;
  const i = n.children, a = i.indexOf(e);
  gn([e], t), Qr(i, a, 0, r, n);
}), IE = dd((e, t, r) => {
  pt(e) && (gn(e.children, t), gn(r, e));
});
function ME(e) {
  return this.parent(e).not("body").each((t, r) => {
    this._make(r).replaceWith(r.children);
  }), this;
}
function DE(e) {
  const t = this[0];
  if (t) {
    const r = this._make(typeof e == "function" ? e.call(t, 0, t) : e).insertBefore(t);
    let n;
    for (let a = 0; a < r.length; a++)
      r[a].type === "tag" && (n = r[a]);
    let i = 0;
    for (; n && i < n.children.length; ) {
      const a = n.children[i];
      a.type === "tag" ? (n = a, i = 0) : i++;
    }
    n && this._make(n).append(this);
  }
  return this;
}
function RE(...e) {
  const t = this.length - 1;
  return at(this, (r, n) => {
    const { parent: i } = r;
    if (!pt(r) || !i)
      return;
    const a = i.children, o = a.indexOf(r);
    if (o < 0)
      return;
    const c = typeof e[0] == "function" ? e[0].call(r, n, this._render(r.children)) : e, f = this._makeDomArray(c, n < t);
    Qr(a, o + 1, 0, f, i);
  });
}
function OE(e) {
  typeof e == "string" && (e = this._make(e)), this.remove();
  const t = [];
  return this._makeDomArray(e).forEach((r) => {
    const n = this.clone().toArray(), { parent: i } = r;
    if (!i)
      return;
    const a = i.children, o = a.indexOf(r);
    o < 0 || (Qr(a, o + 1, 0, n, i), t.push(...n));
  }), this._make(t);
}
function LE(...e) {
  const t = this.length - 1;
  return at(this, (r, n) => {
    const { parent: i } = r;
    if (!pt(r) || !i)
      return;
    const a = i.children, o = a.indexOf(r);
    if (o < 0)
      return;
    const c = typeof e[0] == "function" ? e[0].call(r, n, this._render(r.children)) : e, f = this._makeDomArray(c, n < t);
    Qr(a, o, 0, f, i);
  });
}
function BE(e) {
  const t = this._make(e);
  this.remove();
  const r = [];
  return at(t, (n) => {
    const i = this.clone().toArray(), { parent: a } = n;
    if (!a)
      return;
    const o = a.children, c = o.indexOf(n);
    c < 0 || (Qr(o, c, 0, i, a), r.push(...i));
  }), this._make(r);
}
function PE(e) {
  const t = e ? this.filter(e) : this;
  return at(t, (r) => {
    vn(r), r.prev = r.next = r.parent = null;
  }), this;
}
function FE(e) {
  return at(this, (t, r) => {
    const { parent: n } = t;
    if (!n)
      return;
    const i = n.children, a = typeof e == "function" ? e.call(t, r, t) : e, o = this._makeDomArray(a);
    gn(o, null);
    const c = i.indexOf(t);
    Qr(i, c, 1, o, n), o.includes(t) || (t.parent = t.prev = t.next = null);
  });
}
function HE() {
  return at(this, (e) => {
    pt(e) && (e.children.forEach((t) => {
      t.next = t.prev = t.parent = null;
    }), e.children.length = 0);
  });
}
function UE(e) {
  if (e === void 0) {
    const t = this[0];
    return !t || !pt(t) ? null : this._render(t.children);
  }
  return at(this, (t) => {
    if (!pt(t))
      return;
    t.children.forEach((n) => {
      n.next = n.prev = n.parent = null;
    });
    const r = gr(e) ? e.toArray() : this._parse(`${e}`, this.options, !1, t).children;
    gn(r, t);
  });
}
function zE() {
  return this._render(this);
}
function qE(e) {
  return e === void 0 ? U0(this) : typeof e == "function" ? at(this, (t, r) => this._make(t).text(e.call(t, r, U0([t])))) : at(this, (t) => {
    if (!pt(t))
      return;
    t.children.forEach((n) => {
      n.next = n.prev = n.parent = null;
    });
    const r = new H0(`${e}`);
    gn(r, t);
  });
}
function YE() {
  return this._make(ku(this.get()));
}
const VE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  _makeDomArray: yE,
  after: RE,
  append: kE,
  appendTo: SE,
  before: LE,
  clone: YE,
  empty: HE,
  html: UE,
  insertAfter: OE,
  insertBefore: BE,
  prepend: wE,
  prependTo: CE,
  remove: PE,
  replaceWith: FE,
  text: qE,
  toString: zE,
  unwrap: ME,
  wrap: NE,
  wrapAll: DE,
  wrapInner: IE
}, Symbol.toStringTag, { value: "Module" }));
function GE(e, t) {
  if (e != null && t != null || // When `prop` is a "plain" object
  typeof e == "object" && !Array.isArray(e))
    return at(this, (r, n) => {
      Se(r) && md(r, e, t, n);
    });
  if (this.length !== 0)
    return pd(this[0], e);
}
function md(e, t, r, n) {
  if (typeof t == "string") {
    const i = pd(e), a = typeof r == "function" ? r.call(e, n, i[t]) : r;
    a === "" ? delete i[t] : a != null && (i[t] = a), e.attribs.style = XE(i);
  } else
    typeof t == "object" && Object.keys(t).forEach((i, a) => {
      md(e, i, t[i], a);
    });
}
function pd(e, t) {
  if (!e || !Se(e))
    return;
  const r = WE(e.attribs.style);
  if (typeof t == "string")
    return r[t];
  if (Array.isArray(t)) {
    const n = {};
    return t.forEach((i) => {
      r[i] != null && (n[i] = r[i]);
    }), n;
  }
  return r;
}
function XE(e) {
  return Object.keys(e).reduce((t, r) => `${t}${t ? " " : ""}${r}: ${e[r]};`, "");
}
function WE(e) {
  if (e = (e || "").trim(), !e)
    return {};
  const t = {};
  let r;
  for (const n of e.split(";")) {
    const i = n.indexOf(":");
    if (i < 1 || i === n.length - 1) {
      const a = n.trimEnd();
      a.length > 0 && r !== void 0 && (t[r] += `;${a}`);
    } else
      r = n.slice(0, i).trim(), t[r] = n.slice(i + 1).trim();
  }
  return t;
}
const jE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  css: GE
}, Symbol.toStringTag, { value: "Module" })), Lh = "input,select,textarea,keygen", KE = /%20/g, Bh = /\r?\n/g;
function $E() {
  return this.serializeArray().map((r) => `${encodeURIComponent(r.name)}=${encodeURIComponent(r.value)}`).join("&").replace(KE, "+");
}
function QE() {
  return this.map((e, t) => {
    const r = this._make(t);
    return Se(t) && t.name === "form" ? r.find(Lh).toArray() : r.filter(Lh).toArray();
  }).filter(
    // Verify elements have a name (`attr.name`) and are not disabled (`:enabled`)
    '[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))'
    // Convert each of the elements to its value(s)
  ).map((e, t) => {
    var r;
    const n = this._make(t), i = n.attr("name"), a = (r = n.val()) !== null && r !== void 0 ? r : "";
    return Array.isArray(a) ? a.map((o) => (
      /*
       * We trim replace any line endings (e.g. `\r` or `\r\n` with `\r\n`) to guarantee consistency across platforms
       * These can occur inside of `<textarea>'s`
       */
      { name: i, value: o.replace(Bh, `\r
`) }
    )) : { name: i, value: a.replace(Bh, `\r
`) };
  }).toArray();
}
const ZE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  serialize: $E,
  serializeArray: QE
}, Symbol.toStringTag, { value: "Module" }));
class J0 {
  /**
   * Instance of cheerio. Methods are specified in the modules. Usage of this
   * constructor is not recommended. Please use `$.load` instead.
   *
   * @private
   * @param elements - The new selection.
   * @param root - Sets the root node.
   * @param options - Options for the instance.
   */
  constructor(t, r, n) {
    if (this.length = 0, this.options = n, this._root = r, t) {
      for (let i = 0; i < t.length; i++)
        this[i] = t[i];
      this.length = t.length;
    }
  }
}
J0.prototype.cheerio = "[cheerio object]";
J0.prototype.splice = Array.prototype.splice;
J0.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
Object.assign(J0.prototype, o9, AE, VE, jE, ZE);
function JE(e, t) {
  return function r(n, i, a = !0) {
    if (n == null)
      throw new Error("cheerio.load() expects a string");
    const o = { ...io, ...xu(i) }, c = e(n, o, a, null);
    class f extends J0 {
      _make(A, k) {
        const N = m(A, k);
        return N.prevObject = this, N;
      }
      _parse(A, k, N, M) {
        return e(A, k, N, M);
      }
      _render(A) {
        return t(A, this.options);
      }
    }
    function m(b, A, k = c, N) {
      if (b && gr(b))
        return b;
      const M = {
        ...o,
        ...xu(N)
      }, F = typeof k == "string" ? [e(k, M, !1, null)] : "length" in k ? k : [k], q = gr(F) ? F : new f(F, null, M);
      if (q._root = q, !b)
        return new f(void 0, q, M);
      const B = typeof b == "string" && wu(b) ? (
        // $(<html>)
        e(b, M, !1, null).children
      ) : ev(b) ? (
        // $(dom)
        [b]
      ) : Array.isArray(b) ? (
        // $([dom])
        b
      ) : void 0, $ = new f(B, q, M);
      if (B)
        return $;
      if (typeof b != "string")
        throw new Error("Unexpected type of selector");
      let V = b;
      const oe = A ? typeof A == "string" ? wu(A) ? (
        // $('li', '<ul>...</ul>')
        new f([e(A, M, !1, null)], q, M)
      ) : (
        // $('li', 'ul')
        (V = `${A} ${V}`, q)
      ) : gr(A) ? (
        // $('li', $)
        A
      ) : (
        // $('li', node), $('li', [nodes])
        new f(Array.isArray(A) ? A : [A], q, M)
      ) : (
        // If we don't have a context, maybe we have a root, from loading
        q
      );
      return oe ? oe.find(V) : $;
    }
    return Object.assign(m, Zb, {
      load: r,
      // `_root` and `_options` are used in static methods.
      _root: c,
      _options: o,
      // Add `fn` for plugins
      fn: f.prototype,
      // Add the prototype here to maintain `instanceof` behavior.
      prototype: f.prototype
    }), m;
  };
}
function ev(e) {
  return !!e.name || e.type === "root" || e.type === "text" || e.type === "comment";
}
const tv = /* @__PURE__ */ new Set([
  65534,
  65535,
  131070,
  131071,
  196606,
  196607,
  262142,
  262143,
  327678,
  327679,
  393214,
  393215,
  458750,
  458751,
  524286,
  524287,
  589822,
  589823,
  655358,
  655359,
  720894,
  720895,
  786430,
  786431,
  851966,
  851967,
  917502,
  917503,
  983038,
  983039,
  1048574,
  1048575,
  1114110,
  1114111
]), $e = "�";
var C;
(function(e) {
  e[e.EOF = -1] = "EOF", e[e.NULL = 0] = "NULL", e[e.TABULATION = 9] = "TABULATION", e[e.CARRIAGE_RETURN = 13] = "CARRIAGE_RETURN", e[e.LINE_FEED = 10] = "LINE_FEED", e[e.FORM_FEED = 12] = "FORM_FEED", e[e.SPACE = 32] = "SPACE", e[e.EXCLAMATION_MARK = 33] = "EXCLAMATION_MARK", e[e.QUOTATION_MARK = 34] = "QUOTATION_MARK", e[e.NUMBER_SIGN = 35] = "NUMBER_SIGN", e[e.AMPERSAND = 38] = "AMPERSAND", e[e.APOSTROPHE = 39] = "APOSTROPHE", e[e.HYPHEN_MINUS = 45] = "HYPHEN_MINUS", e[e.SOLIDUS = 47] = "SOLIDUS", e[e.DIGIT_0 = 48] = "DIGIT_0", e[e.DIGIT_9 = 57] = "DIGIT_9", e[e.SEMICOLON = 59] = "SEMICOLON", e[e.LESS_THAN_SIGN = 60] = "LESS_THAN_SIGN", e[e.EQUALS_SIGN = 61] = "EQUALS_SIGN", e[e.GREATER_THAN_SIGN = 62] = "GREATER_THAN_SIGN", e[e.QUESTION_MARK = 63] = "QUESTION_MARK", e[e.LATIN_CAPITAL_A = 65] = "LATIN_CAPITAL_A", e[e.LATIN_CAPITAL_F = 70] = "LATIN_CAPITAL_F", e[e.LATIN_CAPITAL_X = 88] = "LATIN_CAPITAL_X", e[e.LATIN_CAPITAL_Z = 90] = "LATIN_CAPITAL_Z", e[e.RIGHT_SQUARE_BRACKET = 93] = "RIGHT_SQUARE_BRACKET", e[e.GRAVE_ACCENT = 96] = "GRAVE_ACCENT", e[e.LATIN_SMALL_A = 97] = "LATIN_SMALL_A", e[e.LATIN_SMALL_F = 102] = "LATIN_SMALL_F", e[e.LATIN_SMALL_X = 120] = "LATIN_SMALL_X", e[e.LATIN_SMALL_Z = 122] = "LATIN_SMALL_Z", e[e.REPLACEMENT_CHARACTER = 65533] = "REPLACEMENT_CHARACTER";
})(C = C || (C = {}));
const wt = {
  DASH_DASH: "--",
  CDATA_START: "[CDATA[",
  DOCTYPE: "doctype",
  SCRIPT: "script",
  PUBLIC: "public",
  SYSTEM: "system"
};
function gd(e) {
  return e >= 55296 && e <= 57343;
}
function rv(e) {
  return e >= 56320 && e <= 57343;
}
function nv(e, t) {
  return (e - 55296) * 1024 + 9216 + t;
}
function bd(e) {
  return e !== 32 && e !== 10 && e !== 13 && e !== 9 && e !== 12 && e >= 1 && e <= 31 || e >= 127 && e <= 159;
}
function Ed(e) {
  return e >= 64976 && e <= 65007 || tv.has(e);
}
var G;
(function(e) {
  e.controlCharacterInInputStream = "control-character-in-input-stream", e.noncharacterInInputStream = "noncharacter-in-input-stream", e.surrogateInInputStream = "surrogate-in-input-stream", e.nonVoidHtmlElementStartTagWithTrailingSolidus = "non-void-html-element-start-tag-with-trailing-solidus", e.endTagWithAttributes = "end-tag-with-attributes", e.endTagWithTrailingSolidus = "end-tag-with-trailing-solidus", e.unexpectedSolidusInTag = "unexpected-solidus-in-tag", e.unexpectedNullCharacter = "unexpected-null-character", e.unexpectedQuestionMarkInsteadOfTagName = "unexpected-question-mark-instead-of-tag-name", e.invalidFirstCharacterOfTagName = "invalid-first-character-of-tag-name", e.unexpectedEqualsSignBeforeAttributeName = "unexpected-equals-sign-before-attribute-name", e.missingEndTagName = "missing-end-tag-name", e.unexpectedCharacterInAttributeName = "unexpected-character-in-attribute-name", e.unknownNamedCharacterReference = "unknown-named-character-reference", e.missingSemicolonAfterCharacterReference = "missing-semicolon-after-character-reference", e.unexpectedCharacterAfterDoctypeSystemIdentifier = "unexpected-character-after-doctype-system-identifier", e.unexpectedCharacterInUnquotedAttributeValue = "unexpected-character-in-unquoted-attribute-value", e.eofBeforeTagName = "eof-before-tag-name", e.eofInTag = "eof-in-tag", e.missingAttributeValue = "missing-attribute-value", e.missingWhitespaceBetweenAttributes = "missing-whitespace-between-attributes", e.missingWhitespaceAfterDoctypePublicKeyword = "missing-whitespace-after-doctype-public-keyword", e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers = "missing-whitespace-between-doctype-public-and-system-identifiers", e.missingWhitespaceAfterDoctypeSystemKeyword = "missing-whitespace-after-doctype-system-keyword", e.missingQuoteBeforeDoctypePublicIdentifier = "missing-quote-before-doctype-public-identifier", e.missingQuoteBeforeDoctypeSystemIdentifier = "missing-quote-before-doctype-system-identifier", e.missingDoctypePublicIdentifier = "missing-doctype-public-identifier", e.missingDoctypeSystemIdentifier = "missing-doctype-system-identifier", e.abruptDoctypePublicIdentifier = "abrupt-doctype-public-identifier", e.abruptDoctypeSystemIdentifier = "abrupt-doctype-system-identifier", e.cdataInHtmlContent = "cdata-in-html-content", e.incorrectlyOpenedComment = "incorrectly-opened-comment", e.eofInScriptHtmlCommentLikeText = "eof-in-script-html-comment-like-text", e.eofInDoctype = "eof-in-doctype", e.nestedComment = "nested-comment", e.abruptClosingOfEmptyComment = "abrupt-closing-of-empty-comment", e.eofInComment = "eof-in-comment", e.incorrectlyClosedComment = "incorrectly-closed-comment", e.eofInCdata = "eof-in-cdata", e.absenceOfDigitsInNumericCharacterReference = "absence-of-digits-in-numeric-character-reference", e.nullCharacterReference = "null-character-reference", e.surrogateCharacterReference = "surrogate-character-reference", e.characterReferenceOutsideUnicodeRange = "character-reference-outside-unicode-range", e.controlCharacterReference = "control-character-reference", e.noncharacterCharacterReference = "noncharacter-character-reference", e.missingWhitespaceBeforeDoctypeName = "missing-whitespace-before-doctype-name", e.missingDoctypeName = "missing-doctype-name", e.invalidCharacterSequenceAfterDoctypeName = "invalid-character-sequence-after-doctype-name", e.duplicateAttribute = "duplicate-attribute", e.nonConformingDoctype = "non-conforming-doctype", e.missingDoctype = "missing-doctype", e.misplacedDoctype = "misplaced-doctype", e.endTagWithoutMatchingOpenElement = "end-tag-without-matching-open-element", e.closingOfElementWithOpenChildElements = "closing-of-element-with-open-child-elements", e.disallowedContentInNoscriptInHead = "disallowed-content-in-noscript-in-head", e.openElementsLeftAfterEof = "open-elements-left-after-eof", e.abandonedHeadElementChild = "abandoned-head-element-child", e.misplacedStartTagForHeadElement = "misplaced-start-tag-for-head-element", e.nestedNoscriptInHead = "nested-noscript-in-head", e.eofInElementThatCanContainOnlyText = "eof-in-element-that-can-contain-only-text";
})(G = G || (G = {}));
const iv = 65536;
class av {
  constructor(t) {
    this.handler = t, this.html = "", this.pos = -1, this.lastGapPos = -2, this.gapStack = [], this.skipNextNewLine = !1, this.lastChunkWritten = !1, this.endOfChunkHit = !1, this.bufferWaterline = iv, this.isEol = !1, this.lineStartPos = 0, this.droppedBufferSize = 0, this.line = 1, this.lastErrOffset = -1;
  }
  /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */
  get col() {
    return this.pos - this.lineStartPos + +(this.lastGapPos !== this.pos);
  }
  get offset() {
    return this.droppedBufferSize + this.pos;
  }
  getError(t) {
    const { line: r, col: n, offset: i } = this;
    return {
      code: t,
      startLine: r,
      endLine: r,
      startCol: n,
      endCol: n,
      startOffset: i,
      endOffset: i
    };
  }
  _err(t) {
    this.handler.onParseError && this.lastErrOffset !== this.offset && (this.lastErrOffset = this.offset, this.handler.onParseError(this.getError(t)));
  }
  _addGap() {
    this.gapStack.push(this.lastGapPos), this.lastGapPos = this.pos;
  }
  _processSurrogate(t) {
    if (this.pos !== this.html.length - 1) {
      const r = this.html.charCodeAt(this.pos + 1);
      if (rv(r))
        return this.pos++, this._addGap(), nv(t, r);
    } else if (!this.lastChunkWritten)
      return this.endOfChunkHit = !0, C.EOF;
    return this._err(G.surrogateInInputStream), t;
  }
  willDropParsedChunk() {
    return this.pos > this.bufferWaterline;
  }
  dropParsedChunk() {
    this.willDropParsedChunk() && (this.html = this.html.substring(this.pos), this.lineStartPos -= this.pos, this.droppedBufferSize += this.pos, this.pos = 0, this.lastGapPos = -2, this.gapStack.length = 0);
  }
  write(t, r) {
    this.html.length > 0 ? this.html += t : this.html = t, this.endOfChunkHit = !1, this.lastChunkWritten = r;
  }
  insertHtmlAtCurrentPos(t) {
    this.html = this.html.substring(0, this.pos + 1) + t + this.html.substring(this.pos + 1), this.endOfChunkHit = !1;
  }
  startsWith(t, r) {
    if (this.pos + t.length > this.html.length)
      return this.endOfChunkHit = !this.lastChunkWritten, !1;
    if (r)
      return this.html.startsWith(t, this.pos);
    for (let n = 0; n < t.length; n++)
      if ((this.html.charCodeAt(this.pos + n) | 32) !== t.charCodeAt(n))
        return !1;
    return !0;
  }
  peek(t) {
    const r = this.pos + t;
    if (r >= this.html.length)
      return this.endOfChunkHit = !this.lastChunkWritten, C.EOF;
    const n = this.html.charCodeAt(r);
    return n === C.CARRIAGE_RETURN ? C.LINE_FEED : n;
  }
  advance() {
    if (this.pos++, this.isEol && (this.isEol = !1, this.line++, this.lineStartPos = this.pos), this.pos >= this.html.length)
      return this.endOfChunkHit = !this.lastChunkWritten, C.EOF;
    let t = this.html.charCodeAt(this.pos);
    return t === C.CARRIAGE_RETURN ? (this.isEol = !0, this.skipNextNewLine = !0, C.LINE_FEED) : t === C.LINE_FEED && (this.isEol = !0, this.skipNextNewLine) ? (this.line--, this.skipNextNewLine = !1, this._addGap(), this.advance()) : (this.skipNextNewLine = !1, gd(t) && (t = this._processSurrogate(t)), this.handler.onParseError === null || t > 31 && t < 127 || t === C.LINE_FEED || t === C.CARRIAGE_RETURN || t > 159 && t < 64976 || this._checkForProblematicCharacters(t), t);
  }
  _checkForProblematicCharacters(t) {
    bd(t) ? this._err(G.controlCharacterInInputStream) : Ed(t) && this._err(G.noncharacterInInputStream);
  }
  retreat(t) {
    for (this.pos -= t; this.pos < this.lastGapPos; )
      this.lastGapPos = this.gapStack.pop(), this.pos--;
    this.isEol = !1;
  }
}
var Le;
(function(e) {
  e[e.CHARACTER = 0] = "CHARACTER", e[e.NULL_CHARACTER = 1] = "NULL_CHARACTER", e[e.WHITESPACE_CHARACTER = 2] = "WHITESPACE_CHARACTER", e[e.START_TAG = 3] = "START_TAG", e[e.END_TAG = 4] = "END_TAG", e[e.COMMENT = 5] = "COMMENT", e[e.DOCTYPE = 6] = "DOCTYPE", e[e.EOF = 7] = "EOF", e[e.HIBERNATION = 8] = "HIBERNATION";
})(Le = Le || (Le = {}));
function vd(e, t) {
  for (let r = e.attrs.length - 1; r >= 0; r--)
    if (e.attrs[r].name === t)
      return e.attrs[r].value;
  return null;
}
var K;
(function(e) {
  e.HTML = "http://www.w3.org/1999/xhtml", e.MATHML = "http://www.w3.org/1998/Math/MathML", e.SVG = "http://www.w3.org/2000/svg", e.XLINK = "http://www.w3.org/1999/xlink", e.XML = "http://www.w3.org/XML/1998/namespace", e.XMLNS = "http://www.w3.org/2000/xmlns/";
})(K = K || (K = {}));
var jr;
(function(e) {
  e.TYPE = "type", e.ACTION = "action", e.ENCODING = "encoding", e.PROMPT = "prompt", e.NAME = "name", e.COLOR = "color", e.FACE = "face", e.SIZE = "size";
})(jr = jr || (jr = {}));
var Dt;
(function(e) {
  e.NO_QUIRKS = "no-quirks", e.QUIRKS = "quirks", e.LIMITED_QUIRKS = "limited-quirks";
})(Dt = Dt || (Dt = {}));
var H;
(function(e) {
  e.A = "a", e.ADDRESS = "address", e.ANNOTATION_XML = "annotation-xml", e.APPLET = "applet", e.AREA = "area", e.ARTICLE = "article", e.ASIDE = "aside", e.B = "b", e.BASE = "base", e.BASEFONT = "basefont", e.BGSOUND = "bgsound", e.BIG = "big", e.BLOCKQUOTE = "blockquote", e.BODY = "body", e.BR = "br", e.BUTTON = "button", e.CAPTION = "caption", e.CENTER = "center", e.CODE = "code", e.COL = "col", e.COLGROUP = "colgroup", e.DD = "dd", e.DESC = "desc", e.DETAILS = "details", e.DIALOG = "dialog", e.DIR = "dir", e.DIV = "div", e.DL = "dl", e.DT = "dt", e.EM = "em", e.EMBED = "embed", e.FIELDSET = "fieldset", e.FIGCAPTION = "figcaption", e.FIGURE = "figure", e.FONT = "font", e.FOOTER = "footer", e.FOREIGN_OBJECT = "foreignObject", e.FORM = "form", e.FRAME = "frame", e.FRAMESET = "frameset", e.H1 = "h1", e.H2 = "h2", e.H3 = "h3", e.H4 = "h4", e.H5 = "h5", e.H6 = "h6", e.HEAD = "head", e.HEADER = "header", e.HGROUP = "hgroup", e.HR = "hr", e.HTML = "html", e.I = "i", e.IMG = "img", e.IMAGE = "image", e.INPUT = "input", e.IFRAME = "iframe", e.KEYGEN = "keygen", e.LABEL = "label", e.LI = "li", e.LINK = "link", e.LISTING = "listing", e.MAIN = "main", e.MALIGNMARK = "malignmark", e.MARQUEE = "marquee", e.MATH = "math", e.MENU = "menu", e.META = "meta", e.MGLYPH = "mglyph", e.MI = "mi", e.MO = "mo", e.MN = "mn", e.MS = "ms", e.MTEXT = "mtext", e.NAV = "nav", e.NOBR = "nobr", e.NOFRAMES = "noframes", e.NOEMBED = "noembed", e.NOSCRIPT = "noscript", e.OBJECT = "object", e.OL = "ol", e.OPTGROUP = "optgroup", e.OPTION = "option", e.P = "p", e.PARAM = "param", e.PLAINTEXT = "plaintext", e.PRE = "pre", e.RB = "rb", e.RP = "rp", e.RT = "rt", e.RTC = "rtc", e.RUBY = "ruby", e.S = "s", e.SCRIPT = "script", e.SECTION = "section", e.SELECT = "select", e.SOURCE = "source", e.SMALL = "small", e.SPAN = "span", e.STRIKE = "strike", e.STRONG = "strong", e.STYLE = "style", e.SUB = "sub", e.SUMMARY = "summary", e.SUP = "sup", e.TABLE = "table", e.TBODY = "tbody", e.TEMPLATE = "template", e.TEXTAREA = "textarea", e.TFOOT = "tfoot", e.TD = "td", e.TH = "th", e.THEAD = "thead", e.TITLE = "title", e.TR = "tr", e.TRACK = "track", e.TT = "tt", e.U = "u", e.UL = "ul", e.SVG = "svg", e.VAR = "var", e.WBR = "wbr", e.XMP = "xmp";
})(H = H || (H = {}));
var d;
(function(e) {
  e[e.UNKNOWN = 0] = "UNKNOWN", e[e.A = 1] = "A", e[e.ADDRESS = 2] = "ADDRESS", e[e.ANNOTATION_XML = 3] = "ANNOTATION_XML", e[e.APPLET = 4] = "APPLET", e[e.AREA = 5] = "AREA", e[e.ARTICLE = 6] = "ARTICLE", e[e.ASIDE = 7] = "ASIDE", e[e.B = 8] = "B", e[e.BASE = 9] = "BASE", e[e.BASEFONT = 10] = "BASEFONT", e[e.BGSOUND = 11] = "BGSOUND", e[e.BIG = 12] = "BIG", e[e.BLOCKQUOTE = 13] = "BLOCKQUOTE", e[e.BODY = 14] = "BODY", e[e.BR = 15] = "BR", e[e.BUTTON = 16] = "BUTTON", e[e.CAPTION = 17] = "CAPTION", e[e.CENTER = 18] = "CENTER", e[e.CODE = 19] = "CODE", e[e.COL = 20] = "COL", e[e.COLGROUP = 21] = "COLGROUP", e[e.DD = 22] = "DD", e[e.DESC = 23] = "DESC", e[e.DETAILS = 24] = "DETAILS", e[e.DIALOG = 25] = "DIALOG", e[e.DIR = 26] = "DIR", e[e.DIV = 27] = "DIV", e[e.DL = 28] = "DL", e[e.DT = 29] = "DT", e[e.EM = 30] = "EM", e[e.EMBED = 31] = "EMBED", e[e.FIELDSET = 32] = "FIELDSET", e[e.FIGCAPTION = 33] = "FIGCAPTION", e[e.FIGURE = 34] = "FIGURE", e[e.FONT = 35] = "FONT", e[e.FOOTER = 36] = "FOOTER", e[e.FOREIGN_OBJECT = 37] = "FOREIGN_OBJECT", e[e.FORM = 38] = "FORM", e[e.FRAME = 39] = "FRAME", e[e.FRAMESET = 40] = "FRAMESET", e[e.H1 = 41] = "H1", e[e.H2 = 42] = "H2", e[e.H3 = 43] = "H3", e[e.H4 = 44] = "H4", e[e.H5 = 45] = "H5", e[e.H6 = 46] = "H6", e[e.HEAD = 47] = "HEAD", e[e.HEADER = 48] = "HEADER", e[e.HGROUP = 49] = "HGROUP", e[e.HR = 50] = "HR", e[e.HTML = 51] = "HTML", e[e.I = 52] = "I", e[e.IMG = 53] = "IMG", e[e.IMAGE = 54] = "IMAGE", e[e.INPUT = 55] = "INPUT", e[e.IFRAME = 56] = "IFRAME", e[e.KEYGEN = 57] = "KEYGEN", e[e.LABEL = 58] = "LABEL", e[e.LI = 59] = "LI", e[e.LINK = 60] = "LINK", e[e.LISTING = 61] = "LISTING", e[e.MAIN = 62] = "MAIN", e[e.MALIGNMARK = 63] = "MALIGNMARK", e[e.MARQUEE = 64] = "MARQUEE", e[e.MATH = 65] = "MATH", e[e.MENU = 66] = "MENU", e[e.META = 67] = "META", e[e.MGLYPH = 68] = "MGLYPH", e[e.MI = 69] = "MI", e[e.MO = 70] = "MO", e[e.MN = 71] = "MN", e[e.MS = 72] = "MS", e[e.MTEXT = 73] = "MTEXT", e[e.NAV = 74] = "NAV", e[e.NOBR = 75] = "NOBR", e[e.NOFRAMES = 76] = "NOFRAMES", e[e.NOEMBED = 77] = "NOEMBED", e[e.NOSCRIPT = 78] = "NOSCRIPT", e[e.OBJECT = 79] = "OBJECT", e[e.OL = 80] = "OL", e[e.OPTGROUP = 81] = "OPTGROUP", e[e.OPTION = 82] = "OPTION", e[e.P = 83] = "P", e[e.PARAM = 84] = "PARAM", e[e.PLAINTEXT = 85] = "PLAINTEXT", e[e.PRE = 86] = "PRE", e[e.RB = 87] = "RB", e[e.RP = 88] = "RP", e[e.RT = 89] = "RT", e[e.RTC = 90] = "RTC", e[e.RUBY = 91] = "RUBY", e[e.S = 92] = "S", e[e.SCRIPT = 93] = "SCRIPT", e[e.SECTION = 94] = "SECTION", e[e.SELECT = 95] = "SELECT", e[e.SOURCE = 96] = "SOURCE", e[e.SMALL = 97] = "SMALL", e[e.SPAN = 98] = "SPAN", e[e.STRIKE = 99] = "STRIKE", e[e.STRONG = 100] = "STRONG", e[e.STYLE = 101] = "STYLE", e[e.SUB = 102] = "SUB", e[e.SUMMARY = 103] = "SUMMARY", e[e.SUP = 104] = "SUP", e[e.TABLE = 105] = "TABLE", e[e.TBODY = 106] = "TBODY", e[e.TEMPLATE = 107] = "TEMPLATE", e[e.TEXTAREA = 108] = "TEXTAREA", e[e.TFOOT = 109] = "TFOOT", e[e.TD = 110] = "TD", e[e.TH = 111] = "TH", e[e.THEAD = 112] = "THEAD", e[e.TITLE = 113] = "TITLE", e[e.TR = 114] = "TR", e[e.TRACK = 115] = "TRACK", e[e.TT = 116] = "TT", e[e.U = 117] = "U", e[e.UL = 118] = "UL", e[e.SVG = 119] = "SVG", e[e.VAR = 120] = "VAR", e[e.WBR = 121] = "WBR", e[e.XMP = 122] = "XMP";
})(d = d || (d = {}));
const sv = /* @__PURE__ */ new Map([
  [H.A, d.A],
  [H.ADDRESS, d.ADDRESS],
  [H.ANNOTATION_XML, d.ANNOTATION_XML],
  [H.APPLET, d.APPLET],
  [H.AREA, d.AREA],
  [H.ARTICLE, d.ARTICLE],
  [H.ASIDE, d.ASIDE],
  [H.B, d.B],
  [H.BASE, d.BASE],
  [H.BASEFONT, d.BASEFONT],
  [H.BGSOUND, d.BGSOUND],
  [H.BIG, d.BIG],
  [H.BLOCKQUOTE, d.BLOCKQUOTE],
  [H.BODY, d.BODY],
  [H.BR, d.BR],
  [H.BUTTON, d.BUTTON],
  [H.CAPTION, d.CAPTION],
  [H.CENTER, d.CENTER],
  [H.CODE, d.CODE],
  [H.COL, d.COL],
  [H.COLGROUP, d.COLGROUP],
  [H.DD, d.DD],
  [H.DESC, d.DESC],
  [H.DETAILS, d.DETAILS],
  [H.DIALOG, d.DIALOG],
  [H.DIR, d.DIR],
  [H.DIV, d.DIV],
  [H.DL, d.DL],
  [H.DT, d.DT],
  [H.EM, d.EM],
  [H.EMBED, d.EMBED],
  [H.FIELDSET, d.FIELDSET],
  [H.FIGCAPTION, d.FIGCAPTION],
  [H.FIGURE, d.FIGURE],
  [H.FONT, d.FONT],
  [H.FOOTER, d.FOOTER],
  [H.FOREIGN_OBJECT, d.FOREIGN_OBJECT],
  [H.FORM, d.FORM],
  [H.FRAME, d.FRAME],
  [H.FRAMESET, d.FRAMESET],
  [H.H1, d.H1],
  [H.H2, d.H2],
  [H.H3, d.H3],
  [H.H4, d.H4],
  [H.H5, d.H5],
  [H.H6, d.H6],
  [H.HEAD, d.HEAD],
  [H.HEADER, d.HEADER],
  [H.HGROUP, d.HGROUP],
  [H.HR, d.HR],
  [H.HTML, d.HTML],
  [H.I, d.I],
  [H.IMG, d.IMG],
  [H.IMAGE, d.IMAGE],
  [H.INPUT, d.INPUT],
  [H.IFRAME, d.IFRAME],
  [H.KEYGEN, d.KEYGEN],
  [H.LABEL, d.LABEL],
  [H.LI, d.LI],
  [H.LINK, d.LINK],
  [H.LISTING, d.LISTING],
  [H.MAIN, d.MAIN],
  [H.MALIGNMARK, d.MALIGNMARK],
  [H.MARQUEE, d.MARQUEE],
  [H.MATH, d.MATH],
  [H.MENU, d.MENU],
  [H.META, d.META],
  [H.MGLYPH, d.MGLYPH],
  [H.MI, d.MI],
  [H.MO, d.MO],
  [H.MN, d.MN],
  [H.MS, d.MS],
  [H.MTEXT, d.MTEXT],
  [H.NAV, d.NAV],
  [H.NOBR, d.NOBR],
  [H.NOFRAMES, d.NOFRAMES],
  [H.NOEMBED, d.NOEMBED],
  [H.NOSCRIPT, d.NOSCRIPT],
  [H.OBJECT, d.OBJECT],
  [H.OL, d.OL],
  [H.OPTGROUP, d.OPTGROUP],
  [H.OPTION, d.OPTION],
  [H.P, d.P],
  [H.PARAM, d.PARAM],
  [H.PLAINTEXT, d.PLAINTEXT],
  [H.PRE, d.PRE],
  [H.RB, d.RB],
  [H.RP, d.RP],
  [H.RT, d.RT],
  [H.RTC, d.RTC],
  [H.RUBY, d.RUBY],
  [H.S, d.S],
  [H.SCRIPT, d.SCRIPT],
  [H.SECTION, d.SECTION],
  [H.SELECT, d.SELECT],
  [H.SOURCE, d.SOURCE],
  [H.SMALL, d.SMALL],
  [H.SPAN, d.SPAN],
  [H.STRIKE, d.STRIKE],
  [H.STRONG, d.STRONG],
  [H.STYLE, d.STYLE],
  [H.SUB, d.SUB],
  [H.SUMMARY, d.SUMMARY],
  [H.SUP, d.SUP],
  [H.TABLE, d.TABLE],
  [H.TBODY, d.TBODY],
  [H.TEMPLATE, d.TEMPLATE],
  [H.TEXTAREA, d.TEXTAREA],
  [H.TFOOT, d.TFOOT],
  [H.TD, d.TD],
  [H.TH, d.TH],
  [H.THEAD, d.THEAD],
  [H.TITLE, d.TITLE],
  [H.TR, d.TR],
  [H.TRACK, d.TRACK],
  [H.TT, d.TT],
  [H.U, d.U],
  [H.UL, d.UL],
  [H.SVG, d.SVG],
  [H.VAR, d.VAR],
  [H.WBR, d.WBR],
  [H.XMP, d.XMP]
]);
function Ra(e) {
  var t;
  return (t = sv.get(e)) !== null && t !== void 0 ? t : d.UNKNOWN;
}
const te = d, uv = {
  [K.HTML]: /* @__PURE__ */ new Set([
    te.ADDRESS,
    te.APPLET,
    te.AREA,
    te.ARTICLE,
    te.ASIDE,
    te.BASE,
    te.BASEFONT,
    te.BGSOUND,
    te.BLOCKQUOTE,
    te.BODY,
    te.BR,
    te.BUTTON,
    te.CAPTION,
    te.CENTER,
    te.COL,
    te.COLGROUP,
    te.DD,
    te.DETAILS,
    te.DIR,
    te.DIV,
    te.DL,
    te.DT,
    te.EMBED,
    te.FIELDSET,
    te.FIGCAPTION,
    te.FIGURE,
    te.FOOTER,
    te.FORM,
    te.FRAME,
    te.FRAMESET,
    te.H1,
    te.H2,
    te.H3,
    te.H4,
    te.H5,
    te.H6,
    te.HEAD,
    te.HEADER,
    te.HGROUP,
    te.HR,
    te.HTML,
    te.IFRAME,
    te.IMG,
    te.INPUT,
    te.LI,
    te.LINK,
    te.LISTING,
    te.MAIN,
    te.MARQUEE,
    te.MENU,
    te.META,
    te.NAV,
    te.NOEMBED,
    te.NOFRAMES,
    te.NOSCRIPT,
    te.OBJECT,
    te.OL,
    te.P,
    te.PARAM,
    te.PLAINTEXT,
    te.PRE,
    te.SCRIPT,
    te.SECTION,
    te.SELECT,
    te.SOURCE,
    te.STYLE,
    te.SUMMARY,
    te.TABLE,
    te.TBODY,
    te.TD,
    te.TEMPLATE,
    te.TEXTAREA,
    te.TFOOT,
    te.TH,
    te.THEAD,
    te.TITLE,
    te.TR,
    te.TRACK,
    te.UL,
    te.WBR,
    te.XMP
  ]),
  [K.MATHML]: /* @__PURE__ */ new Set([te.MI, te.MO, te.MN, te.MS, te.MTEXT, te.ANNOTATION_XML]),
  [K.SVG]: /* @__PURE__ */ new Set([te.TITLE, te.FOREIGN_OBJECT, te.DESC]),
  [K.XLINK]: /* @__PURE__ */ new Set(),
  [K.XML]: /* @__PURE__ */ new Set(),
  [K.XMLNS]: /* @__PURE__ */ new Set()
};
function _d(e) {
  return e === te.H1 || e === te.H2 || e === te.H3 || e === te.H4 || e === te.H5 || e === te.H6;
}
const ov = /* @__PURE__ */ new Set([
  H.STYLE,
  H.SCRIPT,
  H.XMP,
  H.IFRAME,
  H.NOEMBED,
  H.NOFRAMES,
  H.PLAINTEXT
]);
function lv(e, t) {
  return ov.has(e) || t && e === H.NOSCRIPT;
}
const cv = /* @__PURE__ */ new Map([
  [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]
]);
var I;
(function(e) {
  e[e.DATA = 0] = "DATA", e[e.RCDATA = 1] = "RCDATA", e[e.RAWTEXT = 2] = "RAWTEXT", e[e.SCRIPT_DATA = 3] = "SCRIPT_DATA", e[e.PLAINTEXT = 4] = "PLAINTEXT", e[e.TAG_OPEN = 5] = "TAG_OPEN", e[e.END_TAG_OPEN = 6] = "END_TAG_OPEN", e[e.TAG_NAME = 7] = "TAG_NAME", e[e.RCDATA_LESS_THAN_SIGN = 8] = "RCDATA_LESS_THAN_SIGN", e[e.RCDATA_END_TAG_OPEN = 9] = "RCDATA_END_TAG_OPEN", e[e.RCDATA_END_TAG_NAME = 10] = "RCDATA_END_TAG_NAME", e[e.RAWTEXT_LESS_THAN_SIGN = 11] = "RAWTEXT_LESS_THAN_SIGN", e[e.RAWTEXT_END_TAG_OPEN = 12] = "RAWTEXT_END_TAG_OPEN", e[e.RAWTEXT_END_TAG_NAME = 13] = "RAWTEXT_END_TAG_NAME", e[e.SCRIPT_DATA_LESS_THAN_SIGN = 14] = "SCRIPT_DATA_LESS_THAN_SIGN", e[e.SCRIPT_DATA_END_TAG_OPEN = 15] = "SCRIPT_DATA_END_TAG_OPEN", e[e.SCRIPT_DATA_END_TAG_NAME = 16] = "SCRIPT_DATA_END_TAG_NAME", e[e.SCRIPT_DATA_ESCAPE_START = 17] = "SCRIPT_DATA_ESCAPE_START", e[e.SCRIPT_DATA_ESCAPE_START_DASH = 18] = "SCRIPT_DATA_ESCAPE_START_DASH", e[e.SCRIPT_DATA_ESCAPED = 19] = "SCRIPT_DATA_ESCAPED", e[e.SCRIPT_DATA_ESCAPED_DASH = 20] = "SCRIPT_DATA_ESCAPED_DASH", e[e.SCRIPT_DATA_ESCAPED_DASH_DASH = 21] = "SCRIPT_DATA_ESCAPED_DASH_DASH", e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN = 22] = "SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN", e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN = 23] = "SCRIPT_DATA_ESCAPED_END_TAG_OPEN", e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME = 24] = "SCRIPT_DATA_ESCAPED_END_TAG_NAME", e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START = 25] = "SCRIPT_DATA_DOUBLE_ESCAPE_START", e[e.SCRIPT_DATA_DOUBLE_ESCAPED = 26] = "SCRIPT_DATA_DOUBLE_ESCAPED", e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH = 27] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH", e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH = 28] = "SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH", e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN = 29] = "SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN", e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END = 30] = "SCRIPT_DATA_DOUBLE_ESCAPE_END", e[e.BEFORE_ATTRIBUTE_NAME = 31] = "BEFORE_ATTRIBUTE_NAME", e[e.ATTRIBUTE_NAME = 32] = "ATTRIBUTE_NAME", e[e.AFTER_ATTRIBUTE_NAME = 33] = "AFTER_ATTRIBUTE_NAME", e[e.BEFORE_ATTRIBUTE_VALUE = 34] = "BEFORE_ATTRIBUTE_VALUE", e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED = 35] = "ATTRIBUTE_VALUE_DOUBLE_QUOTED", e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED = 36] = "ATTRIBUTE_VALUE_SINGLE_QUOTED", e[e.ATTRIBUTE_VALUE_UNQUOTED = 37] = "ATTRIBUTE_VALUE_UNQUOTED", e[e.AFTER_ATTRIBUTE_VALUE_QUOTED = 38] = "AFTER_ATTRIBUTE_VALUE_QUOTED", e[e.SELF_CLOSING_START_TAG = 39] = "SELF_CLOSING_START_TAG", e[e.BOGUS_COMMENT = 40] = "BOGUS_COMMENT", e[e.MARKUP_DECLARATION_OPEN = 41] = "MARKUP_DECLARATION_OPEN", e[e.COMMENT_START = 42] = "COMMENT_START", e[e.COMMENT_START_DASH = 43] = "COMMENT_START_DASH", e[e.COMMENT = 44] = "COMMENT", e[e.COMMENT_LESS_THAN_SIGN = 45] = "COMMENT_LESS_THAN_SIGN", e[e.COMMENT_LESS_THAN_SIGN_BANG = 46] = "COMMENT_LESS_THAN_SIGN_BANG", e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH = 47] = "COMMENT_LESS_THAN_SIGN_BANG_DASH", e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH = 48] = "COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH", e[e.COMMENT_END_DASH = 49] = "COMMENT_END_DASH", e[e.COMMENT_END = 50] = "COMMENT_END", e[e.COMMENT_END_BANG = 51] = "COMMENT_END_BANG", e[e.DOCTYPE = 52] = "DOCTYPE", e[e.BEFORE_DOCTYPE_NAME = 53] = "BEFORE_DOCTYPE_NAME", e[e.DOCTYPE_NAME = 54] = "DOCTYPE_NAME", e[e.AFTER_DOCTYPE_NAME = 55] = "AFTER_DOCTYPE_NAME", e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD = 56] = "AFTER_DOCTYPE_PUBLIC_KEYWORD", e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER = 57] = "BEFORE_DOCTYPE_PUBLIC_IDENTIFIER", e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED = 58] = "DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED", e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED = 59] = "DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED", e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER = 60] = "AFTER_DOCTYPE_PUBLIC_IDENTIFIER", e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS = 61] = "BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS", e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD = 62] = "AFTER_DOCTYPE_SYSTEM_KEYWORD", e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER = 63] = "BEFORE_DOCTYPE_SYSTEM_IDENTIFIER", e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED = 64] = "DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED", e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED = 65] = "DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED", e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER = 66] = "AFTER_DOCTYPE_SYSTEM_IDENTIFIER", e[e.BOGUS_DOCTYPE = 67] = "BOGUS_DOCTYPE", e[e.CDATA_SECTION = 68] = "CDATA_SECTION", e[e.CDATA_SECTION_BRACKET = 69] = "CDATA_SECTION_BRACKET", e[e.CDATA_SECTION_END = 70] = "CDATA_SECTION_END", e[e.CHARACTER_REFERENCE = 71] = "CHARACTER_REFERENCE", e[e.NAMED_CHARACTER_REFERENCE = 72] = "NAMED_CHARACTER_REFERENCE", e[e.AMBIGUOUS_AMPERSAND = 73] = "AMBIGUOUS_AMPERSAND", e[e.NUMERIC_CHARACTER_REFERENCE = 74] = "NUMERIC_CHARACTER_REFERENCE", e[e.HEXADEMICAL_CHARACTER_REFERENCE_START = 75] = "HEXADEMICAL_CHARACTER_REFERENCE_START", e[e.HEXADEMICAL_CHARACTER_REFERENCE = 76] = "HEXADEMICAL_CHARACTER_REFERENCE", e[e.DECIMAL_CHARACTER_REFERENCE = 77] = "DECIMAL_CHARACTER_REFERENCE", e[e.NUMERIC_CHARACTER_REFERENCE_END = 78] = "NUMERIC_CHARACTER_REFERENCE_END";
})(I || (I = {}));
const Rt = {
  DATA: I.DATA,
  RCDATA: I.RCDATA,
  RAWTEXT: I.RAWTEXT,
  SCRIPT_DATA: I.SCRIPT_DATA,
  PLAINTEXT: I.PLAINTEXT,
  CDATA_SECTION: I.CDATA_SECTION
};
function w0(e) {
  return e >= C.DIGIT_0 && e <= C.DIGIT_9;
}
function A0(e) {
  return e >= C.LATIN_CAPITAL_A && e <= C.LATIN_CAPITAL_Z;
}
function hv(e) {
  return e >= C.LATIN_SMALL_A && e <= C.LATIN_SMALL_Z;
}
function Yr(e) {
  return hv(e) || A0(e);
}
function Ru(e) {
  return Yr(e) || w0(e);
}
function Td(e) {
  return e >= C.LATIN_CAPITAL_A && e <= C.LATIN_CAPITAL_F;
}
function Ad(e) {
  return e >= C.LATIN_SMALL_A && e <= C.LATIN_SMALL_F;
}
function fv(e) {
  return w0(e) || Td(e) || Ad(e);
}
function Oi(e) {
  return e + 32;
}
function xd(e) {
  return e === C.SPACE || e === C.LINE_FEED || e === C.TABULATION || e === C.FORM_FEED;
}
function dv(e) {
  return e === C.EQUALS_SIGN || Ru(e);
}
function Ph(e) {
  return xd(e) || e === C.SOLIDUS || e === C.GREATER_THAN_SIGN;
}
let mv = class {
  constructor(t, r) {
    this.options = t, this.handler = r, this.paused = !1, this.inLoop = !1, this.inForeignNode = !1, this.lastStartTagName = "", this.active = !1, this.state = I.DATA, this.returnState = I.DATA, this.charRefCode = -1, this.consumedAfterSnapshot = -1, this.currentCharacterToken = null, this.currentToken = null, this.currentAttr = { name: "", value: "" }, this.preprocessor = new av(r), this.currentLocation = this.getCurrentLocation(-1);
  }
  //Errors
  _err(t) {
    var r, n;
    (n = (r = this.handler).onParseError) === null || n === void 0 || n.call(r, this.preprocessor.getError(t));
  }
  // NOTE: `offset` may never run across line boundaries.
  getCurrentLocation(t) {
    return this.options.sourceCodeLocationInfo ? {
      startLine: this.preprocessor.line,
      startCol: this.preprocessor.col - t,
      startOffset: this.preprocessor.offset - t,
      endLine: -1,
      endCol: -1,
      endOffset: -1
    } : null;
  }
  _runParsingLoop() {
    if (!this.inLoop) {
      for (this.inLoop = !0; this.active && !this.paused; ) {
        this.consumedAfterSnapshot = 0;
        const t = this._consume();
        this._ensureHibernation() || this._callState(t);
      }
      this.inLoop = !1;
    }
  }
  //API
  pause() {
    this.paused = !0;
  }
  resume(t) {
    if (!this.paused)
      throw new Error("Parser was already resumed");
    this.paused = !1, !this.inLoop && (this._runParsingLoop(), this.paused || t == null || t());
  }
  write(t, r, n) {
    this.active = !0, this.preprocessor.write(t, r), this._runParsingLoop(), this.paused || n == null || n();
  }
  insertHtmlAtCurrentPos(t) {
    this.active = !0, this.preprocessor.insertHtmlAtCurrentPos(t), this._runParsingLoop();
  }
  //Hibernation
  _ensureHibernation() {
    return this.preprocessor.endOfChunkHit ? (this._unconsume(this.consumedAfterSnapshot), this.active = !1, !0) : !1;
  }
  //Consumption
  _consume() {
    return this.consumedAfterSnapshot++, this.preprocessor.advance();
  }
  _unconsume(t) {
    this.consumedAfterSnapshot -= t, this.preprocessor.retreat(t);
  }
  _reconsumeInState(t, r) {
    this.state = t, this._callState(r);
  }
  _advanceBy(t) {
    this.consumedAfterSnapshot += t;
    for (let r = 0; r < t; r++)
      this.preprocessor.advance();
  }
  _consumeSequenceIfMatch(t, r) {
    return this.preprocessor.startsWith(t, r) ? (this._advanceBy(t.length - 1), !0) : !1;
  }
  //Token creation
  _createStartTagToken() {
    this.currentToken = {
      type: Le.START_TAG,
      tagName: "",
      tagID: d.UNKNOWN,
      selfClosing: !1,
      ackSelfClosing: !1,
      attrs: [],
      location: this.getCurrentLocation(1)
    };
  }
  _createEndTagToken() {
    this.currentToken = {
      type: Le.END_TAG,
      tagName: "",
      tagID: d.UNKNOWN,
      selfClosing: !1,
      ackSelfClosing: !1,
      attrs: [],
      location: this.getCurrentLocation(2)
    };
  }
  _createCommentToken(t) {
    this.currentToken = {
      type: Le.COMMENT,
      data: "",
      location: this.getCurrentLocation(t)
    };
  }
  _createDoctypeToken(t) {
    this.currentToken = {
      type: Le.DOCTYPE,
      name: t,
      forceQuirks: !1,
      publicId: null,
      systemId: null,
      location: this.currentLocation
    };
  }
  _createCharacterToken(t, r) {
    this.currentCharacterToken = {
      type: t,
      chars: r,
      location: this.currentLocation
    };
  }
  //Tag attributes
  _createAttr(t) {
    this.currentAttr = {
      name: t,
      value: ""
    }, this.currentLocation = this.getCurrentLocation(0);
  }
  _leaveAttrName() {
    var t, r;
    const n = this.currentToken;
    if (vd(n, this.currentAttr.name) === null) {
      if (n.attrs.push(this.currentAttr), n.location && this.currentLocation) {
        const i = (t = (r = n.location).attrs) !== null && t !== void 0 ? t : r.attrs = /* @__PURE__ */ Object.create(null);
        i[this.currentAttr.name] = this.currentLocation, this._leaveAttrValue();
      }
    } else
      this._err(G.duplicateAttribute);
  }
  _leaveAttrValue() {
    this.currentLocation && (this.currentLocation.endLine = this.preprocessor.line, this.currentLocation.endCol = this.preprocessor.col, this.currentLocation.endOffset = this.preprocessor.offset);
  }
  //Token emission
  prepareToken(t) {
    this._emitCurrentCharacterToken(t.location), this.currentToken = null, t.location && (t.location.endLine = this.preprocessor.line, t.location.endCol = this.preprocessor.col + 1, t.location.endOffset = this.preprocessor.offset + 1), this.currentLocation = this.getCurrentLocation(-1);
  }
  emitCurrentTagToken() {
    const t = this.currentToken;
    this.prepareToken(t), t.tagID = Ra(t.tagName), t.type === Le.START_TAG ? (this.lastStartTagName = t.tagName, this.handler.onStartTag(t)) : (t.attrs.length > 0 && this._err(G.endTagWithAttributes), t.selfClosing && this._err(G.endTagWithTrailingSolidus), this.handler.onEndTag(t)), this.preprocessor.dropParsedChunk();
  }
  emitCurrentComment(t) {
    this.prepareToken(t), this.handler.onComment(t), this.preprocessor.dropParsedChunk();
  }
  emitCurrentDoctype(t) {
    this.prepareToken(t), this.handler.onDoctype(t), this.preprocessor.dropParsedChunk();
  }
  _emitCurrentCharacterToken(t) {
    if (this.currentCharacterToken) {
      switch (t && this.currentCharacterToken.location && (this.currentCharacterToken.location.endLine = t.startLine, this.currentCharacterToken.location.endCol = t.startCol, this.currentCharacterToken.location.endOffset = t.startOffset), this.currentCharacterToken.type) {
        case Le.CHARACTER: {
          this.handler.onCharacter(this.currentCharacterToken);
          break;
        }
        case Le.NULL_CHARACTER: {
          this.handler.onNullCharacter(this.currentCharacterToken);
          break;
        }
        case Le.WHITESPACE_CHARACTER: {
          this.handler.onWhitespaceCharacter(this.currentCharacterToken);
          break;
        }
      }
      this.currentCharacterToken = null;
    }
  }
  _emitEOFToken() {
    const t = this.getCurrentLocation(0);
    t && (t.endLine = t.startLine, t.endCol = t.startCol, t.endOffset = t.startOffset), this._emitCurrentCharacterToken(t), this.handler.onEof({ type: Le.EOF, location: t }), this.active = !1;
  }
  //Characters emission
  //OPTIMIZATION: specification uses only one type of character tokens (one token per character).
  //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.
  //If we have a sequence of characters that belong to the same group, the parser can process it
  //as a single solid character token.
  //So, there are 3 types of character tokens in parse5:
  //1)TokenType.NULL_CHARACTER - \u0000-character sequences (e.g. '\u0000\u0000\u0000')
  //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\n  \r\t   \f')
  //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')
  _appendCharToCurrentCharacterToken(t, r) {
    if (this.currentCharacterToken)
      if (this.currentCharacterToken.type !== t)
        this.currentLocation = this.getCurrentLocation(0), this._emitCurrentCharacterToken(this.currentLocation), this.preprocessor.dropParsedChunk();
      else {
        this.currentCharacterToken.chars += r;
        return;
      }
    this._createCharacterToken(t, r);
  }
  _emitCodePoint(t) {
    const r = xd(t) ? Le.WHITESPACE_CHARACTER : t === C.NULL ? Le.NULL_CHARACTER : Le.CHARACTER;
    this._appendCharToCurrentCharacterToken(r, String.fromCodePoint(t));
  }
  //NOTE: used when we emit characters explicitly.
  //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.
  _emitChars(t) {
    this._appendCharToCurrentCharacterToken(Le.CHARACTER, t);
  }
  // Character reference helpers
  _matchNamedCharacterReference(t) {
    let r = null, n = 0, i = !1;
    for (let a = 0, o = kr[0]; a >= 0 && (a = co(kr, o, a + 1, t), !(a < 0)); t = this._consume()) {
      n += 1, o = kr[a];
      const c = o & zt.VALUE_LENGTH;
      if (c) {
        const f = (c >> 14) - 1;
        if (t !== C.SEMICOLON && this._isCharacterReferenceInAttribute() && dv(this.preprocessor.peek(1)) ? (r = [C.AMPERSAND], a += f) : (r = f === 0 ? [kr[a] & ~zt.VALUE_LENGTH] : f === 1 ? [kr[++a]] : [kr[++a], kr[++a]], n = 0, i = t !== C.SEMICOLON), f === 0) {
          this._consume();
          break;
        }
      }
    }
    return this._unconsume(n), i && !this.preprocessor.endOfChunkHit && this._err(G.missingSemicolonAfterCharacterReference), this._unconsume(1), r;
  }
  _isCharacterReferenceInAttribute() {
    return this.returnState === I.ATTRIBUTE_VALUE_DOUBLE_QUOTED || this.returnState === I.ATTRIBUTE_VALUE_SINGLE_QUOTED || this.returnState === I.ATTRIBUTE_VALUE_UNQUOTED;
  }
  _flushCodePointConsumedAsCharacterReference(t) {
    this._isCharacterReferenceInAttribute() ? this.currentAttr.value += String.fromCodePoint(t) : this._emitCodePoint(t);
  }
  // Calling states this way turns out to be much faster than any other approach.
  _callState(t) {
    switch (this.state) {
      case I.DATA: {
        this._stateData(t);
        break;
      }
      case I.RCDATA: {
        this._stateRcdata(t);
        break;
      }
      case I.RAWTEXT: {
        this._stateRawtext(t);
        break;
      }
      case I.SCRIPT_DATA: {
        this._stateScriptData(t);
        break;
      }
      case I.PLAINTEXT: {
        this._statePlaintext(t);
        break;
      }
      case I.TAG_OPEN: {
        this._stateTagOpen(t);
        break;
      }
      case I.END_TAG_OPEN: {
        this._stateEndTagOpen(t);
        break;
      }
      case I.TAG_NAME: {
        this._stateTagName(t);
        break;
      }
      case I.RCDATA_LESS_THAN_SIGN: {
        this._stateRcdataLessThanSign(t);
        break;
      }
      case I.RCDATA_END_TAG_OPEN: {
        this._stateRcdataEndTagOpen(t);
        break;
      }
      case I.RCDATA_END_TAG_NAME: {
        this._stateRcdataEndTagName(t);
        break;
      }
      case I.RAWTEXT_LESS_THAN_SIGN: {
        this._stateRawtextLessThanSign(t);
        break;
      }
      case I.RAWTEXT_END_TAG_OPEN: {
        this._stateRawtextEndTagOpen(t);
        break;
      }
      case I.RAWTEXT_END_TAG_NAME: {
        this._stateRawtextEndTagName(t);
        break;
      }
      case I.SCRIPT_DATA_LESS_THAN_SIGN: {
        this._stateScriptDataLessThanSign(t);
        break;
      }
      case I.SCRIPT_DATA_END_TAG_OPEN: {
        this._stateScriptDataEndTagOpen(t);
        break;
      }
      case I.SCRIPT_DATA_END_TAG_NAME: {
        this._stateScriptDataEndTagName(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPE_START: {
        this._stateScriptDataEscapeStart(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPE_START_DASH: {
        this._stateScriptDataEscapeStartDash(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPED: {
        this._stateScriptDataEscaped(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPED_DASH: {
        this._stateScriptDataEscapedDash(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPED_DASH_DASH: {
        this._stateScriptDataEscapedDashDash(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {
        this._stateScriptDataEscapedLessThanSign(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {
        this._stateScriptDataEscapedEndTagOpen(t);
        break;
      }
      case I.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {
        this._stateScriptDataEscapedEndTagName(t);
        break;
      }
      case I.SCRIPT_DATA_DOUBLE_ESCAPE_START: {
        this._stateScriptDataDoubleEscapeStart(t);
        break;
      }
      case I.SCRIPT_DATA_DOUBLE_ESCAPED: {
        this._stateScriptDataDoubleEscaped(t);
        break;
      }
      case I.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {
        this._stateScriptDataDoubleEscapedDash(t);
        break;
      }
      case I.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {
        this._stateScriptDataDoubleEscapedDashDash(t);
        break;
      }
      case I.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {
        this._stateScriptDataDoubleEscapedLessThanSign(t);
        break;
      }
      case I.SCRIPT_DATA_DOUBLE_ESCAPE_END: {
        this._stateScriptDataDoubleEscapeEnd(t);
        break;
      }
      case I.BEFORE_ATTRIBUTE_NAME: {
        this._stateBeforeAttributeName(t);
        break;
      }
      case I.ATTRIBUTE_NAME: {
        this._stateAttributeName(t);
        break;
      }
      case I.AFTER_ATTRIBUTE_NAME: {
        this._stateAfterAttributeName(t);
        break;
      }
      case I.BEFORE_ATTRIBUTE_VALUE: {
        this._stateBeforeAttributeValue(t);
        break;
      }
      case I.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {
        this._stateAttributeValueDoubleQuoted(t);
        break;
      }
      case I.ATTRIBUTE_VALUE_SINGLE_QUOTED: {
        this._stateAttributeValueSingleQuoted(t);
        break;
      }
      case I.ATTRIBUTE_VALUE_UNQUOTED: {
        this._stateAttributeValueUnquoted(t);
        break;
      }
      case I.AFTER_ATTRIBUTE_VALUE_QUOTED: {
        this._stateAfterAttributeValueQuoted(t);
        break;
      }
      case I.SELF_CLOSING_START_TAG: {
        this._stateSelfClosingStartTag(t);
        break;
      }
      case I.BOGUS_COMMENT: {
        this._stateBogusComment(t);
        break;
      }
      case I.MARKUP_DECLARATION_OPEN: {
        this._stateMarkupDeclarationOpen(t);
        break;
      }
      case I.COMMENT_START: {
        this._stateCommentStart(t);
        break;
      }
      case I.COMMENT_START_DASH: {
        this._stateCommentStartDash(t);
        break;
      }
      case I.COMMENT: {
        this._stateComment(t);
        break;
      }
      case I.COMMENT_LESS_THAN_SIGN: {
        this._stateCommentLessThanSign(t);
        break;
      }
      case I.COMMENT_LESS_THAN_SIGN_BANG: {
        this._stateCommentLessThanSignBang(t);
        break;
      }
      case I.COMMENT_LESS_THAN_SIGN_BANG_DASH: {
        this._stateCommentLessThanSignBangDash(t);
        break;
      }
      case I.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {
        this._stateCommentLessThanSignBangDashDash(t);
        break;
      }
      case I.COMMENT_END_DASH: {
        this._stateCommentEndDash(t);
        break;
      }
      case I.COMMENT_END: {
        this._stateCommentEnd(t);
        break;
      }
      case I.COMMENT_END_BANG: {
        this._stateCommentEndBang(t);
        break;
      }
      case I.DOCTYPE: {
        this._stateDoctype(t);
        break;
      }
      case I.BEFORE_DOCTYPE_NAME: {
        this._stateBeforeDoctypeName(t);
        break;
      }
      case I.DOCTYPE_NAME: {
        this._stateDoctypeName(t);
        break;
      }
      case I.AFTER_DOCTYPE_NAME: {
        this._stateAfterDoctypeName(t);
        break;
      }
      case I.AFTER_DOCTYPE_PUBLIC_KEYWORD: {
        this._stateAfterDoctypePublicKeyword(t);
        break;
      }
      case I.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {
        this._stateBeforeDoctypePublicIdentifier(t);
        break;
      }
      case I.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {
        this._stateDoctypePublicIdentifierDoubleQuoted(t);
        break;
      }
      case I.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {
        this._stateDoctypePublicIdentifierSingleQuoted(t);
        break;
      }
      case I.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {
        this._stateAfterDoctypePublicIdentifier(t);
        break;
      }
      case I.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {
        this._stateBetweenDoctypePublicAndSystemIdentifiers(t);
        break;
      }
      case I.AFTER_DOCTYPE_SYSTEM_KEYWORD: {
        this._stateAfterDoctypeSystemKeyword(t);
        break;
      }
      case I.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {
        this._stateBeforeDoctypeSystemIdentifier(t);
        break;
      }
      case I.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {
        this._stateDoctypeSystemIdentifierDoubleQuoted(t);
        break;
      }
      case I.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {
        this._stateDoctypeSystemIdentifierSingleQuoted(t);
        break;
      }
      case I.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {
        this._stateAfterDoctypeSystemIdentifier(t);
        break;
      }
      case I.BOGUS_DOCTYPE: {
        this._stateBogusDoctype(t);
        break;
      }
      case I.CDATA_SECTION: {
        this._stateCdataSection(t);
        break;
      }
      case I.CDATA_SECTION_BRACKET: {
        this._stateCdataSectionBracket(t);
        break;
      }
      case I.CDATA_SECTION_END: {
        this._stateCdataSectionEnd(t);
        break;
      }
      case I.CHARACTER_REFERENCE: {
        this._stateCharacterReference(t);
        break;
      }
      case I.NAMED_CHARACTER_REFERENCE: {
        this._stateNamedCharacterReference(t);
        break;
      }
      case I.AMBIGUOUS_AMPERSAND: {
        this._stateAmbiguousAmpersand(t);
        break;
      }
      case I.NUMERIC_CHARACTER_REFERENCE: {
        this._stateNumericCharacterReference(t);
        break;
      }
      case I.HEXADEMICAL_CHARACTER_REFERENCE_START: {
        this._stateHexademicalCharacterReferenceStart(t);
        break;
      }
      case I.HEXADEMICAL_CHARACTER_REFERENCE: {
        this._stateHexademicalCharacterReference(t);
        break;
      }
      case I.DECIMAL_CHARACTER_REFERENCE: {
        this._stateDecimalCharacterReference(t);
        break;
      }
      case I.NUMERIC_CHARACTER_REFERENCE_END: {
        this._stateNumericCharacterReferenceEnd(t);
        break;
      }
      default:
        throw new Error("Unknown state");
    }
  }
  // State machine
  // Data state
  //------------------------------------------------------------------
  _stateData(t) {
    switch (t) {
      case C.LESS_THAN_SIGN: {
        this.state = I.TAG_OPEN;
        break;
      }
      case C.AMPERSAND: {
        this.returnState = I.DATA, this.state = I.CHARACTER_REFERENCE;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitCodePoint(t);
        break;
      }
      case C.EOF: {
        this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  //  RCDATA state
  //------------------------------------------------------------------
  _stateRcdata(t) {
    switch (t) {
      case C.AMPERSAND: {
        this.returnState = I.RCDATA, this.state = I.CHARACTER_REFERENCE;
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.RCDATA_LESS_THAN_SIGN;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // RAWTEXT state
  //------------------------------------------------------------------
  _stateRawtext(t) {
    switch (t) {
      case C.LESS_THAN_SIGN: {
        this.state = I.RAWTEXT_LESS_THAN_SIGN;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // Script data state
  //------------------------------------------------------------------
  _stateScriptData(t) {
    switch (t) {
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_LESS_THAN_SIGN;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // PLAINTEXT state
  //------------------------------------------------------------------
  _statePlaintext(t) {
    switch (t) {
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // Tag open state
  //------------------------------------------------------------------
  _stateTagOpen(t) {
    if (Yr(t))
      this._createStartTagToken(), this.state = I.TAG_NAME, this._stateTagName(t);
    else
      switch (t) {
        case C.EXCLAMATION_MARK: {
          this.state = I.MARKUP_DECLARATION_OPEN;
          break;
        }
        case C.SOLIDUS: {
          this.state = I.END_TAG_OPEN;
          break;
        }
        case C.QUESTION_MARK: {
          this._err(G.unexpectedQuestionMarkInsteadOfTagName), this._createCommentToken(1), this.state = I.BOGUS_COMMENT, this._stateBogusComment(t);
          break;
        }
        case C.EOF: {
          this._err(G.eofBeforeTagName), this._emitChars("<"), this._emitEOFToken();
          break;
        }
        default:
          this._err(G.invalidFirstCharacterOfTagName), this._emitChars("<"), this.state = I.DATA, this._stateData(t);
      }
  }
  // End tag open state
  //------------------------------------------------------------------
  _stateEndTagOpen(t) {
    if (Yr(t))
      this._createEndTagToken(), this.state = I.TAG_NAME, this._stateTagName(t);
    else
      switch (t) {
        case C.GREATER_THAN_SIGN: {
          this._err(G.missingEndTagName), this.state = I.DATA;
          break;
        }
        case C.EOF: {
          this._err(G.eofBeforeTagName), this._emitChars("</"), this._emitEOFToken();
          break;
        }
        default:
          this._err(G.invalidFirstCharacterOfTagName), this._createCommentToken(2), this.state = I.BOGUS_COMMENT, this._stateBogusComment(t);
      }
  }
  // Tag name state
  //------------------------------------------------------------------
  _stateTagName(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this.state = I.BEFORE_ATTRIBUTE_NAME;
        break;
      }
      case C.SOLIDUS: {
        this.state = I.SELF_CLOSING_START_TAG;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentTagToken();
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.tagName += $e;
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        r.tagName += String.fromCodePoint(A0(t) ? Oi(t) : t);
    }
  }
  // RCDATA less-than sign state
  //------------------------------------------------------------------
  _stateRcdataLessThanSign(t) {
    t === C.SOLIDUS ? this.state = I.RCDATA_END_TAG_OPEN : (this._emitChars("<"), this.state = I.RCDATA, this._stateRcdata(t));
  }
  // RCDATA end tag open state
  //------------------------------------------------------------------
  _stateRcdataEndTagOpen(t) {
    Yr(t) ? (this.state = I.RCDATA_END_TAG_NAME, this._stateRcdataEndTagName(t)) : (this._emitChars("</"), this.state = I.RCDATA, this._stateRcdata(t));
  }
  handleSpecialEndTag(t) {
    if (!this.preprocessor.startsWith(this.lastStartTagName, !1))
      return !this._ensureHibernation();
    this._createEndTagToken();
    const r = this.currentToken;
    switch (r.tagName = this.lastStartTagName, this.preprocessor.peek(this.lastStartTagName.length)) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        return this._advanceBy(this.lastStartTagName.length), this.state = I.BEFORE_ATTRIBUTE_NAME, !1;
      case C.SOLIDUS:
        return this._advanceBy(this.lastStartTagName.length), this.state = I.SELF_CLOSING_START_TAG, !1;
      case C.GREATER_THAN_SIGN:
        return this._advanceBy(this.lastStartTagName.length), this.emitCurrentTagToken(), this.state = I.DATA, !1;
      default:
        return !this._ensureHibernation();
    }
  }
  // RCDATA end tag name state
  //------------------------------------------------------------------
  _stateRcdataEndTagName(t) {
    this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = I.RCDATA, this._stateRcdata(t));
  }
  // RAWTEXT less-than sign state
  //------------------------------------------------------------------
  _stateRawtextLessThanSign(t) {
    t === C.SOLIDUS ? this.state = I.RAWTEXT_END_TAG_OPEN : (this._emitChars("<"), this.state = I.RAWTEXT, this._stateRawtext(t));
  }
  // RAWTEXT end tag open state
  //------------------------------------------------------------------
  _stateRawtextEndTagOpen(t) {
    Yr(t) ? (this.state = I.RAWTEXT_END_TAG_NAME, this._stateRawtextEndTagName(t)) : (this._emitChars("</"), this.state = I.RAWTEXT, this._stateRawtext(t));
  }
  // RAWTEXT end tag name state
  //------------------------------------------------------------------
  _stateRawtextEndTagName(t) {
    this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = I.RAWTEXT, this._stateRawtext(t));
  }
  // Script data less-than sign state
  //------------------------------------------------------------------
  _stateScriptDataLessThanSign(t) {
    switch (t) {
      case C.SOLIDUS: {
        this.state = I.SCRIPT_DATA_END_TAG_OPEN;
        break;
      }
      case C.EXCLAMATION_MARK: {
        this.state = I.SCRIPT_DATA_ESCAPE_START, this._emitChars("<!");
        break;
      }
      default:
        this._emitChars("<"), this.state = I.SCRIPT_DATA, this._stateScriptData(t);
    }
  }
  // Script data end tag open state
  //------------------------------------------------------------------
  _stateScriptDataEndTagOpen(t) {
    Yr(t) ? (this.state = I.SCRIPT_DATA_END_TAG_NAME, this._stateScriptDataEndTagName(t)) : (this._emitChars("</"), this.state = I.SCRIPT_DATA, this._stateScriptData(t));
  }
  // Script data end tag name state
  //------------------------------------------------------------------
  _stateScriptDataEndTagName(t) {
    this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = I.SCRIPT_DATA, this._stateScriptData(t));
  }
  // Script data escape start state
  //------------------------------------------------------------------
  _stateScriptDataEscapeStart(t) {
    t === C.HYPHEN_MINUS ? (this.state = I.SCRIPT_DATA_ESCAPE_START_DASH, this._emitChars("-")) : (this.state = I.SCRIPT_DATA, this._stateScriptData(t));
  }
  // Script data escape start dash state
  //------------------------------------------------------------------
  _stateScriptDataEscapeStartDash(t) {
    t === C.HYPHEN_MINUS ? (this.state = I.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-")) : (this.state = I.SCRIPT_DATA, this._stateScriptData(t));
  }
  // Script data escaped state
  //------------------------------------------------------------------
  _stateScriptDataEscaped(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.SCRIPT_DATA_ESCAPED_DASH, this._emitChars("-");
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._err(G.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // Script data escaped dash state
  //------------------------------------------------------------------
  _stateScriptDataEscapedDash(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.SCRIPT_DATA_ESCAPED_DASH_DASH, this._emitChars("-");
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.state = I.SCRIPT_DATA_ESCAPED, this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._err(G.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
        break;
      }
      default:
        this.state = I.SCRIPT_DATA_ESCAPED, this._emitCodePoint(t);
    }
  }
  // Script data escaped dash dash state
  //------------------------------------------------------------------
  _stateScriptDataEscapedDashDash(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this._emitChars("-");
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.SCRIPT_DATA, this._emitChars(">");
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.state = I.SCRIPT_DATA_ESCAPED, this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._err(G.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
        break;
      }
      default:
        this.state = I.SCRIPT_DATA_ESCAPED, this._emitCodePoint(t);
    }
  }
  // Script data escaped less-than sign state
  //------------------------------------------------------------------
  _stateScriptDataEscapedLessThanSign(t) {
    t === C.SOLIDUS ? this.state = I.SCRIPT_DATA_ESCAPED_END_TAG_OPEN : Yr(t) ? (this._emitChars("<"), this.state = I.SCRIPT_DATA_DOUBLE_ESCAPE_START, this._stateScriptDataDoubleEscapeStart(t)) : (this._emitChars("<"), this.state = I.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t));
  }
  // Script data escaped end tag open state
  //------------------------------------------------------------------
  _stateScriptDataEscapedEndTagOpen(t) {
    Yr(t) ? (this.state = I.SCRIPT_DATA_ESCAPED_END_TAG_NAME, this._stateScriptDataEscapedEndTagName(t)) : (this._emitChars("</"), this.state = I.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t));
  }
  // Script data escaped end tag name state
  //------------------------------------------------------------------
  _stateScriptDataEscapedEndTagName(t) {
    this.handleSpecialEndTag(t) && (this._emitChars("</"), this.state = I.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t));
  }
  // Script data double escape start state
  //------------------------------------------------------------------
  _stateScriptDataDoubleEscapeStart(t) {
    if (this.preprocessor.startsWith(wt.SCRIPT, !1) && Ph(this.preprocessor.peek(wt.SCRIPT.length))) {
      this._emitCodePoint(t);
      for (let r = 0; r < wt.SCRIPT.length; r++)
        this._emitCodePoint(this._consume());
      this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED;
    } else
      this._ensureHibernation() || (this.state = I.SCRIPT_DATA_ESCAPED, this._stateScriptDataEscaped(t));
  }
  // Script data double escaped state
  //------------------------------------------------------------------
  _stateScriptDataDoubleEscaped(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED_DASH, this._emitChars("-");
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._err(G.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // Script data double escaped dash state
  //------------------------------------------------------------------
  _stateScriptDataDoubleEscapedDash(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH, this._emitChars("-");
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._err(G.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
        break;
      }
      default:
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(t);
    }
  }
  // Script data double escaped dash dash state
  //------------------------------------------------------------------
  _stateScriptDataDoubleEscapedDashDash(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this._emitChars("-");
        break;
      }
      case C.LESS_THAN_SIGN: {
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN, this._emitChars("<");
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.SCRIPT_DATA, this._emitChars(">");
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitChars($e);
        break;
      }
      case C.EOF: {
        this._err(G.eofInScriptHtmlCommentLikeText), this._emitEOFToken();
        break;
      }
      default:
        this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED, this._emitCodePoint(t);
    }
  }
  // Script data double escaped less-than sign state
  //------------------------------------------------------------------
  _stateScriptDataDoubleEscapedLessThanSign(t) {
    t === C.SOLIDUS ? (this.state = I.SCRIPT_DATA_DOUBLE_ESCAPE_END, this._emitChars("/")) : (this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(t));
  }
  // Script data double escape end state
  //------------------------------------------------------------------
  _stateScriptDataDoubleEscapeEnd(t) {
    if (this.preprocessor.startsWith(wt.SCRIPT, !1) && Ph(this.preprocessor.peek(wt.SCRIPT.length))) {
      this._emitCodePoint(t);
      for (let r = 0; r < wt.SCRIPT.length; r++)
        this._emitCodePoint(this._consume());
      this.state = I.SCRIPT_DATA_ESCAPED;
    } else
      this._ensureHibernation() || (this.state = I.SCRIPT_DATA_DOUBLE_ESCAPED, this._stateScriptDataDoubleEscaped(t));
  }
  // Before attribute name state
  //------------------------------------------------------------------
  _stateBeforeAttributeName(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.SOLIDUS:
      case C.GREATER_THAN_SIGN:
      case C.EOF: {
        this.state = I.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(t);
        break;
      }
      case C.EQUALS_SIGN: {
        this._err(G.unexpectedEqualsSignBeforeAttributeName), this._createAttr("="), this.state = I.ATTRIBUTE_NAME;
        break;
      }
      default:
        this._createAttr(""), this.state = I.ATTRIBUTE_NAME, this._stateAttributeName(t);
    }
  }
  // Attribute name state
  //------------------------------------------------------------------
  _stateAttributeName(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
      case C.SOLIDUS:
      case C.GREATER_THAN_SIGN:
      case C.EOF: {
        this._leaveAttrName(), this.state = I.AFTER_ATTRIBUTE_NAME, this._stateAfterAttributeName(t);
        break;
      }
      case C.EQUALS_SIGN: {
        this._leaveAttrName(), this.state = I.BEFORE_ATTRIBUTE_VALUE;
        break;
      }
      case C.QUOTATION_MARK:
      case C.APOSTROPHE:
      case C.LESS_THAN_SIGN: {
        this._err(G.unexpectedCharacterInAttributeName), this.currentAttr.name += String.fromCodePoint(t);
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.currentAttr.name += $e;
        break;
      }
      default:
        this.currentAttr.name += String.fromCodePoint(A0(t) ? Oi(t) : t);
    }
  }
  // After attribute name state
  //------------------------------------------------------------------
  _stateAfterAttributeName(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.SOLIDUS: {
        this.state = I.SELF_CLOSING_START_TAG;
        break;
      }
      case C.EQUALS_SIGN: {
        this.state = I.BEFORE_ATTRIBUTE_VALUE;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentTagToken();
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        this._createAttr(""), this.state = I.ATTRIBUTE_NAME, this._stateAttributeName(t);
    }
  }
  // Before attribute value state
  //------------------------------------------------------------------
  _stateBeforeAttributeValue(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.QUOTATION_MARK: {
        this.state = I.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        this.state = I.ATTRIBUTE_VALUE_SINGLE_QUOTED;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.missingAttributeValue), this.state = I.DATA, this.emitCurrentTagToken();
        break;
      }
      default:
        this.state = I.ATTRIBUTE_VALUE_UNQUOTED, this._stateAttributeValueUnquoted(t);
    }
  }
  // Attribute value (double-quoted) state
  //------------------------------------------------------------------
  _stateAttributeValueDoubleQuoted(t) {
    switch (t) {
      case C.QUOTATION_MARK: {
        this.state = I.AFTER_ATTRIBUTE_VALUE_QUOTED;
        break;
      }
      case C.AMPERSAND: {
        this.returnState = I.ATTRIBUTE_VALUE_DOUBLE_QUOTED, this.state = I.CHARACTER_REFERENCE;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.currentAttr.value += $e;
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        this.currentAttr.value += String.fromCodePoint(t);
    }
  }
  // Attribute value (single-quoted) state
  //------------------------------------------------------------------
  _stateAttributeValueSingleQuoted(t) {
    switch (t) {
      case C.APOSTROPHE: {
        this.state = I.AFTER_ATTRIBUTE_VALUE_QUOTED;
        break;
      }
      case C.AMPERSAND: {
        this.returnState = I.ATTRIBUTE_VALUE_SINGLE_QUOTED, this.state = I.CHARACTER_REFERENCE;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.currentAttr.value += $e;
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        this.currentAttr.value += String.fromCodePoint(t);
    }
  }
  // Attribute value (unquoted) state
  //------------------------------------------------------------------
  _stateAttributeValueUnquoted(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this._leaveAttrValue(), this.state = I.BEFORE_ATTRIBUTE_NAME;
        break;
      }
      case C.AMPERSAND: {
        this.returnState = I.ATTRIBUTE_VALUE_UNQUOTED, this.state = I.CHARACTER_REFERENCE;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._leaveAttrValue(), this.state = I.DATA, this.emitCurrentTagToken();
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), this.currentAttr.value += $e;
        break;
      }
      case C.QUOTATION_MARK:
      case C.APOSTROPHE:
      case C.LESS_THAN_SIGN:
      case C.EQUALS_SIGN:
      case C.GRAVE_ACCENT: {
        this._err(G.unexpectedCharacterInUnquotedAttributeValue), this.currentAttr.value += String.fromCodePoint(t);
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        this.currentAttr.value += String.fromCodePoint(t);
    }
  }
  // After attribute value (quoted) state
  //------------------------------------------------------------------
  _stateAfterAttributeValueQuoted(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this._leaveAttrValue(), this.state = I.BEFORE_ATTRIBUTE_NAME;
        break;
      }
      case C.SOLIDUS: {
        this._leaveAttrValue(), this.state = I.SELF_CLOSING_START_TAG;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._leaveAttrValue(), this.state = I.DATA, this.emitCurrentTagToken();
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingWhitespaceBetweenAttributes), this.state = I.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(t);
    }
  }
  // Self-closing start tag state
  //------------------------------------------------------------------
  _stateSelfClosingStartTag(t) {
    switch (t) {
      case C.GREATER_THAN_SIGN: {
        const r = this.currentToken;
        r.selfClosing = !0, this.state = I.DATA, this.emitCurrentTagToken();
        break;
      }
      case C.EOF: {
        this._err(G.eofInTag), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.unexpectedSolidusInTag), this.state = I.BEFORE_ATTRIBUTE_NAME, this._stateBeforeAttributeName(t);
    }
  }
  // Bogus comment state
  //------------------------------------------------------------------
  _stateBogusComment(t) {
    const r = this.currentToken;
    switch (t) {
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentComment(r);
        break;
      }
      case C.EOF: {
        this.emitCurrentComment(r), this._emitEOFToken();
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.data += $e;
        break;
      }
      default:
        r.data += String.fromCodePoint(t);
    }
  }
  // Markup declaration open state
  //------------------------------------------------------------------
  _stateMarkupDeclarationOpen(t) {
    this._consumeSequenceIfMatch(wt.DASH_DASH, !0) ? (this._createCommentToken(wt.DASH_DASH.length + 1), this.state = I.COMMENT_START) : this._consumeSequenceIfMatch(wt.DOCTYPE, !1) ? (this.currentLocation = this.getCurrentLocation(wt.DOCTYPE.length + 1), this.state = I.DOCTYPE) : this._consumeSequenceIfMatch(wt.CDATA_START, !0) ? this.inForeignNode ? this.state = I.CDATA_SECTION : (this._err(G.cdataInHtmlContent), this._createCommentToken(wt.CDATA_START.length + 1), this.currentToken.data = "[CDATA[", this.state = I.BOGUS_COMMENT) : this._ensureHibernation() || (this._err(G.incorrectlyOpenedComment), this._createCommentToken(2), this.state = I.BOGUS_COMMENT, this._stateBogusComment(t));
  }
  // Comment start state
  //------------------------------------------------------------------
  _stateCommentStart(t) {
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.COMMENT_START_DASH;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.abruptClosingOfEmptyComment), this.state = I.DATA;
        const r = this.currentToken;
        this.emitCurrentComment(r);
        break;
      }
      default:
        this.state = I.COMMENT, this._stateComment(t);
    }
  }
  // Comment start dash state
  //------------------------------------------------------------------
  _stateCommentStartDash(t) {
    const r = this.currentToken;
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.COMMENT_END;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.abruptClosingOfEmptyComment), this.state = I.DATA, this.emitCurrentComment(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
        break;
      }
      default:
        r.data += "-", this.state = I.COMMENT, this._stateComment(t);
    }
  }
  // Comment state
  //------------------------------------------------------------------
  _stateComment(t) {
    const r = this.currentToken;
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.COMMENT_END_DASH;
        break;
      }
      case C.LESS_THAN_SIGN: {
        r.data += "<", this.state = I.COMMENT_LESS_THAN_SIGN;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.data += $e;
        break;
      }
      case C.EOF: {
        this._err(G.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
        break;
      }
      default:
        r.data += String.fromCodePoint(t);
    }
  }
  // Comment less-than sign state
  //------------------------------------------------------------------
  _stateCommentLessThanSign(t) {
    const r = this.currentToken;
    switch (t) {
      case C.EXCLAMATION_MARK: {
        r.data += "!", this.state = I.COMMENT_LESS_THAN_SIGN_BANG;
        break;
      }
      case C.LESS_THAN_SIGN: {
        r.data += "<";
        break;
      }
      default:
        this.state = I.COMMENT, this._stateComment(t);
    }
  }
  // Comment less-than sign bang state
  //------------------------------------------------------------------
  _stateCommentLessThanSignBang(t) {
    t === C.HYPHEN_MINUS ? this.state = I.COMMENT_LESS_THAN_SIGN_BANG_DASH : (this.state = I.COMMENT, this._stateComment(t));
  }
  // Comment less-than sign bang dash state
  //------------------------------------------------------------------
  _stateCommentLessThanSignBangDash(t) {
    t === C.HYPHEN_MINUS ? this.state = I.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH : (this.state = I.COMMENT_END_DASH, this._stateCommentEndDash(t));
  }
  // Comment less-than sign bang dash dash state
  //------------------------------------------------------------------
  _stateCommentLessThanSignBangDashDash(t) {
    t !== C.GREATER_THAN_SIGN && t !== C.EOF && this._err(G.nestedComment), this.state = I.COMMENT_END, this._stateCommentEnd(t);
  }
  // Comment end dash state
  //------------------------------------------------------------------
  _stateCommentEndDash(t) {
    const r = this.currentToken;
    switch (t) {
      case C.HYPHEN_MINUS: {
        this.state = I.COMMENT_END;
        break;
      }
      case C.EOF: {
        this._err(G.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
        break;
      }
      default:
        r.data += "-", this.state = I.COMMENT, this._stateComment(t);
    }
  }
  // Comment end state
  //------------------------------------------------------------------
  _stateCommentEnd(t) {
    const r = this.currentToken;
    switch (t) {
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentComment(r);
        break;
      }
      case C.EXCLAMATION_MARK: {
        this.state = I.COMMENT_END_BANG;
        break;
      }
      case C.HYPHEN_MINUS: {
        r.data += "-";
        break;
      }
      case C.EOF: {
        this._err(G.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
        break;
      }
      default:
        r.data += "--", this.state = I.COMMENT, this._stateComment(t);
    }
  }
  // Comment end bang state
  //------------------------------------------------------------------
  _stateCommentEndBang(t) {
    const r = this.currentToken;
    switch (t) {
      case C.HYPHEN_MINUS: {
        r.data += "--!", this.state = I.COMMENT_END_DASH;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.incorrectlyClosedComment), this.state = I.DATA, this.emitCurrentComment(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInComment), this.emitCurrentComment(r), this._emitEOFToken();
        break;
      }
      default:
        r.data += "--!", this.state = I.COMMENT, this._stateComment(t);
    }
  }
  // DOCTYPE state
  //------------------------------------------------------------------
  _stateDoctype(t) {
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this.state = I.BEFORE_DOCTYPE_NAME;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(t);
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), this._createDoctypeToken(null);
        const r = this.currentToken;
        r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingWhitespaceBeforeDoctypeName), this.state = I.BEFORE_DOCTYPE_NAME, this._stateBeforeDoctypeName(t);
    }
  }
  // Before DOCTYPE name state
  //------------------------------------------------------------------
  _stateBeforeDoctypeName(t) {
    if (A0(t))
      this._createDoctypeToken(String.fromCharCode(Oi(t))), this.state = I.DOCTYPE_NAME;
    else
      switch (t) {
        case C.SPACE:
        case C.LINE_FEED:
        case C.TABULATION:
        case C.FORM_FEED:
          break;
        case C.NULL: {
          this._err(G.unexpectedNullCharacter), this._createDoctypeToken($e), this.state = I.DOCTYPE_NAME;
          break;
        }
        case C.GREATER_THAN_SIGN: {
          this._err(G.missingDoctypeName), this._createDoctypeToken(null);
          const r = this.currentToken;
          r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = I.DATA;
          break;
        }
        case C.EOF: {
          this._err(G.eofInDoctype), this._createDoctypeToken(null);
          const r = this.currentToken;
          r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
          break;
        }
        default:
          this._createDoctypeToken(String.fromCodePoint(t)), this.state = I.DOCTYPE_NAME;
      }
  }
  // DOCTYPE name state
  //------------------------------------------------------------------
  _stateDoctypeName(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this.state = I.AFTER_DOCTYPE_NAME;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.name += $e;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        r.name += String.fromCodePoint(A0(t) ? Oi(t) : t);
    }
  }
  // After DOCTYPE name state
  //------------------------------------------------------------------
  _stateAfterDoctypeName(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._consumeSequenceIfMatch(wt.PUBLIC, !1) ? this.state = I.AFTER_DOCTYPE_PUBLIC_KEYWORD : this._consumeSequenceIfMatch(wt.SYSTEM, !1) ? this.state = I.AFTER_DOCTYPE_SYSTEM_KEYWORD : this._ensureHibernation() || (this._err(G.invalidCharacterSequenceAfterDoctypeName), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t));
    }
  }
  // After DOCTYPE public keyword state
  //------------------------------------------------------------------
  _stateAfterDoctypePublicKeyword(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this.state = I.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;
        break;
      }
      case C.QUOTATION_MARK: {
        this._err(G.missingWhitespaceAfterDoctypePublicKeyword), r.publicId = "", this.state = I.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        this._err(G.missingWhitespaceAfterDoctypePublicKeyword), r.publicId = "", this.state = I.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.missingDoctypePublicIdentifier), r.forceQuirks = !0, this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingQuoteBeforeDoctypePublicIdentifier), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // Before DOCTYPE public identifier state
  //------------------------------------------------------------------
  _stateBeforeDoctypePublicIdentifier(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.QUOTATION_MARK: {
        r.publicId = "", this.state = I.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        r.publicId = "", this.state = I.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.missingDoctypePublicIdentifier), r.forceQuirks = !0, this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingQuoteBeforeDoctypePublicIdentifier), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // DOCTYPE public identifier (double-quoted) state
  //------------------------------------------------------------------
  _stateDoctypePublicIdentifierDoubleQuoted(t) {
    const r = this.currentToken;
    switch (t) {
      case C.QUOTATION_MARK: {
        this.state = I.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.publicId += $e;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.abruptDoctypePublicIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        r.publicId += String.fromCodePoint(t);
    }
  }
  // DOCTYPE public identifier (single-quoted) state
  //------------------------------------------------------------------
  _stateDoctypePublicIdentifierSingleQuoted(t) {
    const r = this.currentToken;
    switch (t) {
      case C.APOSTROPHE: {
        this.state = I.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.publicId += $e;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.abruptDoctypePublicIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        r.publicId += String.fromCodePoint(t);
    }
  }
  // After DOCTYPE public identifier state
  //------------------------------------------------------------------
  _stateAfterDoctypePublicIdentifier(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this.state = I.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.QUOTATION_MARK: {
        this._err(G.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        this._err(G.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers), r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // Between DOCTYPE public and system identifiers state
  //------------------------------------------------------------------
  _stateBetweenDoctypePublicAndSystemIdentifiers(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.GREATER_THAN_SIGN: {
        this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.QUOTATION_MARK: {
        r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // After DOCTYPE system keyword state
  //------------------------------------------------------------------
  _stateAfterDoctypeSystemKeyword(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED: {
        this.state = I.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;
        break;
      }
      case C.QUOTATION_MARK: {
        this._err(G.missingWhitespaceAfterDoctypeSystemKeyword), r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        this._err(G.missingWhitespaceAfterDoctypeSystemKeyword), r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.missingDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // Before DOCTYPE system identifier state
  //------------------------------------------------------------------
  _stateBeforeDoctypeSystemIdentifier(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.QUOTATION_MARK: {
        r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;
        break;
      }
      case C.APOSTROPHE: {
        r.systemId = "", this.state = I.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.missingDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = I.DATA, this.emitCurrentDoctype(r);
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.missingQuoteBeforeDoctypeSystemIdentifier), r.forceQuirks = !0, this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // DOCTYPE system identifier (double-quoted) state
  //------------------------------------------------------------------
  _stateDoctypeSystemIdentifierDoubleQuoted(t) {
    const r = this.currentToken;
    switch (t) {
      case C.QUOTATION_MARK: {
        this.state = I.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.systemId += $e;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.abruptDoctypeSystemIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        r.systemId += String.fromCodePoint(t);
    }
  }
  // DOCTYPE system identifier (single-quoted) state
  //------------------------------------------------------------------
  _stateDoctypeSystemIdentifierSingleQuoted(t) {
    const r = this.currentToken;
    switch (t) {
      case C.APOSTROPHE: {
        this.state = I.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter), r.systemId += $e;
        break;
      }
      case C.GREATER_THAN_SIGN: {
        this._err(G.abruptDoctypeSystemIdentifier), r.forceQuirks = !0, this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        r.systemId += String.fromCodePoint(t);
    }
  }
  // After DOCTYPE system identifier state
  //------------------------------------------------------------------
  _stateAfterDoctypeSystemIdentifier(t) {
    const r = this.currentToken;
    switch (t) {
      case C.SPACE:
      case C.LINE_FEED:
      case C.TABULATION:
      case C.FORM_FEED:
        break;
      case C.GREATER_THAN_SIGN: {
        this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.EOF: {
        this._err(G.eofInDoctype), r.forceQuirks = !0, this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
      default:
        this._err(G.unexpectedCharacterAfterDoctypeSystemIdentifier), this.state = I.BOGUS_DOCTYPE, this._stateBogusDoctype(t);
    }
  }
  // Bogus DOCTYPE state
  //------------------------------------------------------------------
  _stateBogusDoctype(t) {
    const r = this.currentToken;
    switch (t) {
      case C.GREATER_THAN_SIGN: {
        this.emitCurrentDoctype(r), this.state = I.DATA;
        break;
      }
      case C.NULL: {
        this._err(G.unexpectedNullCharacter);
        break;
      }
      case C.EOF: {
        this.emitCurrentDoctype(r), this._emitEOFToken();
        break;
      }
    }
  }
  // CDATA section state
  //------------------------------------------------------------------
  _stateCdataSection(t) {
    switch (t) {
      case C.RIGHT_SQUARE_BRACKET: {
        this.state = I.CDATA_SECTION_BRACKET;
        break;
      }
      case C.EOF: {
        this._err(G.eofInCdata), this._emitEOFToken();
        break;
      }
      default:
        this._emitCodePoint(t);
    }
  }
  // CDATA section bracket state
  //------------------------------------------------------------------
  _stateCdataSectionBracket(t) {
    t === C.RIGHT_SQUARE_BRACKET ? this.state = I.CDATA_SECTION_END : (this._emitChars("]"), this.state = I.CDATA_SECTION, this._stateCdataSection(t));
  }
  // CDATA section end state
  //------------------------------------------------------------------
  _stateCdataSectionEnd(t) {
    switch (t) {
      case C.GREATER_THAN_SIGN: {
        this.state = I.DATA;
        break;
      }
      case C.RIGHT_SQUARE_BRACKET: {
        this._emitChars("]");
        break;
      }
      default:
        this._emitChars("]]"), this.state = I.CDATA_SECTION, this._stateCdataSection(t);
    }
  }
  // Character reference state
  //------------------------------------------------------------------
  _stateCharacterReference(t) {
    t === C.NUMBER_SIGN ? this.state = I.NUMERIC_CHARACTER_REFERENCE : Ru(t) ? (this.state = I.NAMED_CHARACTER_REFERENCE, this._stateNamedCharacterReference(t)) : (this._flushCodePointConsumedAsCharacterReference(C.AMPERSAND), this._reconsumeInState(this.returnState, t));
  }
  // Named character reference state
  //------------------------------------------------------------------
  _stateNamedCharacterReference(t) {
    const r = this._matchNamedCharacterReference(t);
    if (!this._ensureHibernation())
      if (r) {
        for (let n = 0; n < r.length; n++)
          this._flushCodePointConsumedAsCharacterReference(r[n]);
        this.state = this.returnState;
      } else
        this._flushCodePointConsumedAsCharacterReference(C.AMPERSAND), this.state = I.AMBIGUOUS_AMPERSAND;
  }
  // Ambiguos ampersand state
  //------------------------------------------------------------------
  _stateAmbiguousAmpersand(t) {
    Ru(t) ? this._flushCodePointConsumedAsCharacterReference(t) : (t === C.SEMICOLON && this._err(G.unknownNamedCharacterReference), this._reconsumeInState(this.returnState, t));
  }
  // Numeric character reference state
  //------------------------------------------------------------------
  _stateNumericCharacterReference(t) {
    this.charRefCode = 0, t === C.LATIN_SMALL_X || t === C.LATIN_CAPITAL_X ? this.state = I.HEXADEMICAL_CHARACTER_REFERENCE_START : w0(t) ? (this.state = I.DECIMAL_CHARACTER_REFERENCE, this._stateDecimalCharacterReference(t)) : (this._err(G.absenceOfDigitsInNumericCharacterReference), this._flushCodePointConsumedAsCharacterReference(C.AMPERSAND), this._flushCodePointConsumedAsCharacterReference(C.NUMBER_SIGN), this._reconsumeInState(this.returnState, t));
  }
  // Hexademical character reference start state
  //------------------------------------------------------------------
  _stateHexademicalCharacterReferenceStart(t) {
    fv(t) ? (this.state = I.HEXADEMICAL_CHARACTER_REFERENCE, this._stateHexademicalCharacterReference(t)) : (this._err(G.absenceOfDigitsInNumericCharacterReference), this._flushCodePointConsumedAsCharacterReference(C.AMPERSAND), this._flushCodePointConsumedAsCharacterReference(C.NUMBER_SIGN), this._unconsume(2), this.state = this.returnState);
  }
  // Hexademical character reference state
  //------------------------------------------------------------------
  _stateHexademicalCharacterReference(t) {
    Td(t) ? this.charRefCode = this.charRefCode * 16 + t - 55 : Ad(t) ? this.charRefCode = this.charRefCode * 16 + t - 87 : w0(t) ? this.charRefCode = this.charRefCode * 16 + t - 48 : t === C.SEMICOLON ? this.state = I.NUMERIC_CHARACTER_REFERENCE_END : (this._err(G.missingSemicolonAfterCharacterReference), this.state = I.NUMERIC_CHARACTER_REFERENCE_END, this._stateNumericCharacterReferenceEnd(t));
  }
  // Decimal character reference state
  //------------------------------------------------------------------
  _stateDecimalCharacterReference(t) {
    w0(t) ? this.charRefCode = this.charRefCode * 10 + t - 48 : t === C.SEMICOLON ? this.state = I.NUMERIC_CHARACTER_REFERENCE_END : (this._err(G.missingSemicolonAfterCharacterReference), this.state = I.NUMERIC_CHARACTER_REFERENCE_END, this._stateNumericCharacterReferenceEnd(t));
  }
  // Numeric character reference end state
  //------------------------------------------------------------------
  _stateNumericCharacterReferenceEnd(t) {
    if (this.charRefCode === C.NULL)
      this._err(G.nullCharacterReference), this.charRefCode = C.REPLACEMENT_CHARACTER;
    else if (this.charRefCode > 1114111)
      this._err(G.characterReferenceOutsideUnicodeRange), this.charRefCode = C.REPLACEMENT_CHARACTER;
    else if (gd(this.charRefCode))
      this._err(G.surrogateCharacterReference), this.charRefCode = C.REPLACEMENT_CHARACTER;
    else if (Ed(this.charRefCode))
      this._err(G.noncharacterCharacterReference);
    else if (bd(this.charRefCode) || this.charRefCode === C.CARRIAGE_RETURN) {
      this._err(G.controlCharacterReference);
      const r = cv.get(this.charRefCode);
      r !== void 0 && (this.charRefCode = r);
    }
    this._flushCodePointConsumedAsCharacterReference(this.charRefCode), this._reconsumeInState(this.returnState, t);
  }
};
const yd = /* @__PURE__ */ new Set([d.DD, d.DT, d.LI, d.OPTGROUP, d.OPTION, d.P, d.RB, d.RP, d.RT, d.RTC]), Fh = /* @__PURE__ */ new Set([
  ...yd,
  d.CAPTION,
  d.COLGROUP,
  d.TBODY,
  d.TD,
  d.TFOOT,
  d.TH,
  d.THEAD,
  d.TR
]), Li = /* @__PURE__ */ new Map([
  [d.APPLET, K.HTML],
  [d.CAPTION, K.HTML],
  [d.HTML, K.HTML],
  [d.MARQUEE, K.HTML],
  [d.OBJECT, K.HTML],
  [d.TABLE, K.HTML],
  [d.TD, K.HTML],
  [d.TEMPLATE, K.HTML],
  [d.TH, K.HTML],
  [d.ANNOTATION_XML, K.MATHML],
  [d.MI, K.MATHML],
  [d.MN, K.MATHML],
  [d.MO, K.MATHML],
  [d.MS, K.MATHML],
  [d.MTEXT, K.MATHML],
  [d.DESC, K.SVG],
  [d.FOREIGN_OBJECT, K.SVG],
  [d.TITLE, K.SVG]
]), pv = [d.H1, d.H2, d.H3, d.H4, d.H5, d.H6], gv = [d.TR, d.TEMPLATE, d.HTML], bv = [d.TBODY, d.TFOOT, d.THEAD, d.TEMPLATE, d.HTML], Ev = [d.TABLE, d.TEMPLATE, d.HTML], vv = [d.TD, d.TH];
class _v {
  get currentTmplContentOrNode() {
    return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
  }
  constructor(t, r, n) {
    this.treeAdapter = r, this.handler = n, this.items = [], this.tagIDs = [], this.stackTop = -1, this.tmplCount = 0, this.currentTagId = d.UNKNOWN, this.current = t;
  }
  //Index of element
  _indexOf(t) {
    return this.items.lastIndexOf(t, this.stackTop);
  }
  //Update current element
  _isInTemplate() {
    return this.currentTagId === d.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === K.HTML;
  }
  _updateCurrentElement() {
    this.current = this.items[this.stackTop], this.currentTagId = this.tagIDs[this.stackTop];
  }
  //Mutations
  push(t, r) {
    this.stackTop++, this.items[this.stackTop] = t, this.current = t, this.tagIDs[this.stackTop] = r, this.currentTagId = r, this._isInTemplate() && this.tmplCount++, this.handler.onItemPush(t, r, !0);
  }
  pop() {
    const t = this.current;
    this.tmplCount > 0 && this._isInTemplate() && this.tmplCount--, this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(t, !0);
  }
  replace(t, r) {
    const n = this._indexOf(t);
    this.items[n] = r, n === this.stackTop && (this.current = r);
  }
  insertAfter(t, r, n) {
    const i = this._indexOf(t) + 1;
    this.items.splice(i, 0, r), this.tagIDs.splice(i, 0, n), this.stackTop++, i === this.stackTop && this._updateCurrentElement(), this.handler.onItemPush(this.current, this.currentTagId, i === this.stackTop);
  }
  popUntilTagNamePopped(t) {
    let r = this.stackTop + 1;
    do
      r = this.tagIDs.lastIndexOf(t, r - 1);
    while (r > 0 && this.treeAdapter.getNamespaceURI(this.items[r]) !== K.HTML);
    this.shortenToLength(r < 0 ? 0 : r);
  }
  shortenToLength(t) {
    for (; this.stackTop >= t; ) {
      const r = this.current;
      this.tmplCount > 0 && this._isInTemplate() && (this.tmplCount -= 1), this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(r, this.stackTop < t);
    }
  }
  popUntilElementPopped(t) {
    const r = this._indexOf(t);
    this.shortenToLength(r < 0 ? 0 : r);
  }
  popUntilPopped(t, r) {
    const n = this._indexOfTagNames(t, r);
    this.shortenToLength(n < 0 ? 0 : n);
  }
  popUntilNumberedHeaderPopped() {
    this.popUntilPopped(pv, K.HTML);
  }
  popUntilTableCellPopped() {
    this.popUntilPopped(vv, K.HTML);
  }
  popAllUpToHtmlElement() {
    this.tmplCount = 0, this.shortenToLength(1);
  }
  _indexOfTagNames(t, r) {
    for (let n = this.stackTop; n >= 0; n--)
      if (t.includes(this.tagIDs[n]) && this.treeAdapter.getNamespaceURI(this.items[n]) === r)
        return n;
    return -1;
  }
  clearBackTo(t, r) {
    const n = this._indexOfTagNames(t, r);
    this.shortenToLength(n + 1);
  }
  clearBackToTableContext() {
    this.clearBackTo(Ev, K.HTML);
  }
  clearBackToTableBodyContext() {
    this.clearBackTo(bv, K.HTML);
  }
  clearBackToTableRowContext() {
    this.clearBackTo(gv, K.HTML);
  }
  remove(t) {
    const r = this._indexOf(t);
    r >= 0 && (r === this.stackTop ? this.pop() : (this.items.splice(r, 1), this.tagIDs.splice(r, 1), this.stackTop--, this._updateCurrentElement(), this.handler.onItemPop(t, !1)));
  }
  //Search
  tryPeekProperlyNestedBodyElement() {
    return this.stackTop >= 1 && this.tagIDs[1] === d.BODY ? this.items[1] : null;
  }
  contains(t) {
    return this._indexOf(t) > -1;
  }
  getCommonAncestor(t) {
    const r = this._indexOf(t) - 1;
    return r >= 0 ? this.items[r] : null;
  }
  isRootHtmlElementCurrent() {
    return this.stackTop === 0 && this.tagIDs[0] === d.HTML;
  }
  //Element in scope
  hasInScope(t) {
    for (let r = this.stackTop; r >= 0; r--) {
      const n = this.tagIDs[r], i = this.treeAdapter.getNamespaceURI(this.items[r]);
      if (n === t && i === K.HTML)
        return !0;
      if (Li.get(n) === i)
        return !1;
    }
    return !0;
  }
  hasNumberedHeaderInScope() {
    for (let t = this.stackTop; t >= 0; t--) {
      const r = this.tagIDs[t], n = this.treeAdapter.getNamespaceURI(this.items[t]);
      if (_d(r) && n === K.HTML)
        return !0;
      if (Li.get(r) === n)
        return !1;
    }
    return !0;
  }
  hasInListItemScope(t) {
    for (let r = this.stackTop; r >= 0; r--) {
      const n = this.tagIDs[r], i = this.treeAdapter.getNamespaceURI(this.items[r]);
      if (n === t && i === K.HTML)
        return !0;
      if ((n === d.UL || n === d.OL) && i === K.HTML || Li.get(n) === i)
        return !1;
    }
    return !0;
  }
  hasInButtonScope(t) {
    for (let r = this.stackTop; r >= 0; r--) {
      const n = this.tagIDs[r], i = this.treeAdapter.getNamespaceURI(this.items[r]);
      if (n === t && i === K.HTML)
        return !0;
      if (n === d.BUTTON && i === K.HTML || Li.get(n) === i)
        return !1;
    }
    return !0;
  }
  hasInTableScope(t) {
    for (let r = this.stackTop; r >= 0; r--) {
      const n = this.tagIDs[r];
      if (this.treeAdapter.getNamespaceURI(this.items[r]) === K.HTML) {
        if (n === t)
          return !0;
        if (n === d.TABLE || n === d.TEMPLATE || n === d.HTML)
          return !1;
      }
    }
    return !0;
  }
  hasTableBodyContextInTableScope() {
    for (let t = this.stackTop; t >= 0; t--) {
      const r = this.tagIDs[t];
      if (this.treeAdapter.getNamespaceURI(this.items[t]) === K.HTML) {
        if (r === d.TBODY || r === d.THEAD || r === d.TFOOT)
          return !0;
        if (r === d.TABLE || r === d.HTML)
          return !1;
      }
    }
    return !0;
  }
  hasInSelectScope(t) {
    for (let r = this.stackTop; r >= 0; r--) {
      const n = this.tagIDs[r];
      if (this.treeAdapter.getNamespaceURI(this.items[r]) === K.HTML) {
        if (n === t)
          return !0;
        if (n !== d.OPTION && n !== d.OPTGROUP)
          return !1;
      }
    }
    return !0;
  }
  //Implied end tags
  generateImpliedEndTags() {
    for (; yd.has(this.currentTagId); )
      this.pop();
  }
  generateImpliedEndTagsThoroughly() {
    for (; Fh.has(this.currentTagId); )
      this.pop();
  }
  generateImpliedEndTagsWithExclusion(t) {
    for (; this.currentTagId !== t && Fh.has(this.currentTagId); )
      this.pop();
  }
}
const js = 3;
var nr;
(function(e) {
  e[e.Marker = 0] = "Marker", e[e.Element = 1] = "Element";
})(nr = nr || (nr = {}));
const Hh = { type: nr.Marker };
class Tv {
  constructor(t) {
    this.treeAdapter = t, this.entries = [], this.bookmark = null;
  }
  //Noah Ark's condition
  //OPTIMIZATION: at first we try to find possible candidates for exclusion using
  //lightweight heuristics without thorough attributes check.
  _getNoahArkConditionCandidates(t, r) {
    const n = [], i = r.length, a = this.treeAdapter.getTagName(t), o = this.treeAdapter.getNamespaceURI(t);
    for (let c = 0; c < this.entries.length; c++) {
      const f = this.entries[c];
      if (f.type === nr.Marker)
        break;
      const { element: m } = f;
      if (this.treeAdapter.getTagName(m) === a && this.treeAdapter.getNamespaceURI(m) === o) {
        const b = this.treeAdapter.getAttrList(m);
        b.length === i && n.push({ idx: c, attrs: b });
      }
    }
    return n;
  }
  _ensureNoahArkCondition(t) {
    if (this.entries.length < js)
      return;
    const r = this.treeAdapter.getAttrList(t), n = this._getNoahArkConditionCandidates(t, r);
    if (n.length < js)
      return;
    const i = new Map(r.map((o) => [o.name, o.value]));
    let a = 0;
    for (let o = 0; o < n.length; o++) {
      const c = n[o];
      c.attrs.every((f) => i.get(f.name) === f.value) && (a += 1, a >= js && this.entries.splice(c.idx, 1));
    }
  }
  //Mutations
  insertMarker() {
    this.entries.unshift(Hh);
  }
  pushElement(t, r) {
    this._ensureNoahArkCondition(t), this.entries.unshift({
      type: nr.Element,
      element: t,
      token: r
    });
  }
  insertElementAfterBookmark(t, r) {
    const n = this.entries.indexOf(this.bookmark);
    this.entries.splice(n, 0, {
      type: nr.Element,
      element: t,
      token: r
    });
  }
  removeEntry(t) {
    const r = this.entries.indexOf(t);
    r >= 0 && this.entries.splice(r, 1);
  }
  /**
   * Clears the list of formatting elements up to the last marker.
   *
   * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker
   */
  clearToLastMarker() {
    const t = this.entries.indexOf(Hh);
    t >= 0 ? this.entries.splice(0, t + 1) : this.entries.length = 0;
  }
  //Search
  getElementEntryInScopeWithTagName(t) {
    const r = this.entries.find((n) => n.type === nr.Marker || this.treeAdapter.getTagName(n.element) === t);
    return r && r.type === nr.Element ? r : null;
  }
  getElementEntry(t) {
    return this.entries.find((r) => r.type === nr.Element && r.element === t);
  }
}
function Uh(e) {
  return {
    nodeName: "#text",
    value: e,
    parentNode: null
  };
}
const ln = {
  //Node construction
  createDocument() {
    return {
      nodeName: "#document",
      mode: Dt.NO_QUIRKS,
      childNodes: []
    };
  },
  createDocumentFragment() {
    return {
      nodeName: "#document-fragment",
      childNodes: []
    };
  },
  createElement(e, t, r) {
    return {
      nodeName: e,
      tagName: e,
      attrs: r,
      namespaceURI: t,
      childNodes: [],
      parentNode: null
    };
  },
  createCommentNode(e) {
    return {
      nodeName: "#comment",
      data: e,
      parentNode: null
    };
  },
  //Tree mutation
  appendChild(e, t) {
    e.childNodes.push(t), t.parentNode = e;
  },
  insertBefore(e, t, r) {
    const n = e.childNodes.indexOf(r);
    e.childNodes.splice(n, 0, t), t.parentNode = e;
  },
  setTemplateContent(e, t) {
    e.content = t;
  },
  getTemplateContent(e) {
    return e.content;
  },
  setDocumentType(e, t, r, n) {
    const i = e.childNodes.find((a) => a.nodeName === "#documentType");
    if (i)
      i.name = t, i.publicId = r, i.systemId = n;
    else {
      const a = {
        nodeName: "#documentType",
        name: t,
        publicId: r,
        systemId: n,
        parentNode: null
      };
      ln.appendChild(e, a);
    }
  },
  setDocumentMode(e, t) {
    e.mode = t;
  },
  getDocumentMode(e) {
    return e.mode;
  },
  detachNode(e) {
    if (e.parentNode) {
      const t = e.parentNode.childNodes.indexOf(e);
      e.parentNode.childNodes.splice(t, 1), e.parentNode = null;
    }
  },
  insertText(e, t) {
    if (e.childNodes.length > 0) {
      const r = e.childNodes[e.childNodes.length - 1];
      if (ln.isTextNode(r)) {
        r.value += t;
        return;
      }
    }
    ln.appendChild(e, Uh(t));
  },
  insertTextBefore(e, t, r) {
    const n = e.childNodes[e.childNodes.indexOf(r) - 1];
    n && ln.isTextNode(n) ? n.value += t : ln.insertBefore(e, Uh(t), r);
  },
  adoptAttributes(e, t) {
    const r = new Set(e.attrs.map((n) => n.name));
    for (let n = 0; n < t.length; n++)
      r.has(t[n].name) || e.attrs.push(t[n]);
  },
  //Tree traversing
  getFirstChild(e) {
    return e.childNodes[0];
  },
  getChildNodes(e) {
    return e.childNodes;
  },
  getParentNode(e) {
    return e.parentNode;
  },
  getAttrList(e) {
    return e.attrs;
  },
  //Node data
  getTagName(e) {
    return e.tagName;
  },
  getNamespaceURI(e) {
    return e.namespaceURI;
  },
  getTextNodeContent(e) {
    return e.value;
  },
  getCommentNodeContent(e) {
    return e.data;
  },
  getDocumentTypeNodeName(e) {
    return e.name;
  },
  getDocumentTypeNodePublicId(e) {
    return e.publicId;
  },
  getDocumentTypeNodeSystemId(e) {
    return e.systemId;
  },
  //Node types
  isTextNode(e) {
    return e.nodeName === "#text";
  },
  isCommentNode(e) {
    return e.nodeName === "#comment";
  },
  isDocumentTypeNode(e) {
    return e.nodeName === "#documentType";
  },
  isElementNode(e) {
    return Object.prototype.hasOwnProperty.call(e, "tagName");
  },
  // Source code location
  setNodeSourceCodeLocation(e, t) {
    e.sourceCodeLocation = t;
  },
  getNodeSourceCodeLocation(e) {
    return e.sourceCodeLocation;
  },
  updateNodeSourceCodeLocation(e, t) {
    e.sourceCodeLocation = { ...e.sourceCodeLocation, ...t };
  }
}, Sd = "html", Av = "about:legacy-compat", xv = "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd", Cd = [
  "+//silmaril//dtd html pro v0r11 19970101//",
  "-//as//dtd html 3.0 aswedit + extensions//",
  "-//advasoft ltd//dtd html 3.0 aswedit + extensions//",
  "-//ietf//dtd html 2.0 level 1//",
  "-//ietf//dtd html 2.0 level 2//",
  "-//ietf//dtd html 2.0 strict level 1//",
  "-//ietf//dtd html 2.0 strict level 2//",
  "-//ietf//dtd html 2.0 strict//",
  "-//ietf//dtd html 2.0//",
  "-//ietf//dtd html 2.1e//",
  "-//ietf//dtd html 3.0//",
  "-//ietf//dtd html 3.2 final//",
  "-//ietf//dtd html 3.2//",
  "-//ietf//dtd html 3//",
  "-//ietf//dtd html level 0//",
  "-//ietf//dtd html level 1//",
  "-//ietf//dtd html level 2//",
  "-//ietf//dtd html level 3//",
  "-//ietf//dtd html strict level 0//",
  "-//ietf//dtd html strict level 1//",
  "-//ietf//dtd html strict level 2//",
  "-//ietf//dtd html strict level 3//",
  "-//ietf//dtd html strict//",
  "-//ietf//dtd html//",
  "-//metrius//dtd metrius presentational//",
  "-//microsoft//dtd internet explorer 2.0 html strict//",
  "-//microsoft//dtd internet explorer 2.0 html//",
  "-//microsoft//dtd internet explorer 2.0 tables//",
  "-//microsoft//dtd internet explorer 3.0 html strict//",
  "-//microsoft//dtd internet explorer 3.0 html//",
  "-//microsoft//dtd internet explorer 3.0 tables//",
  "-//netscape comm. corp.//dtd html//",
  "-//netscape comm. corp.//dtd strict html//",
  "-//o'reilly and associates//dtd html 2.0//",
  "-//o'reilly and associates//dtd html extended 1.0//",
  "-//o'reilly and associates//dtd html extended relaxed 1.0//",
  "-//sq//dtd html 2.0 hotmetal + extensions//",
  "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//",
  "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//",
  "-//spyglass//dtd html 2.0 extended//",
  "-//sun microsystems corp.//dtd hotjava html//",
  "-//sun microsystems corp.//dtd hotjava strict html//",
  "-//w3c//dtd html 3 1995-03-24//",
  "-//w3c//dtd html 3.2 draft//",
  "-//w3c//dtd html 3.2 final//",
  "-//w3c//dtd html 3.2//",
  "-//w3c//dtd html 3.2s draft//",
  "-//w3c//dtd html 4.0 frameset//",
  "-//w3c//dtd html 4.0 transitional//",
  "-//w3c//dtd html experimental 19960712//",
  "-//w3c//dtd html experimental 970421//",
  "-//w3c//dtd w3 html//",
  "-//w3o//dtd w3 html 3.0//",
  "-//webtechs//dtd mozilla html 2.0//",
  "-//webtechs//dtd mozilla html//"
], yv = [
  ...Cd,
  "-//w3c//dtd html 4.01 frameset//",
  "-//w3c//dtd html 4.01 transitional//"
], Sv = /* @__PURE__ */ new Set([
  "-//w3o//dtd w3 html strict 3.0//en//",
  "-/w3c/dtd html 4.0 transitional/en",
  "html"
]), kd = ["-//w3c//dtd xhtml 1.0 frameset//", "-//w3c//dtd xhtml 1.0 transitional//"], Cv = [
  ...kd,
  "-//w3c//dtd html 4.01 frameset//",
  "-//w3c//dtd html 4.01 transitional//"
];
function zh(e, t) {
  return t.some((r) => e.startsWith(r));
}
function kv(e) {
  return e.name === Sd && e.publicId === null && (e.systemId === null || e.systemId === Av);
}
function wv(e) {
  if (e.name !== Sd)
    return Dt.QUIRKS;
  const { systemId: t } = e;
  if (t && t.toLowerCase() === xv)
    return Dt.QUIRKS;
  let { publicId: r } = e;
  if (r !== null) {
    if (r = r.toLowerCase(), Sv.has(r))
      return Dt.QUIRKS;
    let n = t === null ? yv : Cd;
    if (zh(r, n))
      return Dt.QUIRKS;
    if (n = t === null ? kd : Cv, zh(r, n))
      return Dt.LIMITED_QUIRKS;
  }
  return Dt.NO_QUIRKS;
}
const qh = {
  TEXT_HTML: "text/html",
  APPLICATION_XML: "application/xhtml+xml"
}, Nv = "definitionurl", Iv = "definitionURL", Mv = new Map([
  "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])), Dv = /* @__PURE__ */ new Map([
  ["xlink:actuate", { prefix: "xlink", name: "actuate", namespace: K.XLINK }],
  ["xlink:arcrole", { prefix: "xlink", name: "arcrole", namespace: K.XLINK }],
  ["xlink:href", { prefix: "xlink", name: "href", namespace: K.XLINK }],
  ["xlink:role", { prefix: "xlink", name: "role", namespace: K.XLINK }],
  ["xlink:show", { prefix: "xlink", name: "show", namespace: K.XLINK }],
  ["xlink:title", { prefix: "xlink", name: "title", namespace: K.XLINK }],
  ["xlink:type", { prefix: "xlink", name: "type", namespace: K.XLINK }],
  ["xml:base", { prefix: "xml", name: "base", namespace: K.XML }],
  ["xml:lang", { prefix: "xml", name: "lang", namespace: K.XML }],
  ["xml:space", { prefix: "xml", name: "space", namespace: K.XML }],
  ["xmlns", { prefix: "", name: "xmlns", namespace: K.XMLNS }],
  ["xmlns:xlink", { prefix: "xmlns", name: "xlink", namespace: K.XMLNS }]
]), Rv = new Map([
  "altGlyph",
  "altGlyphDef",
  "altGlyphItem",
  "animateColor",
  "animateMotion",
  "animateTransform",
  "clipPath",
  "feBlend",
  "feColorMatrix",
  "feComponentTransfer",
  "feComposite",
  "feConvolveMatrix",
  "feDiffuseLighting",
  "feDisplacementMap",
  "feDistantLight",
  "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])), Ov = /* @__PURE__ */ new Set([
  d.B,
  d.BIG,
  d.BLOCKQUOTE,
  d.BODY,
  d.BR,
  d.CENTER,
  d.CODE,
  d.DD,
  d.DIV,
  d.DL,
  d.DT,
  d.EM,
  d.EMBED,
  d.H1,
  d.H2,
  d.H3,
  d.H4,
  d.H5,
  d.H6,
  d.HEAD,
  d.HR,
  d.I,
  d.IMG,
  d.LI,
  d.LISTING,
  d.MENU,
  d.META,
  d.NOBR,
  d.OL,
  d.P,
  d.PRE,
  d.RUBY,
  d.S,
  d.SMALL,
  d.SPAN,
  d.STRONG,
  d.STRIKE,
  d.SUB,
  d.SUP,
  d.TABLE,
  d.TT,
  d.U,
  d.UL,
  d.VAR
]);
function Lv(e) {
  const t = e.tagID;
  return t === d.FONT && e.attrs.some(({ name: n }) => n === jr.COLOR || n === jr.SIZE || n === jr.FACE) || Ov.has(t);
}
function wd(e) {
  for (let t = 0; t < e.attrs.length; t++)
    if (e.attrs[t].name === Nv) {
      e.attrs[t].name = Iv;
      break;
    }
}
function Nd(e) {
  for (let t = 0; t < e.attrs.length; t++) {
    const r = Mv.get(e.attrs[t].name);
    r != null && (e.attrs[t].name = r);
  }
}
function yo(e) {
  for (let t = 0; t < e.attrs.length; t++) {
    const r = Dv.get(e.attrs[t].name);
    r && (e.attrs[t].prefix = r.prefix, e.attrs[t].name = r.name, e.attrs[t].namespace = r.namespace);
  }
}
function Bv(e) {
  const t = Rv.get(e.tagName);
  t != null && (e.tagName = t, e.tagID = Ra(e.tagName));
}
function Pv(e, t) {
  return t === K.MATHML && (e === d.MI || e === d.MO || e === d.MN || e === d.MS || e === d.MTEXT);
}
function Fv(e, t, r) {
  if (t === K.MATHML && e === d.ANNOTATION_XML) {
    for (let n = 0; n < r.length; n++)
      if (r[n].name === jr.ENCODING) {
        const i = r[n].value.toLowerCase();
        return i === qh.TEXT_HTML || i === qh.APPLICATION_XML;
      }
  }
  return t === K.SVG && (e === d.FOREIGN_OBJECT || e === d.DESC || e === d.TITLE);
}
function Hv(e, t, r, n) {
  return (!n || n === K.HTML) && Fv(e, t, r) || (!n || n === K.MATHML) && Pv(e, t);
}
const Uv = "hidden", zv = 8, qv = 3;
var O;
(function(e) {
  e[e.INITIAL = 0] = "INITIAL", e[e.BEFORE_HTML = 1] = "BEFORE_HTML", e[e.BEFORE_HEAD = 2] = "BEFORE_HEAD", e[e.IN_HEAD = 3] = "IN_HEAD", e[e.IN_HEAD_NO_SCRIPT = 4] = "IN_HEAD_NO_SCRIPT", e[e.AFTER_HEAD = 5] = "AFTER_HEAD", e[e.IN_BODY = 6] = "IN_BODY", e[e.TEXT = 7] = "TEXT", e[e.IN_TABLE = 8] = "IN_TABLE", e[e.IN_TABLE_TEXT = 9] = "IN_TABLE_TEXT", e[e.IN_CAPTION = 10] = "IN_CAPTION", e[e.IN_COLUMN_GROUP = 11] = "IN_COLUMN_GROUP", e[e.IN_TABLE_BODY = 12] = "IN_TABLE_BODY", e[e.IN_ROW = 13] = "IN_ROW", e[e.IN_CELL = 14] = "IN_CELL", e[e.IN_SELECT = 15] = "IN_SELECT", e[e.IN_SELECT_IN_TABLE = 16] = "IN_SELECT_IN_TABLE", e[e.IN_TEMPLATE = 17] = "IN_TEMPLATE", e[e.AFTER_BODY = 18] = "AFTER_BODY", e[e.IN_FRAMESET = 19] = "IN_FRAMESET", e[e.AFTER_FRAMESET = 20] = "AFTER_FRAMESET", e[e.AFTER_AFTER_BODY = 21] = "AFTER_AFTER_BODY", e[e.AFTER_AFTER_FRAMESET = 22] = "AFTER_AFTER_FRAMESET";
})(O || (O = {}));
const Yv = {
  startLine: -1,
  startCol: -1,
  startOffset: -1,
  endLine: -1,
  endCol: -1,
  endOffset: -1
}, Id = /* @__PURE__ */ new Set([d.TABLE, d.TBODY, d.TFOOT, d.THEAD, d.TR]), Yh = {
  scriptingEnabled: !0,
  sourceCodeLocationInfo: !1,
  treeAdapter: ln,
  onParseError: null
};
let Md = class {
  constructor(t, r, n = null, i = null) {
    this.fragmentContext = n, this.scriptHandler = i, this.currentToken = null, this.stopped = !1, this.insertionMode = O.INITIAL, this.originalInsertionMode = O.INITIAL, this.headElement = null, this.formElement = null, this.currentNotInHTML = !1, this.tmplInsertionModeStack = [], this.pendingCharacterTokens = [], this.hasNonWhitespacePendingCharacterToken = !1, this.framesetOk = !0, this.skipNextNewLine = !1, this.fosterParentingEnabled = !1, this.options = {
      ...Yh,
      ...t
    }, this.treeAdapter = this.options.treeAdapter, this.onParseError = this.options.onParseError, this.onParseError && (this.options.sourceCodeLocationInfo = !0), this.document = r ?? this.treeAdapter.createDocument(), this.tokenizer = new mv(this.options, this), this.activeFormattingElements = new Tv(this.treeAdapter), this.fragmentContextID = n ? Ra(this.treeAdapter.getTagName(n)) : d.UNKNOWN, this._setContextModes(n ?? this.document, this.fragmentContextID), this.openElements = new _v(this.document, this.treeAdapter, this);
  }
  // API
  static parse(t, r) {
    const n = new this(r);
    return n.tokenizer.write(t, !0), n.document;
  }
  static getFragmentParser(t, r) {
    const n = {
      ...Yh,
      ...r
    };
    t ?? (t = n.treeAdapter.createElement(H.TEMPLATE, K.HTML, []));
    const i = n.treeAdapter.createElement("documentmock", K.HTML, []), a = new this(n, i, t);
    return a.fragmentContextID === d.TEMPLATE && a.tmplInsertionModeStack.unshift(O.IN_TEMPLATE), a._initTokenizerForFragmentParsing(), a._insertFakeRootElement(), a._resetInsertionMode(), a._findFormInFragmentContext(), a;
  }
  getFragment() {
    const t = this.treeAdapter.getFirstChild(this.document), r = this.treeAdapter.createDocumentFragment();
    return this._adoptNodes(t, r), r;
  }
  //Errors
  _err(t, r, n) {
    var i;
    if (!this.onParseError)
      return;
    const a = (i = t.location) !== null && i !== void 0 ? i : Yv, o = {
      code: r,
      startLine: a.startLine,
      startCol: a.startCol,
      startOffset: a.startOffset,
      endLine: n ? a.startLine : a.endLine,
      endCol: n ? a.startCol : a.endCol,
      endOffset: n ? a.startOffset : a.endOffset
    };
    this.onParseError(o);
  }
  //Stack events
  onItemPush(t, r, n) {
    var i, a;
    (a = (i = this.treeAdapter).onItemPush) === null || a === void 0 || a.call(i, t), n && this.openElements.stackTop > 0 && this._setContextModes(t, r);
  }
  onItemPop(t, r) {
    var n, i;
    if (this.options.sourceCodeLocationInfo && this._setEndLocation(t, this.currentToken), (i = (n = this.treeAdapter).onItemPop) === null || i === void 0 || i.call(n, t, this.openElements.current), r) {
      let a, o;
      this.openElements.stackTop === 0 && this.fragmentContext ? (a = this.fragmentContext, o = this.fragmentContextID) : { current: a, currentTagId: o } = this.openElements, this._setContextModes(a, o);
    }
  }
  _setContextModes(t, r) {
    const n = t === this.document || this.treeAdapter.getNamespaceURI(t) === K.HTML;
    this.currentNotInHTML = !n, this.tokenizer.inForeignNode = !n && !this._isIntegrationPoint(r, t);
  }
  _switchToTextParsing(t, r) {
    this._insertElement(t, K.HTML), this.tokenizer.state = r, this.originalInsertionMode = this.insertionMode, this.insertionMode = O.TEXT;
  }
  switchToPlaintextParsing() {
    this.insertionMode = O.TEXT, this.originalInsertionMode = O.IN_BODY, this.tokenizer.state = Rt.PLAINTEXT;
  }
  //Fragment parsing
  _getAdjustedCurrentElement() {
    return this.openElements.stackTop === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.current;
  }
  _findFormInFragmentContext() {
    let t = this.fragmentContext;
    for (; t; ) {
      if (this.treeAdapter.getTagName(t) === H.FORM) {
        this.formElement = t;
        break;
      }
      t = this.treeAdapter.getParentNode(t);
    }
  }
  _initTokenizerForFragmentParsing() {
    if (!(!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== K.HTML))
      switch (this.fragmentContextID) {
        case d.TITLE:
        case d.TEXTAREA: {
          this.tokenizer.state = Rt.RCDATA;
          break;
        }
        case d.STYLE:
        case d.XMP:
        case d.IFRAME:
        case d.NOEMBED:
        case d.NOFRAMES:
        case d.NOSCRIPT: {
          this.tokenizer.state = Rt.RAWTEXT;
          break;
        }
        case d.SCRIPT: {
          this.tokenizer.state = Rt.SCRIPT_DATA;
          break;
        }
        case d.PLAINTEXT: {
          this.tokenizer.state = Rt.PLAINTEXT;
          break;
        }
      }
  }
  //Tree mutation
  _setDocumentType(t) {
    const r = t.name || "", n = t.publicId || "", i = t.systemId || "";
    if (this.treeAdapter.setDocumentType(this.document, r, n, i), t.location) {
      const o = this.treeAdapter.getChildNodes(this.document).find((c) => this.treeAdapter.isDocumentTypeNode(c));
      o && this.treeAdapter.setNodeSourceCodeLocation(o, t.location);
    }
  }
  _attachElementToTree(t, r) {
    if (this.options.sourceCodeLocationInfo) {
      const n = r && {
        ...r,
        startTag: r
      };
      this.treeAdapter.setNodeSourceCodeLocation(t, n);
    }
    if (this._shouldFosterParentOnInsertion())
      this._fosterParentElement(t);
    else {
      const n = this.openElements.currentTmplContentOrNode;
      this.treeAdapter.appendChild(n, t);
    }
  }
  _appendElement(t, r) {
    const n = this.treeAdapter.createElement(t.tagName, r, t.attrs);
    this._attachElementToTree(n, t.location);
  }
  _insertElement(t, r) {
    const n = this.treeAdapter.createElement(t.tagName, r, t.attrs);
    this._attachElementToTree(n, t.location), this.openElements.push(n, t.tagID);
  }
  _insertFakeElement(t, r) {
    const n = this.treeAdapter.createElement(t, K.HTML, []);
    this._attachElementToTree(n, null), this.openElements.push(n, r);
  }
  _insertTemplate(t) {
    const r = this.treeAdapter.createElement(t.tagName, K.HTML, t.attrs), n = this.treeAdapter.createDocumentFragment();
    this.treeAdapter.setTemplateContent(r, n), this._attachElementToTree(r, t.location), this.openElements.push(r, t.tagID), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(n, null);
  }
  _insertFakeRootElement() {
    const t = this.treeAdapter.createElement(H.HTML, K.HTML, []);
    this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(t, null), this.treeAdapter.appendChild(this.openElements.current, t), this.openElements.push(t, d.HTML);
  }
  _appendCommentNode(t, r) {
    const n = this.treeAdapter.createCommentNode(t.data);
    this.treeAdapter.appendChild(r, n), this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(n, t.location);
  }
  _insertCharacters(t) {
    let r, n;
    if (this._shouldFosterParentOnInsertion() ? ({ parent: r, beforeElement: n } = this._findFosterParentingLocation(), n ? this.treeAdapter.insertTextBefore(r, t.chars, n) : this.treeAdapter.insertText(r, t.chars)) : (r = this.openElements.currentTmplContentOrNode, this.treeAdapter.insertText(r, t.chars)), !t.location)
      return;
    const i = this.treeAdapter.getChildNodes(r), a = n ? i.lastIndexOf(n) : i.length, o = i[a - 1];
    if (this.treeAdapter.getNodeSourceCodeLocation(o)) {
      const { endLine: f, endCol: m, endOffset: b } = t.location;
      this.treeAdapter.updateNodeSourceCodeLocation(o, { endLine: f, endCol: m, endOffset: b });
    } else
      this.options.sourceCodeLocationInfo && this.treeAdapter.setNodeSourceCodeLocation(o, t.location);
  }
  _adoptNodes(t, r) {
    for (let n = this.treeAdapter.getFirstChild(t); n; n = this.treeAdapter.getFirstChild(t))
      this.treeAdapter.detachNode(n), this.treeAdapter.appendChild(r, n);
  }
  _setEndLocation(t, r) {
    if (this.treeAdapter.getNodeSourceCodeLocation(t) && r.location) {
      const n = r.location, i = this.treeAdapter.getTagName(t), a = (
        // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing
        // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.
        r.type === Le.END_TAG && i === r.tagName ? {
          endTag: { ...n },
          endLine: n.endLine,
          endCol: n.endCol,
          endOffset: n.endOffset
        } : {
          endLine: n.startLine,
          endCol: n.startCol,
          endOffset: n.startOffset
        }
      );
      this.treeAdapter.updateNodeSourceCodeLocation(t, a);
    }
  }
  //Token processing
  shouldProcessStartTagTokenInForeignContent(t) {
    if (!this.currentNotInHTML)
      return !1;
    let r, n;
    return this.openElements.stackTop === 0 && this.fragmentContext ? (r = this.fragmentContext, n = this.fragmentContextID) : { current: r, currentTagId: n } = this.openElements, t.tagID === d.SVG && this.treeAdapter.getTagName(r) === H.ANNOTATION_XML && this.treeAdapter.getNamespaceURI(r) === K.MATHML ? !1 : (
      // Check that `current` is not an integration point for HTML or MathML elements.
      this.tokenizer.inForeignNode || // If it _is_ an integration point, then we might have to check that it is not an HTML
      // integration point.
      (t.tagID === d.MGLYPH || t.tagID === d.MALIGNMARK) && !this._isIntegrationPoint(n, r, K.HTML)
    );
  }
  _processToken(t) {
    switch (t.type) {
      case Le.CHARACTER: {
        this.onCharacter(t);
        break;
      }
      case Le.NULL_CHARACTER: {
        this.onNullCharacter(t);
        break;
      }
      case Le.COMMENT: {
        this.onComment(t);
        break;
      }
      case Le.DOCTYPE: {
        this.onDoctype(t);
        break;
      }
      case Le.START_TAG: {
        this._processStartTag(t);
        break;
      }
      case Le.END_TAG: {
        this.onEndTag(t);
        break;
      }
      case Le.EOF: {
        this.onEof(t);
        break;
      }
      case Le.WHITESPACE_CHARACTER: {
        this.onWhitespaceCharacter(t);
        break;
      }
    }
  }
  //Integration points
  _isIntegrationPoint(t, r, n) {
    const i = this.treeAdapter.getNamespaceURI(r), a = this.treeAdapter.getAttrList(r);
    return Hv(t, i, a, n);
  }
  //Active formatting elements reconstruction
  _reconstructActiveFormattingElements() {
    const t = this.activeFormattingElements.entries.length;
    if (t) {
      const r = this.activeFormattingElements.entries.findIndex((i) => i.type === nr.Marker || this.openElements.contains(i.element)), n = r < 0 ? t - 1 : r - 1;
      for (let i = n; i >= 0; i--) {
        const a = this.activeFormattingElements.entries[i];
        this._insertElement(a.token, this.treeAdapter.getNamespaceURI(a.element)), a.element = this.openElements.current;
      }
    }
  }
  //Close elements
  _closeTableCell() {
    this.openElements.generateImpliedEndTags(), this.openElements.popUntilTableCellPopped(), this.activeFormattingElements.clearToLastMarker(), this.insertionMode = O.IN_ROW;
  }
  _closePElement() {
    this.openElements.generateImpliedEndTagsWithExclusion(d.P), this.openElements.popUntilTagNamePopped(d.P);
  }
  //Insertion modes
  _resetInsertionMode() {
    for (let t = this.openElements.stackTop; t >= 0; t--)
      switch (t === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[t]) {
        case d.TR: {
          this.insertionMode = O.IN_ROW;
          return;
        }
        case d.TBODY:
        case d.THEAD:
        case d.TFOOT: {
          this.insertionMode = O.IN_TABLE_BODY;
          return;
        }
        case d.CAPTION: {
          this.insertionMode = O.IN_CAPTION;
          return;
        }
        case d.COLGROUP: {
          this.insertionMode = O.IN_COLUMN_GROUP;
          return;
        }
        case d.TABLE: {
          this.insertionMode = O.IN_TABLE;
          return;
        }
        case d.BODY: {
          this.insertionMode = O.IN_BODY;
          return;
        }
        case d.FRAMESET: {
          this.insertionMode = O.IN_FRAMESET;
          return;
        }
        case d.SELECT: {
          this._resetInsertionModeForSelect(t);
          return;
        }
        case d.TEMPLATE: {
          this.insertionMode = this.tmplInsertionModeStack[0];
          return;
        }
        case d.HTML: {
          this.insertionMode = this.headElement ? O.AFTER_HEAD : O.BEFORE_HEAD;
          return;
        }
        case d.TD:
        case d.TH: {
          if (t > 0) {
            this.insertionMode = O.IN_CELL;
            return;
          }
          break;
        }
        case d.HEAD: {
          if (t > 0) {
            this.insertionMode = O.IN_HEAD;
            return;
          }
          break;
        }
      }
    this.insertionMode = O.IN_BODY;
  }
  _resetInsertionModeForSelect(t) {
    if (t > 0)
      for (let r = t - 1; r > 0; r--) {
        const n = this.openElements.tagIDs[r];
        if (n === d.TEMPLATE)
          break;
        if (n === d.TABLE) {
          this.insertionMode = O.IN_SELECT_IN_TABLE;
          return;
        }
      }
    this.insertionMode = O.IN_SELECT;
  }
  //Foster parenting
  _isElementCausesFosterParenting(t) {
    return Id.has(t);
  }
  _shouldFosterParentOnInsertion() {
    return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId);
  }
  _findFosterParentingLocation() {
    for (let t = this.openElements.stackTop; t >= 0; t--) {
      const r = this.openElements.items[t];
      switch (this.openElements.tagIDs[t]) {
        case d.TEMPLATE: {
          if (this.treeAdapter.getNamespaceURI(r) === K.HTML)
            return { parent: this.treeAdapter.getTemplateContent(r), beforeElement: null };
          break;
        }
        case d.TABLE: {
          const n = this.treeAdapter.getParentNode(r);
          return n ? { parent: n, beforeElement: r } : { parent: this.openElements.items[t - 1], beforeElement: null };
        }
      }
    }
    return { parent: this.openElements.items[0], beforeElement: null };
  }
  _fosterParentElement(t) {
    const r = this._findFosterParentingLocation();
    r.beforeElement ? this.treeAdapter.insertBefore(r.parent, t, r.beforeElement) : this.treeAdapter.appendChild(r.parent, t);
  }
  //Special elements
  _isSpecialElement(t, r) {
    const n = this.treeAdapter.getNamespaceURI(t);
    return uv[n].has(r);
  }
  onCharacter(t) {
    if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) {
      vT(this, t);
      return;
    }
    switch (this.insertionMode) {
      case O.INITIAL: {
        b0(this, t);
        break;
      }
      case O.BEFORE_HTML: {
        N0(this, t);
        break;
      }
      case O.BEFORE_HEAD: {
        I0(this, t);
        break;
      }
      case O.IN_HEAD: {
        M0(this, t);
        break;
      }
      case O.IN_HEAD_NO_SCRIPT: {
        D0(this, t);
        break;
      }
      case O.AFTER_HEAD: {
        R0(this, t);
        break;
      }
      case O.IN_BODY:
      case O.IN_CAPTION:
      case O.IN_CELL:
      case O.IN_TEMPLATE: {
        Rd(this, t);
        break;
      }
      case O.TEXT:
      case O.IN_SELECT:
      case O.IN_SELECT_IN_TABLE: {
        this._insertCharacters(t);
        break;
      }
      case O.IN_TABLE:
      case O.IN_TABLE_BODY:
      case O.IN_ROW: {
        Ks(this, t);
        break;
      }
      case O.IN_TABLE_TEXT: {
        Hd(this, t);
        break;
      }
      case O.IN_COLUMN_GROUP: {
        pa(this, t);
        break;
      }
      case O.AFTER_BODY: {
        ga(this, t);
        break;
      }
      case O.AFTER_AFTER_BODY: {
        Qi(this, t);
        break;
      }
    }
  }
  onNullCharacter(t) {
    if (this.skipNextNewLine = !1, this.tokenizer.inForeignNode) {
      ET(this, t);
      return;
    }
    switch (this.insertionMode) {
      case O.INITIAL: {
        b0(this, t);
        break;
      }
      case O.BEFORE_HTML: {
        N0(this, t);
        break;
      }
      case O.BEFORE_HEAD: {
        I0(this, t);
        break;
      }
      case O.IN_HEAD: {
        M0(this, t);
        break;
      }
      case O.IN_HEAD_NO_SCRIPT: {
        D0(this, t);
        break;
      }
      case O.AFTER_HEAD: {
        R0(this, t);
        break;
      }
      case O.TEXT: {
        this._insertCharacters(t);
        break;
      }
      case O.IN_TABLE:
      case O.IN_TABLE_BODY:
      case O.IN_ROW: {
        Ks(this, t);
        break;
      }
      case O.IN_COLUMN_GROUP: {
        pa(this, t);
        break;
      }
      case O.AFTER_BODY: {
        ga(this, t);
        break;
      }
      case O.AFTER_AFTER_BODY: {
        Qi(this, t);
        break;
      }
    }
  }
  onComment(t) {
    if (this.skipNextNewLine = !1, this.currentNotInHTML) {
      Ou(this, t);
      return;
    }
    switch (this.insertionMode) {
      case O.INITIAL:
      case O.BEFORE_HTML:
      case O.BEFORE_HEAD:
      case O.IN_HEAD:
      case O.IN_HEAD_NO_SCRIPT:
      case O.AFTER_HEAD:
      case O.IN_BODY:
      case O.IN_TABLE:
      case O.IN_CAPTION:
      case O.IN_COLUMN_GROUP:
      case O.IN_TABLE_BODY:
      case O.IN_ROW:
      case O.IN_CELL:
      case O.IN_SELECT:
      case O.IN_SELECT_IN_TABLE:
      case O.IN_TEMPLATE:
      case O.IN_FRAMESET:
      case O.AFTER_FRAMESET: {
        Ou(this, t);
        break;
      }
      case O.IN_TABLE_TEXT: {
        E0(this, t);
        break;
      }
      case O.AFTER_BODY: {
        $v(this, t);
        break;
      }
      case O.AFTER_AFTER_BODY:
      case O.AFTER_AFTER_FRAMESET: {
        Qv(this, t);
        break;
      }
    }
  }
  onDoctype(t) {
    switch (this.skipNextNewLine = !1, this.insertionMode) {
      case O.INITIAL: {
        Zv(this, t);
        break;
      }
      case O.BEFORE_HEAD:
      case O.IN_HEAD:
      case O.IN_HEAD_NO_SCRIPT:
      case O.AFTER_HEAD: {
        this._err(t, G.misplacedDoctype);
        break;
      }
      case O.IN_TABLE_TEXT: {
        E0(this, t);
        break;
      }
    }
  }
  onStartTag(t) {
    this.skipNextNewLine = !1, this.currentToken = t, this._processStartTag(t), t.selfClosing && !t.ackSelfClosing && this._err(t, G.nonVoidHtmlElementStartTagWithTrailingSolidus);
  }
  /**
   * Processes a given start tag.
   *
   * `onStartTag` checks if a self-closing tag was recognized. When a token
   * is moved inbetween multiple insertion modes, this check for self-closing
   * could lead to false positives. To avoid this, `_processStartTag` is used
   * for nested calls.
   *
   * @param token The token to process.
   */
  _processStartTag(t) {
    this.shouldProcessStartTagTokenInForeignContent(t) ? _T(this, t) : this._startTagOutsideForeignContent(t);
  }
  _startTagOutsideForeignContent(t) {
    switch (this.insertionMode) {
      case O.INITIAL: {
        b0(this, t);
        break;
      }
      case O.BEFORE_HTML: {
        Jv(this, t);
        break;
      }
      case O.BEFORE_HEAD: {
        t_(this, t);
        break;
      }
      case O.IN_HEAD: {
        sr(this, t);
        break;
      }
      case O.IN_HEAD_NO_SCRIPT: {
        i_(this, t);
        break;
      }
      case O.AFTER_HEAD: {
        s_(this, t);
        break;
      }
      case O.IN_BODY: {
        vt(this, t);
        break;
      }
      case O.IN_TABLE: {
        Jn(this, t);
        break;
      }
      case O.IN_TABLE_TEXT: {
        E0(this, t);
        break;
      }
      case O.IN_CAPTION: {
        rT(this, t);
        break;
      }
      case O.IN_COLUMN_GROUP: {
        ko(this, t);
        break;
      }
      case O.IN_TABLE_BODY: {
        Ba(this, t);
        break;
      }
      case O.IN_ROW: {
        Pa(this, t);
        break;
      }
      case O.IN_CELL: {
        aT(this, t);
        break;
      }
      case O.IN_SELECT: {
        qd(this, t);
        break;
      }
      case O.IN_SELECT_IN_TABLE: {
        uT(this, t);
        break;
      }
      case O.IN_TEMPLATE: {
        lT(this, t);
        break;
      }
      case O.AFTER_BODY: {
        hT(this, t);
        break;
      }
      case O.IN_FRAMESET: {
        fT(this, t);
        break;
      }
      case O.AFTER_FRAMESET: {
        mT(this, t);
        break;
      }
      case O.AFTER_AFTER_BODY: {
        gT(this, t);
        break;
      }
      case O.AFTER_AFTER_FRAMESET: {
        bT(this, t);
        break;
      }
    }
  }
  onEndTag(t) {
    this.skipNextNewLine = !1, this.currentToken = t, this.currentNotInHTML ? TT(this, t) : this._endTagOutsideForeignContent(t);
  }
  _endTagOutsideForeignContent(t) {
    switch (this.insertionMode) {
      case O.INITIAL: {
        b0(this, t);
        break;
      }
      case O.BEFORE_HTML: {
        e_(this, t);
        break;
      }
      case O.BEFORE_HEAD: {
        r_(this, t);
        break;
      }
      case O.IN_HEAD: {
        n_(this, t);
        break;
      }
      case O.IN_HEAD_NO_SCRIPT: {
        a_(this, t);
        break;
      }
      case O.AFTER_HEAD: {
        u_(this, t);
        break;
      }
      case O.IN_BODY: {
        La(this, t);
        break;
      }
      case O.TEXT: {
        X_(this, t);
        break;
      }
      case O.IN_TABLE: {
        q0(this, t);
        break;
      }
      case O.IN_TABLE_TEXT: {
        E0(this, t);
        break;
      }
      case O.IN_CAPTION: {
        nT(this, t);
        break;
      }
      case O.IN_COLUMN_GROUP: {
        iT(this, t);
        break;
      }
      case O.IN_TABLE_BODY: {
        Lu(this, t);
        break;
      }
      case O.IN_ROW: {
        zd(this, t);
        break;
      }
      case O.IN_CELL: {
        sT(this, t);
        break;
      }
      case O.IN_SELECT: {
        Yd(this, t);
        break;
      }
      case O.IN_SELECT_IN_TABLE: {
        oT(this, t);
        break;
      }
      case O.IN_TEMPLATE: {
        cT(this, t);
        break;
      }
      case O.AFTER_BODY: {
        Gd(this, t);
        break;
      }
      case O.IN_FRAMESET: {
        dT(this, t);
        break;
      }
      case O.AFTER_FRAMESET: {
        pT(this, t);
        break;
      }
      case O.AFTER_AFTER_BODY: {
        Qi(this, t);
        break;
      }
    }
  }
  onEof(t) {
    switch (this.insertionMode) {
      case O.INITIAL: {
        b0(this, t);
        break;
      }
      case O.BEFORE_HTML: {
        N0(this, t);
        break;
      }
      case O.BEFORE_HEAD: {
        I0(this, t);
        break;
      }
      case O.IN_HEAD: {
        M0(this, t);
        break;
      }
      case O.IN_HEAD_NO_SCRIPT: {
        D0(this, t);
        break;
      }
      case O.AFTER_HEAD: {
        R0(this, t);
        break;
      }
      case O.IN_BODY:
      case O.IN_TABLE:
      case O.IN_CAPTION:
      case O.IN_COLUMN_GROUP:
      case O.IN_TABLE_BODY:
      case O.IN_ROW:
      case O.IN_CELL:
      case O.IN_SELECT:
      case O.IN_SELECT_IN_TABLE: {
        Pd(this, t);
        break;
      }
      case O.TEXT: {
        W_(this, t);
        break;
      }
      case O.IN_TABLE_TEXT: {
        E0(this, t);
        break;
      }
      case O.IN_TEMPLATE: {
        Vd(this, t);
        break;
      }
      case O.AFTER_BODY:
      case O.IN_FRAMESET:
      case O.AFTER_FRAMESET:
      case O.AFTER_AFTER_BODY:
      case O.AFTER_AFTER_FRAMESET: {
        Co(this, t);
        break;
      }
    }
  }
  onWhitespaceCharacter(t) {
    if (this.skipNextNewLine && (this.skipNextNewLine = !1, t.chars.charCodeAt(0) === C.LINE_FEED)) {
      if (t.chars.length === 1)
        return;
      t.chars = t.chars.substr(1);
    }
    if (this.tokenizer.inForeignNode) {
      this._insertCharacters(t);
      return;
    }
    switch (this.insertionMode) {
      case O.IN_HEAD:
      case O.IN_HEAD_NO_SCRIPT:
      case O.AFTER_HEAD:
      case O.TEXT:
      case O.IN_COLUMN_GROUP:
      case O.IN_SELECT:
      case O.IN_SELECT_IN_TABLE:
      case O.IN_FRAMESET:
      case O.AFTER_FRAMESET: {
        this._insertCharacters(t);
        break;
      }
      case O.IN_BODY:
      case O.IN_CAPTION:
      case O.IN_CELL:
      case O.IN_TEMPLATE:
      case O.AFTER_BODY:
      case O.AFTER_AFTER_BODY:
      case O.AFTER_AFTER_FRAMESET: {
        Dd(this, t);
        break;
      }
      case O.IN_TABLE:
      case O.IN_TABLE_BODY:
      case O.IN_ROW: {
        Ks(this, t);
        break;
      }
      case O.IN_TABLE_TEXT: {
        Fd(this, t);
        break;
      }
    }
  }
};
function Vv(e, t) {
  let r = e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);
  return r ? e.openElements.contains(r.element) ? e.openElements.hasInScope(t.tagID) || (r = null) : (e.activeFormattingElements.removeEntry(r), r = null) : Bd(e, t), r;
}
function Gv(e, t) {
  let r = null, n = e.openElements.stackTop;
  for (; n >= 0; n--) {
    const i = e.openElements.items[n];
    if (i === t.element)
      break;
    e._isSpecialElement(i, e.openElements.tagIDs[n]) && (r = i);
  }
  return r || (e.openElements.shortenToLength(n < 0 ? 0 : n), e.activeFormattingElements.removeEntry(t)), r;
}
function Xv(e, t, r) {
  let n = t, i = e.openElements.getCommonAncestor(t);
  for (let a = 0, o = i; o !== r; a++, o = i) {
    i = e.openElements.getCommonAncestor(o);
    const c = e.activeFormattingElements.getElementEntry(o), f = c && a >= qv;
    !c || f ? (f && e.activeFormattingElements.removeEntry(c), e.openElements.remove(o)) : (o = Wv(e, c), n === t && (e.activeFormattingElements.bookmark = c), e.treeAdapter.detachNode(n), e.treeAdapter.appendChild(o, n), n = o);
  }
  return n;
}
function Wv(e, t) {
  const r = e.treeAdapter.getNamespaceURI(t.element), n = e.treeAdapter.createElement(t.token.tagName, r, t.token.attrs);
  return e.openElements.replace(t.element, n), t.element = n, n;
}
function jv(e, t, r) {
  const n = e.treeAdapter.getTagName(t), i = Ra(n);
  if (e._isElementCausesFosterParenting(i))
    e._fosterParentElement(r);
  else {
    const a = e.treeAdapter.getNamespaceURI(t);
    i === d.TEMPLATE && a === K.HTML && (t = e.treeAdapter.getTemplateContent(t)), e.treeAdapter.appendChild(t, r);
  }
}
function Kv(e, t, r) {
  const n = e.treeAdapter.getNamespaceURI(r.element), { token: i } = r, a = e.treeAdapter.createElement(i.tagName, n, i.attrs);
  e._adoptNodes(t, a), e.treeAdapter.appendChild(t, a), e.activeFormattingElements.insertElementAfterBookmark(a, i), e.activeFormattingElements.removeEntry(r), e.openElements.remove(r.element), e.openElements.insertAfter(t, a, i.tagID);
}
function So(e, t) {
  for (let r = 0; r < zv; r++) {
    const n = Vv(e, t);
    if (!n)
      break;
    const i = Gv(e, n);
    if (!i)
      break;
    e.activeFormattingElements.bookmark = n;
    const a = Xv(e, i, n.element), o = e.openElements.getCommonAncestor(n.element);
    e.treeAdapter.detachNode(a), o && jv(e, o, a), Kv(e, i, n);
  }
}
function Ou(e, t) {
  e._appendCommentNode(t, e.openElements.currentTmplContentOrNode);
}
function $v(e, t) {
  e._appendCommentNode(t, e.openElements.items[0]);
}
function Qv(e, t) {
  e._appendCommentNode(t, e.document);
}
function Co(e, t) {
  if (e.stopped = !0, t.location) {
    const r = e.fragmentContext ? 0 : 2;
    for (let n = e.openElements.stackTop; n >= r; n--)
      e._setEndLocation(e.openElements.items[n], t);
    if (!e.fragmentContext && e.openElements.stackTop >= 0) {
      const n = e.openElements.items[0], i = e.treeAdapter.getNodeSourceCodeLocation(n);
      if (i && !i.endTag && (e._setEndLocation(n, t), e.openElements.stackTop >= 1)) {
        const a = e.openElements.items[1], o = e.treeAdapter.getNodeSourceCodeLocation(a);
        o && !o.endTag && e._setEndLocation(a, t);
      }
    }
  }
}
function Zv(e, t) {
  e._setDocumentType(t);
  const r = t.forceQuirks ? Dt.QUIRKS : wv(t);
  kv(t) || e._err(t, G.nonConformingDoctype), e.treeAdapter.setDocumentMode(e.document, r), e.insertionMode = O.BEFORE_HTML;
}
function b0(e, t) {
  e._err(t, G.missingDoctype, !0), e.treeAdapter.setDocumentMode(e.document, Dt.QUIRKS), e.insertionMode = O.BEFORE_HTML, e._processToken(t);
}
function Jv(e, t) {
  t.tagID === d.HTML ? (e._insertElement(t, K.HTML), e.insertionMode = O.BEFORE_HEAD) : N0(e, t);
}
function e_(e, t) {
  const r = t.tagID;
  (r === d.HTML || r === d.HEAD || r === d.BODY || r === d.BR) && N0(e, t);
}
function N0(e, t) {
  e._insertFakeRootElement(), e.insertionMode = O.BEFORE_HEAD, e._processToken(t);
}
function t_(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.HEAD: {
      e._insertElement(t, K.HTML), e.headElement = e.openElements.current, e.insertionMode = O.IN_HEAD;
      break;
    }
    default:
      I0(e, t);
  }
}
function r_(e, t) {
  const r = t.tagID;
  r === d.HEAD || r === d.BODY || r === d.HTML || r === d.BR ? I0(e, t) : e._err(t, G.endTagWithoutMatchingOpenElement);
}
function I0(e, t) {
  e._insertFakeElement(H.HEAD, d.HEAD), e.headElement = e.openElements.current, e.insertionMode = O.IN_HEAD, e._processToken(t);
}
function sr(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.BASE:
    case d.BASEFONT:
    case d.BGSOUND:
    case d.LINK:
    case d.META: {
      e._appendElement(t, K.HTML), t.ackSelfClosing = !0;
      break;
    }
    case d.TITLE: {
      e._switchToTextParsing(t, Rt.RCDATA);
      break;
    }
    case d.NOSCRIPT: {
      e.options.scriptingEnabled ? e._switchToTextParsing(t, Rt.RAWTEXT) : (e._insertElement(t, K.HTML), e.insertionMode = O.IN_HEAD_NO_SCRIPT);
      break;
    }
    case d.NOFRAMES:
    case d.STYLE: {
      e._switchToTextParsing(t, Rt.RAWTEXT);
      break;
    }
    case d.SCRIPT: {
      e._switchToTextParsing(t, Rt.SCRIPT_DATA);
      break;
    }
    case d.TEMPLATE: {
      e._insertTemplate(t), e.activeFormattingElements.insertMarker(), e.framesetOk = !1, e.insertionMode = O.IN_TEMPLATE, e.tmplInsertionModeStack.unshift(O.IN_TEMPLATE);
      break;
    }
    case d.HEAD: {
      e._err(t, G.misplacedStartTagForHeadElement);
      break;
    }
    default:
      M0(e, t);
  }
}
function n_(e, t) {
  switch (t.tagID) {
    case d.HEAD: {
      e.openElements.pop(), e.insertionMode = O.AFTER_HEAD;
      break;
    }
    case d.BODY:
    case d.BR:
    case d.HTML: {
      M0(e, t);
      break;
    }
    case d.TEMPLATE: {
      _n(e, t);
      break;
    }
    default:
      e._err(t, G.endTagWithoutMatchingOpenElement);
  }
}
function _n(e, t) {
  e.openElements.tmplCount > 0 ? (e.openElements.generateImpliedEndTagsThoroughly(), e.openElements.currentTagId !== d.TEMPLATE && e._err(t, G.closingOfElementWithOpenChildElements), e.openElements.popUntilTagNamePopped(d.TEMPLATE), e.activeFormattingElements.clearToLastMarker(), e.tmplInsertionModeStack.shift(), e._resetInsertionMode()) : e._err(t, G.endTagWithoutMatchingOpenElement);
}
function M0(e, t) {
  e.openElements.pop(), e.insertionMode = O.AFTER_HEAD, e._processToken(t);
}
function i_(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.BASEFONT:
    case d.BGSOUND:
    case d.HEAD:
    case d.LINK:
    case d.META:
    case d.NOFRAMES:
    case d.STYLE: {
      sr(e, t);
      break;
    }
    case d.NOSCRIPT: {
      e._err(t, G.nestedNoscriptInHead);
      break;
    }
    default:
      D0(e, t);
  }
}
function a_(e, t) {
  switch (t.tagID) {
    case d.NOSCRIPT: {
      e.openElements.pop(), e.insertionMode = O.IN_HEAD;
      break;
    }
    case d.BR: {
      D0(e, t);
      break;
    }
    default:
      e._err(t, G.endTagWithoutMatchingOpenElement);
  }
}
function D0(e, t) {
  const r = t.type === Le.EOF ? G.openElementsLeftAfterEof : G.disallowedContentInNoscriptInHead;
  e._err(t, r), e.openElements.pop(), e.insertionMode = O.IN_HEAD, e._processToken(t);
}
function s_(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.BODY: {
      e._insertElement(t, K.HTML), e.framesetOk = !1, e.insertionMode = O.IN_BODY;
      break;
    }
    case d.FRAMESET: {
      e._insertElement(t, K.HTML), e.insertionMode = O.IN_FRAMESET;
      break;
    }
    case d.BASE:
    case d.BASEFONT:
    case d.BGSOUND:
    case d.LINK:
    case d.META:
    case d.NOFRAMES:
    case d.SCRIPT:
    case d.STYLE:
    case d.TEMPLATE:
    case d.TITLE: {
      e._err(t, G.abandonedHeadElementChild), e.openElements.push(e.headElement, d.HEAD), sr(e, t), e.openElements.remove(e.headElement);
      break;
    }
    case d.HEAD: {
      e._err(t, G.misplacedStartTagForHeadElement);
      break;
    }
    default:
      R0(e, t);
  }
}
function u_(e, t) {
  switch (t.tagID) {
    case d.BODY:
    case d.HTML:
    case d.BR: {
      R0(e, t);
      break;
    }
    case d.TEMPLATE: {
      _n(e, t);
      break;
    }
    default:
      e._err(t, G.endTagWithoutMatchingOpenElement);
  }
}
function R0(e, t) {
  e._insertFakeElement(H.BODY, d.BODY), e.insertionMode = O.IN_BODY, Oa(e, t);
}
function Oa(e, t) {
  switch (t.type) {
    case Le.CHARACTER: {
      Rd(e, t);
      break;
    }
    case Le.WHITESPACE_CHARACTER: {
      Dd(e, t);
      break;
    }
    case Le.COMMENT: {
      Ou(e, t);
      break;
    }
    case Le.START_TAG: {
      vt(e, t);
      break;
    }
    case Le.END_TAG: {
      La(e, t);
      break;
    }
    case Le.EOF: {
      Pd(e, t);
      break;
    }
  }
}
function Dd(e, t) {
  e._reconstructActiveFormattingElements(), e._insertCharacters(t);
}
function Rd(e, t) {
  e._reconstructActiveFormattingElements(), e._insertCharacters(t), e.framesetOk = !1;
}
function o_(e, t) {
  e.openElements.tmplCount === 0 && e.treeAdapter.adoptAttributes(e.openElements.items[0], t.attrs);
}
function l_(e, t) {
  const r = e.openElements.tryPeekProperlyNestedBodyElement();
  r && e.openElements.tmplCount === 0 && (e.framesetOk = !1, e.treeAdapter.adoptAttributes(r, t.attrs));
}
function c_(e, t) {
  const r = e.openElements.tryPeekProperlyNestedBodyElement();
  e.framesetOk && r && (e.treeAdapter.detachNode(r), e.openElements.popAllUpToHtmlElement(), e._insertElement(t, K.HTML), e.insertionMode = O.IN_FRAMESET);
}
function h_(e, t) {
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._insertElement(t, K.HTML);
}
function f_(e, t) {
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), _d(e.openElements.currentTagId) && e.openElements.pop(), e._insertElement(t, K.HTML);
}
function d_(e, t) {
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._insertElement(t, K.HTML), e.skipNextNewLine = !0, e.framesetOk = !1;
}
function m_(e, t) {
  const r = e.openElements.tmplCount > 0;
  (!e.formElement || r) && (e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._insertElement(t, K.HTML), r || (e.formElement = e.openElements.current));
}
function p_(e, t) {
  e.framesetOk = !1;
  const r = t.tagID;
  for (let n = e.openElements.stackTop; n >= 0; n--) {
    const i = e.openElements.tagIDs[n];
    if (r === d.LI && i === d.LI || (r === d.DD || r === d.DT) && (i === d.DD || i === d.DT)) {
      e.openElements.generateImpliedEndTagsWithExclusion(i), e.openElements.popUntilTagNamePopped(i);
      break;
    }
    if (i !== d.ADDRESS && i !== d.DIV && i !== d.P && e._isSpecialElement(e.openElements.items[n], i))
      break;
  }
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._insertElement(t, K.HTML);
}
function g_(e, t) {
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._insertElement(t, K.HTML), e.tokenizer.state = Rt.PLAINTEXT;
}
function b_(e, t) {
  e.openElements.hasInScope(d.BUTTON) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(d.BUTTON)), e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML), e.framesetOk = !1;
}
function E_(e, t) {
  const r = e.activeFormattingElements.getElementEntryInScopeWithTagName(H.A);
  r && (So(e, t), e.openElements.remove(r.element), e.activeFormattingElements.removeEntry(r)), e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t);
}
function v_(e, t) {
  e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t);
}
function __(e, t) {
  e._reconstructActiveFormattingElements(), e.openElements.hasInScope(d.NOBR) && (So(e, t), e._reconstructActiveFormattingElements()), e._insertElement(t, K.HTML), e.activeFormattingElements.pushElement(e.openElements.current, t);
}
function T_(e, t) {
  e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML), e.activeFormattingElements.insertMarker(), e.framesetOk = !1;
}
function A_(e, t) {
  e.treeAdapter.getDocumentMode(e.document) !== Dt.QUIRKS && e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._insertElement(t, K.HTML), e.framesetOk = !1, e.insertionMode = O.IN_TABLE;
}
function Od(e, t) {
  e._reconstructActiveFormattingElements(), e._appendElement(t, K.HTML), e.framesetOk = !1, t.ackSelfClosing = !0;
}
function Ld(e) {
  const t = vd(e, jr.TYPE);
  return t != null && t.toLowerCase() === Uv;
}
function x_(e, t) {
  e._reconstructActiveFormattingElements(), e._appendElement(t, K.HTML), Ld(t) || (e.framesetOk = !1), t.ackSelfClosing = !0;
}
function y_(e, t) {
  e._appendElement(t, K.HTML), t.ackSelfClosing = !0;
}
function S_(e, t) {
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._appendElement(t, K.HTML), e.framesetOk = !1, t.ackSelfClosing = !0;
}
function C_(e, t) {
  t.tagName = H.IMG, t.tagID = d.IMG, Od(e, t);
}
function k_(e, t) {
  e._insertElement(t, K.HTML), e.skipNextNewLine = !0, e.tokenizer.state = Rt.RCDATA, e.originalInsertionMode = e.insertionMode, e.framesetOk = !1, e.insertionMode = O.TEXT;
}
function w_(e, t) {
  e.openElements.hasInButtonScope(d.P) && e._closePElement(), e._reconstructActiveFormattingElements(), e.framesetOk = !1, e._switchToTextParsing(t, Rt.RAWTEXT);
}
function N_(e, t) {
  e.framesetOk = !1, e._switchToTextParsing(t, Rt.RAWTEXT);
}
function Vh(e, t) {
  e._switchToTextParsing(t, Rt.RAWTEXT);
}
function I_(e, t) {
  e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML), e.framesetOk = !1, e.insertionMode = e.insertionMode === O.IN_TABLE || e.insertionMode === O.IN_CAPTION || e.insertionMode === O.IN_TABLE_BODY || e.insertionMode === O.IN_ROW || e.insertionMode === O.IN_CELL ? O.IN_SELECT_IN_TABLE : O.IN_SELECT;
}
function M_(e, t) {
  e.openElements.currentTagId === d.OPTION && e.openElements.pop(), e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML);
}
function D_(e, t) {
  e.openElements.hasInScope(d.RUBY) && e.openElements.generateImpliedEndTags(), e._insertElement(t, K.HTML);
}
function R_(e, t) {
  e.openElements.hasInScope(d.RUBY) && e.openElements.generateImpliedEndTagsWithExclusion(d.RTC), e._insertElement(t, K.HTML);
}
function O_(e, t) {
  e._reconstructActiveFormattingElements(), wd(t), yo(t), t.selfClosing ? e._appendElement(t, K.MATHML) : e._insertElement(t, K.MATHML), t.ackSelfClosing = !0;
}
function L_(e, t) {
  e._reconstructActiveFormattingElements(), Nd(t), yo(t), t.selfClosing ? e._appendElement(t, K.SVG) : e._insertElement(t, K.SVG), t.ackSelfClosing = !0;
}
function Gh(e, t) {
  e._reconstructActiveFormattingElements(), e._insertElement(t, K.HTML);
}
function vt(e, t) {
  switch (t.tagID) {
    case d.I:
    case d.S:
    case d.B:
    case d.U:
    case d.EM:
    case d.TT:
    case d.BIG:
    case d.CODE:
    case d.FONT:
    case d.SMALL:
    case d.STRIKE:
    case d.STRONG: {
      v_(e, t);
      break;
    }
    case d.A: {
      E_(e, t);
      break;
    }
    case d.H1:
    case d.H2:
    case d.H3:
    case d.H4:
    case d.H5:
    case d.H6: {
      f_(e, t);
      break;
    }
    case d.P:
    case d.DL:
    case d.OL:
    case d.UL:
    case d.DIV:
    case d.DIR:
    case d.NAV:
    case d.MAIN:
    case d.MENU:
    case d.ASIDE:
    case d.CENTER:
    case d.FIGURE:
    case d.FOOTER:
    case d.HEADER:
    case d.HGROUP:
    case d.DIALOG:
    case d.DETAILS:
    case d.ADDRESS:
    case d.ARTICLE:
    case d.SECTION:
    case d.SUMMARY:
    case d.FIELDSET:
    case d.BLOCKQUOTE:
    case d.FIGCAPTION: {
      h_(e, t);
      break;
    }
    case d.LI:
    case d.DD:
    case d.DT: {
      p_(e, t);
      break;
    }
    case d.BR:
    case d.IMG:
    case d.WBR:
    case d.AREA:
    case d.EMBED:
    case d.KEYGEN: {
      Od(e, t);
      break;
    }
    case d.HR: {
      S_(e, t);
      break;
    }
    case d.RB:
    case d.RTC: {
      D_(e, t);
      break;
    }
    case d.RT:
    case d.RP: {
      R_(e, t);
      break;
    }
    case d.PRE:
    case d.LISTING: {
      d_(e, t);
      break;
    }
    case d.XMP: {
      w_(e, t);
      break;
    }
    case d.SVG: {
      L_(e, t);
      break;
    }
    case d.HTML: {
      o_(e, t);
      break;
    }
    case d.BASE:
    case d.LINK:
    case d.META:
    case d.STYLE:
    case d.TITLE:
    case d.SCRIPT:
    case d.BGSOUND:
    case d.BASEFONT:
    case d.TEMPLATE: {
      sr(e, t);
      break;
    }
    case d.BODY: {
      l_(e, t);
      break;
    }
    case d.FORM: {
      m_(e, t);
      break;
    }
    case d.NOBR: {
      __(e, t);
      break;
    }
    case d.MATH: {
      O_(e, t);
      break;
    }
    case d.TABLE: {
      A_(e, t);
      break;
    }
    case d.INPUT: {
      x_(e, t);
      break;
    }
    case d.PARAM:
    case d.TRACK:
    case d.SOURCE: {
      y_(e, t);
      break;
    }
    case d.IMAGE: {
      C_(e, t);
      break;
    }
    case d.BUTTON: {
      b_(e, t);
      break;
    }
    case d.APPLET:
    case d.OBJECT:
    case d.MARQUEE: {
      T_(e, t);
      break;
    }
    case d.IFRAME: {
      N_(e, t);
      break;
    }
    case d.SELECT: {
      I_(e, t);
      break;
    }
    case d.OPTION:
    case d.OPTGROUP: {
      M_(e, t);
      break;
    }
    case d.NOEMBED: {
      Vh(e, t);
      break;
    }
    case d.FRAMESET: {
      c_(e, t);
      break;
    }
    case d.TEXTAREA: {
      k_(e, t);
      break;
    }
    case d.NOSCRIPT: {
      e.options.scriptingEnabled ? Vh(e, t) : Gh(e, t);
      break;
    }
    case d.PLAINTEXT: {
      g_(e, t);
      break;
    }
    case d.COL:
    case d.TH:
    case d.TD:
    case d.TR:
    case d.HEAD:
    case d.FRAME:
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD:
    case d.CAPTION:
    case d.COLGROUP:
      break;
    default:
      Gh(e, t);
  }
}
function B_(e, t) {
  if (e.openElements.hasInScope(d.BODY) && (e.insertionMode = O.AFTER_BODY, e.options.sourceCodeLocationInfo)) {
    const r = e.openElements.tryPeekProperlyNestedBodyElement();
    r && e._setEndLocation(r, t);
  }
}
function P_(e, t) {
  e.openElements.hasInScope(d.BODY) && (e.insertionMode = O.AFTER_BODY, Gd(e, t));
}
function F_(e, t) {
  const r = t.tagID;
  e.openElements.hasInScope(r) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(r));
}
function H_(e) {
  const t = e.openElements.tmplCount > 0, { formElement: r } = e;
  t || (e.formElement = null), (r || t) && e.openElements.hasInScope(d.FORM) && (e.openElements.generateImpliedEndTags(), t ? e.openElements.popUntilTagNamePopped(d.FORM) : r && e.openElements.remove(r));
}
function U_(e) {
  e.openElements.hasInButtonScope(d.P) || e._insertFakeElement(H.P, d.P), e._closePElement();
}
function z_(e) {
  e.openElements.hasInListItemScope(d.LI) && (e.openElements.generateImpliedEndTagsWithExclusion(d.LI), e.openElements.popUntilTagNamePopped(d.LI));
}
function q_(e, t) {
  const r = t.tagID;
  e.openElements.hasInScope(r) && (e.openElements.generateImpliedEndTagsWithExclusion(r), e.openElements.popUntilTagNamePopped(r));
}
function Y_(e) {
  e.openElements.hasNumberedHeaderInScope() && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilNumberedHeaderPopped());
}
function V_(e, t) {
  const r = t.tagID;
  e.openElements.hasInScope(r) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(r), e.activeFormattingElements.clearToLastMarker());
}
function G_(e) {
  e._reconstructActiveFormattingElements(), e._insertFakeElement(H.BR, d.BR), e.openElements.pop(), e.framesetOk = !1;
}
function Bd(e, t) {
  const r = t.tagName, n = t.tagID;
  for (let i = e.openElements.stackTop; i > 0; i--) {
    const a = e.openElements.items[i], o = e.openElements.tagIDs[i];
    if (n === o && (n !== d.UNKNOWN || e.treeAdapter.getTagName(a) === r)) {
      e.openElements.generateImpliedEndTagsWithExclusion(n), e.openElements.stackTop >= i && e.openElements.shortenToLength(i);
      break;
    }
    if (e._isSpecialElement(a, o))
      break;
  }
}
function La(e, t) {
  switch (t.tagID) {
    case d.A:
    case d.B:
    case d.I:
    case d.S:
    case d.U:
    case d.EM:
    case d.TT:
    case d.BIG:
    case d.CODE:
    case d.FONT:
    case d.NOBR:
    case d.SMALL:
    case d.STRIKE:
    case d.STRONG: {
      So(e, t);
      break;
    }
    case d.P: {
      U_(e);
      break;
    }
    case d.DL:
    case d.UL:
    case d.OL:
    case d.DIR:
    case d.DIV:
    case d.NAV:
    case d.PRE:
    case d.MAIN:
    case d.MENU:
    case d.ASIDE:
    case d.BUTTON:
    case d.CENTER:
    case d.FIGURE:
    case d.FOOTER:
    case d.HEADER:
    case d.HGROUP:
    case d.DIALOG:
    case d.ADDRESS:
    case d.ARTICLE:
    case d.DETAILS:
    case d.SECTION:
    case d.SUMMARY:
    case d.LISTING:
    case d.FIELDSET:
    case d.BLOCKQUOTE:
    case d.FIGCAPTION: {
      F_(e, t);
      break;
    }
    case d.LI: {
      z_(e);
      break;
    }
    case d.DD:
    case d.DT: {
      q_(e, t);
      break;
    }
    case d.H1:
    case d.H2:
    case d.H3:
    case d.H4:
    case d.H5:
    case d.H6: {
      Y_(e);
      break;
    }
    case d.BR: {
      G_(e);
      break;
    }
    case d.BODY: {
      B_(e, t);
      break;
    }
    case d.HTML: {
      P_(e, t);
      break;
    }
    case d.FORM: {
      H_(e);
      break;
    }
    case d.APPLET:
    case d.OBJECT:
    case d.MARQUEE: {
      V_(e, t);
      break;
    }
    case d.TEMPLATE: {
      _n(e, t);
      break;
    }
    default:
      Bd(e, t);
  }
}
function Pd(e, t) {
  e.tmplInsertionModeStack.length > 0 ? Vd(e, t) : Co(e, t);
}
function X_(e, t) {
  var r;
  t.tagID === d.SCRIPT && ((r = e.scriptHandler) === null || r === void 0 || r.call(e, e.openElements.current)), e.openElements.pop(), e.insertionMode = e.originalInsertionMode;
}
function W_(e, t) {
  e._err(t, G.eofInElementThatCanContainOnlyText), e.openElements.pop(), e.insertionMode = e.originalInsertionMode, e.onEof(t);
}
function Ks(e, t) {
  if (Id.has(e.openElements.currentTagId))
    switch (e.pendingCharacterTokens.length = 0, e.hasNonWhitespacePendingCharacterToken = !1, e.originalInsertionMode = e.insertionMode, e.insertionMode = O.IN_TABLE_TEXT, t.type) {
      case Le.CHARACTER: {
        Hd(e, t);
        break;
      }
      case Le.WHITESPACE_CHARACTER: {
        Fd(e, t);
        break;
      }
    }
  else
    ei(e, t);
}
function j_(e, t) {
  e.openElements.clearBackToTableContext(), e.activeFormattingElements.insertMarker(), e._insertElement(t, K.HTML), e.insertionMode = O.IN_CAPTION;
}
function K_(e, t) {
  e.openElements.clearBackToTableContext(), e._insertElement(t, K.HTML), e.insertionMode = O.IN_COLUMN_GROUP;
}
function $_(e, t) {
  e.openElements.clearBackToTableContext(), e._insertFakeElement(H.COLGROUP, d.COLGROUP), e.insertionMode = O.IN_COLUMN_GROUP, ko(e, t);
}
function Q_(e, t) {
  e.openElements.clearBackToTableContext(), e._insertElement(t, K.HTML), e.insertionMode = O.IN_TABLE_BODY;
}
function Z_(e, t) {
  e.openElements.clearBackToTableContext(), e._insertFakeElement(H.TBODY, d.TBODY), e.insertionMode = O.IN_TABLE_BODY, Ba(e, t);
}
function J_(e, t) {
  e.openElements.hasInTableScope(d.TABLE) && (e.openElements.popUntilTagNamePopped(d.TABLE), e._resetInsertionMode(), e._processStartTag(t));
}
function eT(e, t) {
  Ld(t) ? e._appendElement(t, K.HTML) : ei(e, t), t.ackSelfClosing = !0;
}
function tT(e, t) {
  !e.formElement && e.openElements.tmplCount === 0 && (e._insertElement(t, K.HTML), e.formElement = e.openElements.current, e.openElements.pop());
}
function Jn(e, t) {
  switch (t.tagID) {
    case d.TD:
    case d.TH:
    case d.TR: {
      Z_(e, t);
      break;
    }
    case d.STYLE:
    case d.SCRIPT:
    case d.TEMPLATE: {
      sr(e, t);
      break;
    }
    case d.COL: {
      $_(e, t);
      break;
    }
    case d.FORM: {
      tT(e, t);
      break;
    }
    case d.TABLE: {
      J_(e, t);
      break;
    }
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD: {
      Q_(e, t);
      break;
    }
    case d.INPUT: {
      eT(e, t);
      break;
    }
    case d.CAPTION: {
      j_(e, t);
      break;
    }
    case d.COLGROUP: {
      K_(e, t);
      break;
    }
    default:
      ei(e, t);
  }
}
function q0(e, t) {
  switch (t.tagID) {
    case d.TABLE: {
      e.openElements.hasInTableScope(d.TABLE) && (e.openElements.popUntilTagNamePopped(d.TABLE), e._resetInsertionMode());
      break;
    }
    case d.TEMPLATE: {
      _n(e, t);
      break;
    }
    case d.BODY:
    case d.CAPTION:
    case d.COL:
    case d.COLGROUP:
    case d.HTML:
    case d.TBODY:
    case d.TD:
    case d.TFOOT:
    case d.TH:
    case d.THEAD:
    case d.TR:
      break;
    default:
      ei(e, t);
  }
}
function ei(e, t) {
  const r = e.fosterParentingEnabled;
  e.fosterParentingEnabled = !0, Oa(e, t), e.fosterParentingEnabled = r;
}
function Fd(e, t) {
  e.pendingCharacterTokens.push(t);
}
function Hd(e, t) {
  e.pendingCharacterTokens.push(t), e.hasNonWhitespacePendingCharacterToken = !0;
}
function E0(e, t) {
  let r = 0;
  if (e.hasNonWhitespacePendingCharacterToken)
    for (; r < e.pendingCharacterTokens.length; r++)
      ei(e, e.pendingCharacterTokens[r]);
  else
    for (; r < e.pendingCharacterTokens.length; r++)
      e._insertCharacters(e.pendingCharacterTokens[r]);
  e.insertionMode = e.originalInsertionMode, e._processToken(t);
}
const Ud = /* @__PURE__ */ new Set([d.CAPTION, d.COL, d.COLGROUP, d.TBODY, d.TD, d.TFOOT, d.TH, d.THEAD, d.TR]);
function rT(e, t) {
  const r = t.tagID;
  Ud.has(r) ? e.openElements.hasInTableScope(d.CAPTION) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(d.CAPTION), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = O.IN_TABLE, Jn(e, t)) : vt(e, t);
}
function nT(e, t) {
  const r = t.tagID;
  switch (r) {
    case d.CAPTION:
    case d.TABLE: {
      e.openElements.hasInTableScope(d.CAPTION) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(d.CAPTION), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = O.IN_TABLE, r === d.TABLE && q0(e, t));
      break;
    }
    case d.BODY:
    case d.COL:
    case d.COLGROUP:
    case d.HTML:
    case d.TBODY:
    case d.TD:
    case d.TFOOT:
    case d.TH:
    case d.THEAD:
    case d.TR:
      break;
    default:
      La(e, t);
  }
}
function ko(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.COL: {
      e._appendElement(t, K.HTML), t.ackSelfClosing = !0;
      break;
    }
    case d.TEMPLATE: {
      sr(e, t);
      break;
    }
    default:
      pa(e, t);
  }
}
function iT(e, t) {
  switch (t.tagID) {
    case d.COLGROUP: {
      e.openElements.currentTagId === d.COLGROUP && (e.openElements.pop(), e.insertionMode = O.IN_TABLE);
      break;
    }
    case d.TEMPLATE: {
      _n(e, t);
      break;
    }
    case d.COL:
      break;
    default:
      pa(e, t);
  }
}
function pa(e, t) {
  e.openElements.currentTagId === d.COLGROUP && (e.openElements.pop(), e.insertionMode = O.IN_TABLE, e._processToken(t));
}
function Ba(e, t) {
  switch (t.tagID) {
    case d.TR: {
      e.openElements.clearBackToTableBodyContext(), e._insertElement(t, K.HTML), e.insertionMode = O.IN_ROW;
      break;
    }
    case d.TH:
    case d.TD: {
      e.openElements.clearBackToTableBodyContext(), e._insertFakeElement(H.TR, d.TR), e.insertionMode = O.IN_ROW, Pa(e, t);
      break;
    }
    case d.CAPTION:
    case d.COL:
    case d.COLGROUP:
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD: {
      e.openElements.hasTableBodyContextInTableScope() && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE, Jn(e, t));
      break;
    }
    default:
      Jn(e, t);
  }
}
function Lu(e, t) {
  const r = t.tagID;
  switch (t.tagID) {
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD: {
      e.openElements.hasInTableScope(r) && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE);
      break;
    }
    case d.TABLE: {
      e.openElements.hasTableBodyContextInTableScope() && (e.openElements.clearBackToTableBodyContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE, q0(e, t));
      break;
    }
    case d.BODY:
    case d.CAPTION:
    case d.COL:
    case d.COLGROUP:
    case d.HTML:
    case d.TD:
    case d.TH:
    case d.TR:
      break;
    default:
      q0(e, t);
  }
}
function Pa(e, t) {
  switch (t.tagID) {
    case d.TH:
    case d.TD: {
      e.openElements.clearBackToTableRowContext(), e._insertElement(t, K.HTML), e.insertionMode = O.IN_CELL, e.activeFormattingElements.insertMarker();
      break;
    }
    case d.CAPTION:
    case d.COL:
    case d.COLGROUP:
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD:
    case d.TR: {
      e.openElements.hasInTableScope(d.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE_BODY, Ba(e, t));
      break;
    }
    default:
      Jn(e, t);
  }
}
function zd(e, t) {
  switch (t.tagID) {
    case d.TR: {
      e.openElements.hasInTableScope(d.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE_BODY);
      break;
    }
    case d.TABLE: {
      e.openElements.hasInTableScope(d.TR) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE_BODY, Lu(e, t));
      break;
    }
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD: {
      (e.openElements.hasInTableScope(t.tagID) || e.openElements.hasInTableScope(d.TR)) && (e.openElements.clearBackToTableRowContext(), e.openElements.pop(), e.insertionMode = O.IN_TABLE_BODY, Lu(e, t));
      break;
    }
    case d.BODY:
    case d.CAPTION:
    case d.COL:
    case d.COLGROUP:
    case d.HTML:
    case d.TD:
    case d.TH:
      break;
    default:
      q0(e, t);
  }
}
function aT(e, t) {
  const r = t.tagID;
  Ud.has(r) ? (e.openElements.hasInTableScope(d.TD) || e.openElements.hasInTableScope(d.TH)) && (e._closeTableCell(), Pa(e, t)) : vt(e, t);
}
function sT(e, t) {
  const r = t.tagID;
  switch (r) {
    case d.TD:
    case d.TH: {
      e.openElements.hasInTableScope(r) && (e.openElements.generateImpliedEndTags(), e.openElements.popUntilTagNamePopped(r), e.activeFormattingElements.clearToLastMarker(), e.insertionMode = O.IN_ROW);
      break;
    }
    case d.TABLE:
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD:
    case d.TR: {
      e.openElements.hasInTableScope(r) && (e._closeTableCell(), zd(e, t));
      break;
    }
    case d.BODY:
    case d.CAPTION:
    case d.COL:
    case d.COLGROUP:
    case d.HTML:
      break;
    default:
      La(e, t);
  }
}
function qd(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.OPTION: {
      e.openElements.currentTagId === d.OPTION && e.openElements.pop(), e._insertElement(t, K.HTML);
      break;
    }
    case d.OPTGROUP: {
      e.openElements.currentTagId === d.OPTION && e.openElements.pop(), e.openElements.currentTagId === d.OPTGROUP && e.openElements.pop(), e._insertElement(t, K.HTML);
      break;
    }
    case d.INPUT:
    case d.KEYGEN:
    case d.TEXTAREA:
    case d.SELECT: {
      e.openElements.hasInSelectScope(d.SELECT) && (e.openElements.popUntilTagNamePopped(d.SELECT), e._resetInsertionMode(), t.tagID !== d.SELECT && e._processStartTag(t));
      break;
    }
    case d.SCRIPT:
    case d.TEMPLATE: {
      sr(e, t);
      break;
    }
  }
}
function Yd(e, t) {
  switch (t.tagID) {
    case d.OPTGROUP: {
      e.openElements.stackTop > 0 && e.openElements.currentTagId === d.OPTION && e.openElements.tagIDs[e.openElements.stackTop - 1] === d.OPTGROUP && e.openElements.pop(), e.openElements.currentTagId === d.OPTGROUP && e.openElements.pop();
      break;
    }
    case d.OPTION: {
      e.openElements.currentTagId === d.OPTION && e.openElements.pop();
      break;
    }
    case d.SELECT: {
      e.openElements.hasInSelectScope(d.SELECT) && (e.openElements.popUntilTagNamePopped(d.SELECT), e._resetInsertionMode());
      break;
    }
    case d.TEMPLATE: {
      _n(e, t);
      break;
    }
  }
}
function uT(e, t) {
  const r = t.tagID;
  r === d.CAPTION || r === d.TABLE || r === d.TBODY || r === d.TFOOT || r === d.THEAD || r === d.TR || r === d.TD || r === d.TH ? (e.openElements.popUntilTagNamePopped(d.SELECT), e._resetInsertionMode(), e._processStartTag(t)) : qd(e, t);
}
function oT(e, t) {
  const r = t.tagID;
  r === d.CAPTION || r === d.TABLE || r === d.TBODY || r === d.TFOOT || r === d.THEAD || r === d.TR || r === d.TD || r === d.TH ? e.openElements.hasInTableScope(r) && (e.openElements.popUntilTagNamePopped(d.SELECT), e._resetInsertionMode(), e.onEndTag(t)) : Yd(e, t);
}
function lT(e, t) {
  switch (t.tagID) {
    case d.BASE:
    case d.BASEFONT:
    case d.BGSOUND:
    case d.LINK:
    case d.META:
    case d.NOFRAMES:
    case d.SCRIPT:
    case d.STYLE:
    case d.TEMPLATE:
    case d.TITLE: {
      sr(e, t);
      break;
    }
    case d.CAPTION:
    case d.COLGROUP:
    case d.TBODY:
    case d.TFOOT:
    case d.THEAD: {
      e.tmplInsertionModeStack[0] = O.IN_TABLE, e.insertionMode = O.IN_TABLE, Jn(e, t);
      break;
    }
    case d.COL: {
      e.tmplInsertionModeStack[0] = O.IN_COLUMN_GROUP, e.insertionMode = O.IN_COLUMN_GROUP, ko(e, t);
      break;
    }
    case d.TR: {
      e.tmplInsertionModeStack[0] = O.IN_TABLE_BODY, e.insertionMode = O.IN_TABLE_BODY, Ba(e, t);
      break;
    }
    case d.TD:
    case d.TH: {
      e.tmplInsertionModeStack[0] = O.IN_ROW, e.insertionMode = O.IN_ROW, Pa(e, t);
      break;
    }
    default:
      e.tmplInsertionModeStack[0] = O.IN_BODY, e.insertionMode = O.IN_BODY, vt(e, t);
  }
}
function cT(e, t) {
  t.tagID === d.TEMPLATE && _n(e, t);
}
function Vd(e, t) {
  e.openElements.tmplCount > 0 ? (e.openElements.popUntilTagNamePopped(d.TEMPLATE), e.activeFormattingElements.clearToLastMarker(), e.tmplInsertionModeStack.shift(), e._resetInsertionMode(), e.onEof(t)) : Co(e, t);
}
function hT(e, t) {
  t.tagID === d.HTML ? vt(e, t) : ga(e, t);
}
function Gd(e, t) {
  var r;
  if (t.tagID === d.HTML) {
    if (e.fragmentContext || (e.insertionMode = O.AFTER_AFTER_BODY), e.options.sourceCodeLocationInfo && e.openElements.tagIDs[0] === d.HTML) {
      e._setEndLocation(e.openElements.items[0], t);
      const n = e.openElements.items[1];
      n && !(!((r = e.treeAdapter.getNodeSourceCodeLocation(n)) === null || r === void 0) && r.endTag) && e._setEndLocation(n, t);
    }
  } else
    ga(e, t);
}
function ga(e, t) {
  e.insertionMode = O.IN_BODY, Oa(e, t);
}
function fT(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.FRAMESET: {
      e._insertElement(t, K.HTML);
      break;
    }
    case d.FRAME: {
      e._appendElement(t, K.HTML), t.ackSelfClosing = !0;
      break;
    }
    case d.NOFRAMES: {
      sr(e, t);
      break;
    }
  }
}
function dT(e, t) {
  t.tagID === d.FRAMESET && !e.openElements.isRootHtmlElementCurrent() && (e.openElements.pop(), !e.fragmentContext && e.openElements.currentTagId !== d.FRAMESET && (e.insertionMode = O.AFTER_FRAMESET));
}
function mT(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.NOFRAMES: {
      sr(e, t);
      break;
    }
  }
}
function pT(e, t) {
  t.tagID === d.HTML && (e.insertionMode = O.AFTER_AFTER_FRAMESET);
}
function gT(e, t) {
  t.tagID === d.HTML ? vt(e, t) : Qi(e, t);
}
function Qi(e, t) {
  e.insertionMode = O.IN_BODY, Oa(e, t);
}
function bT(e, t) {
  switch (t.tagID) {
    case d.HTML: {
      vt(e, t);
      break;
    }
    case d.NOFRAMES: {
      sr(e, t);
      break;
    }
  }
}
function ET(e, t) {
  t.chars = $e, e._insertCharacters(t);
}
function vT(e, t) {
  e._insertCharacters(t), e.framesetOk = !1;
}
function Xd(e) {
  for (; e.treeAdapter.getNamespaceURI(e.openElements.current) !== K.HTML && !e._isIntegrationPoint(e.openElements.currentTagId, e.openElements.current); )
    e.openElements.pop();
}
function _T(e, t) {
  if (Lv(t))
    Xd(e), e._startTagOutsideForeignContent(t);
  else {
    const r = e._getAdjustedCurrentElement(), n = e.treeAdapter.getNamespaceURI(r);
    n === K.MATHML ? wd(t) : n === K.SVG && (Bv(t), Nd(t)), yo(t), t.selfClosing ? e._appendElement(t, n) : e._insertElement(t, n), t.ackSelfClosing = !0;
  }
}
function TT(e, t) {
  if (t.tagID === d.P || t.tagID === d.BR) {
    Xd(e), e._endTagOutsideForeignContent(t);
    return;
  }
  for (let r = e.openElements.stackTop; r > 0; r--) {
    const n = e.openElements.items[r];
    if (e.treeAdapter.getNamespaceURI(n) === K.HTML) {
      e._endTagOutsideForeignContent(t);
      break;
    }
    const i = e.treeAdapter.getTagName(n);
    if (i.toLowerCase() === t.tagName) {
      t.tagName = i, e.openElements.shortenToLength(r);
      break;
    }
  }
}
const AT = /* @__PURE__ */ new Set([
  H.AREA,
  H.BASE,
  H.BASEFONT,
  H.BGSOUND,
  H.BR,
  H.COL,
  H.EMBED,
  H.FRAME,
  H.HR,
  H.IMG,
  H.INPUT,
  H.KEYGEN,
  H.LINK,
  H.META,
  H.PARAM,
  H.SOURCE,
  H.TRACK,
  H.WBR
]);
function xT(e, t) {
  return t.treeAdapter.isElementNode(e) && t.treeAdapter.getNamespaceURI(e) === K.HTML && AT.has(t.treeAdapter.getTagName(e));
}
const yT = { treeAdapter: ln, scriptingEnabled: !0 };
function ST(e, t) {
  const r = { ...yT, ...t };
  return Wd(e, r);
}
function CT(e, t) {
  let r = "";
  const n = t.treeAdapter.isElementNode(e) && t.treeAdapter.getTagName(e) === H.TEMPLATE && t.treeAdapter.getNamespaceURI(e) === K.HTML ? t.treeAdapter.getTemplateContent(e) : e, i = t.treeAdapter.getChildNodes(n);
  if (i)
    for (const a of i)
      r += Wd(a, t);
  return r;
}
function Wd(e, t) {
  return t.treeAdapter.isElementNode(e) ? kT(e, t) : t.treeAdapter.isTextNode(e) ? NT(e, t) : t.treeAdapter.isCommentNode(e) ? IT(e, t) : t.treeAdapter.isDocumentTypeNode(e) ? MT(e, t) : "";
}
function kT(e, t) {
  const r = t.treeAdapter.getTagName(e);
  return `<${r}${wT(e, t)}>${xT(e, t) ? "" : `${CT(e, t)}</${r}>`}`;
}
function wT(e, { treeAdapter: t }) {
  let r = "";
  for (const n of t.getAttrList(e)) {
    if (r += " ", !n.namespace)
      r += n.name;
    else
      switch (n.namespace) {
        case K.XML: {
          r += `xml:${n.name}`;
          break;
        }
        case K.XMLNS: {
          n.name !== "xmlns" && (r += "xmlns:"), r += n.name;
          break;
        }
        case K.XLINK: {
          r += `xlink:${n.name}`;
          break;
        }
        default:
          r += `${n.prefix}:${n.name}`;
      }
    r += `="${Of(n.value)}"`;
  }
  return r;
}
function NT(e, t) {
  const { treeAdapter: r } = t, n = r.getTextNodeContent(e), i = r.getParentNode(e), a = i && r.isElementNode(i) && r.getTagName(i);
  return a && r.getNamespaceURI(i) === K.HTML && lv(a, t.scriptingEnabled) ? n : Lf(n);
}
function IT(e, { treeAdapter: t }) {
  return `<!--${t.getCommentNodeContent(e)}-->`;
}
function MT(e, { treeAdapter: t }) {
  return `<!DOCTYPE ${t.getDocumentTypeNodeName(e)}>`;
}
function DT(e, t) {
  return Md.parse(e, t);
}
function RT(e, t, r) {
  typeof e == "string" && (r = t, t = e, e = null);
  const n = Md.getFragmentParser(e, r);
  return n.tokenizer.write(t, !0), n.getFragment();
}
function Xh(e) {
  return new H0(e);
}
function Wh(e) {
  const t = e.includes('"') ? "'" : '"';
  return t + e + t;
}
function OT(e, t, r) {
  let n = "!DOCTYPE ";
  return e && (n += e), t ? n += ` PUBLIC ${Wh(t)}` : r && (n += " SYSTEM"), r && (n += ` ${Wh(r)}`), n;
}
const Un = {
  // Re-exports from domhandler
  isCommentNode: ka,
  isElementNode: Se,
  isTextNode: pr,
  //Node construction
  createDocument() {
    const e = new pn([]);
    return e["x-mode"] = Dt.NO_QUIRKS, e;
  },
  createDocumentFragment() {
    return new pn([]);
  },
  createElement(e, t, r) {
    const n = /* @__PURE__ */ Object.create(null), i = /* @__PURE__ */ Object.create(null), a = /* @__PURE__ */ Object.create(null);
    for (let c = 0; c < r.length; c++) {
      const f = r[c].name;
      n[f] = r[c].value, i[f] = r[c].namespace, a[f] = r[c].prefix;
    }
    const o = new lo(e, n, []);
    return o.namespace = t, o["x-attribsNamespace"] = i, o["x-attribsPrefix"] = a, o;
  },
  createCommentNode(e) {
    return new so(e);
  },
  //Tree mutation
  appendChild(e, t) {
    const r = e.children[e.children.length - 1];
    r && (r.next = t, t.prev = r), e.children.push(t), t.parent = e;
  },
  insertBefore(e, t, r) {
    const n = e.children.indexOf(r), { prev: i } = r;
    i && (i.next = t, t.prev = i), r.prev = t, t.next = r, e.children.splice(n, 0, t), t.parent = e;
  },
  setTemplateContent(e, t) {
    Un.appendChild(e, t);
  },
  getTemplateContent(e) {
    return e.children[0];
  },
  setDocumentType(e, t, r, n) {
    const i = OT(t, r, n);
    let a = e.children.find((o) => yu(o) && o.name === "!doctype");
    a ? a.data = i ?? null : (a = new uo("!doctype", i), Un.appendChild(e, a)), a["x-name"] = t ?? void 0, a["x-publicId"] = r ?? void 0, a["x-systemId"] = n ?? void 0;
  },
  setDocumentMode(e, t) {
    e["x-mode"] = t;
  },
  getDocumentMode(e) {
    return e["x-mode"];
  },
  detachNode(e) {
    if (e.parent) {
      const t = e.parent.children.indexOf(e), { prev: r, next: n } = e;
      e.prev = null, e.next = null, r && (r.next = n), n && (n.prev = r), e.parent.children.splice(t, 1), e.parent = null;
    }
  },
  insertText(e, t) {
    const r = e.children[e.children.length - 1];
    r && pr(r) ? r.data += t : Un.appendChild(e, Xh(t));
  },
  insertTextBefore(e, t, r) {
    const n = e.children[e.children.indexOf(r) - 1];
    n && pr(n) ? n.data += t : Un.insertBefore(e, Xh(t), r);
  },
  adoptAttributes(e, t) {
    for (let r = 0; r < t.length; r++) {
      const n = t[r].name;
      typeof e.attribs[n] > "u" && (e.attribs[n] = t[r].value, e["x-attribsNamespace"][n] = t[r].namespace, e["x-attribsPrefix"][n] = t[r].prefix);
    }
  },
  //Tree traversing
  getFirstChild(e) {
    return e.children[0];
  },
  getChildNodes(e) {
    return e.children;
  },
  getParentNode(e) {
    return e.parent;
  },
  getAttrList(e) {
    return e.attributes;
  },
  //Node data
  getTagName(e) {
    return e.name;
  },
  getNamespaceURI(e) {
    return e.namespace;
  },
  getTextNodeContent(e) {
    return e.data;
  },
  getCommentNodeContent(e) {
    return e.data;
  },
  getDocumentTypeNodeName(e) {
    var t;
    return (t = e["x-name"]) !== null && t !== void 0 ? t : "";
  },
  getDocumentTypeNodePublicId(e) {
    var t;
    return (t = e["x-publicId"]) !== null && t !== void 0 ? t : "";
  },
  getDocumentTypeNodeSystemId(e) {
    var t;
    return (t = e["x-systemId"]) !== null && t !== void 0 ? t : "";
  },
  //Node types
  isDocumentTypeNode(e) {
    return yu(e) && e.name === "!doctype";
  },
  // Source code location
  setNodeSourceCodeLocation(e, t) {
    t && (e.startIndex = t.startOffset, e.endIndex = t.endOffset), e.sourceCodeLocation = t;
  },
  getNodeSourceCodeLocation(e) {
    return e.sourceCodeLocation;
  },
  updateNodeSourceCodeLocation(e, t) {
    t.endOffset != null && (e.endIndex = t.endOffset), e.sourceCodeLocation = {
      ...e.sourceCodeLocation,
      ...t
    };
  }
};
function LT(e, t, r, n) {
  const i = {
    scriptingEnabled: typeof t.scriptingEnabled == "boolean" ? t.scriptingEnabled : !0,
    treeAdapter: Un,
    sourceCodeLocationInfo: t.sourceCodeLocationInfo
  };
  return r ? DT(e, i) : RT(n, e, i);
}
const BT = { treeAdapter: Un };
function PT(e) {
  const t = "length" in e ? e : [e];
  for (let n = 0; n < t.length; n += 1) {
    const i = t[n];
    En(i) && Array.prototype.splice.call(t, n, 1, ...i.children);
  }
  let r = "";
  for (let n = 0; n < t.length; n += 1) {
    const i = t[n];
    r += ST(i, BT);
  }
  return r;
}
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 Z;
(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.SpecialStartSequence = 23] = "SpecialStartSequence", e[e.InSpecialTag = 24] = "InSpecialTag", e[e.BeforeEntity = 25] = "BeforeEntity", e[e.BeforeNumericEntity = 26] = "BeforeNumericEntity", e[e.InNamedEntity = 27] = "InNamedEntity", e[e.InNumericEntity = 28] = "InNumericEntity", e[e.InHexEntity = 29] = "InHexEntity";
})(Z || (Z = {}));
function Cr(e) {
  return e === de.Space || e === de.NewLine || e === de.Tab || e === de.FormFeed || e === de.CarriageReturn;
}
function Bi(e) {
  return e === de.Slash || e === de.Gt || Cr(e);
}
function jh(e) {
  return e >= de.Zero && e <= de.Nine;
}
function FT(e) {
  return e >= de.LowerA && e <= de.LowerZ || e >= de.UpperA && e <= de.UpperZ;
}
function HT(e) {
  return e >= de.UpperA && e <= de.UpperF || e >= de.LowerA && e <= de.LowerF;
}
var hr;
(function(e) {
  e[e.NoValue = 0] = "NoValue", e[e.Unquoted = 1] = "Unquoted", e[e.Single = 2] = "Single", e[e.Double = 3] = "Double";
})(hr || (hr = {}));
const Nt = {
  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])
  // `</title`
};
class UT {
  constructor({ xmlMode: t = !1, decodeEntities: r = !0 }, n) {
    this.cbs = n, this.state = Z.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.baseState = Z.Text, this.isSpecial = !1, this.running = !0, this.offset = 0, this.currentSequence = void 0, this.sequenceIndex = 0, this.trieIndex = 0, this.trieCurrent = 0, this.entityResult = 0, this.entityExcess = 0, this.xmlMode = t, this.decodeEntities = r, this.entityTrie = t ? Nf : kr;
  }
  reset() {
    this.state = Z.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.baseState = Z.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();
  }
  /**
   * The current index within all of the written data.
   */
  getIndex() {
    return this.index;
  }
  /**
   * The start of the current section.
   */
  getSectionStart() {
    return this.sectionStart;
  }
  stateText(t) {
    t === de.Lt || !this.decodeEntities && this.fastForwardTo(de.Lt) ? (this.index > this.sectionStart && this.cbs.ontext(this.sectionStart, this.index), this.state = Z.BeforeTagName, this.sectionStart = this.index) : this.decodeEntities && t === de.Amp && (this.state = Z.BeforeEntity);
  }
  stateSpecialStartSequence(t) {
    const r = this.sequenceIndex === this.currentSequence.length;
    if (!(r ? (
      // If we are at the end of the sequence, make sure the tag name has ended
      Bi(t)
    ) : (
      // Otherwise, do a case-insensitive comparison
      (t | 32) === this.currentSequence[this.sequenceIndex]
    )))
      this.isSpecial = !1;
    else if (!r) {
      this.sequenceIndex++;
      return;
    }
    this.sequenceIndex = 0, this.state = Z.InTagName, this.stateInTagName(t);
  }
  /** Look for an end tag. For <title> tags, also decode entities. */
  stateInSpecialTag(t) {
    if (this.sequenceIndex === this.currentSequence.length) {
      if (t === de.Gt || Cr(t)) {
        const r = this.index - this.currentSequence.length;
        if (this.sectionStart < r) {
          const n = this.index;
          this.index = r, this.cbs.ontext(this.sectionStart, r), this.index = n;
        }
        this.isSpecial = !1, this.sectionStart = r + 2, this.stateInClosingTagName(t);
        return;
      }
      this.sequenceIndex = 0;
    }
    (t | 32) === this.currentSequence[this.sequenceIndex] ? this.sequenceIndex += 1 : this.sequenceIndex === 0 ? this.currentSequence === Nt.TitleEnd ? this.decodeEntities && t === de.Amp && (this.state = Z.BeforeEntity) : this.fastForwardTo(de.Lt) && (this.sequenceIndex = 1) : this.sequenceIndex = +(t === de.Lt);
  }
  stateCDATASequence(t) {
    t === Nt.Cdata[this.sequenceIndex] ? ++this.sequenceIndex === Nt.Cdata.length && (this.state = Z.InCommentLike, this.currentSequence = Nt.CdataEnd, this.sequenceIndex = 0, this.sectionStart = this.index + 1) : (this.sequenceIndex = 0, this.state = Z.InDeclaration, this.stateInDeclaration(t));
  }
  /**
   * When we wait for one specific character, we can speed things up
   * by skipping through the buffer until we find it.
   *
   * @returns Whether the character was found.
   */
  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;
  }
  /**
   * Comments and CDATA end with `-->` and `]]>`.
   *
   * Their common qualities are:
   * - Their end sequences have a distinct character they start with.
   * - That character is then repeated, so we have to check multiple repeats.
   * - All characters but the start character of the sequence can be skipped.
   */
  stateInCommentLike(t) {
    t === this.currentSequence[this.sequenceIndex] ? ++this.sequenceIndex === this.currentSequence.length && (this.currentSequence === Nt.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 = Z.Text) : this.sequenceIndex === 0 ? this.fastForwardTo(this.currentSequence[0]) && (this.sequenceIndex = 1) : t !== this.currentSequence[this.sequenceIndex - 1] && (this.sequenceIndex = 0);
  }
  /**
   * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.
   *
   * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).
   * We allow anything that wouldn't end the tag.
   */
  isTagStartChar(t) {
    return this.xmlMode ? !Bi(t) : FT(t);
  }
  startSpecial(t, r) {
    this.isSpecial = !0, this.currentSequence = t, this.sequenceIndex = r, this.state = Z.SpecialStartSequence;
  }
  stateBeforeTagName(t) {
    if (t === de.ExclamationMark)
      this.state = Z.BeforeDeclaration, this.sectionStart = this.index + 1;
    else if (t === de.Questionmark)
      this.state = Z.InProcessingInstruction, this.sectionStart = this.index + 1;
    else if (this.isTagStartChar(t)) {
      const r = t | 32;
      this.sectionStart = this.index, !this.xmlMode && r === Nt.TitleEnd[2] ? this.startSpecial(Nt.TitleEnd, 3) : this.state = !this.xmlMode && r === Nt.ScriptEnd[2] ? Z.BeforeSpecialS : Z.InTagName;
    } else
      t === de.Slash ? this.state = Z.BeforeClosingTagName : (this.state = Z.Text, this.stateText(t));
  }
  stateInTagName(t) {
    Bi(t) && (this.cbs.onopentagname(this.sectionStart, this.index), this.sectionStart = -1, this.state = Z.BeforeAttributeName, this.stateBeforeAttributeName(t));
  }
  stateBeforeClosingTagName(t) {
    Cr(t) || (t === de.Gt ? this.state = Z.Text : (this.state = this.isTagStartChar(t) ? Z.InClosingTagName : Z.InSpecialComment, this.sectionStart = this.index));
  }
  stateInClosingTagName(t) {
    (t === de.Gt || Cr(t)) && (this.cbs.onclosetag(this.sectionStart, this.index), this.sectionStart = -1, this.state = Z.AfterClosingTagName, this.stateAfterClosingTagName(t));
  }
  stateAfterClosingTagName(t) {
    (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.state = Z.Text, this.baseState = Z.Text, this.sectionStart = this.index + 1);
  }
  stateBeforeAttributeName(t) {
    t === de.Gt ? (this.cbs.onopentagend(this.index), this.isSpecial ? (this.state = Z.InSpecialTag, this.sequenceIndex = 0) : this.state = Z.Text, this.baseState = this.state, this.sectionStart = this.index + 1) : t === de.Slash ? this.state = Z.InSelfClosingTag : Cr(t) || (this.state = Z.InAttributeName, this.sectionStart = this.index);
  }
  stateInSelfClosingTag(t) {
    t === de.Gt ? (this.cbs.onselfclosingtag(this.index), this.state = Z.Text, this.baseState = Z.Text, this.sectionStart = this.index + 1, this.isSpecial = !1) : Cr(t) || (this.state = Z.BeforeAttributeName, this.stateBeforeAttributeName(t));
  }
  stateInAttributeName(t) {
    (t === de.Eq || Bi(t)) && (this.cbs.onattribname(this.sectionStart, this.index), this.sectionStart = -1, this.state = Z.AfterAttributeName, this.stateAfterAttributeName(t));
  }
  stateAfterAttributeName(t) {
    t === de.Eq ? this.state = Z.BeforeAttributeValue : t === de.Slash || t === de.Gt ? (this.cbs.onattribend(hr.NoValue, this.index), this.state = Z.BeforeAttributeName, this.stateBeforeAttributeName(t)) : Cr(t) || (this.cbs.onattribend(hr.NoValue, this.index), this.state = Z.InAttributeName, this.sectionStart = this.index);
  }
  stateBeforeAttributeValue(t) {
    t === de.DoubleQuote ? (this.state = Z.InAttributeValueDq, this.sectionStart = this.index + 1) : t === de.SingleQuote ? (this.state = Z.InAttributeValueSq, this.sectionStart = this.index + 1) : Cr(t) || (this.sectionStart = this.index, this.state = Z.InAttributeValueNq, this.stateInAttributeValueNoQuotes(t));
  }
  handleInAttributeValue(t, r) {
    t === r || !this.decodeEntities && this.fastForwardTo(r) ? (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = -1, this.cbs.onattribend(r === de.DoubleQuote ? hr.Double : hr.Single, this.index), this.state = Z.BeforeAttributeName) : this.decodeEntities && t === de.Amp && (this.baseState = this.state, this.state = Z.BeforeEntity);
  }
  stateInAttributeValueDoubleQuotes(t) {
    this.handleInAttributeValue(t, de.DoubleQuote);
  }
  stateInAttributeValueSingleQuotes(t) {
    this.handleInAttributeValue(t, de.SingleQuote);
  }
  stateInAttributeValueNoQuotes(t) {
    Cr(t) || t === de.Gt ? (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = -1, this.cbs.onattribend(hr.Unquoted, this.index), this.state = Z.BeforeAttributeName, this.stateBeforeAttributeName(t)) : this.decodeEntities && t === de.Amp && (this.baseState = this.state, this.state = Z.BeforeEntity);
  }
  stateBeforeDeclaration(t) {
    t === de.OpeningSquareBracket ? (this.state = Z.CDATASequence, this.sequenceIndex = 0) : this.state = t === de.Dash ? Z.BeforeComment : Z.InDeclaration;
  }
  stateInDeclaration(t) {
    (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.cbs.ondeclaration(this.sectionStart, this.index), this.state = Z.Text, this.sectionStart = this.index + 1);
  }
  stateInProcessingInstruction(t) {
    (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.cbs.onprocessinginstruction(this.sectionStart, this.index), this.state = Z.Text, this.sectionStart = this.index + 1);
  }
  stateBeforeComment(t) {
    t === de.Dash ? (this.state = Z.InCommentLike, this.currentSequence = Nt.CommentEnd, this.sequenceIndex = 2, this.sectionStart = this.index + 1) : this.state = Z.InDeclaration;
  }
  stateInSpecialComment(t) {
    (t === de.Gt || this.fastForwardTo(de.Gt)) && (this.cbs.oncomment(this.sectionStart, this.index, 0), this.state = Z.Text, this.sectionStart = this.index + 1);
  }
  stateBeforeSpecialS(t) {
    const r = t | 32;
    r === Nt.ScriptEnd[3] ? this.startSpecial(Nt.ScriptEnd, 4) : r === Nt.StyleEnd[3] ? this.startSpecial(Nt.StyleEnd, 4) : (this.state = Z.InTagName, this.stateInTagName(t));
  }
  stateBeforeEntity(t) {
    this.entityExcess = 1, this.entityResult = 0, t === de.Number ? this.state = Z.BeforeNumericEntity : t === de.Amp || (this.trieIndex = 0, this.trieCurrent = this.entityTrie[0], this.state = Z.InNamedEntity, this.stateInNamedEntity(t));
  }
  stateInNamedEntity(t) {
    if (this.entityExcess += 1, this.trieIndex = co(this.entityTrie, this.trieCurrent, this.trieIndex + 1, t), this.trieIndex < 0) {
      this.emitNamedEntity(), this.index--;
      return;
    }
    this.trieCurrent = this.entityTrie[this.trieIndex];
    const r = this.trieCurrent & zt.VALUE_LENGTH;
    if (r) {
      const n = (r >> 14) - 1;
      if (!this.allowLegacyEntity() && t !== de.Semi)
        this.trieIndex += n;
      else {
        const i = this.index - this.entityExcess + 1;
        i > this.sectionStart && this.emitPartial(this.sectionStart, i), this.entityResult = this.trieIndex, this.trieIndex += n, this.entityExcess = 0, this.sectionStart = this.index + 1, n === 0 && this.emitNamedEntity();
      }
    }
  }
  emitNamedEntity() {
    if (this.state = this.baseState, this.entityResult === 0)
      return;
    switch ((this.entityTrie[this.entityResult] & zt.VALUE_LENGTH) >> 14) {
      case 1: {
        this.emitCodePoint(this.entityTrie[this.entityResult] & ~zt.VALUE_LENGTH);
        break;
      }
      case 2: {
        this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
        break;
      }
      case 3:
        this.emitCodePoint(this.entityTrie[this.entityResult + 1]), this.emitCodePoint(this.entityTrie[this.entityResult + 2]);
    }
  }
  stateBeforeNumericEntity(t) {
    (t | 32) === de.LowerX ? (this.entityExcess++, this.state = Z.InHexEntity) : (this.state = Z.InNumericEntity, this.stateInNumericEntity(t));
  }
  emitNumericEntity(t) {
    const r = this.index - this.entityExcess - 1;
    r + 2 + +(this.state === Z.InHexEntity) !== this.index && (r > this.sectionStart && this.emitPartial(this.sectionStart, r), this.sectionStart = this.index + Number(t), this.emitCodePoint(If(this.entityResult))), this.state = this.baseState;
  }
  stateInNumericEntity(t) {
    t === de.Semi ? this.emitNumericEntity(!0) : jh(t) ? (this.entityResult = this.entityResult * 10 + (t - de.Zero), this.entityExcess++) : (this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state = this.baseState, this.index--);
  }
  stateInHexEntity(t) {
    t === de.Semi ? this.emitNumericEntity(!0) : jh(t) ? (this.entityResult = this.entityResult * 16 + (t - de.Zero), this.entityExcess++) : HT(t) ? (this.entityResult = this.entityResult * 16 + ((t | 32) - de.LowerA + 10), this.entityExcess++) : (this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state = this.baseState, this.index--);
  }
  allowLegacyEntity() {
    return !this.xmlMode && (this.baseState === Z.Text || this.baseState === Z.InSpecialTag);
  }
  /**
   * Remove data that has already been consumed from the buffer.
   */
  cleanup() {
    this.running && this.sectionStart !== this.index && (this.state === Z.Text || this.state === Z.InSpecialTag && this.sequenceIndex === 0 ? (this.cbs.ontext(this.sectionStart, this.index), this.sectionStart = this.index) : (this.state === Z.InAttributeValueDq || this.state === Z.InAttributeValueSq || this.state === Z.InAttributeValueNq) && (this.cbs.onattribdata(this.sectionStart, this.index), this.sectionStart = this.index));
  }
  shouldContinue() {
    return this.index < this.buffer.length + this.offset && this.running;
  }
  /**
   * Iterates through the buffer, calling the function corresponding to the current state.
   *
   * States that are more likely to be hit are higher up, as a performance improvement.
   */
  parse() {
    for (; this.shouldContinue(); ) {
      const t = this.buffer.charCodeAt(this.index - this.offset);
      switch (this.state) {
        case Z.Text: {
          this.stateText(t);
          break;
        }
        case Z.SpecialStartSequence: {
          this.stateSpecialStartSequence(t);
          break;
        }
        case Z.InSpecialTag: {
          this.stateInSpecialTag(t);
          break;
        }
        case Z.CDATASequence: {
          this.stateCDATASequence(t);
          break;
        }
        case Z.InAttributeValueDq: {
          this.stateInAttributeValueDoubleQuotes(t);
          break;
        }
        case Z.InAttributeName: {
          this.stateInAttributeName(t);
          break;
        }
        case Z.InCommentLike: {
          this.stateInCommentLike(t);
          break;
        }
        case Z.InSpecialComment: {
          this.stateInSpecialComment(t);
          break;
        }
        case Z.BeforeAttributeName: {
          this.stateBeforeAttributeName(t);
          break;
        }
        case Z.InTagName: {
          this.stateInTagName(t);
          break;
        }
        case Z.InClosingTagName: {
          this.stateInClosingTagName(t);
          break;
        }
        case Z.BeforeTagName: {
          this.stateBeforeTagName(t);
          break;
        }
        case Z.AfterAttributeName: {
          this.stateAfterAttributeName(t);
          break;
        }
        case Z.InAttributeValueSq: {
          this.stateInAttributeValueSingleQuotes(t);
          break;
        }
        case Z.BeforeAttributeValue: {
          this.stateBeforeAttributeValue(t);
          break;
        }
        case Z.BeforeClosingTagName: {
          this.stateBeforeClosingTagName(t);
          break;
        }
        case Z.AfterClosingTagName: {
          this.stateAfterClosingTagName(t);
          break;
        }
        case Z.BeforeSpecialS: {
          this.stateBeforeSpecialS(t);
          break;
        }
        case Z.InAttributeValueNq: {
          this.stateInAttributeValueNoQuotes(t);
          break;
        }
        case Z.InSelfClosingTag: {
          this.stateInSelfClosingTag(t);
          break;
        }
        case Z.InDeclaration: {
          this.stateInDeclaration(t);
          break;
        }
        case Z.BeforeDeclaration: {
          this.stateBeforeDeclaration(t);
          break;
        }
        case Z.BeforeComment: {
          this.stateBeforeComment(t);
          break;
        }
        case Z.InProcessingInstruction: {
          this.stateInProcessingInstruction(t);
          break;
        }
        case Z.InNamedEntity: {
          this.stateInNamedEntity(t);
          break;
        }
        case Z.BeforeEntity: {
          this.stateBeforeEntity(t);
          break;
        }
        case Z.InHexEntity: {
          this.stateInHexEntity(t);
          break;
        }
        case Z.InNumericEntity: {
          this.stateInNumericEntity(t);
          break;
        }
        default:
          this.stateBeforeNumericEntity(t);
      }
      this.index++;
    }
    this.cleanup();
  }
  finish() {
    this.state === Z.InNamedEntity && this.emitNamedEntity(), this.sectionStart < this.index && this.handleTrailingData(), this.cbs.onend();
  }
  /** Handle any trailing data. */
  handleTrailingData() {
    const t = this.buffer.length + this.offset;
    this.state === Z.InCommentLike ? this.currentSequence === Nt.CdataEnd ? this.cbs.oncdata(this.sectionStart, t, 0) : this.cbs.oncomment(this.sectionStart, t, 0) : this.state === Z.InNumericEntity && this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state === Z.InHexEntity && this.allowLegacyEntity() ? this.emitNumericEntity(!1) : this.state === Z.InTagName || this.state === Z.BeforeAttributeName || this.state === Z.BeforeAttributeValue || this.state === Z.AfterAttributeName || this.state === Z.InAttributeName || this.state === Z.InAttributeValueSq || this.state === Z.InAttributeValueDq || this.state === Z.InAttributeValueNq || this.state === Z.InClosingTagName || this.cbs.ontext(this.sectionStart, t);
  }
  emitPartial(t, r) {
    this.baseState !== Z.Text && this.baseState !== Z.InSpecialTag ? this.cbs.onattribdata(t, r) : this.cbs.ontext(t, r);
  }
  emitCodePoint(t) {
    this.baseState !== Z.Text && this.baseState !== Z.InSpecialTag ? this.cbs.onattribentity(t) : this.cbs.ontextentity(t);
  }
}
const On = /* @__PURE__ */ new Set([
  "input",
  "option",
  "optgroup",
  "select",
  "button",
  "datalist",
  "textarea"
]), Ye = /* @__PURE__ */ new Set(["p"]), Kh = /* @__PURE__ */ new Set(["thead", "tbody"]), $h = /* @__PURE__ */ new Set(["dd", "dt"]), Qh = /* @__PURE__ */ new Set(["rt", "rp"]), zT = /* @__PURE__ */ new Map([
  ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
  ["th", /* @__PURE__ */ new Set(["th"])],
  ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
  ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
  ["li", /* @__PURE__ */ new Set(["li"])],
  ["p", Ye],
  ["h1", Ye],
  ["h2", Ye],
  ["h3", Ye],
  ["h4", Ye],
  ["h5", Ye],
  ["h6", Ye],
  ["select", On],
  ["input", On],
  ["output", On],
  ["button", On],
  ["datalist", On],
  ["textarea", On],
  ["option", /* @__PURE__ */ new Set(["option"])],
  ["optgroup", /* @__PURE__ */ new Set(["optgroup", "option"])],
  ["dd", $h],
  ["dt", $h],
  ["address", Ye],
  ["article", Ye],
  ["aside", Ye],
  ["blockquote", Ye],
  ["details", Ye],
  ["div", Ye],
  ["dl", Ye],
  ["fieldset", Ye],
  ["figcaption", Ye],
  ["figure", Ye],
  ["footer", Ye],
  ["form", Ye],
  ["header", Ye],
  ["hr", Ye],
  ["main", Ye],
  ["nav", Ye],
  ["ol", Ye],
  ["pre", Ye],
  ["section", Ye],
  ["table", Ye],
  ["ul", Ye],
  ["rt", Qh],
  ["rp", Qh],
  ["tbody", Kh],
  ["tfoot", Kh]
]), qT = /* @__PURE__ */ new Set([
  "area",
  "base",
  "basefont",
  "br",
  "col",
  "command",
  "embed",
  "frame",
  "hr",
  "img",
  "input",
  "isindex",
  "keygen",
  "link",
  "meta",
  "param",
  "source",
  "track",
  "wbr"
]), Zh = /* @__PURE__ */ new Set(["math", "svg"]), Jh = /* @__PURE__ */ new Set([
  "mi",
  "mo",
  "mn",
  "ms",
  "mtext",
  "annotation-xml",
  "foreignobject",
  "desc",
  "title"
]), YT = /\s|\//;
class VT {
  constructor(t, r = {}) {
    var n, i, a, o, c;
    this.options = r, this.startIndex = 0, this.endIndex = 0, this.openTagStart = 0, this.tagname = "", this.attribname = "", this.attribvalue = "", this.attribs = null, this.stack = [], this.foreignContext = [], this.buffers = [], this.bufferOffset = 0, this.writeIndex = 0, this.ended = !1, this.cbs = t ?? {}, this.lowerCaseTagNames = (n = r.lowerCaseTags) !== null && n !== void 0 ? n : !r.xmlMode, this.lowerCaseAttributeNames = (i = r.lowerCaseAttributeNames) !== null && i !== void 0 ? i : !r.xmlMode, this.tokenizer = new ((a = r.Tokenizer) !== null && a !== void 0 ? a : UT)(this.options, this), (c = (o = this.cbs).onparserinit) === null || c === void 0 || c.call(o, this);
  }
  // Tokenizer event handlers
  /** @internal */
  ontext(t, r) {
    var n, i;
    const a = this.getSlice(t, r);
    this.endIndex = r - 1, (i = (n = this.cbs).ontext) === null || i === void 0 || i.call(n, a), this.startIndex = r;
  }
  /** @internal */
  ontextentity(t) {
    var r, n;
    const i = this.tokenizer.getSectionStart();
    this.endIndex = i - 1, (n = (r = this.cbs).ontext) === null || n === void 0 || n.call(r, Su(t)), this.startIndex = i;
  }
  isVoidElement(t) {
    return !this.options.xmlMode && qT.has(t);
  }
  /** @internal */
  onopentagname(t, r) {
    this.endIndex = r;
    let n = this.getSlice(t, r);
    this.lowerCaseTagNames && (n = n.toLowerCase()), this.emitOpenTag(n);
  }
  emitOpenTag(t) {
    var r, n, i, a;
    this.openTagStart = this.startIndex, this.tagname = t;
    const o = !this.options.xmlMode && zT.get(t);
    if (o)
      for (; this.stack.length > 0 && o.has(this.stack[this.stack.length - 1]); ) {
        const c = this.stack.pop();
        (n = (r = this.cbs).onclosetag) === null || n === void 0 || n.call(r, c, !0);
      }
    this.isVoidElement(t) || (this.stack.push(t), Zh.has(t) ? this.foreignContext.push(!0) : Jh.has(t) && this.foreignContext.push(!1)), (a = (i = this.cbs).onopentagname) === null || a === void 0 || a.call(i, t), this.cbs.onopentag && (this.attribs = {});
  }
  endOpenTag(t) {
    var r, n;
    this.startIndex = this.openTagStart, this.attribs && ((n = (r = this.cbs).onopentag) === null || n === void 0 || n.call(r, this.tagname, this.attribs, t), this.attribs = null), this.cbs.onclosetag && this.isVoidElement(this.tagname) && this.cbs.onclosetag(this.tagname, !0), this.tagname = "";
  }
  /** @internal */
  onopentagend(t) {
    this.endIndex = t, this.endOpenTag(!1), this.startIndex = t + 1;
  }
  /** @internal */
  onclosetag(t, r) {
    var n, i, a, o, c, f;
    this.endIndex = r;
    let m = this.getSlice(t, r);
    if (this.lowerCaseTagNames && (m = m.toLowerCase()), (Zh.has(m) || Jh.has(m)) && this.foreignContext.pop(), this.isVoidElement(m))
      !this.options.xmlMode && m === "br" && ((i = (n = this.cbs).onopentagname) === null || i === void 0 || i.call(n, "br"), (o = (a = this.cbs).onopentag) === null || o === void 0 || o.call(a, "br", {}, !0), (f = (c = this.cbs).onclosetag) === null || f === void 0 || f.call(c, "br", !1));
    else {
      const b = this.stack.lastIndexOf(m);
      if (b !== -1)
        if (this.cbs.onclosetag) {
          let A = this.stack.length - b;
          for (; A--; )
            this.cbs.onclosetag(this.stack.pop(), A !== 0);
        } else
          this.stack.length = b;
      else
        !this.options.xmlMode && m === "p" && (this.emitOpenTag("p"), this.closeCurrentTag(!0));
    }
    this.startIndex = r + 1;
  }
  /** @internal */
  onselfclosingtag(t) {
    this.endIndex = t, this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1] ? (this.closeCurrentTag(!1), this.startIndex = t + 1) : this.onopentagend(t);
  }
  closeCurrentTag(t) {
    var r, n;
    const i = this.tagname;
    this.endOpenTag(t), this.stack[this.stack.length - 1] === i && ((n = (r = this.cbs).onclosetag) === null || n === void 0 || n.call(r, i, !t), this.stack.pop());
  }
  /** @internal */
  onattribname(t, r) {
    this.startIndex = t;
    const n = this.getSlice(t, r);
    this.attribname = this.lowerCaseAttributeNames ? n.toLowerCase() : n;
  }
  /** @internal */
  onattribdata(t, r) {
    this.attribvalue += this.getSlice(t, r);
  }
  /** @internal */
  onattribentity(t) {
    this.attribvalue += Su(t);
  }
  /** @internal */
  onattribend(t, r) {
    var n, i;
    this.endIndex = r, (i = (n = this.cbs).onattribute) === null || i === void 0 || i.call(n, this.attribname, this.attribvalue, t === hr.Double ? '"' : t === hr.Single ? "'" : t === hr.NoValue ? void 0 : null), this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname) && (this.attribs[this.attribname] = this.attribvalue), this.attribvalue = "";
  }
  getInstructionName(t) {
    const r = t.search(YT);
    let n = r < 0 ? t : t.substr(0, r);
    return this.lowerCaseTagNames && (n = n.toLowerCase()), n;
  }
  /** @internal */
  ondeclaration(t, r) {
    this.endIndex = r;
    const n = this.getSlice(t, r);
    if (this.cbs.onprocessinginstruction) {
      const i = this.getInstructionName(n);
      this.cbs.onprocessinginstruction(`!${i}`, `!${n}`);
    }
    this.startIndex = r + 1;
  }
  /** @internal */
  onprocessinginstruction(t, r) {
    this.endIndex = r;
    const n = this.getSlice(t, r);
    if (this.cbs.onprocessinginstruction) {
      const i = this.getInstructionName(n);
      this.cbs.onprocessinginstruction(`?${i}`, `?${n}`);
    }
    this.startIndex = r + 1;
  }
  /** @internal */
  oncomment(t, r, n) {
    var i, a, o, c;
    this.endIndex = r, (a = (i = this.cbs).oncomment) === null || a === void 0 || a.call(i, this.getSlice(t, r - n)), (c = (o = this.cbs).oncommentend) === null || c === void 0 || c.call(o), this.startIndex = r + 1;
  }
  /** @internal */
  oncdata(t, r, n) {
    var i, a, o, c, f, m, b, A, k, N;
    this.endIndex = r;
    const M = this.getSlice(t, r - n);
    this.options.xmlMode || this.options.recognizeCDATA ? ((a = (i = this.cbs).oncdatastart) === null || a === void 0 || a.call(i), (c = (o = this.cbs).ontext) === null || c === void 0 || c.call(o, M), (m = (f = this.cbs).oncdataend) === null || m === void 0 || m.call(f)) : ((A = (b = this.cbs).oncomment) === null || A === void 0 || A.call(b, `[CDATA[${M}]]`), (N = (k = this.cbs).oncommentend) === null || N === void 0 || N.call(k)), this.startIndex = r + 1;
  }
  /** @internal */
  onend() {
    var t, r;
    if (this.cbs.onclosetag) {
      this.endIndex = this.startIndex;
      for (let n = this.stack.length; n > 0; this.cbs.onclosetag(this.stack[--n], !0))
        ;
    }
    (r = (t = this.cbs).onend) === null || r === void 0 || r.call(t);
  }
  /**
   * Resets the parser to a blank state, ready to parse a new HTML document
   */
  reset() {
    var t, r, n, i;
    (r = (t = this.cbs).onreset) === null || r === void 0 || r.call(t), this.tokenizer.reset(), this.tagname = "", this.attribname = "", this.attribs = null, this.stack.length = 0, this.startIndex = 0, this.endIndex = 0, (i = (n = this.cbs).onparserinit) === null || i === void 0 || i.call(n, this), this.buffers.length = 0, this.bufferOffset = 0, this.writeIndex = 0, this.ended = !1;
  }
  /**
   * Resets the parser, then parses a complete document and
   * pushes it to the handler.
   *
   * @param data Document to parse.
   */
  parseComplete(t) {
    this.reset(), this.end(t);
  }
  getSlice(t, r) {
    for (; t - this.bufferOffset >= this.buffers[0].length; )
      this.shiftBuffer();
    let n = this.buffers[0].slice(t - this.bufferOffset, r - this.bufferOffset);
    for (; r - this.bufferOffset > this.buffers[0].length; )
      this.shiftBuffer(), n += this.buffers[0].slice(0, r - this.bufferOffset);
    return n;
  }
  shiftBuffer() {
    this.bufferOffset += this.buffers[0].length, this.writeIndex--, this.buffers.shift();
  }
  /**
   * Parses a chunk of data and calls the corresponding callbacks.
   *
   * @param chunk Chunk to parse.
   */
  write(t) {
    var r, n;
    if (this.ended) {
      (n = (r = this.cbs).onerror) === null || n === void 0 || n.call(r, new Error(".write() after done!"));
      return;
    }
    this.buffers.push(t), this.tokenizer.running && (this.tokenizer.write(t), this.writeIndex++);
  }
  /**
   * Parses the end of the buffer and clears the stack, calls onend.
   *
   * @param chunk Optional final chunk to parse.
   */
  end(t) {
    var r, n;
    if (this.ended) {
      (n = (r = this.cbs).onerror) === null || n === void 0 || n.call(r, new Error(".end() after done!"));
      return;
    }
    t && this.write(t), this.ended = !0, this.tokenizer.end();
  }
  /**
   * Pauses parsing. The parser won't emit events until `resume` is called.
   */
  pause() {
    this.tokenizer.pause();
  }
  /**
   * Resumes parsing after `pause` was called.
   */
  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();
  }
  /**
   * Alias of `write`, for backwards compatibility.
   *
   * @param chunk Chunk to parse.
   * @deprecated
   */
  parseChunk(t) {
    this.write(t);
  }
  /**
   * Alias of `end`, for backwards compatibility.
   *
   * @param chunk Optional final chunk to parse.
   * @deprecated
   */
  done(t) {
    this.end(t);
  }
}
function GT(e, t) {
  const r = new tb(void 0, t);
  return new VT(r, t).end(e), r.root;
}
const XT = xE((e, t, r, n) => t.xmlMode || t._useHtmlParser2 ? GT(e, t) : LT(e, t, r, n)), jd = JE(XT, (e, t) => t.xmlMode || t._useHtmlParser2 ? wa(e, t) : PT(e));
jd([]);
const e1 = "markmap: ", WT = /^h[1-6]$/, jT = /^[uo]l$/, KT = /^li$/, $T = {
  selector: "h1,h2,h3,h4,h5,h6,ul,ol,li,table,pre,p>img:only-child",
  selectorWrapper: "div,p",
  selectorNesting: "ul,ol,li",
  selectorPreserveTag: "table,pre,img"
};
function $s(e) {
  return WT.test(e) ? +e[1] : jT.test(e) ? 8 : KT.test(e) ? 9 : 7;
}
function QT(e, t) {
  const r = {
    ...$T,
    ...t
  }, n = jd(e), i = n("body");
  let a = 0;
  const o = {
    id: a,
    tag: "",
    html: "",
    level: 0,
    parent: 0,
    childrenLevel: 0,
    children: []
  }, c = {
    [a]: n("<div>")
  }, f = [];
  let m = 0;
  return k(i), C0(o, (N, M) => {
    M();
    const F = c[N.id];
    F.contents().each((B, $) => {
      if ($.type === "comment") {
        const V = $.data.trim();
        V.startsWith(e1) && (N.comments || (N.comments = []), N.comments.push(V.slice(e1.length).trim()), n($).remove());
      }
    });
    const q = F.data();
    q && Object.keys(q).length && (N.data = q), N.html = ((F.is(r.selectorPreserveTag) ? n.html(F) : F.html()) || "").trimEnd();
  }), o;
  function b(N, M, F) {
    const q = N[0], B = {
      id: ++a,
      tag: q.tagName,
      html: "",
      level: $s(q.tagName),
      childrenLevel: 0,
      children: F ? [] : void 0,
      parent: M.id
    };
    return M.children && ((M.childrenLevel === 0 || M.childrenLevel > B.level) && (M.children = [], M.childrenLevel = B.level), M.childrenLevel === B.level && M.children.push(B)), c[B.id] = N, B;
  }
  function A(N) {
    let M;
    for (; (M = f.at(-1)) && M.level >= N; )
      f.pop();
    return M || o;
  }
  function k(N, M) {
    N.children().each((F, q) => {
      const B = n(q);
      if (B.is(r.selectorWrapper)) {
        k(B);
        return;
      }
      if (!B.is(r.selector)) {
        const pe = $s(q.tagName);
        pe <= 6 && (m = pe);
        return;
      }
      const $ = $s(q.tagName);
      if (m > 0 && $ > m)
        return;
      if (m = 0, B.is(r.selectorNesting)) {
        const pe = b(
          B,
          M || A($),
          !0
        );
        pe && (k(B, pe), B.remove());
        return;
      }
      const V = $ <= 6, oe = b(
        B,
        M || A($),
        V
      );
      V && f.push(oe);
    });
  }
}
function ZT(e) {
  return C0(e, (t, r) => {
    const n = {
      content: t.html,
      children: r() || []
    };
    return t.data && (n.payload = {
      ...t.data
    }), t.comments && (t.comments.includes("foldAll") ? n.payload = { ...n.payload, fold: 2 } : t.comments.includes("fold") && (n.payload = { ...n.payload, fold: 1 })), n;
  });
}
function JT(e, t) {
  const r = QT(e, t);
  return ZT(r);
}
var Pi;
function Kd(e) {
  return Pi = Pi || document.createElement("textarea"), Pi.innerHTML = "&" + e + ";", Pi.value;
}
var eA = Object.prototype.hasOwnProperty;
function tA(e, t) {
  return e ? eA.call(e, t) : !1;
}
function $d(e) {
  var t = [].slice.call(arguments, 1);
  return t.forEach(function(r) {
    if (r) {
      if (typeof r != "object")
        throw new TypeError(r + "must be object");
      Object.keys(r).forEach(function(n) {
        e[n] = r[n];
      });
    }
  }), e;
}
var rA = /\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;
function Y0(e) {
  return e.indexOf("\\") < 0 ? e : e.replace(rA, "$1");
}
function Qd(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 Bu(e) {
  if (e > 65535) {
    e -= 65536;
    var t = 55296 + (e >> 10), r = 56320 + (e & 1023);
    return String.fromCharCode(t, r);
  }
  return String.fromCharCode(e);
}
var nA = /&([a-z#][a-z0-9]{1,31});/gi, iA = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;
function aA(e, t) {
  var r = 0, n = Kd(t);
  return t !== n ? n : t.charCodeAt(0) === 35 && iA.test(t) && (r = t[1].toLowerCase() === "x" ? parseInt(t.slice(2), 16) : parseInt(t.slice(1), 10), Qd(r)) ? Bu(r) : e;
}
function bn(e) {
  return e.indexOf("&") < 0 ? e : e.replace(nA, aA);
}
var sA = /[&<>"]/, uA = /[&<>"]/g, oA = {
  "&": "&amp;",
  "<": "&lt;",
  ">": "&gt;",
  '"': "&quot;"
};
function lA(e) {
  return oA[e];
}
function Bt(e) {
  return sA.test(e) ? e.replace(uA, lA) : e;
}
var me = {};
me.blockquote_open = function() {
  return `<blockquote>
`;
};
me.blockquote_close = function(e, t) {
  return "</blockquote>" + Tn(e, t);
};
me.code = function(e, t) {
  return e[t].block ? "<pre><code>" + Bt(e[t].content) + "</code></pre>" + Tn(e, t) : "<code>" + Bt(e[t].content) + "</code>";
};
me.fence = function(e, t, r, n, i) {
  var a = e[t], o = "", c = r.langPrefix, f = "", m, b, A;
  if (a.params) {
    if (m = a.params.split(/\s+/g), b = m.join(" "), tA(i.rules.fence_custom, m[0]))
      return i.rules.fence_custom[m[0]](e, t, r, n, i);
    f = Bt(bn(Y0(b))), o = ' class="' + c + f + '"';
  }
  return r.highlight ? A = r.highlight.apply(r.highlight, [a.content].concat(m)) || Bt(a.content) : A = Bt(a.content), "<pre><code" + o + ">" + A + "</code></pre>" + Tn(e, t);
};
me.fence_custom = {};
me.heading_open = function(e, t) {
  return "<h" + e[t].hLevel + ">";
};
me.heading_close = function(e, t) {
  return "</h" + e[t].hLevel + `>
`;
};
me.hr = function(e, t, r) {
  return (r.xhtmlOut ? "<hr />" : "<hr>") + Tn(e, t);
};
me.bullet_list_open = function() {
  return `<ul>
`;
};
me.bullet_list_close = function(e, t) {
  return "</ul>" + Tn(e, t);
};
me.list_item_open = function() {
  return "<li>";
};
me.list_item_close = function() {
  return `</li>
`;
};
me.ordered_list_open = function(e, t) {
  var r = e[t], n = r.order > 1 ? ' start="' + r.order + '"' : "";
  return "<ol" + n + `>
`;
};
me.ordered_list_close = function(e, t) {
  return "</ol>" + Tn(e, t);
};
me.paragraph_open = function(e, t) {
  return e[t].tight ? "" : "<p>";
};
me.paragraph_close = function(e, t) {
  var r = !(e[t].tight && t && e[t - 1].type === "inline" && !e[t - 1].content);
  return (e[t].tight ? "" : "</p>") + (r ? Tn(e, t) : "");
};
me.link_open = function(e, t, r) {
  var n = e[t].title ? ' title="' + Bt(bn(e[t].title)) + '"' : "", i = r.linkTarget ? ' target="' + r.linkTarget + '"' : "";
  return '<a href="' + Bt(e[t].href) + '"' + n + i + ">";
};
me.link_close = function() {
  return "</a>";
};
me.image = function(e, t, r) {
  var n = ' src="' + Bt(e[t].src) + '"', i = e[t].title ? ' title="' + Bt(bn(e[t].title)) + '"' : "", a = ' alt="' + (e[t].alt ? Bt(bn(Y0(e[t].alt))) : "") + '"', o = r.xhtmlOut ? " /" : "";
  return "<img" + n + a + i + o + ">";
};
me.table_open = function() {
  return `<table>
`;
};
me.table_close = function() {
  return `</table>
`;
};
me.thead_open = function() {
  return `<thead>
`;
};
me.thead_close = function() {
  return `</thead>
`;
};
me.tbody_open = function() {
  return `<tbody>
`;
};
me.tbody_close = function() {
  return `</tbody>
`;
};
me.tr_open = function() {
  return "<tr>";
};
me.tr_close = function() {
  return `</tr>
`;
};
me.th_open = function(e, t) {
  var r = e[t];
  return "<th" + (r.align ? ' style="text-align:' + r.align + '"' : "") + ">";
};
me.th_close = function() {
  return "</th>";
};
me.td_open = function(e, t) {
  var r = e[t];
  return "<td" + (r.align ? ' style="text-align:' + r.align + '"' : "") + ">";
};
me.td_close = function() {
  return "</td>";
};
me.strong_open = function() {
  return "<strong>";
};
me.strong_close = function() {
  return "</strong>";
};
me.em_open = function() {
  return "<em>";
};
me.em_close = function() {
  return "</em>";
};
me.del_open = function() {
  return "<del>";
};
me.del_close = function() {
  return "</del>";
};
me.ins_open = function() {
  return "<ins>";
};
me.ins_close = function() {
  return "</ins>";
};
me.mark_open = function() {
  return "<mark>";
};
me.mark_close = function() {
  return "</mark>";
};
me.sub = function(e, t) {
  return "<sub>" + Bt(e[t].content) + "</sub>";
};
me.sup = function(e, t) {
  return "<sup>" + Bt(e[t].content) + "</sup>";
};
me.hardbreak = function(e, t, r) {
  return r.xhtmlOut ? `<br />
` : `<br>
`;
};
me.softbreak = function(e, t, r) {
  return r.breaks ? r.xhtmlOut ? `<br />
` : `<br>
` : `
`;
};
me.text = function(e, t) {
  return Bt(e[t].content);
};
me.htmlblock = function(e, t) {
  return e[t].content;
};
me.htmltag = function(e, t) {
  return e[t].content;
};
me.abbr_open = function(e, t) {
  return '<abbr title="' + Bt(bn(e[t].title)) + '">';
};
me.abbr_close = function() {
  return "</abbr>";
};
me.footnote_ref = function(e, t) {
  var r = Number(e[t].id + 1).toString(), n = "fnref" + r;
  return e[t].subId > 0 && (n += ":" + e[t].subId), '<sup class="footnote-ref"><a href="#fn' + r + '" id="' + n + '">[' + r + "]</a></sup>";
};
me.footnote_block_open = function(e, t, r) {
  var n = r.xhtmlOut ? `<hr class="footnotes-sep" />
` : `<hr class="footnotes-sep">
`;
  return n + `<section class="footnotes">
<ol class="footnotes-list">
`;
};
me.footnote_block_close = function() {
  return `</ol>
</section>
`;
};
me.footnote_open = function(e, t) {
  var r = Number(e[t].id + 1).toString();
  return '<li id="fn' + r + '"  class="footnote-item">';
};
me.footnote_close = function() {
  return `</li>
`;
};
me.footnote_anchor = function(e, t) {
  var r = Number(e[t].id + 1).toString(), n = "fnref" + r;
  return e[t].subId > 0 && (n += ":" + e[t].subId), ' <a href="#' + n + '" class="footnote-backref">↩</a>';
};
me.dl_open = function() {
  return `<dl>
`;
};
me.dt_open = function() {
  return "<dt>";
};
me.dd_open = function() {
  return "<dd>";
};
me.dl_close = function() {
  return `</dl>
`;
};
me.dt_close = function() {
  return `</dt>
`;
};
me.dd_close = function() {
  return `</dd>
`;
};
function Zd(e, t) {
  return ++t >= e.length - 2 ? t : e[t].type === "paragraph_open" && e[t].tight && e[t + 1].type === "inline" && e[t + 1].content.length === 0 && e[t + 2].type === "paragraph_close" && e[t + 2].tight ? Zd(e, t + 2) : t;
}
var Tn = me.getBreak = function(t, r) {
  return r = Zd(t, r), r < t.length && t[r].type === "list_item_close" ? "" : `
`;
};
function wo() {
  this.rules = $d({}, me), this.getBreak = me.getBreak;
}
wo.prototype.renderInline = function(e, t, r) {
  for (var n = this.rules, i = e.length, a = 0, o = ""; i--; )
    o += n[e[a].type](e, a++, t, r, this);
  return o;
};
wo.prototype.render = function(e, t, r) {
  for (var n = this.rules, i = e.length, a = -1, o = ""; ++a < i; )
    e[a].type === "inline" ? o += this.renderInline(e[a].children, t, r) : o += n[e[a].type](e, a, t, r, this);
  return o;
};
function Yt() {
  this.__rules__ = [], this.__cache__ = null;
}
Yt.prototype.__find__ = function(e) {
  for (var t = this.__rules__.length, r = -1; t--; )
    if (this.__rules__[++r].name === e)
      return r;
  return -1;
};
Yt.prototype.__compile__ = function() {
  var e = this, t = [""];
  e.__rules__.forEach(function(r) {
    r.enabled && r.alt.forEach(function(n) {
      t.indexOf(n) < 0 && t.push(n);
    });
  }), e.__cache__ = {}, t.forEach(function(r) {
    e.__cache__[r] = [], e.__rules__.forEach(function(n) {
      n.enabled && (r && n.alt.indexOf(r) < 0 || e.__cache__[r].push(n.fn));
    });
  });
};
Yt.prototype.at = function(e, t, r) {
  var n = this.__find__(e), i = r || {};
  if (n === -1)
    throw new Error("Parser rule not found: " + e);
  this.__rules__[n].fn = t, this.__rules__[n].alt = i.alt || [], this.__cache__ = null;
};
Yt.prototype.before = function(e, t, r, n) {
  var i = this.__find__(e), a = n || {};
  if (i === -1)
    throw new Error("Parser rule not found: " + e);
  this.__rules__.splice(i, 0, {
    name: t,
    enabled: !0,
    fn: r,
    alt: a.alt || []
  }), this.__cache__ = null;
};
Yt.prototype.after = function(e, t, r, n) {
  var i = this.__find__(e), a = n || {};
  if (i === -1)
    throw new Error("Parser rule not found: " + e);
  this.__rules__.splice(i + 1, 0, {
    name: t,
    enabled: !0,
    fn: r,
    alt: a.alt || []
  }), this.__cache__ = null;
};
Yt.prototype.push = function(e, t, r) {
  var n = r || {};
  this.__rules__.push({
    name: e,
    enabled: !0,
    fn: t,
    alt: n.alt || []
  }), this.__cache__ = null;
};
Yt.prototype.enable = function(e, t) {
  e = Array.isArray(e) ? e : [e], t && this.__rules__.forEach(function(r) {
    r.enabled = !1;
  }), e.forEach(function(r) {
    var n = this.__find__(r);
    if (n < 0)
      throw new Error("Rules manager: invalid rule name " + r);
    this.__rules__[n].enabled = !0;
  }, this), this.__cache__ = null;
};
Yt.prototype.disable = function(e) {
  e = Array.isArray(e) ? e : [e], e.forEach(function(t) {
    var r = this.__find__(t);
    if (r < 0)
      throw new Error("Rules manager: invalid rule name " + t);
    this.__rules__[r].enabled = !1;
  }, this), this.__cache__ = null;
};
Yt.prototype.getRules = function(e) {
  return this.__cache__ === null && this.__compile__(), this.__cache__[e] || [];
};
function cA(e) {
  e.inlineMode ? e.tokens.push({
    type: "inline",
    content: e.src.replace(/\n/g, " ").trim(),
    level: 0,
    lines: [0, 1],
    children: []
  }) : e.block.parse(e.src, e.options, e.env, e.tokens);
}
function An(e, t, r, n, i) {
  this.src = e, this.env = n, this.options = r, this.parser = t, this.tokens = i, this.pos = 0, this.posMax = this.src.length, this.level = 0, this.pending = "", this.pendingLevel = 0, this.cache = [], this.isInLabel = !1, this.linkLevel = 0, this.linkContent = "", this.labelUnmatchedScopes = 0;
}
An.prototype.pushPending = function() {
  this.tokens.push({
    type: "text",
    content: this.pending,
    level: this.pendingLevel
  }), this.pending = "";
};
An.prototype.push = function(e) {
  this.pending && this.pushPending(), this.tokens.push(e), this.pendingLevel = this.level;
};
An.prototype.cacheSet = function(e, t) {
  for (var r = this.cache.length; r <= e; r++)
    this.cache.push(0);
  this.cache[e] = t;
};
An.prototype.cacheGet = function(e) {
  return e < this.cache.length ? this.cache[e] : 0;
};
function V0(e, t) {
  var r, n, i, a = -1, o = e.posMax, c = e.pos, f = e.isInLabel;
  if (e.isInLabel)
    return -1;
  if (e.labelUnmatchedScopes)
    return e.labelUnmatchedScopes--, -1;
  for (e.pos = t + 1, e.isInLabel = !0, r = 1; e.pos < o; ) {
    if (i = e.src.charCodeAt(e.pos), i === 91)
      r++;
    else if (i === 93 && (r--, r === 0)) {
      n = !0;
      break;
    }
    e.parser.skipToken(e);
  }
  return n ? (a = e.pos, e.labelUnmatchedScopes = 0) : e.labelUnmatchedScopes = r - 1, e.pos = c, e.isInLabel = f, a;
}
function hA(e, t, r, n) {
  var i, a, o, c, f, m;
  if (e.charCodeAt(0) !== 42 || e.charCodeAt(1) !== 91 || e.indexOf("]:") === -1 || (i = new An(e, t, r, n, []), a = V0(i, 1), a < 0 || e.charCodeAt(a + 1) !== 58))
    return -1;
  for (c = i.posMax, o = a + 2; o < c && i.src.charCodeAt(o) !== 10; o++)
    ;
  return f = e.slice(2, a), m = e.slice(a + 2, o).trim(), m.length === 0 ? -1 : (n.abbreviations || (n.abbreviations = {}), typeof n.abbreviations[":" + f] > "u" && (n.abbreviations[":" + f] = m), o);
}
function fA(e) {
  var t = e.tokens, r, n, i, a;
  if (!e.inlineMode) {
    for (r = 1, n = t.length - 1; r < n; r++)
      if (t[r - 1].type === "paragraph_open" && t[r].type === "inline" && t[r + 1].type === "paragraph_close") {
        for (i = t[r].content; i.length && (a = hA(i, e.inline, e.options, e.env), !(a < 0)); )
          i = i.slice(a).trim();
        t[r].content = i, i.length || (t[r - 1].tight = !0, t[r + 1].tight = !0);
      }
  }
}
function Pu(e) {
  var t = bn(e);
  try {
    t = decodeURI(t);
  } catch {
  }
  return encodeURI(t);
}
function Jd(e, t) {
  var r, n, i, a = t, o = e.posMax;
  if (e.src.charCodeAt(t) === 60) {
    for (t++; t < o; ) {
      if (r = e.src.charCodeAt(t), r === 10)
        return !1;
      if (r === 62)
        return i = Pu(Y0(e.src.slice(a + 1, t))), e.parser.validateLink(i) ? (e.pos = t + 1, e.linkContent = i, !0) : !1;
      if (r === 92 && t + 1 < o) {
        t += 2;
        continue;
      }
      t++;
    }
    return !1;
  }
  for (n = 0; t < o && (r = e.src.charCodeAt(t), !(r === 32 || r < 32 || r === 127)); ) {
    if (r === 92 && t + 1 < o) {
      t += 2;
      continue;
    }
    if (r === 40 && (n++, n > 1) || r === 41 && (n--, n < 0))
      break;
    t++;
  }
  return a === t || (i = Y0(e.src.slice(a, t)), !e.parser.validateLink(i)) ? !1 : (e.linkContent = i, e.pos = t, !0);
}
function em(e, t) {
  var r, n = t, i = e.posMax, a = e.src.charCodeAt(t);
  if (a !== 34 && a !== 39 && a !== 40)
    return !1;
  for (t++, a === 40 && (a = 41); t < i; ) {
    if (r = e.src.charCodeAt(t), r === a)
      return e.pos = t + 1, e.linkContent = Y0(e.src.slice(n + 1, t)), !0;
    if (r === 92 && t + 1 < i) {
      t += 2;
      continue;
    }
    t++;
  }
  return !1;
}
function tm(e) {
  return e.trim().replace(/\s+/g, " ").toUpperCase();
}
function dA(e, t, r, n) {
  var i, a, o, c, f, m, b, A, k;
  if (e.charCodeAt(0) !== 91 || e.indexOf("]:") === -1 || (i = new An(e, t, r, n, []), a = V0(i, 0), a < 0 || e.charCodeAt(a + 1) !== 58))
    return -1;
  for (c = i.posMax, o = a + 2; o < c && (f = i.src.charCodeAt(o), !(f !== 32 && f !== 10)); o++)
    ;
  if (!Jd(i, o))
    return -1;
  for (b = i.linkContent, o = i.pos, m = o, o = o + 1; o < c && (f = i.src.charCodeAt(o), !(f !== 32 && f !== 10)); o++)
    ;
  for (o < c && m !== o && em(i, o) ? (A = i.linkContent, o = i.pos) : (A = "", o = m); o < c && i.src.charCodeAt(o) === 32; )
    o++;
  return o < c && i.src.charCodeAt(o) !== 10 ? -1 : (k = tm(e.slice(1, a)), typeof n.references[k] > "u" && (n.references[k] = { title: A, href: b }), o);
}
function mA(e) {
  var t = e.tokens, r, n, i, a;
  if (e.env.references = e.env.references || {}, !e.inlineMode) {
    for (r = 1, n = t.length - 1; r < n; r++)
      if (t[r].type === "inline" && t[r - 1].type === "paragraph_open" && t[r + 1].type === "paragraph_close") {
        for (i = t[r].content; i.length && (a = dA(i, e.inline, e.options, e.env), !(a < 0)); )
          i = i.slice(a).trim();
        t[r].content = i, i.length || (t[r - 1].tight = !0, t[r + 1].tight = !0);
      }
  }
}
function pA(e) {
  var t = e.tokens, r, n, i;
  for (n = 0, i = t.length; n < i; n++)
    r = t[n], r.type === "inline" && e.inline.parse(r.content, e.options, e.env, r.children);
}
function gA(e) {
  var t, r, n, i, a, o, c, f, m, b = 0, A = !1, k = {};
  if (e.env.footnotes && (e.tokens = e.tokens.filter(function(N) {
    return N.type === "footnote_reference_open" ? (A = !0, f = [], m = N.label, !1) : N.type === "footnote_reference_close" ? (A = !1, k[":" + m] = f, !1) : (A && f.push(N), !A);
  }), !!e.env.footnotes.list)) {
    for (o = e.env.footnotes.list, e.tokens.push({
      type: "footnote_block_open",
      level: b++
    }), t = 0, r = o.length; t < r; t++) {
      for (e.tokens.push({
        type: "footnote_open",
        id: t,
        level: b++
      }), o[t].tokens ? (c = [], c.push({
        type: "paragraph_open",
        tight: !1,
        level: b++
      }), c.push({
        type: "inline",
        content: "",
        level: b,
        children: o[t].tokens
      }), c.push({
        type: "paragraph_close",
        tight: !1,
        level: --b
      })) : o[t].label && (c = k[":" + o[t].label]), e.tokens = e.tokens.concat(c), e.tokens[e.tokens.length - 1].type === "paragraph_close" ? a = e.tokens.pop() : a = null, i = o[t].count > 0 ? o[t].count : 1, n = 0; n < i; n++)
        e.tokens.push({
          type: "footnote_anchor",
          id: t,
          subId: n,
          level: b
        });
      a && e.tokens.push(a), e.tokens.push({
        type: "footnote_close",
        level: --b
      });
    }
    e.tokens.push({
      type: "footnote_block_close",
      level: --b
    });
  }
}
var t1 = ` 
()[]'".,!?-`;
function Qs(e) {
  return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1");
}
function bA(e) {
  var t, r, n, i, a, o, c, f, m, b, A, k, N = e.tokens;
  if (e.env.abbreviations) {
    for (e.env.abbrRegExp || (k = "(^|[" + t1.split("").map(Qs).join("") + "])(" + Object.keys(e.env.abbreviations).map(function(M) {
      return M.substr(1);
    }).sort(function(M, F) {
      return F.length - M.length;
    }).map(Qs).join("|") + ")($|[" + t1.split("").map(Qs).join("") + "])", e.env.abbrRegExp = new RegExp(k, "g")), b = e.env.abbrRegExp, r = 0, n = N.length; r < n; r++)
      if (N[r].type === "inline") {
        for (i = N[r].children, t = i.length - 1; t >= 0; t--)
          if (a = i[t], a.type === "text") {
            for (f = 0, o = a.content, b.lastIndex = 0, m = a.level, c = []; A = b.exec(o); )
              b.lastIndex > f && c.push({
                type: "text",
                content: o.slice(f, A.index + A[1].length),
                level: m
              }), c.push({
                type: "abbr_open",
                title: e.env.abbreviations[":" + A[2]],
                level: m++
              }), c.push({
                type: "text",
                content: A[2],
                level: m
              }), c.push({
                type: "abbr_close",
                level: --m
              }), f = b.lastIndex - A[3].length;
            c.length && (f < o.length && c.push({
              type: "text",
              content: o.slice(f),
              level: m
            }), N[r].children = i = [].concat(i.slice(0, t), c, i.slice(t + 1)));
          }
      }
  }
}
var EA = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/, vA = /\((c|tm|r|p)\)/ig, _A = {
  c: "©",
  r: "®",
  p: "§",
  tm: "™"
};
function TA(e) {
  return e.indexOf("(") < 0 ? e : e.replace(vA, function(t, r) {
    return _A[r.toLowerCase()];
  });
}
function AA(e) {
  var t, r, n, i, a;
  if (e.options.typographer) {
    for (a = e.tokens.length - 1; a >= 0; a--)
      if (e.tokens[a].type === "inline")
        for (i = e.tokens[a].children, t = i.length - 1; t >= 0; t--)
          r = i[t], r.type === "text" && (n = r.content, n = TA(n), EA.test(n) && (n = n.replace(/\+-/g, "±").replace(/\.{2,}/g, "…").replace(/([?!])…/g, "$1..").replace(/([?!]){4,}/g, "$1$1$1").replace(/,{2,}/g, ",").replace(/(^|[^-])---([^-]|$)/mg, "$1—$2").replace(/(^|\s)--(\s|$)/mg, "$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/mg, "$1–$2")), r.content = n);
  }
}
var xA = /['"]/, r1 = /['"]/g, yA = /[-\s()\[\]]/, n1 = "’";
function i1(e, t) {
  return t < 0 || t >= e.length ? !1 : !yA.test(e[t]);
}
function Ln(e, t, r) {
  return e.substr(0, t) + r + e.substr(t + 1);
}
function SA(e) {
  var t, r, n, i, a, o, c, f, m, b, A, k, N, M, F, q, B;
  if (e.options.typographer) {
    for (B = [], F = e.tokens.length - 1; F >= 0; F--)
      if (e.tokens[F].type === "inline") {
        for (q = e.tokens[F].children, B.length = 0, t = 0; t < q.length; t++)
          if (r = q[t], !(r.type !== "text" || xA.test(r.text))) {
            for (c = q[t].level, N = B.length - 1; N >= 0 && !(B[N].level <= c); N--)
              ;
            B.length = N + 1, n = r.content, a = 0, o = n.length;
            e:
              for (; a < o && (r1.lastIndex = a, i = r1.exec(n), !!i); ) {
                if (f = !i1(n, i.index - 1), a = i.index + 1, M = i[0] === "'", m = !i1(n, a), !m && !f) {
                  M && (r.content = Ln(r.content, i.index, n1));
                  continue;
                }
                if (A = !m, k = !f, k) {
                  for (N = B.length - 1; N >= 0 && (b = B[N], !(B[N].level < c)); N--)
                    if (b.single === M && B[N].level === c) {
                      b = B[N], M ? (q[b.token].content = Ln(q[b.token].content, b.pos, e.options.quotes[2]), r.content = Ln(r.content, i.index, e.options.quotes[3])) : (q[b.token].content = Ln(q[b.token].content, b.pos, e.options.quotes[0]), r.content = Ln(r.content, i.index, e.options.quotes[1])), B.length = N;
                      continue e;
                    }
                }
                A ? B.push({
                  token: t,
                  pos: i.index,
                  single: M,
                  level: c
                }) : k && M && (r.content = Ln(r.content, i.index, n1));
              }
          }
      }
  }
}
var Zs = [
  ["block", cA],
  ["abbr", fA],
  ["references", mA],
  ["inline", pA],
  ["footnote_tail", gA],
  ["abbr2", bA],
  ["replacements", AA],
  ["smartquotes", SA]
];
function rm() {
  this.options = {}, this.ruler = new Yt();
  for (var e = 0; e < Zs.length; e++)
    this.ruler.push(Zs[e][0], Zs[e][1]);
}
rm.prototype.process = function(e) {
  var t, r, n;
  for (n = this.ruler.getRules(""), t = 0, r = n.length; t < r; t++)
    n[t](e);
};
function xn(e, t, r, n, i) {
  var a, o, c, f, m, b, A;
  for (this.src = e, this.parser = t, this.options = r, this.env = n, this.tokens = i, this.bMarks = [], this.eMarks = [], this.tShift = [], this.blkIndent = 0, this.line = 0, this.lineMax = 0, this.tight = !1, this.parentType = "root", this.ddIndent = -1, this.level = 0, this.result = "", o = this.src, b = 0, A = !1, c = f = b = 0, m = o.length; f < m; f++) {
    if (a = o.charCodeAt(f), !A)
      if (a === 32) {
        b++;
        continue;
      } else
        A = !0;
    (a === 10 || f === m - 1) && (a !== 10 && f++, this.bMarks.push(c), this.eMarks.push(f), this.tShift.push(b), A = !1, b = 0, c = f + 1);
  }
  this.bMarks.push(o.length), this.eMarks.push(o.length), this.tShift.push(0), this.lineMax = this.bMarks.length - 1;
}
xn.prototype.isEmpty = function(t) {
  return this.bMarks[t] + this.tShift[t] >= this.eMarks[t];
};
xn.prototype.skipEmptyLines = function(t) {
  for (var r = this.lineMax; t < r && !(this.bMarks[t] + this.tShift[t] < this.eMarks[t]); t++)
    ;
  return t;
};
xn.prototype.skipSpaces = function(t) {
  for (var r = this.src.length; t < r && this.src.charCodeAt(t) === 32; t++)
    ;
  return t;
};
xn.prototype.skipChars = function(t, r) {
  for (var n = this.src.length; t < n && this.src.charCodeAt(t) === r; t++)
    ;
  return t;
};
xn.prototype.skipCharsBack = function(t, r, n) {
  if (t <= n)
    return t;
  for (; t > n; )
    if (r !== this.src.charCodeAt(--t))
      return t + 1;
  return t;
};
xn.prototype.getLines = function(t, r, n, i) {
  var a, o, c, f, m, b = t;
  if (t >= r)
    return "";
  if (b + 1 === r)
    return o = this.bMarks[b] + Math.min(this.tShift[b], n), c = i ? this.eMarks[b] + 1 : this.eMarks[b], this.src.slice(o, c);
  for (f = new Array(r - t), a = 0; b < r; b++, a++)
    m = this.tShift[b], m > n && (m = n), m < 0 && (m = 0), o = this.bMarks[b] + m, b + 1 < r || i ? c = this.eMarks[b] + 1 : c = this.eMarks[b], f[a] = this.src.slice(o, c);
  return f.join("");
};
function CA(e, t, r) {
  var n, i;
  if (e.tShift[t] - e.blkIndent < 4)
    return !1;
  for (i = n = t + 1; n < r; ) {
    if (e.isEmpty(n)) {
      n++;
      continue;
    }
    if (e.tShift[n] - e.blkIndent >= 4) {
      n++, i = n;
      continue;
    }
    break;
  }
  return e.line = n, e.tokens.push({
    type: "code",
    content: e.getLines(t, i, 4 + e.blkIndent, !0),
    block: !0,
    lines: [t, e.line],
    level: e.level
  }), !0;
}
function kA(e, t, r, n) {
  var i, a, o, c, f, m = !1, b = e.bMarks[t] + e.tShift[t], A = e.eMarks[t];
  if (b + 3 > A || (i = e.src.charCodeAt(b), i !== 126 && i !== 96) || (f = b, b = e.skipChars(b, i), a = b - f, a < 3) || (o = e.src.slice(b, A).trim(), o.indexOf("`") >= 0))
    return !1;
  if (n)
    return !0;
  for (c = t; c++, !(c >= r || (b = f = e.bMarks[c] + e.tShift[c], A = e.eMarks[c], b < A && e.tShift[c] < e.blkIndent)); )
    if (e.src.charCodeAt(b) === i && !(e.tShift[c] - e.blkIndent >= 4) && (b = e.skipChars(b, i), !(b - f < a) && (b = e.skipSpaces(b), !(b < A)))) {
      m = !0;
      break;
    }
  return a = e.tShift[t], e.line = c + (m ? 1 : 0), e.tokens.push({
    type: "fence",
    params: o,
    content: e.getLines(t + 1, c, a, !0),
    lines: [t, e.line],
    level: e.level
  }), !0;
}
function wA(e, t, r, n) {
  var i, a, o, c, f, m, b, A, k, N, M, F = e.bMarks[t] + e.tShift[t], q = e.eMarks[t];
  if (F > q || e.src.charCodeAt(F++) !== 62 || e.level >= e.options.maxNesting)
    return !1;
  if (n)
    return !0;
  for (e.src.charCodeAt(F) === 32 && F++, f = e.blkIndent, e.blkIndent = 0, c = [e.bMarks[t]], e.bMarks[t] = F, F = F < q ? e.skipSpaces(F) : F, a = F >= q, o = [e.tShift[t]], e.tShift[t] = F - e.bMarks[t], A = e.parser.ruler.getRules("blockquote"), i = t + 1; i < r && (F = e.bMarks[i] + e.tShift[i], q = e.eMarks[i], !(F >= q)); i++) {
    if (e.src.charCodeAt(F++) === 62) {
      e.src.charCodeAt(F) === 32 && F++, c.push(e.bMarks[i]), e.bMarks[i] = F, F = F < q ? e.skipSpaces(F) : F, a = F >= q, o.push(e.tShift[i]), e.tShift[i] = F - e.bMarks[i];
      continue;
    }
    if (a)
      break;
    for (M = !1, k = 0, N = A.length; k < N; k++)
      if (A[k](e, i, r, !0)) {
        M = !0;
        break;
      }
    if (M)
      break;
    c.push(e.bMarks[i]), o.push(e.tShift[i]), e.tShift[i] = -1337;
  }
  for (m = e.parentType, e.parentType = "blockquote", e.tokens.push({
    type: "blockquote_open",
    lines: b = [t, 0],
    level: e.level++
  }), e.parser.tokenize(e, t, i), e.tokens.push({
    type: "blockquote_close",
    level: --e.level
  }), e.parentType = m, b[1] = e.line, k = 0; k < o.length; k++)
    e.bMarks[k + t] = c[k], e.tShift[k + t] = o[k];
  return e.blkIndent = f, !0;
}
function NA(e, t, r, n) {
  var i, a, o, c = e.bMarks[t], f = e.eMarks[t];
  if (c += e.tShift[t], c > f || (i = e.src.charCodeAt(c++), i !== 42 && i !== 45 && i !== 95))
    return !1;
  for (a = 1; c < f; ) {
    if (o = e.src.charCodeAt(c++), o !== i && o !== 32)
      return !1;
    o === i && a++;
  }
  return a < 3 ? !1 : (n || (e.line = t + 1, e.tokens.push({
    type: "hr",
    lines: [t, e.line],
    level: e.level
  })), !0);
}
function a1(e, t) {
  var r, n, i;
  return n = e.bMarks[t] + e.tShift[t], i = e.eMarks[t], n >= i || (r = e.src.charCodeAt(n++), r !== 42 && r !== 45 && r !== 43) || n < i && e.src.charCodeAt(n) !== 32 ? -1 : n;
}
function s1(e, t) {
  var r, n = e.bMarks[t] + e.tShift[t], i = e.eMarks[t];
  if (n + 1 >= i || (r = e.src.charCodeAt(n++), r < 48 || r > 57))
    return -1;
  for (; ; ) {
    if (n >= i)
      return -1;
    if (r = e.src.charCodeAt(n++), !(r >= 48 && r <= 57)) {
      if (r === 41 || r === 46)
        break;
      return -1;
    }
  }
  return n < i && e.src.charCodeAt(n) !== 32 ? -1 : n;
}
function IA(e, t) {
  var r, n, i = e.level + 2;
  for (r = t + 2, n = e.tokens.length - 2; r < n; r++)
    e.tokens[r].level === i && e.tokens[r].type === "paragraph_open" && (e.tokens[r + 2].tight = !0, e.tokens[r].tight = !0, r += 2);
}
function MA(e, t, r, n) {
  var i, a, o, c, f, m, b, A, k, N, M, F, q, B, $, V, oe, pe, se = !0, We, Qe, Ve, Ze;
  if ((A = s1(e, t)) >= 0)
    q = !0;
  else if ((A = a1(e, t)) >= 0)
    q = !1;
  else
    return !1;
  if (e.level >= e.options.maxNesting)
    return !1;
  if (F = e.src.charCodeAt(A - 1), n)
    return !0;
  for ($ = e.tokens.length, q ? (b = e.bMarks[t] + e.tShift[t], M = Number(e.src.substr(b, A - b - 1)), e.tokens.push({
    type: "ordered_list_open",
    order: M,
    lines: oe = [t, 0],
    level: e.level++
  })) : e.tokens.push({
    type: "bullet_list_open",
    lines: oe = [t, 0],
    level: e.level++
  }), i = t, V = !1, We = e.parser.ruler.getRules("list"); i < r && (B = e.skipSpaces(A), k = e.eMarks[i], B >= k ? N = 1 : N = B - A, N > 4 && (N = 1), N < 1 && (N = 1), a = A - e.bMarks[i] + N, e.tokens.push({
    type: "list_item_open",
    lines: pe = [t, 0],
    level: e.level++
  }), c = e.blkIndent, f = e.tight, o = e.tShift[t], m = e.parentType, e.tShift[t] = B - e.bMarks[t], e.blkIndent = a, e.tight = !0, e.parentType = "list", e.parser.tokenize(e, t, r, !0), (!e.tight || V) && (se = !1), V = e.line - t > 1 && e.isEmpty(e.line - 1), e.blkIndent = c, e.tShift[t] = o, e.tight = f, e.parentType = m, e.tokens.push({
    type: "list_item_close",
    level: --e.level
  }), i = t = e.line, pe[1] = i, B = e.bMarks[t], !(i >= r || e.isEmpty(i) || e.tShift[i] < e.blkIndent)); ) {
    for (Ze = !1, Qe = 0, Ve = We.length; Qe < Ve; Qe++)
      if (We[Qe](e, i, r, !0)) {
        Ze = !0;
        break;
      }
    if (Ze)
      break;
    if (q) {
      if (A = s1(e, i), A < 0)
        break;
    } else if (A = a1(e, i), A < 0)
      break;
    if (F !== e.src.charCodeAt(A - 1))
      break;
  }
  return e.tokens.push({
    type: q ? "ordered_list_close" : "bullet_list_close",
    level: --e.level
  }), oe[1] = i, e.line = i, se && IA(e, $), !0;
}
function DA(e, t, r, n) {
  var i, a, o, c, f, m = e.bMarks[t] + e.tShift[t], b = e.eMarks[t];
  if (m + 4 > b || e.src.charCodeAt(m) !== 91 || e.src.charCodeAt(m + 1) !== 94 || e.level >= e.options.maxNesting)
    return !1;
  for (c = m + 2; c < b; c++) {
    if (e.src.charCodeAt(c) === 32)
      return !1;
    if (e.src.charCodeAt(c) === 93)
      break;
  }
  return c === m + 2 || c + 1 >= b || e.src.charCodeAt(++c) !== 58 ? !1 : (n || (c++, e.env.footnotes || (e.env.footnotes = {}), e.env.footnotes.refs || (e.env.footnotes.refs = {}), f = e.src.slice(m + 2, c - 2), e.env.footnotes.refs[":" + f] = -1, e.tokens.push({
    type: "footnote_reference_open",
    label: f,
    level: e.level++
  }), i = e.bMarks[t], a = e.tShift[t], o = e.parentType, e.tShift[t] = e.skipSpaces(c) - c, e.bMarks[t] = c, e.blkIndent += 4, e.parentType = "footnote", e.tShift[t] < e.blkIndent && (e.tShift[t] += e.blkIndent, e.bMarks[t] -= e.blkIndent), e.parser.tokenize(e, t, r, !0), e.parentType = o, e.blkIndent -= 4, e.tShift[t] = a, e.bMarks[t] = i, e.tokens.push({
    type: "footnote_reference_close",
    level: --e.level
  })), !0);
}
function RA(e, t, r, n) {
  var i, a, o, c = e.bMarks[t] + e.tShift[t], f = e.eMarks[t];
  if (c >= f || (i = e.src.charCodeAt(c), i !== 35 || c >= f))
    return !1;
  for (a = 1, i = e.src.charCodeAt(++c); i === 35 && c < f && a <= 6; )
    a++, i = e.src.charCodeAt(++c);
  return a > 6 || c < f && i !== 32 ? !1 : (n || (f = e.skipCharsBack(f, 32, c), o = e.skipCharsBack(f, 35, c), o > c && e.src.charCodeAt(o - 1) === 32 && (f = o), e.line = t + 1, e.tokens.push({
    type: "heading_open",
    hLevel: a,
    lines: [t, e.line],
    level: e.level
  }), c < f && e.tokens.push({
    type: "inline",
    content: e.src.slice(c, f).trim(),
    level: e.level + 1,
    lines: [t, e.line],
    children: []
  }), e.tokens.push({ type: "heading_close", hLevel: a, level: e.level })), !0);
}
function OA(e, t, r) {
  var n, i, a, o = t + 1;
  return o >= r || e.tShift[o] < e.blkIndent || e.tShift[o] - e.blkIndent > 3 || (i = e.bMarks[o] + e.tShift[o], a = e.eMarks[o], i >= a) || (n = e.src.charCodeAt(i), n !== 45 && n !== 61) || (i = e.skipChars(i, n), i = e.skipSpaces(i), i < a) ? !1 : (i = e.bMarks[t] + e.tShift[t], e.line = o + 1, e.tokens.push({
    type: "heading_open",
    hLevel: n === 61 ? 1 : 2,
    lines: [t, e.line],
    level: e.level
  }), e.tokens.push({
    type: "inline",
    content: e.src.slice(i, e.eMarks[t]).trim(),
    level: e.level + 1,
    lines: [t, e.line - 1],
    children: []
  }), e.tokens.push({
    type: "heading_close",
    hLevel: n === 61 ? 1 : 2,
    level: e.level
  }), !0);
}
var nm = {};
[
  "article",
  "aside",
  "button",
  "blockquote",
  "body",
  "canvas",
  "caption",
  "col",
  "colgroup",
  "dd",
  "div",
  "dl",
  "dt",
  "embed",
  "fieldset",
  "figcaption",
  "figure",
  "footer",
  "form",
  "h1",
  "h2",
  "h3",
  "h4",
  "h5",
  "h6",
  "header",
  "hgroup",
  "hr",
  "iframe",
  "li",
  "map",
  "object",
  "ol",
  "output",
  "p",
  "pre",
  "progress",
  "script",
  "section",
  "style",
  "table",
  "tbody",
  "td",
  "textarea",
  "tfoot",
  "th",
  "tr",
  "thead",
  "ul",
  "video"
].forEach(function(e) {
  nm[e] = !0;
});
var LA = /^<([a-zA-Z]{1,15})[\s\/>]/, BA = /^<\/([a-zA-Z]{1,15})[\s>]/;
function PA(e) {
  var t = e | 32;
  return t >= 97 && t <= 122;
}
function FA(e, t, r, n) {
  var i, a, o, c = e.bMarks[t], f = e.eMarks[t], m = e.tShift[t];
  if (c += m, !e.options.html || m > 3 || c + 2 >= f || e.src.charCodeAt(c) !== 60)
    return !1;
  if (i = e.src.charCodeAt(c + 1), i === 33 || i === 63) {
    if (n)
      return !0;
  } else if (i === 47 || PA(i)) {
    if (i === 47) {
      if (a = e.src.slice(c, f).match(BA), !a)
        return !1;
    } else if (a = e.src.slice(c, f).match(LA), !a)
      return !1;
    if (nm[a[1].toLowerCase()] !== !0)
      return !1;
    if (n)
      return !0;
  } else
    return !1;
  for (o = t + 1; o < e.lineMax && !e.isEmpty(o); )
    o++;
  return e.line = o, e.tokens.push({
    type: "htmlblock",
    level: e.level,
    lines: [t, e.line],
    content: e.getLines(t, o, 0, !0)
  }), !0;
}
function Js(e, t) {
  var r = e.bMarks[t] + e.blkIndent, n = e.eMarks[t];
  return e.src.substr(r, n - r);
}
function HA(e, t, r, n) {
  var i, a, o, c, f, m, b, A, k, N, M;
  if (t + 2 > r || (f = t + 1, e.tShift[f] < e.blkIndent) || (o = e.bMarks[f] + e.tShift[f], o >= e.eMarks[f]) || (i = e.src.charCodeAt(o), i !== 124 && i !== 45 && i !== 58) || (a = Js(e, t + 1), !/^[-:| ]+$/.test(a)) || (m = a.split("|"), m <= 2))
    return !1;
  for (A = [], c = 0; c < m.length; c++) {
    if (k = m[c].trim(), !k) {
      if (c === 0 || c === m.length - 1)
        continue;
      return !1;
    }
    if (!/^:?-+:?$/.test(k))
      return !1;
    k.charCodeAt(k.length - 1) === 58 ? A.push(k.charCodeAt(0) === 58 ? "center" : "right") : k.charCodeAt(0) === 58 ? A.push("left") : A.push("");
  }
  if (a = Js(e, t).trim(), a.indexOf("|") === -1 || (m = a.replace(/^\||\|$/g, "").split("|"), A.length !== m.length))
    return !1;
  if (n)
    return !0;
  for (e.tokens.push({
    type: "table_open",
    lines: N = [t, 0],
    level: e.level++
  }), e.tokens.push({
    type: "thead_open",
    lines: [t, t + 1],
    level: e.level++
  }), e.tokens.push({
    type: "tr_open",
    lines: [t, t + 1],
    level: e.level++
  }), c = 0; c < m.length; c++)
    e.tokens.push({
      type: "th_open",
      align: A[c],
      lines: [t, t + 1],
      level: e.level++
    }), e.tokens.push({
      type: "inline",
      content: m[c].trim(),
      lines: [t, t + 1],
      level: e.level,
      children: []
    }), e.tokens.push({ type: "th_close", level: --e.level });
  for (e.tokens.push({ type: "tr_close", level: --e.level }), e.tokens.push({ type: "thead_close", level: --e.level }), e.tokens.push({
    type: "tbody_open",
    lines: M = [t + 2, 0],
    level: e.level++
  }), f = t + 2; f < r && !(e.tShift[f] < e.blkIndent || (a = Js(e, f).trim(), a.indexOf("|") === -1)); f++) {
    for (m = a.replace(/^\||\|$/g, "").split("|"), e.tokens.push({ type: "tr_open", level: e.level++ }), c = 0; c < m.length; c++)
      e.tokens.push({ type: "td_open", align: A[c], level: e.level++ }), b = m[c].substring(
        m[c].charCodeAt(0) === 124 ? 1 : 0,
        m[c].charCodeAt(m[c].length - 1) === 124 ? m[c].length - 1 : m[c].length
      ).trim(), e.tokens.push({
        type: "inline",
        content: b,
        level: e.level,
        children: []
      }), e.tokens.push({ type: "td_close", level: --e.level });
    e.tokens.push({ type: "tr_close", level: --e.level });
  }
  return e.tokens.push({ type: "tbody_close", level: --e.level }), e.tokens.push({ type: "table_close", level: --e.level }), N[1] = M[1] = f, e.line = f, !0;
}
function Fi(e, t) {
  var r, n, i = e.bMarks[t] + e.tShift[t], a = e.eMarks[t];
  return i >= a || (n = e.src.charCodeAt(i++), n !== 126 && n !== 58) || (r = e.skipSpaces(i), i === r) || r >= a ? -1 : r;
}
function UA(e, t) {
  var r, n, i = e.level + 2;
  for (r = t + 2, n = e.tokens.length - 2; r < n; r++)
    e.tokens[r].level === i && e.tokens[r].type === "paragraph_open" && (e.tokens[r + 2].tight = !0, e.tokens[r].tight = !0, r += 2);
}
function zA(e, t, r, n) {
  var i, a, o, c, f, m, b, A, k, N, M, F, q, B;
  if (n)
    return e.ddIndent < 0 ? !1 : Fi(e, t) >= 0;
  if (b = t + 1, e.isEmpty(b) && ++b > r || e.tShift[b] < e.blkIndent || (i = Fi(e, b), i < 0) || e.level >= e.options.maxNesting)
    return !1;
  m = e.tokens.length, e.tokens.push({
    type: "dl_open",
    lines: f = [t, 0],
    level: e.level++
  }), o = t, a = b;
  e:
    for (; ; ) {
      for (B = !0, q = !1, e.tokens.push({
        type: "dt_open",
        lines: [o, o],
        level: e.level++
      }), e.tokens.push({
        type: "inline",
        content: e.getLines(o, o + 1, e.blkIndent, !1).trim(),
        level: e.level + 1,
        lines: [o, o],
        children: []
      }), e.tokens.push({
        type: "dt_close",
        level: --e.level
      }); ; ) {
        if (e.tokens.push({
          type: "dd_open",
          lines: c = [b, 0],
          level: e.level++
        }), F = e.tight, k = e.ddIndent, A = e.blkIndent, M = e.tShift[a], N = e.parentType, e.blkIndent = e.ddIndent = e.tShift[a] + 2, e.tShift[a] = i - e.bMarks[a], e.tight = !0, e.parentType = "deflist", e.parser.tokenize(e, a, r, !0), (!e.tight || q) && (B = !1), q = e.line - a > 1 && e.isEmpty(e.line - 1), e.tShift[a] = M, e.tight = F, e.parentType = N, e.blkIndent = A, e.ddIndent = k, e.tokens.push({
          type: "dd_close",
          level: --e.level
        }), c[1] = b = e.line, b >= r || e.tShift[b] < e.blkIndent)
          break e;
        if (i = Fi(e, b), i < 0)
          break;
        a = b;
      }
      if (b >= r || (o = b, e.isEmpty(o)) || e.tShift[o] < e.blkIndent || (a = o + 1, a >= r) || (e.isEmpty(a) && a++, a >= r) || e.tShift[a] < e.blkIndent || (i = Fi(e, a), i < 0))
        break;
    }
  return e.tokens.push({
    type: "dl_close",
    level: --e.level
  }), f[1] = b, e.line = b, B && UA(e, m), !0;
}
function qA(e, t) {
  var r, n, i, a, o, c = t + 1, f;
  if (r = e.lineMax, c < r && !e.isEmpty(c)) {
    for (f = e.parser.ruler.getRules("paragraph"); c < r && !e.isEmpty(c); c++)
      if (!(e.tShift[c] - e.blkIndent > 3)) {
        for (i = !1, a = 0, o = f.length; a < o; a++)
          if (f[a](e, c, r, !0)) {
            i = !0;
            break;
          }
        if (i)
          break;
      }
  }
  return n = e.getLines(t, c, e.blkIndent, !1).trim(), e.line = c, n.length && (e.tokens.push({
    type: "paragraph_open",
    tight: !1,
    lines: [t, e.line],
    level: e.level
  }), e.tokens.push({
    type: "inline",
    content: n,
    level: e.level + 1,
    lines: [t, e.line],
    children: []
  }), e.tokens.push({
    type: "paragraph_close",
    tight: !1,
    level: e.level
  })), !0;
}
var Hi = [
  ["code", CA],
  ["fences", kA, ["paragraph", "blockquote", "list"]],
  ["blockquote", wA, ["paragraph", "blockquote", "list"]],
  ["hr", NA, ["paragraph", "blockquote", "list"]],
  ["list", MA, ["paragraph", "blockquote"]],
  ["footnote", DA, ["paragraph"]],
  ["heading", RA, ["paragraph", "blockquote"]],
  ["lheading", OA],
  ["htmlblock", FA, ["paragraph", "blockquote"]],
  ["table", HA, ["paragraph"]],
  ["deflist", zA, ["paragraph"]],
  ["paragraph", qA]
];
function No() {
  this.ruler = new Yt();
  for (var e = 0; e < Hi.length; e++)
    this.ruler.push(Hi[e][0], Hi[e][1], {
      alt: (Hi[e][2] || []).slice()
    });
}
No.prototype.tokenize = function(e, t, r) {
  for (var n = this.ruler.getRules(""), i = n.length, a = t, o = !1, c, f; a < r && (e.line = a = e.skipEmptyLines(a), !(a >= r || e.tShift[a] < e.blkIndent)); ) {
    for (f = 0; f < i && (c = n[f](e, a, r, !1), !c); f++)
      ;
    if (e.tight = !o, e.isEmpty(e.line - 1) && (o = !0), a = e.line, a < r && e.isEmpty(a)) {
      if (o = !0, a++, a < r && e.parentType === "list" && e.isEmpty(a))
        break;
      e.line = a;
    }
  }
};
var YA = /[\n\t]/g, VA = /\r[\n\u0085]|[\u2424\u2028\u0085]/g, GA = /\u00a0/g;
No.prototype.parse = function(e, t, r, n) {
  var i, a = 0, o = 0;
  if (!e)
    return [];
  e = e.replace(GA, " "), e = e.replace(VA, `
`), e.indexOf("	") >= 0 && (e = e.replace(YA, function(c, f) {
    var m;
    return e.charCodeAt(f) === 10 ? (a = f + 1, o = 0, c) : (m = "    ".slice((f - a - o) % 4), o = f - a + 1, m);
  })), i = new xn(e, this, t, r, n), this.tokenize(i, i.line, i.lineMax);
};
function XA(e) {
  switch (e) {
    case 10:
    case 92:
    case 96:
    case 42:
    case 95:
    case 94:
    case 91:
    case 93:
    case 33:
    case 38:
    case 60:
    case 62:
    case 123:
    case 125:
    case 36:
    case 37:
    case 64:
    case 126:
    case 43:
    case 61:
    case 58:
      return !0;
    default:
      return !1;
  }
}
function WA(e, t) {
  for (var r = e.pos; r < e.posMax && !XA(e.src.charCodeAt(r)); )
    r++;
  return r === e.pos ? !1 : (t || (e.pending += e.src.slice(e.pos, r)), e.pos = r, !0);
}
function jA(e, t) {
  var r, n, i = e.pos;
  if (e.src.charCodeAt(i) !== 10)
    return !1;
  if (r = e.pending.length - 1, n = e.posMax, !t)
    if (r >= 0 && e.pending.charCodeAt(r) === 32)
      if (r >= 1 && e.pending.charCodeAt(r - 1) === 32) {
        for (var a = r - 2; a >= 0; a--)
          if (e.pending.charCodeAt(a) !== 32) {
            e.pending = e.pending.substring(0, a + 1);
            break;
          }
        e.push({
          type: "hardbreak",
          level: e.level
        });
      } else
        e.pending = e.pending.slice(0, -1), e.push({
          type: "softbreak",
          level: e.level
        });
    else
      e.push({
        type: "softbreak",
        level: e.level
      });
  for (i++; i < n && e.src.charCodeAt(i) === 32; )
    i++;
  return e.pos = i, !0;
}
var Io = [];
for (var u1 = 0; u1 < 256; u1++)
  Io.push(0);
"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e) {
  Io[e.charCodeAt(0)] = 1;
});
function KA(e, t) {
  var r, n = e.pos, i = e.posMax;
  if (e.src.charCodeAt(n) !== 92)
    return !1;
  if (n++, n < i) {
    if (r = e.src.charCodeAt(n), r < 256 && Io[r] !== 0)
      return t || (e.pending += e.src[n]), e.pos += 2, !0;
    if (r === 10) {
      for (t || e.push({
        type: "hardbreak",
        level: e.level
      }), n++; n < i && e.src.charCodeAt(n) === 32; )
        n++;
      return e.pos = n, !0;
    }
  }
  return t || (e.pending += "\\"), e.pos++, !0;
}
function $A(e, t) {
  var r, n, i, a, o, c = e.pos, f = e.src.charCodeAt(c);
  if (f !== 96)
    return !1;
  for (r = c, c++, n = e.posMax; c < n && e.src.charCodeAt(c) === 96; )
    c++;
  for (i = e.src.slice(r, c), a = o = c; (a = e.src.indexOf("`", o)) !== -1; ) {
    for (o = a + 1; o < n && e.src.charCodeAt(o) === 96; )
      o++;
    if (o - a === i.length)
      return t || e.push({
        type: "code",
        content: e.src.slice(c, a).replace(/[ \n]+/g, " ").trim(),
        block: !1,
        level: e.level
      }), e.pos = o, !0;
  }
  return t || (e.pending += i), e.pos += i.length, !0;
}
function QA(e, t) {
  var r, n, i, a = e.posMax, o = e.pos, c, f;
  if (e.src.charCodeAt(o) !== 126 || t || o + 4 >= a || e.src.charCodeAt(o + 1) !== 126 || e.level >= e.options.maxNesting || (c = o > 0 ? e.src.charCodeAt(o - 1) : -1, f = e.src.charCodeAt(o + 2), c === 126) || f === 126 || f === 32 || f === 10)
    return !1;
  for (n = o + 2; n < a && e.src.charCodeAt(n) === 126; )
    n++;
  if (n > o + 3)
    return e.pos += n - o, t || (e.pending += e.src.slice(o, n)), !0;
  for (e.pos = o + 2, i = 1; e.pos + 1 < a; ) {
    if (e.src.charCodeAt(e.pos) === 126 && e.src.charCodeAt(e.pos + 1) === 126 && (c = e.src.charCodeAt(e.pos - 1), f = e.pos + 2 < a ? e.src.charCodeAt(e.pos + 2) : -1, f !== 126 && c !== 126 && (c !== 32 && c !== 10 ? i-- : f !== 32 && f !== 10 && i++, i <= 0))) {
      r = !0;
      break;
    }
    e.parser.skipToken(e);
  }
  return r ? (e.posMax = e.pos, e.pos = o + 2, t || (e.push({ type: "del_open", level: e.level++ }), e.parser.tokenize(e), e.push({ type: "del_close", level: --e.level })), e.pos = e.posMax + 2, e.posMax = a, !0) : (e.pos = o, !1);
}
function ZA(e, t) {
  var r, n, i, a = e.posMax, o = e.pos, c, f;
  if (e.src.charCodeAt(o) !== 43 || t || o + 4 >= a || e.src.charCodeAt(o + 1) !== 43 || e.level >= e.options.maxNesting || (c = o > 0 ? e.src.charCodeAt(o - 1) : -1, f = e.src.charCodeAt(o + 2), c === 43) || f === 43 || f === 32 || f === 10)
    return !1;
  for (n = o + 2; n < a && e.src.charCodeAt(n) === 43; )
    n++;
  if (n !== o + 2)
    return e.pos += n - o, t || (e.pending += e.src.slice(o, n)), !0;
  for (e.pos = o + 2, i = 1; e.pos + 1 < a; ) {
    if (e.src.charCodeAt(e.pos) === 43 && e.src.charCodeAt(e.pos + 1) === 43 && (c = e.src.charCodeAt(e.pos - 1), f = e.pos + 2 < a ? e.src.charCodeAt(e.pos + 2) : -1, f !== 43 && c !== 43 && (c !== 32 && c !== 10 ? i-- : f !== 32 && f !== 10 && i++, i <= 0))) {
      r = !0;
      break;
    }
    e.parser.skipToken(e);
  }
  return r ? (e.posMax = e.pos, e.pos = o + 2, t || (e.push({ type: "ins_open", level: e.level++ }), e.parser.tokenize(e), e.push({ type: "ins_close", level: --e.level })), e.pos = e.posMax + 2, e.posMax = a, !0) : (e.pos = o, !1);
}
function JA(e, t) {
  var r, n, i, a = e.posMax, o = e.pos, c, f;
  if (e.src.charCodeAt(o) !== 61 || t || o + 4 >= a || e.src.charCodeAt(o + 1) !== 61 || e.level >= e.options.maxNesting || (c = o > 0 ? e.src.charCodeAt(o - 1) : -1, f = e.src.charCodeAt(o + 2), c === 61) || f === 61 || f === 32 || f === 10)
    return !1;
  for (n = o + 2; n < a && e.src.charCodeAt(n) === 61; )
    n++;
  if (n !== o + 2)
    return e.pos += n - o, t || (e.pending += e.src.slice(o, n)), !0;
  for (e.pos = o + 2, i = 1; e.pos + 1 < a; ) {
    if (e.src.charCodeAt(e.pos) === 61 && e.src.charCodeAt(e.pos + 1) === 61 && (c = e.src.charCodeAt(e.pos - 1), f = e.pos + 2 < a ? e.src.charCodeAt(e.pos + 2) : -1, f !== 61 && c !== 61 && (c !== 32 && c !== 10 ? i-- : f !== 32 && f !== 10 && i++, i <= 0))) {
      r = !0;
      break;
    }
    e.parser.skipToken(e);
  }
  return r ? (e.posMax = e.pos, e.pos = o + 2, t || (e.push({ type: "mark_open", level: e.level++ }), e.parser.tokenize(e), e.push({ type: "mark_close", level: --e.level })), e.pos = e.posMax + 2, e.posMax = a, !0) : (e.pos = o, !1);
}
function o1(e) {
  return e >= 48 && e <= 57 || e >= 65 && e <= 90 || e >= 97 && e <= 122;
}
function l1(e, t) {
  var r = t, n, i, a, o = !0, c = !0, f = e.posMax, m = e.src.charCodeAt(t);
  for (n = t > 0 ? e.src.charCodeAt(t - 1) : -1; r < f && e.src.charCodeAt(r) === m; )
    r++;
  return r >= f && (o = !1), a = r - t, a >= 4 ? o = c = !1 : (i = r < f ? e.src.charCodeAt(r) : -1, (i === 32 || i === 10) && (o = !1), (n === 32 || n === 10) && (c = !1), m === 95 && (o1(n) && (o = !1), o1(i) && (c = !1))), {
    can_open: o,
    can_close: c,
    delims: a
  };
}
function ex(e, t) {
  var r, n, i, a, o, c, f, m = e.posMax, b = e.pos, A = e.src.charCodeAt(b);
  if (A !== 95 && A !== 42 || t)
    return !1;
  if (f = l1(e, b), r = f.delims, !f.can_open)
    return e.pos += r, t || (e.pending += e.src.slice(b, e.pos)), !0;
  if (e.level >= e.options.maxNesting)
    return !1;
  for (e.pos = b + r, c = [r]; e.pos < m; ) {
    if (e.src.charCodeAt(e.pos) === A) {
      if (f = l1(e, e.pos), n = f.delims, f.can_close) {
        for (a = c.pop(), o = n; a !== o; ) {
          if (o < a) {
            c.push(a - o);
            break;
          }
          if (o -= a, c.length === 0)
            break;
          e.pos += a, a = c.pop();
        }
        if (c.length === 0) {
          r = a, i = !0;
          break;
        }
        e.pos += n;
        continue;
      }
      f.can_open && c.push(n), e.pos += n;
      continue;
    }
    e.parser.skipToken(e);
  }
  return i ? (e.posMax = e.pos, e.pos = b + r, t || ((r === 2 || r === 3) && e.push({ type: "strong_open", level: e.level++ }), (r === 1 || r === 3) && e.push({ type: "em_open", level: e.level++ }), e.parser.tokenize(e), (r === 1 || r === 3) && e.push({ type: "em_close", level: --e.level }), (r === 2 || r === 3) && e.push({ type: "strong_close", level: --e.level })), e.pos = e.posMax + r, e.posMax = m, !0) : (e.pos = b, !1);
}
var tx = /\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;
function rx(e, t) {
  var r, n, i = e.posMax, a = e.pos;
  if (e.src.charCodeAt(a) !== 126 || t || a + 2 >= i || e.level >= e.options.maxNesting)
    return !1;
  for (e.pos = a + 1; e.pos < i; ) {
    if (e.src.charCodeAt(e.pos) === 126) {
      r = !0;
      break;
    }
    e.parser.skipToken(e);
  }
  return !r || a + 1 === e.pos || (n = e.src.slice(a + 1, e.pos), n.match(/(^|[^\\])(\\\\)*\s/)) ? (e.pos = a, !1) : (e.posMax = e.pos, e.pos = a + 1, t || e.push({
    type: "sub",
    level: e.level,
    content: n.replace(tx, "$1")
  }), e.pos = e.posMax + 1, e.posMax = i, !0);
}
var nx = /\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;
function ix(e, t) {
  var r, n, i = e.posMax, a = e.pos;
  if (e.src.charCodeAt(a) !== 94 || t || a + 2 >= i || e.level >= e.options.maxNesting)
    return !1;
  for (e.pos = a + 1; e.pos < i; ) {
    if (e.src.charCodeAt(e.pos) === 94) {
      r = !0;
      break;
    }
    e.parser.skipToken(e);
  }
  return !r || a + 1 === e.pos || (n = e.src.slice(a + 1, e.pos), n.match(/(^|[^\\])(\\\\)*\s/)) ? (e.pos = a, !1) : (e.posMax = e.pos, e.pos = a + 1, t || e.push({
    type: "sup",
    level: e.level,
    content: n.replace(nx, "$1")
  }), e.pos = e.posMax + 1, e.posMax = i, !0);
}
function ax(e, t) {
  var r, n, i, a, o, c, f, m, b = !1, A = e.pos, k = e.posMax, N = e.pos, M = e.src.charCodeAt(N);
  if (M === 33 && (b = !0, M = e.src.charCodeAt(++N)), M !== 91 || e.level >= e.options.maxNesting || (r = N + 1, n = V0(e, N), n < 0))
    return !1;
  if (c = n + 1, c < k && e.src.charCodeAt(c) === 40) {
    for (c++; c < k && (m = e.src.charCodeAt(c), !(m !== 32 && m !== 10)); c++)
      ;
    if (c >= k)
      return !1;
    for (N = c, Jd(e, c) ? (a = e.linkContent, c = e.pos) : a = "", N = c; c < k && (m = e.src.charCodeAt(c), !(m !== 32 && m !== 10)); c++)
      ;
    if (c < k && N !== c && em(e, c))
      for (o = e.linkContent, c = e.pos; c < k && (m = e.src.charCodeAt(c), !(m !== 32 && m !== 10)); c++)
        ;
    else
      o = "";
    if (c >= k || e.src.charCodeAt(c) !== 41)
      return e.pos = A, !1;
    c++;
  } else {
    if (e.linkLevel > 0)
      return !1;
    for (; c < k && (m = e.src.charCodeAt(c), !(m !== 32 && m !== 10)); c++)
      ;
    if (c < k && e.src.charCodeAt(c) === 91 && (N = c + 1, c = V0(e, c), c >= 0 ? i = e.src.slice(N, c++) : c = N - 1), i || (typeof i > "u" && (c = n + 1), i = e.src.slice(r, n)), f = e.env.references[tm(i)], !f)
      return e.pos = A, !1;
    a = f.href, o = f.title;
  }
  return t || (e.pos = r, e.posMax = n, b ? e.push({
    type: "image",
    src: a,
    title: o,
    alt: e.src.substr(r, n - r),
    level: e.level
  }) : (e.push({
    type: "link_open",
    href: a,
    title: o,
    level: e.level++
  }), e.linkLevel++, e.parser.tokenize(e), e.linkLevel--, e.push({ type: "link_close", level: --e.level }))), e.pos = c, e.posMax = k, !0;
}
function sx(e, t) {
  var r, n, i, a, o = e.posMax, c = e.pos;
  return c + 2 >= o || e.src.charCodeAt(c) !== 94 || e.src.charCodeAt(c + 1) !== 91 || e.level >= e.options.maxNesting || (r = c + 2, n = V0(e, c + 1), n < 0) ? !1 : (t || (e.env.footnotes || (e.env.footnotes = {}), e.env.footnotes.list || (e.env.footnotes.list = []), i = e.env.footnotes.list.length, e.pos = r, e.posMax = n, e.push({
    type: "footnote_ref",
    id: i,
    level: e.level
  }), e.linkLevel++, a = e.tokens.length, e.parser.tokenize(e), e.env.footnotes.list[i] = { tokens: e.tokens.splice(a) }, e.linkLevel--), e.pos = n + 1, e.posMax = o, !0);
}
function ux(e, t) {
  var r, n, i, a, o = e.posMax, c = e.pos;
  if (c + 3 > o || !e.env.footnotes || !e.env.footnotes.refs || e.src.charCodeAt(c) !== 91 || e.src.charCodeAt(c + 1) !== 94 || e.level >= e.options.maxNesting)
    return !1;
  for (n = c + 2; n < o; n++) {
    if (e.src.charCodeAt(n) === 32 || e.src.charCodeAt(n) === 10)
      return !1;
    if (e.src.charCodeAt(n) === 93)
      break;
  }
  return n === c + 2 || n >= o || (n++, r = e.src.slice(c + 2, n - 1), typeof e.env.footnotes.refs[":" + r] > "u") ? !1 : (t || (e.env.footnotes.list || (e.env.footnotes.list = []), e.env.footnotes.refs[":" + r] < 0 ? (i = e.env.footnotes.list.length, e.env.footnotes.list[i] = { label: r, count: 0 }, e.env.footnotes.refs[":" + r] = i) : i = e.env.footnotes.refs[":" + r], a = e.env.footnotes.list[i].count, e.env.footnotes.list[i].count++, e.push({
    type: "footnote_ref",
    id: i,
    subId: a,
    level: e.level
  })), e.pos = n, e.posMax = o, !0);
}
var ox = [
  "coap",
  "doi",
  "javascript",
  "aaa",
  "aaas",
  "about",
  "acap",
  "cap",
  "cid",
  "crid",
  "data",
  "dav",
  "dict",
  "dns",
  "file",
  "ftp",
  "geo",
  "go",
  "gopher",
  "h323",
  "http",
  "https",
  "iax",
  "icap",
  "im",
  "imap",
  "info",
  "ipp",
  "iris",
  "iris.beep",
  "iris.xpc",
  "iris.xpcs",
  "iris.lwz",
  "ldap",
  "mailto",
  "mid",
  "msrp",
  "msrps",
  "mtqp",
  "mupdate",
  "news",
  "nfs",
  "ni",
  "nih",
  "nntp",
  "opaquelocktoken",
  "pop",
  "pres",
  "rtsp",
  "service",
  "session",
  "shttp",
  "sieve",
  "sip",
  "sips",
  "sms",
  "snmp",
  "soap.beep",
  "soap.beeps",
  "tag",
  "tel",
  "telnet",
  "tftp",
  "thismessage",
  "tn3270",
  "tip",
  "tv",
  "urn",
  "vemmi",
  "ws",
  "wss",
  "xcon",
  "xcon-userid",
  "xmlrpc.beep",
  "xmlrpc.beeps",
  "xmpp",
  "z39.50r",
  "z39.50s",
  "adiumxtra",
  "afp",
  "afs",
  "aim",
  "apt",
  "attachment",
  "aw",
  "beshare",
  "bitcoin",
  "bolo",
  "callto",
  "chrome",
  "chrome-extension",
  "com-eventbrite-attendee",
  "content",
  "cvs",
  "dlna-playsingle",
  "dlna-playcontainer",
  "dtn",
  "dvb",
  "ed2k",
  "facetime",
  "feed",
  "finger",
  "fish",
  "gg",
  "git",
  "gizmoproject",
  "gtalk",
  "hcp",
  "icon",
  "ipn",
  "irc",
  "irc6",
  "ircs",
  "itms",
  "jar",
  "jms",
  "keyparc",
  "lastfm",
  "ldaps",
  "magnet",
  "maps",
  "market",
  "message",
  "mms",
  "ms-help",
  "msnim",
  "mumble",
  "mvn",
  "notes",
  "oid",
  "palm",
  "paparazzi",
  "platform",
  "proxy",
  "psyc",
  "query",
  "res",
  "resource",
  "rmi",
  "rsync",
  "rtmp",
  "secondlife",
  "sftp",
  "sgn",
  "skype",
  "smb",
  "soldat",
  "spotify",
  "ssh",
  "steam",
  "svn",
  "teamspeak",
  "things",
  "udp",
  "unreal",
  "ut2004",
  "ventrilo",
  "view-source",
  "webcal",
  "wtai",
  "wyciwyg",
  "xfire",
  "xri",
  "ymsgr"
], lx = /^<([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])?)*)>/, cx = /^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;
function hx(e, t) {
  var r, n, i, a, o, c = e.pos;
  return e.src.charCodeAt(c) !== 60 || (r = e.src.slice(c), r.indexOf(">") < 0) ? !1 : (n = r.match(cx), n ? ox.indexOf(n[1].toLowerCase()) < 0 || (a = n[0].slice(1, -1), o = Pu(a), !e.parser.validateLink(a)) ? !1 : (t || (e.push({
    type: "link_open",
    href: o,
    level: e.level
  }), e.push({
    type: "text",
    content: a,
    level: e.level + 1
  }), e.push({ type: "link_close", level: e.level })), e.pos += n[0].length, !0) : (i = r.match(lx), i ? (a = i[0].slice(1, -1), o = Pu("mailto:" + a), e.parser.validateLink(o) ? (t || (e.push({
    type: "link_open",
    href: o,
    level: e.level
  }), e.push({
    type: "text",
    content: a,
    level: e.level + 1
  }), e.push({ type: "link_close", level: e.level })), e.pos += i[0].length, !0) : !1) : !1));
}
function Fa(e, t) {
  return e = e.source, t = t || "", function r(n, i) {
    return n ? (i = i.source || i, e = e.replace(n, i), r) : new RegExp(e, t);
  };
}
var fx = /[a-zA-Z_:][a-zA-Z0-9:._-]*/, dx = /[^"'=<>`\x00-\x20]+/, mx = /'[^']*'/, px = /"[^"]*"/, gx = Fa(/(?:unquoted|single_quoted|double_quoted)/)("unquoted", dx)("single_quoted", mx)("double_quoted", px)(), bx = Fa(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name", fx)("attr_value", gx)(), Ex = Fa(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute", bx)(), vx = /<\/[A-Za-z][A-Za-z0-9]*\s*>/, _x = /<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/, Tx = /<[?].*?[?]>/, Ax = /<![A-Z]+\s+[^>]*>/, xx = /<!\[CDATA\[[\s\S]*?\]\]>/, yx = Fa(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag", Ex)("close_tag", vx)("comment", _x)("processing", Tx)("declaration", Ax)("cdata", xx)();
function Sx(e) {
  var t = e | 32;
  return t >= 97 && t <= 122;
}
function Cx(e, t) {
  var r, n, i, a = e.pos;
  return !e.options.html || (i = e.posMax, e.src.charCodeAt(a) !== 60 || a + 2 >= i) || (r = e.src.charCodeAt(a + 1), r !== 33 && r !== 63 && r !== 47 && !Sx(r)) || (n = e.src.slice(a).match(yx), !n) ? !1 : (t || e.push({
    type: "htmltag",
    content: e.src.slice(a, a + n[0].length),
    level: e.level
  }), e.pos += n[0].length, !0);
}
var kx = /^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i, wx = /^&([a-z][a-z0-9]{1,31});/i;
function Nx(e, t) {
  var r, n, i, a = e.pos, o = e.posMax;
  if (e.src.charCodeAt(a) !== 38)
    return !1;
  if (a + 1 < o) {
    if (r = e.src.charCodeAt(a + 1), r === 35) {
      if (i = e.src.slice(a).match(kx), i)
        return t || (n = i[1][0].toLowerCase() === "x" ? parseInt(i[1].slice(1), 16) : parseInt(i[1], 10), e.pending += Qd(n) ? Bu(n) : Bu(65533)), e.pos += i[0].length, !0;
    } else if (i = e.src.slice(a).match(wx), i) {
      var c = Kd(i[1]);
      if (i[1] !== c)
        return t || (e.pending += c), e.pos += i[0].length, !0;
    }
  }
  return t || (e.pending += "&"), e.pos++, !0;
}
var eu = [
  ["text", WA],
  ["newline", jA],
  ["escape", KA],
  ["backticks", $A],
  ["del", QA],
  ["ins", ZA],
  ["mark", JA],
  ["emphasis", ex],
  ["sub", rx],
  ["sup", ix],
  ["links", ax],
  ["footnote_inline", sx],
  ["footnote_ref", ux],
  ["autolink", hx],
  ["htmltag", Cx],
  ["entity", Nx]
];
function Ha() {
  this.ruler = new Yt();
  for (var e = 0; e < eu.length; e++)
    this.ruler.push(eu[e][0], eu[e][1]);
  this.validateLink = Ix;
}
Ha.prototype.skipToken = function(e) {
  var t = this.ruler.getRules(""), r = t.length, n = e.pos, i, a;
  if ((a = e.cacheGet(n)) > 0) {
    e.pos = a;
    return;
  }
  for (i = 0; i < r; i++)
    if (t[i](e, !0)) {
      e.cacheSet(n, e.pos);
      return;
    }
  e.pos++, e.cacheSet(n, e.pos);
};
Ha.prototype.tokenize = function(e) {
  for (var t = this.ruler.getRules(""), r = t.length, n = e.posMax, i, a; e.pos < n; ) {
    for (a = 0; a < r && (i = t[a](e, !1), !i); a++)
      ;
    if (i) {
      if (e.pos >= n)
        break;
      continue;
    }
    e.pending += e.src[e.pos++];
  }
  e.pending && e.pushPending();
};
Ha.prototype.parse = function(e, t, r, n) {
  var i = new An(e, this, t, r, n);
  this.tokenize(i);
};
function Ix(e) {
  var t = ["vbscript", "javascript", "file", "data"], r = e.trim().toLowerCase();
  return r = bn(r), !(r.indexOf(":") !== -1 && t.indexOf(r.split(":")[0]) !== -1);
}
var Mx = {
  options: {
    html: !1,
    // Enable HTML tags in source
    xhtmlOut: !1,
    // Use '/' to close single tags (<br />)
    breaks: !1,
    // Convert '\n' in paragraphs into <br>
    langPrefix: "language-",
    // CSS language prefix for fenced blocks
    linkTarget: "",
    // set target to open link in
    // Enable some language-neutral replacements + quotes beautification
    typographer: !1,
    // Double + single quotes replacement pairs, when typographer enabled,
    // and smartquotes on. Set doubles to '«»' for Russian, '„“' for German.
    quotes: "“”‘’",
    // Highlighter function. Should return escaped HTML,
    // or '' if input not changed
    //
    // function (/*str, lang*/) { return ''; }
    //
    highlight: null,
    maxNesting: 20
    // Internal protection, recursion limit
  },
  components: {
    core: {
      rules: [
        "block",
        "inline",
        "references",
        "replacements",
        "smartquotes",
        "references",
        "abbr2",
        "footnote_tail"
      ]
    },
    block: {
      rules: [
        "blockquote",
        "code",
        "fences",
        "footnote",
        "heading",
        "hr",
        "htmlblock",
        "lheading",
        "list",
        "paragraph",
        "table"
      ]
    },
    inline: {
      rules: [
        "autolink",
        "backticks",
        "del",
        "emphasis",
        "entity",
        "escape",
        "footnote_ref",
        "htmltag",
        "links",
        "newline",
        "text"
      ]
    }
  }
}, Dx = {
  options: {
    html: !1,
    // Enable HTML tags in source
    xhtmlOut: !1,
    // Use '/' to close single tags (<br />)
    breaks: !1,
    // Convert '\n' in paragraphs into <br>
    langPrefix: "language-",
    // CSS language prefix for fenced blocks
    linkTarget: "",
    // set target to open link in
    // Enable some language-neutral replacements + quotes beautification
    typographer: !1,
    // Double + single quotes replacement pairs, when typographer enabled,
    // and smartquotes on. Set doubles to '«»' for Russian, '„“' for German.
    quotes: "“”‘’",
    // Highlighter function. Should return escaped HTML,
    // or '' if input not changed
    //
    // function (/*str, lang*/) { return ''; }
    //
    highlight: null,
    maxNesting: 20
    // Internal protection, recursion limit
  },
  components: {
    // Don't restrict core/block/inline rules
    core: {},
    block: {},
    inline: {}
  }
}, Rx = {
  options: {
    html: !0,
    // Enable HTML tags in source
    xhtmlOut: !0,
    // Use '/' to close single tags (<br />)
    breaks: !1,
    // Convert '\n' in paragraphs into <br>
    langPrefix: "language-",
    // CSS language prefix for fenced blocks
    linkTarget: "",
    // set target to open link in
    // Enable some language-neutral replacements + quotes beautification
    typographer: !1,
    // Double + single quotes replacement pairs, when typographer enabled,
    // and smartquotes on. Set doubles to '«»' for Russian, '„“' for German.
    quotes: "“”‘’",
    // Highlighter function. Should return escaped HTML,
    // or '' if input not changed
    //
    // function (/*str, lang*/) { return ''; }
    //
    highlight: null,
    maxNesting: 20
    // Internal protection, recursion limit
  },
  components: {
    core: {
      rules: [
        "block",
        "inline",
        "references",
        "abbr2"
      ]
    },
    block: {
      rules: [
        "blockquote",
        "code",
        "fences",
        "heading",
        "hr",
        "htmlblock",
        "lheading",
        "list",
        "paragraph"
      ]
    },
    inline: {
      rules: [
        "autolink",
        "backticks",
        "emphasis",
        "entity",
        "escape",
        "htmltag",
        "links",
        "newline",
        "text"
      ]
    }
  }
}, Ox = {
  default: Mx,
  full: Dx,
  commonmark: Rx
};
function im(e, t, r) {
  this.src = t, this.env = r, this.options = e.options, this.tokens = [], this.inlineMode = !1, this.inline = e.inline, this.block = e.block, this.renderer = e.renderer, this.typographer = e.typographer;
}
function Zr(e, t) {
  typeof e != "string" && (t = e, e = "default"), t && t.linkify != null && console.warn(
    `linkify option is removed. Use linkify plugin instead:

import Remarkable from 'remarkable';
import linkify from 'remarkable/linkify';
new Remarkable().use(linkify)
`
  ), this.inline = new Ha(), this.block = new No(), this.core = new rm(), this.renderer = new wo(), this.ruler = new Yt(), this.options = {}, this.configure(Ox[e]), this.set(t || {});
}
Zr.prototype.set = function(e) {
  $d(this.options, e);
};
Zr.prototype.configure = function(e) {
  var t = this;
  if (!e)
    throw new Error("Wrong `remarkable` preset, check name/content");
  e.options && t.set(e.options), e.components && Object.keys(e.components).forEach(function(r) {
    e.components[r].rules && t[r].ruler.enable(e.components[r].rules, !0);
  });
};
Zr.prototype.use = function(e, t) {
  return e(this, t), this;
};
Zr.prototype.parse = function(e, t) {
  var r = new im(this, e, t);
  return this.core.process(r), r.tokens;
};
Zr.prototype.render = function(e, t) {
  return t = t || {}, this.renderer.render(this.parse(e, t), this.options, t);
};
Zr.prototype.parseInline = function(e, t) {
  var r = new im(this, e, t);
  return r.inlineMode = !0, this.core.process(r), r.tokens;
};
Zr.prototype.renderInline = function(e, t) {
  return t = t || {}, this.renderer.render(this.parseInline(e, t), this.options, t);
};
/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
function am(e) {
  return typeof e > "u" || e === null;
}
function Lx(e) {
  return typeof e == "object" && e !== null;
}
function Bx(e) {
  return Array.isArray(e) ? e : am(e) ? [] : [e];
}
function Px(e, t) {
  var r, n, i, a;
  if (t)
    for (a = Object.keys(t), r = 0, n = a.length; r < n; r += 1)
      i = a[r], e[i] = t[i];
  return e;
}
function Fx(e, t) {
  var r = "", n;
  for (n = 0; n < t; n += 1)
    r += e;
  return r;
}
function Hx(e) {
  return e === 0 && Number.NEGATIVE_INFINITY === 1 / e;
}
var Ux = am, zx = Lx, qx = Bx, Yx = Fx, Vx = Hx, Gx = Px, ft = {
  isNothing: Ux,
  isObject: zx,
  toArray: qx,
  repeat: Yx,
  isNegativeZero: Vx,
  extend: Gx
};
function sm(e, t) {
  var r = "", n = e.reason || "(unknown reason)";
  return e.mark ? (e.mark.name && (r += 'in "' + e.mark.name + '" '), r += "(" + (e.mark.line + 1) + ":" + (e.mark.column + 1) + ")", !t && e.mark.snippet && (r += `

` + e.mark.snippet), n + " " + r) : n;
}
function G0(e, t) {
  Error.call(this), this.name = "YAMLException", this.reason = e, this.mark = t, this.message = sm(this, !1), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || "";
}
G0.prototype = Object.create(Error.prototype);
G0.prototype.constructor = G0;
G0.prototype.toString = function(t) {
  return this.name + ": " + sm(this, t);
};
var yt = G0;
function tu(e, t, r, n, i) {
  var a = "", o = "", c = Math.floor(i / 2) - 1;
  return n - t > c && (a = " ... ", t = n - c + a.length), r - n > c && (o = " ...", r = n + c - o.length), {
    str: a + e.slice(t, r).replace(/\t/g, "→") + o,
    pos: n - t + a.length
    // relative position
  };
}
function ru(e, t) {
  return ft.repeat(" ", t - e.length) + e;
}
function Xx(e, t) {
  if (t = Object.create(t || null), !e.buffer)
    return null;
  t.maxLength || (t.maxLength = 79), typeof t.indent != "number" && (t.indent = 1), typeof t.linesBefore != "number" && (t.linesBefore = 3), typeof t.linesAfter != "number" && (t.linesAfter = 2);
  for (var r = /\r?\n|\r|\0/g, n = [0], i = [], a, o = -1; a = r.exec(e.buffer); )
    i.push(a.index), n.push(a.index + a[0].length), e.position <= a.index && o < 0 && (o = n.length - 2);
  o < 0 && (o = n.length - 1);
  var c = "", f, m, b = Math.min(e.line + t.linesAfter, i.length).toString().length, A = t.maxLength - (t.indent + b + 3);
  for (f = 1; f <= t.linesBefore && !(o - f < 0); f++)
    m = tu(
      e.buffer,
      n[o - f],
      i[o - f],
      e.position - (n[o] - n[o - f]),
      A
    ), c = ft.repeat(" ", t.indent) + ru((e.line - f + 1).toString(), b) + " | " + m.str + `
` + c;
  for (m = tu(e.buffer, n[o], i[o], e.position, A), c += ft.repeat(" ", t.indent) + ru((e.line + 1).toString(), b) + " | " + m.str + `
`, c += ft.repeat("-", t.indent + b + 3 + m.pos) + `^
`, f = 1; f <= t.linesAfter && !(o + f >= i.length); f++)
    m = tu(
      e.buffer,
      n[o + f],
      i[o + f],
      e.position - (n[o] - n[o + f]),
      A
    ), c += ft.repeat(" ", t.indent) + ru((e.line + f + 1).toString(), b) + " | " + m.str + `
`;
  return c.replace(/\n$/, "");
}
var Wx = Xx, jx = [
  "kind",
  "multi",
  "resolve",
  "construct",
  "instanceOf",
  "predicate",
  "represent",
  "representName",
  "defaultStyle",
  "styleAliases"
], Kx = [
  "scalar",
  "sequence",
  "mapping"
];
function $x(e) {
  var t = {};
  return e !== null && Object.keys(e).forEach(function(r) {
    e[r].forEach(function(n) {
      t[String(n)] = r;
    });
  }), t;
}
function Qx(e, t) {
  if (t = t || {}, Object.keys(t).forEach(function(r) {
    if (jx.indexOf(r) === -1)
      throw new yt('Unknown option "' + r + '" is met in definition of "' + e + '" YAML type.');
  }), this.options = t, this.tag = e, this.kind = t.kind || null, this.resolve = t.resolve || function() {
    return !0;
  }, this.construct = t.construct || function(r) {
    return r;
  }, this.instanceOf = t.instanceOf || null, this.predicate = t.predicate || null, this.represent = t.represent || null, this.representName = t.representName || null, this.defaultStyle = t.defaultStyle || null, this.multi = t.multi || !1, this.styleAliases = $x(t.styleAliases || null), Kx.indexOf(this.kind) === -1)
    throw new yt('Unknown kind "' + this.kind + '" is specified for "' + e + '" YAML type.');
}
var bt = Qx;
function c1(e, t) {
  var r = [];
  return e[t].forEach(function(n) {
    var i = r.length;
    r.forEach(function(a, o) {
      a.tag === n.tag && a.kind === n.kind && a.multi === n.multi && (i = o);
    }), r[i] = n;
  }), r;
}
function Zx() {
  var e = {
    scalar: {},
    sequence: {},
    mapping: {},
    fallback: {},
    multi: {
      scalar: [],
      sequence: [],
      mapping: [],
      fallback: []
    }
  }, t, r;
  function n(i) {
    i.multi ? (e.multi[i.kind].push(i), e.multi.fallback.push(i)) : e[i.kind][i.tag] = e.fallback[i.tag] = i;
  }
  for (t = 0, r = arguments.length; t < r; t += 1)
    arguments[t].forEach(n);
  return e;
}
function Fu(e) {
  return this.extend(e);
}
Fu.prototype.extend = function(t) {
  var r = [], n = [];
  if (t instanceof bt)
    n.push(t);
  else if (Array.isArray(t))
    n = n.concat(t);
  else if (t && (Array.isArray(t.implicit) || Array.isArray(t.explicit)))
    t.implicit && (r = r.concat(t.implicit)), t.explicit && (n = n.concat(t.explicit));
  else
    throw new yt("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
  r.forEach(function(a) {
    if (!(a instanceof bt))
      throw new yt("Specified list of YAML types (or a single Type object) contains a non-Type object.");
    if (a.loadKind && a.loadKind !== "scalar")
      throw new yt("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
    if (a.multi)
      throw new yt("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
  }), n.forEach(function(a) {
    if (!(a instanceof bt))
      throw new yt("Specified list of YAML types (or a single Type object) contains a non-Type object.");
  });
  var i = Object.create(Fu.prototype);
  return i.implicit = (this.implicit || []).concat(r), i.explicit = (this.explicit || []).concat(n), i.compiledImplicit = c1(i, "implicit"), i.compiledExplicit = c1(i, "explicit"), i.compiledTypeMap = Zx(i.compiledImplicit, i.compiledExplicit), i;
};
var um = Fu, om = new bt("tag:yaml.org,2002:str", {
  kind: "scalar",
  construct: function(e) {
    return e !== null ? e : "";
  }
}), lm = new bt("tag:yaml.org,2002:seq", {
  kind: "sequence",
  construct: function(e) {
    return e !== null ? e : [];
  }
}), cm = new bt("tag:yaml.org,2002:map", {
  kind: "mapping",
  construct: function(e) {
    return e !== null ? e : {};
  }
}), hm = new um({
  explicit: [
    om,
    lm,
    cm
  ]
});
function Jx(e) {
  if (e === null)
    return !0;
  var t = e.length;
  return t === 1 && e === "~" || t === 4 && (e === "null" || e === "Null" || e === "NULL");
}
function ey() {
  return null;
}
function ty(e) {
  return e === null;
}
var fm = new bt("tag:yaml.org,2002:null", {
  kind: "scalar",
  resolve: Jx,
  construct: ey,
  predicate: ty,
  represent: {
    canonical: function() {
      return "~";
    },
    lowercase: function() {
      return "null";
    },
    uppercase: function() {
      return "NULL";
    },
    camelcase: function() {
      return "Null";
    },
    empty: function() {
      return "";
    }
  },
  defaultStyle: "lowercase"
});
function ry(e) {
  if (e === null)
    return !1;
  var t = e.length;
  return t === 4 && (e === "true" || e === "True" || e === "TRUE") || t === 5 && (e === "false" || e === "False" || e === "FALSE");
}
function ny(e) {
  return e === "true" || e === "True" || e === "TRUE";
}
function iy(e) {
  return Object.prototype.toString.call(e) === "[object Boolean]";
}
var dm = new bt("tag:yaml.org,2002:bool", {
  kind: "scalar",
  resolve: ry,
  construct: ny,
  predicate: iy,
  represent: {
    lowercase: function(e) {
      return e ? "true" : "false";
    },
    uppercase: function(e) {
      return e ? "TRUE" : "FALSE";
    },
    camelcase: function(e) {
      return e ? "True" : "False";
    }
  },
  defaultStyle: "lowercase"
});
function ay(e) {
  return 48 <= e && e <= 57 || 65 <= e && e <= 70 || 97 <= e && e <= 102;
}
function sy(e) {
  return 48 <= e && e <= 55;
}
function uy(e) {
  return 48 <= e && e <= 57;
}
function oy(e) {
  if (e === null)
    return !1;
  var t = e.length, r = 0, n = !1, i;
  if (!t)
    return !1;
  if (i = e[r], (i === "-" || i === "+") && (i = e[++r]), i === "0") {
    if (r + 1 === t)
      return !0;
    if (i = e[++r], i === "b") {
      for (r++; r < t; r++)
        if (i = e[r], i !== "_") {
          if (i !== "0" && i !== "1")
            return !1;
          n = !0;
        }
      return n && i !== "_";
    }
    if (i === "x") {
      for (r++; r < t; r++)
        if (i = e[r], i !== "_") {
          if (!ay(e.charCodeAt(r)))
            return !1;
          n = !0;
        }
      return n && i !== "_";
    }
    if (i === "o") {
      for (r++; r < t; r++)
        if (i = e[r], i !== "_") {
          if (!sy(e.charCodeAt(r)))
            return !1;
          n = !0;
        }
      return n && i !== "_";
    }
  }
  if (i === "_")
    return !1;
  for (; r < t; r++)
    if (i = e[r], i !== "_") {
      if (!uy(e.charCodeAt(r)))
        return !1;
      n = !0;
    }
  return !(!n || i === "_");
}
function ly(e) {
  var t = e, r = 1, n;
  if (t.indexOf("_") !== -1 && (t = t.replace(/_/g, "")), n = t[0], (n === "-" || n === "+") && (n === "-" && (r = -1), t = t.slice(1), n = t[0]), t === "0")
    return 0;
  if (n === "0") {
    if (t[1] === "b")
      return r * parseInt(t.slice(2), 2);
    if (t[1] === "x")
      return r * parseInt(t.slice(2), 16);
    if (t[1] === "o")
      return r * parseInt(t.slice(2), 8);
  }
  return r * parseInt(t, 10);
}
function cy(e) {
  return Object.prototype.toString.call(e) === "[object Number]" && e % 1 === 0 && !ft.isNegativeZero(e);
}
var mm = new bt("tag:yaml.org,2002:int", {
  kind: "scalar",
  resolve: oy,
  construct: ly,
  predicate: cy,
  represent: {
    binary: function(e) {
      return e >= 0 ? "0b" + e.toString(2) : "-0b" + e.toString(2).slice(1);
    },
    octal: function(e) {
      return e >= 0 ? "0o" + e.toString(8) : "-0o" + e.toString(8).slice(1);
    },
    decimal: function(e) {
      return e.toString(10);
    },
    /* eslint-disable max-len */
    hexadecimal: function(e) {
      return e >= 0 ? "0x" + e.toString(16).toUpperCase() : "-0x" + e.toString(16).toUpperCase().slice(1);
    }
  },
  defaultStyle: "decimal",
  styleAliases: {
    binary: [2, "bin"],
    octal: [8, "oct"],
    decimal: [10, "dec"],
    hexadecimal: [16, "hex"]
  }
}), hy = new RegExp(
  // 2.5e4, 2.5 and integers
  "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
);
function fy(e) {
  return !(e === null || !hy.test(e) || // Quick hack to not allow integers end with `_`
  // Probably should update regexp & check speed
  e[e.length - 1] === "_");
}
function dy(e) {
  var t, r;
  return t = e.replace(/_/g, "").toLowerCase(), r = t[0] === "-" ? -1 : 1, "+-".indexOf(t[0]) >= 0 && (t = t.slice(1)), t === ".inf" ? r === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : t === ".nan" ? NaN : r * parseFloat(t, 10);
}
var my = /^[-+]?[0-9]+e/;
function py(e, t) {
  var r;
  if (isNaN(e))
    switch (t) {
      case "lowercase":
        return ".nan";
      case "uppercase":
        return ".NAN";
      case "camelcase":
        return ".NaN";
    }
  else if (Number.POSITIVE_INFINITY === e)
    switch (t) {
      case "lowercase":
        return ".inf";
      case "uppercase":
        return ".INF";
      case "camelcase":
        return ".Inf";
    }
  else if (Number.NEGATIVE_INFINITY === e)
    switch (t) {
      case "lowercase":
        return "-.inf";
      case "uppercase":
        return "-.INF";
      case "camelcase":
        return "-.Inf";
    }
  else if (ft.isNegativeZero(e))
    return "-0.0";
  return r = e.toString(10), my.test(r) ? r.replace("e", ".e") : r;
}
function gy(e) {
  return Object.prototype.toString.call(e) === "[object Number]" && (e % 1 !== 0 || ft.isNegativeZero(e));
}
var pm = new bt("tag:yaml.org,2002:float", {
  kind: "scalar",
  resolve: fy,
  construct: dy,
  predicate: gy,
  represent: py,
  defaultStyle: "lowercase"
}), gm = hm.extend({
  implicit: [
    fm,
    dm,
    mm,
    pm
  ]
}), bm = gm, Em = new RegExp(
  "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
), vm = new RegExp(
  "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
);
function by(e) {
  return e === null ? !1 : Em.exec(e) !== null || vm.exec(e) !== null;
}
function Ey(e) {
  var t, r, n, i, a, o, c, f = 0, m = null, b, A, k;
  if (t = Em.exec(e), t === null && (t = vm.exec(e)), t === null)
    throw new Error("Date resolve error");
  if (r = +t[1], n = +t[2] - 1, i = +t[3], !t[4])
    return new Date(Date.UTC(r, n, i));
  if (a = +t[4], o = +t[5], c = +t[6], t[7]) {
    for (f = t[7].slice(0, 3); f.length < 3; )
      f += "0";
    f = +f;
  }
  return t[9] && (b = +t[10], A = +(t[11] || 0), m = (b * 60 + A) * 6e4, t[9] === "-" && (m = -m)), k = new Date(Date.UTC(r, n, i, a, o, c, f)), m && k.setTime(k.getTime() - m), k;
}
function vy(e) {
  return e.toISOString();
}
var _m = new bt("tag:yaml.org,2002:timestamp", {
  kind: "scalar",
  resolve: by,
  construct: Ey,
  instanceOf: Date,
  represent: vy
});
function _y(e) {
  return e === "<<" || e === null;
}
var Tm = new bt("tag:yaml.org,2002:merge", {
  kind: "scalar",
  resolve: _y
}), Mo = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
\r`;
function Ty(e) {
  if (e === null)
    return !1;
  var t, r, n = 0, i = e.length, a = Mo;
  for (r = 0; r < i; r++)
    if (t = a.indexOf(e.charAt(r)), !(t > 64)) {
      if (t < 0)
        return !1;
      n += 6;
    }
  return n % 8 === 0;
}
function Ay(e) {
  var t, r, n = e.replace(/[\r\n=]/g, ""), i = n.length, a = Mo, o = 0, c = [];
  for (t = 0; t < i; t++)
    t % 4 === 0 && t && (c.push(o >> 16 & 255), c.push(o >> 8 & 255), c.push(o & 255)), o = o << 6 | a.indexOf(n.charAt(t));
  return r = i % 4 * 6, r === 0 ? (c.push(o >> 16 & 255), c.push(o >> 8 & 255), c.push(o & 255)) : r === 18 ? (c.push(o >> 10 & 255), c.push(o >> 2 & 255)) : r === 12 && c.push(o >> 4 & 255), new Uint8Array(c);
}
function xy(e) {
  var t = "", r = 0, n, i, a = e.length, o = Mo;
  for (n = 0; n < a; n++)
    n % 3 === 0 && n && (t += o[r >> 18 & 63], t += o[r >> 12 & 63], t += o[r >> 6 & 63], t += o[r & 63]), r = (r << 8) + e[n];
  return i = a % 3, i === 0 ? (t += o[r >> 18 & 63], t += o[r >> 12 & 63], t += o[r >> 6 & 63], t += o[r & 63]) : i === 2 ? (t += o[r >> 10 & 63], t += o[r >> 4 & 63], t += o[r << 2 & 63], t += o[64]) : i === 1 && (t += o[r >> 2 & 63], t += o[r << 4 & 63], t += o[64], t += o[64]), t;
}
function yy(e) {
  return Object.prototype.toString.call(e) === "[object Uint8Array]";
}
var Am = new bt("tag:yaml.org,2002:binary", {
  kind: "scalar",
  resolve: Ty,
  construct: Ay,
  predicate: yy,
  represent: xy
}), Sy = Object.prototype.hasOwnProperty, Cy = Object.prototype.toString;
function ky(e) {
  if (e === null)
    return !0;
  var t = [], r, n, i, a, o, c = e;
  for (r = 0, n = c.length; r < n; r += 1) {
    if (i = c[r], o = !1, Cy.call(i) !== "[object Object]")
      return !1;
    for (a in i)
      if (Sy.call(i, a))
        if (!o)
          o = !0;
        else
          return !1;
    if (!o)
      return !1;
    if (t.indexOf(a) === -1)
      t.push(a);
    else
      return !1;
  }
  return !0;
}
function wy(e) {
  return e !== null ? e : [];
}
var xm = new bt("tag:yaml.org,2002:omap", {
  kind: "sequence",
  resolve: ky,
  construct: wy
}), Ny = Object.prototype.toString;
function Iy(e) {
  if (e === null)
    return !0;
  var t, r, n, i, a, o = e;
  for (a = new Array(o.length), t = 0, r = o.length; t < r; t += 1) {
    if (n = o[t], Ny.call(n) !== "[object Object]" || (i = Object.keys(n), i.length !== 1))
      return !1;
    a[t] = [i[0], n[i[0]]];
  }
  return !0;
}
function My(e) {
  if (e === null)
    return [];
  var t, r, n, i, a, o = e;
  for (a = new Array(o.length), t = 0, r = o.length; t < r; t += 1)
    n = o[t], i = Object.keys(n), a[t] = [i[0], n[i[0]]];
  return a;
}
var ym = new bt("tag:yaml.org,2002:pairs", {
  kind: "sequence",
  resolve: Iy,
  construct: My
}), Dy = Object.prototype.hasOwnProperty;
function Ry(e) {
  if (e === null)
    return !0;
  var t, r = e;
  for (t in r)
    if (Dy.call(r, t) && r[t] !== null)
      return !1;
  return !0;
}
function Oy(e) {
  return e !== null ? e : {};
}
var Sm = new bt("tag:yaml.org,2002:set", {
  kind: "mapping",
  resolve: Ry,
  construct: Oy
}), Do = bm.extend({
  implicit: [
    _m,
    Tm
  ],
  explicit: [
    Am,
    xm,
    ym,
    Sm
  ]
}), $r = Object.prototype.hasOwnProperty, ba = 1, Cm = 2, km = 3, Ea = 4, nu = 1, Ly = 2, h1 = 3, By = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, Py = /[\x85\u2028\u2029]/, Fy = /[,\[\]\{\}]/, wm = /^(?:!|!!|![a-z\-]+!)$/i, Nm = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
function f1(e) {
  return Object.prototype.toString.call(e);
}
function br(e) {
  return e === 10 || e === 13;
}
function dn(e) {
  return e === 9 || e === 32;
}
function Lt(e) {
  return e === 9 || e === 32 || e === 10 || e === 13;
}
function zn(e) {
  return e === 44 || e === 91 || e === 93 || e === 123 || e === 125;
}
function Hy(e) {
  var t;
  return 48 <= e && e <= 57 ? e - 48 : (t = e | 32, 97 <= t && t <= 102 ? t - 97 + 10 : -1);
}
function Uy(e) {
  return e === 120 ? 2 : e === 117 ? 4 : e === 85 ? 8 : 0;
}
function zy(e) {
  return 48 <= e && e <= 57 ? e - 48 : -1;
}
function d1(e) {
  return e === 48 ? "\0" : e === 97 ? "\x07" : e === 98 ? "\b" : e === 116 || e === 9 ? "	" : e === 110 ? `
` : e === 118 ? "\v" : e === 102 ? "\f" : e === 114 ? "\r" : e === 101 ? "\x1B" : e === 32 ? " " : e === 34 ? '"' : e === 47 ? "/" : e === 92 ? "\\" : e === 78 ? "" : e === 95 ? " " : e === 76 ? "\u2028" : e === 80 ? "\u2029" : "";
}
function qy(e) {
  return e <= 65535 ? String.fromCharCode(e) : String.fromCharCode(
    (e - 65536 >> 10) + 55296,
    (e - 65536 & 1023) + 56320
  );
}
var Im = new Array(256), Mm = new Array(256);
for (var Bn = 0; Bn < 256; Bn++)
  Im[Bn] = d1(Bn) ? 1 : 0, Mm[Bn] = d1(Bn);
function Yy(e, t) {
  this.input = e, this.filename = t.filename || null, this.schema = t.schema || Do, this.onWarning = t.onWarning || null, this.legacy = t.legacy || !1, this.json = t.json || !1, this.listener = t.listener || null, this.implicitTypes = this.schema.compiledImplicit, this.typeMap = this.schema.compiledTypeMap, this.length = e.length, this.position = 0, this.line = 0, this.lineStart = 0, this.lineIndent = 0, this.firstTabInLine = -1, this.documents = [];
}
function Dm(e, t) {
  var r = {
    name: e.filename,
    buffer: e.input.slice(0, -1),
    // omit trailing \0
    position: e.position,
    line: e.line,
    column: e.position - e.lineStart
  };
  return r.snippet = Wx(r), new yt(t, r);
}
function ve(e, t) {
  throw Dm(e, t);
}
function va(e, t) {
  e.onWarning && e.onWarning.call(null, Dm(e, t));
}
var m1 = {
  YAML: function(t, r, n) {
    var i, a, o;
    t.version !== null && ve(t, "duplication of %YAML directive"), n.length !== 1 && ve(t, "YAML directive accepts exactly one argument"), i = /^([0-9]+)\.([0-9]+)$/.exec(n[0]), i === null && ve(t, "ill-formed argument of the YAML directive"), a = parseInt(i[1], 10), o = parseInt(i[2], 10), a !== 1 && ve(t, "unacceptable YAML version of the document"), t.version = n[0], t.checkLineBreaks = o < 2, o !== 1 && o !== 2 && va(t, "unsupported YAML version of the document");
  },
  TAG: function(t, r, n) {
    var i, a;
    n.length !== 2 && ve(t, "TAG directive accepts exactly two arguments"), i = n[0], a = n[1], wm.test(i) || ve(t, "ill-formed tag handle (first argument) of the TAG directive"), $r.call(t.tagMap, i) && ve(t, 'there is a previously declared suffix for "' + i + '" tag handle'), Nm.test(a) || ve(t, "ill-formed tag prefix (second argument) of the TAG directive");
    try {
      a = decodeURIComponent(a);
    } catch {
      ve(t, "tag prefix is malformed: " + a);
    }
    t.tagMap[i] = a;
  }
};
function Kr(e, t, r, n) {
  var i, a, o, c;
  if (t < r) {
    if (c = e.input.slice(t, r), n)
      for (i = 0, a = c.length; i < a; i += 1)
        o = c.charCodeAt(i), o === 9 || 32 <= o && o <= 1114111 || ve(e, "expected valid JSON character");
    else
      By.test(c) && ve(e, "the stream contains non-printable characters");
    e.result += c;
  }
}
function p1(e, t, r, n) {
  var i, a, o, c;
  for (ft.isObject(r) || ve(e, "cannot merge mappings; the provided source object is unacceptable"), i = Object.keys(r), o = 0, c = i.length; o < c; o += 1)
    a = i[o], $r.call(t, a) || (t[a] = r[a], n[a] = !0);
}
function qn(e, t, r, n, i, a, o, c, f) {
  var m, b;
  if (Array.isArray(i))
    for (i = Array.prototype.slice.call(i), m = 0, b = i.length; m < b; m += 1)
      Array.isArray(i[m]) && ve(e, "nested arrays are not supported inside keys"), typeof i == "object" && f1(i[m]) === "[object Object]" && (i[m] = "[object Object]");
  if (typeof i == "object" && f1(i) === "[object Object]" && (i = "[object Object]"), i = String(i), t === null && (t = {}), n === "tag:yaml.org,2002:merge")
    if (Array.isArray(a))
      for (m = 0, b = a.length; m < b; m += 1)
        p1(e, t, a[m], r);
    else
      p1(e, t, a, r);
  else
    !e.json && !$r.call(r, i) && $r.call(t, i) && (e.line = o || e.line, e.lineStart = c || e.lineStart, e.position = f || e.position, ve(e, "duplicated mapping key")), i === "__proto__" ? Object.defineProperty(t, i, {
      configurable: !0,
      enumerable: !0,
      writable: !0,
      value: a
    }) : t[i] = a, delete r[i];
  return t;
}
function Ro(e) {
  var t;
  t = e.input.charCodeAt(e.position), t === 10 ? e.position++ : t === 13 ? (e.position++, e.input.charCodeAt(e.position) === 10 && e.position++) : ve(e, "a line break is expected"), e.line += 1, e.lineStart = e.position, e.firstTabInLine = -1;
}
function lt(e, t, r) {
  for (var n = 0, i = e.input.charCodeAt(e.position); i !== 0; ) {
    for (; dn(i); )
      i === 9 && e.firstTabInLine === -1 && (e.firstTabInLine = e.position), i = e.input.charCodeAt(++e.position);
    if (t && i === 35)
      do
        i = e.input.charCodeAt(++e.position);
      while (i !== 10 && i !== 13 && i !== 0);
    if (br(i))
      for (Ro(e), i = e.input.charCodeAt(e.position), n++, e.lineIndent = 0; i === 32; )
        e.lineIndent++, i = e.input.charCodeAt(++e.position);
    else
      break;
  }
  return r !== -1 && n !== 0 && e.lineIndent < r && va(e, "deficient indentation"), n;
}
function Ua(e) {
  var t = e.position, r;
  return r = e.input.charCodeAt(t), !!((r === 45 || r === 46) && r === e.input.charCodeAt(t + 1) && r === e.input.charCodeAt(t + 2) && (t += 3, r = e.input.charCodeAt(t), r === 0 || Lt(r)));
}
function Oo(e, t) {
  t === 1 ? e.result += " " : t > 1 && (e.result += ft.repeat(`
`, t - 1));
}
function Vy(e, t, r) {
  var n, i, a, o, c, f, m, b, A = e.kind, k = e.result, N;
  if (N = e.input.charCodeAt(e.position), Lt(N) || zn(N) || N === 35 || N === 38 || N === 42 || N === 33 || N === 124 || N === 62 || N === 39 || N === 34 || N === 37 || N === 64 || N === 96 || (N === 63 || N === 45) && (i = e.input.charCodeAt(e.position + 1), Lt(i) || r && zn(i)))
    return !1;
  for (e.kind = "scalar", e.result = "", a = o = e.position, c = !1; N !== 0; ) {
    if (N === 58) {
      if (i = e.input.charCodeAt(e.position + 1), Lt(i) || r && zn(i))
        break;
    } else if (N === 35) {
      if (n = e.input.charCodeAt(e.position - 1), Lt(n))
        break;
    } else {
      if (e.position === e.lineStart && Ua(e) || r && zn(N))
        break;
      if (br(N))
        if (f = e.line, m = e.lineStart, b = e.lineIndent, lt(e, !1, -1), e.lineIndent >= t) {
          c = !0, N = e.input.charCodeAt(e.position);
          continue;
        } else {
          e.position = o, e.line = f, e.lineStart = m, e.lineIndent = b;
          break;
        }
    }
    c && (Kr(e, a, o, !1), Oo(e, e.line - f), a = o = e.position, c = !1), dn(N) || (o = e.position + 1), N = e.input.charCodeAt(++e.position);
  }
  return Kr(e, a, o, !1), e.result ? !0 : (e.kind = A, e.result = k, !1);
}
function Gy(e, t) {
  var r, n, i;
  if (r = e.input.charCodeAt(e.position), r !== 39)
    return !1;
  for (e.kind = "scalar", e.result = "", e.position++, n = i = e.position; (r = e.input.charCodeAt(e.position)) !== 0; )
    if (r === 39)
      if (Kr(e, n, e.position, !0), r = e.input.charCodeAt(++e.position), r === 39)
        n = e.position, e.position++, i = e.position;
      else
        return !0;
    else
      br(r) ? (Kr(e, n, i, !0), Oo(e, lt(e, !1, t)), n = i = e.position) : e.position === e.lineStart && Ua(e) ? ve(e, "unexpected end of the document within a single quoted scalar") : (e.position++, i = e.position);
  ve(e, "unexpected end of the stream within a single quoted scalar");
}
function Xy(e, t) {
  var r, n, i, a, o, c;
  if (c = e.input.charCodeAt(e.position), c !== 34)
    return !1;
  for (e.kind = "scalar", e.result = "", e.position++, r = n = e.position; (c = e.input.charCodeAt(e.position)) !== 0; ) {
    if (c === 34)
      return Kr(e, r, e.position, !0), e.position++, !0;
    if (c === 92) {
      if (Kr(e, r, e.position, !0), c = e.input.charCodeAt(++e.position), br(c))
        lt(e, !1, t);
      else if (c < 256 && Im[c])
        e.result += Mm[c], e.position++;
      else if ((o = Uy(c)) > 0) {
        for (i = o, a = 0; i > 0; i--)
          c = e.input.charCodeAt(++e.position), (o = Hy(c)) >= 0 ? a = (a << 4) + o : ve(e, "expected hexadecimal character");
        e.result += qy(a), e.position++;
      } else
        ve(e, "unknown escape sequence");
      r = n = e.position;
    } else
      br(c) ? (Kr(e, r, n, !0), Oo(e, lt(e, !1, t)), r = n = e.position) : e.position === e.lineStart && Ua(e) ? ve(e, "unexpected end of the document within a double quoted scalar") : (e.position++, n = e.position);
  }
  ve(e, "unexpected end of the stream within a double quoted scalar");
}
function Wy(e, t) {
  var r = !0, n, i, a, o = e.tag, c, f = e.anchor, m, b, A, k, N, M = /* @__PURE__ */ Object.create(null), F, q, B, $;
  if ($ = e.input.charCodeAt(e.position), $ === 91)
    b = 93, N = !1, c = [];
  else if ($ === 123)
    b = 125, N = !0, c = {};
  else
    return !1;
  for (e.anchor !== null && (e.anchorMap[e.anchor] = c), $ = e.input.charCodeAt(++e.position); $ !== 0; ) {
    if (lt(e, !0, t), $ = e.input.charCodeAt(e.position), $ === b)
      return e.position++, e.tag = o, e.anchor = f, e.kind = N ? "mapping" : "sequence", e.result = c, !0;
    r ? $ === 44 && ve(e, "expected the node content, but found ','") : ve(e, "missed comma between flow collection entries"), q = F = B = null, A = k = !1, $ === 63 && (m = e.input.charCodeAt(e.position + 1), Lt(m) && (A = k = !0, e.position++, lt(e, !0, t))), n = e.line, i = e.lineStart, a = e.position, e0(e, t, ba, !1, !0), q = e.tag, F = e.result, lt(e, !0, t), $ = e.input.charCodeAt(e.position), (k || e.line === n) && $ === 58 && (A = !0, $ = e.input.charCodeAt(++e.position), lt(e, !0, t), e0(e, t, ba, !1, !0), B = e.result), N ? qn(e, c, M, q, F, B, n, i, a) : A ? c.push(qn(e, null, M, q, F, B, n, i, a)) : c.push(F), lt(e, !0, t), $ = e.input.charCodeAt(e.position), $ === 44 ? (r = !0, $ = e.input.charCodeAt(++e.position)) : r = !1;
  }
  ve(e, "unexpected end of the stream within a flow collection");
}
function jy(e, t) {
  var r, n, i = nu, a = !1, o = !1, c = t, f = 0, m = !1, b, A;
  if (A = e.input.charCodeAt(e.position), A === 124)
    n = !1;
  else if (A === 62)
    n = !0;
  else
    return !1;
  for (e.kind = "scalar", e.result = ""; A !== 0; )
    if (A = e.input.charCodeAt(++e.position), A === 43 || A === 45)
      nu === i ? i = A === 43 ? h1 : Ly : ve(e, "repeat of a chomping mode identifier");
    else if ((b = zy(A)) >= 0)
      b === 0 ? ve(e, "bad explicit indentation width of a block scalar; it cannot be less than one") : o ? ve(e, "repeat of an indentation width identifier") : (c = t + b - 1, o = !0);
    else
      break;
  if (dn(A)) {
    do
      A = e.input.charCodeAt(++e.position);
    while (dn(A));
    if (A === 35)
      do
        A = e.input.charCodeAt(++e.position);
      while (!br(A) && A !== 0);
  }
  for (; A !== 0; ) {
    for (Ro(e), e.lineIndent = 0, A = e.input.charCodeAt(e.position); (!o || e.lineIndent < c) && A === 32; )
      e.lineIndent++, A = e.input.charCodeAt(++e.position);
    if (!o && e.lineIndent > c && (c = e.lineIndent), br(A)) {
      f++;
      continue;
    }
    if (e.lineIndent < c) {
      i === h1 ? e.result += ft.repeat(`
`, a ? 1 + f : f) : i === nu && a && (e.result += `
`);
      break;
    }
    for (n ? dn(A) ? (m = !0, e.result += ft.repeat(`
`, a ? 1 + f : f)) : m ? (m = !1, e.result += ft.repeat(`
`, f + 1)) : f === 0 ? a && (e.result += " ") : e.result += ft.repeat(`
`, f) : e.result += ft.repeat(`
`, a ? 1 + f : f), a = !0, o = !0, f = 0, r = e.position; !br(A) && A !== 0; )
      A = e.input.charCodeAt(++e.position);
    Kr(e, r, e.position, !1);
  }
  return !0;
}
function g1(e, t) {
  var r, n = e.tag, i = e.anchor, a = [], o, c = !1, f;
  if (e.firstTabInLine !== -1)
    return !1;
  for (e.anchor !== null && (e.anchorMap[e.anchor] = a), f = e.input.charCodeAt(e.position); f !== 0 && (e.firstTabInLine !== -1 && (e.position = e.firstTabInLine, ve(e, "tab characters must not be used in indentation")), !(f !== 45 || (o = e.input.charCodeAt(e.position + 1), !Lt(o)))); ) {
    if (c = !0, e.position++, lt(e, !0, -1) && e.lineIndent <= t) {
      a.push(null), f = e.input.charCodeAt(e.position);
      continue;
    }
    if (r = e.line, e0(e, t, km, !1, !0), a.push(e.result), lt(e, !0, -1), f = e.input.charCodeAt(e.position), (e.line === r || e.lineIndent > t) && f !== 0)
      ve(e, "bad indentation of a sequence entry");
    else if (e.lineIndent < t)
      break;
  }
  return c ? (e.tag = n, e.anchor = i, e.kind = "sequence", e.result = a, !0) : !1;
}
function Ky(e, t, r) {
  var n, i, a, o, c, f, m = e.tag, b = e.anchor, A = {}, k = /* @__PURE__ */ Object.create(null), N = null, M = null, F = null, q = !1, B = !1, $;
  if (e.firstTabInLine !== -1)
    return !1;
  for (e.anchor !== null && (e.anchorMap[e.anchor] = A), $ = e.input.charCodeAt(e.position); $ !== 0; ) {
    if (!q && e.firstTabInLine !== -1 && (e.position = e.firstTabInLine, ve(e, "tab characters must not be used in indentation")), n = e.input.charCodeAt(e.position + 1), a = e.line, ($ === 63 || $ === 58) && Lt(n))
      $ === 63 ? (q && (qn(e, A, k, N, M, null, o, c, f), N = M = F = null), B = !0, q = !0, i = !0) : q ? (q = !1, i = !0) : ve(e, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"), e.position += 1, $ = n;
    else {
      if (o = e.line, c = e.lineStart, f = e.position, !e0(e, r, Cm, !1, !0))
        break;
      if (e.line === a) {
        for ($ = e.input.charCodeAt(e.position); dn($); )
          $ = e.input.charCodeAt(++e.position);
        if ($ === 58)
          $ = e.input.charCodeAt(++e.position), Lt($) || ve(e, "a whitespace character is expected after the key-value separator within a block mapping"), q && (qn(e, A, k, N, M, null, o, c, f), N = M = F = null), B = !0, q = !1, i = !1, N = e.tag, M = e.result;
        else if (B)
          ve(e, "can not read an implicit mapping pair; a colon is missed");
        else
          return e.tag = m, e.anchor = b, !0;
      } else if (B)
        ve(e, "can not read a block mapping entry; a multiline key may not be an implicit key");
      else
        return e.tag = m, e.anchor = b, !0;
    }
    if ((e.line === a || e.lineIndent > t) && (q && (o = e.line, c = e.lineStart, f = e.position), e0(e, t, Ea, !0, i) && (q ? M = e.result : F = e.result), q || (qn(e, A, k, N, M, F, o, c, f), N = M = F = null), lt(e, !0, -1), $ = e.input.charCodeAt(e.position)), (e.line === a || e.lineIndent > t) && $ !== 0)
      ve(e, "bad indentation of a mapping entry");
    else if (e.lineIndent < t)
      break;
  }
  return q && qn(e, A, k, N, M, null, o, c, f), B && (e.tag = m, e.anchor = b, e.kind = "mapping", e.result = A), B;
}
function $y(e) {
  var t, r = !1, n = !1, i, a, o;
  if (o = e.input.charCodeAt(e.position), o !== 33)
    return !1;
  if (e.tag !== null && ve(e, "duplication of a tag property"), o = e.input.charCodeAt(++e.position), o === 60 ? (r = !0, o = e.input.charCodeAt(++e.position)) : o === 33 ? (n = !0, i = "!!", o = e.input.charCodeAt(++e.position)) : i = "!", t = e.position, r) {
    do
      o = e.input.charCodeAt(++e.position);
    while (o !== 0 && o !== 62);
    e.position < e.length ? (a = e.input.slice(t, e.position), o = e.input.charCodeAt(++e.position)) : ve(e, "unexpected end of the stream within a verbatim tag");
  } else {
    for (; o !== 0 && !Lt(o); )
      o === 33 && (n ? ve(e, "tag suffix cannot contain exclamation marks") : (i = e.input.slice(t - 1, e.position + 1), wm.test(i) || ve(e, "named tag handle cannot contain such characters"), n = !0, t = e.position + 1)), o = e.input.charCodeAt(++e.position);
    a = e.input.slice(t, e.position), Fy.test(a) && ve(e, "tag suffix cannot contain flow indicator characters");
  }
  a && !Nm.test(a) && ve(e, "tag name cannot contain such characters: " + a);
  try {
    a = decodeURIComponent(a);
  } catch {
    ve(e, "tag name is malformed: " + a);
  }
  return r ? e.tag = a : $r.call(e.tagMap, i) ? e.tag = e.tagMap[i] + a : i === "!" ? e.tag = "!" + a : i === "!!" ? e.tag = "tag:yaml.org,2002:" + a : ve(e, 'undeclared tag handle "' + i + '"'), !0;
}
function Qy(e) {
  var t, r;
  if (r = e.input.charCodeAt(e.position), r !== 38)
    return !1;
  for (e.anchor !== null && ve(e, "duplication of an anchor property"), r = e.input.charCodeAt(++e.position), t = e.position; r !== 0 && !Lt(r) && !zn(r); )
    r = e.input.charCodeAt(++e.position);
  return e.position === t && ve(e, "name of an anchor node must contain at least one character"), e.anchor = e.input.slice(t, e.position), !0;
}
function Zy(e) {
  var t, r, n;
  if (n = e.input.charCodeAt(e.position), n !== 42)
    return !1;
  for (n = e.input.charCodeAt(++e.position), t = e.position; n !== 0 && !Lt(n) && !zn(n); )
    n = e.input.charCodeAt(++e.position);
  return e.position === t && ve(e, "name of an alias node must contain at least one character"), r = e.input.slice(t, e.position), $r.call(e.anchorMap, r) || ve(e, 'unidentified alias "' + r + '"'), e.result = e.anchorMap[r], lt(e, !0, -1), !0;
}
function e0(e, t, r, n, i) {
  var a, o, c, f = 1, m = !1, b = !1, A, k, N, M, F, q;
  if (e.listener !== null && e.listener("open", e), e.tag = null, e.anchor = null, e.kind = null, e.result = null, a = o = c = Ea === r || km === r, n && lt(e, !0, -1) && (m = !0, e.lineIndent > t ? f = 1 : e.lineIndent === t ? f = 0 : e.lineIndent < t && (f = -1)), f === 1)
    for (; $y(e) || Qy(e); )
      lt(e, !0, -1) ? (m = !0, c = a, e.lineIndent > t ? f = 1 : e.lineIndent === t ? f = 0 : e.lineIndent < t && (f = -1)) : c = !1;
  if (c && (c = m || i), (f === 1 || Ea === r) && (ba === r || Cm === r ? F = t : F = t + 1, q = e.position - e.lineStart, f === 1 ? c && (g1(e, q) || Ky(e, q, F)) || Wy(e, F) ? b = !0 : (o && jy(e, F) || Gy(e, F) || Xy(e, F) ? b = !0 : Zy(e) ? (b = !0, (e.tag !== null || e.anchor !== null) && ve(e, "alias node should not have any properties")) : Vy(e, F, ba === r) && (b = !0, e.tag === null && (e.tag = "?")), e.anchor !== null && (e.anchorMap[e.anchor] = e.result)) : f === 0 && (b = c && g1(e, q))), e.tag === null)
    e.anchor !== null && (e.anchorMap[e.anchor] = e.result);
  else if (e.tag === "?") {
    for (e.result !== null && e.kind !== "scalar" && ve(e, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + e.kind + '"'), A = 0, k = e.implicitTypes.length; A < k; A += 1)
      if (M = e.implicitTypes[A], M.resolve(e.result)) {
        e.result = M.construct(e.result), e.tag = M.tag, e.anchor !== null && (e.anchorMap[e.anchor] = e.result);
        break;
      }
  } else if (e.tag !== "!") {
    if ($r.call(e.typeMap[e.kind || "fallback"], e.tag))
      M = e.typeMap[e.kind || "fallback"][e.tag];
    else
      for (M = null, N = e.typeMap.multi[e.kind || "fallback"], A = 0, k = N.length; A < k; A += 1)
        if (e.tag.slice(0, N[A].tag.length) === N[A].tag) {
          M = N[A];
          break;
        }
    M || ve(e, "unknown tag !<" + e.tag + ">"), e.result !== null && M.kind !== e.kind && ve(e, "unacceptable node kind for !<" + e.tag + '> tag; it should be "' + M.kind + '", not "' + e.kind + '"'), M.resolve(e.result, e.tag) ? (e.result = M.construct(e.result, e.tag), e.anchor !== null && (e.anchorMap[e.anchor] = e.result)) : ve(e, "cannot resolve a node with !<" + e.tag + "> explicit tag");
  }
  return e.listener !== null && e.listener("close", e), e.tag !== null || e.anchor !== null || b;
}
function Jy(e) {
  var t = e.position, r, n, i, a = !1, o;
  for (e.version = null, e.checkLineBreaks = e.legacy, e.tagMap = /* @__PURE__ */ Object.create(null), e.anchorMap = /* @__PURE__ */ Object.create(null); (o = e.input.charCodeAt(e.position)) !== 0 && (lt(e, !0, -1), o = e.input.charCodeAt(e.position), !(e.lineIndent > 0 || o !== 37)); ) {
    for (a = !0, o = e.input.charCodeAt(++e.position), r = e.position; o !== 0 && !Lt(o); )
      o = e.input.charCodeAt(++e.position);
    for (n = e.input.slice(r, e.position), i = [], n.length < 1 && ve(e, "directive name must not be less than one character in length"); o !== 0; ) {
      for (; dn(o); )
        o = e.input.charCodeAt(++e.position);
      if (o === 35) {
        do
          o = e.input.charCodeAt(++e.position);
        while (o !== 0 && !br(o));
        break;
      }
      if (br(o))
        break;
      for (r = e.position; o !== 0 && !Lt(o); )
        o = e.input.charCodeAt(++e.position);
      i.push(e.input.slice(r, e.position));
    }
    o !== 0 && Ro(e), $r.call(m1, n) ? m1[n](e, n, i) : va(e, 'unknown document directive "' + n + '"');
  }
  if (lt(e, !0, -1), e.lineIndent === 0 && e.input.charCodeAt(e.position) === 45 && e.input.charCodeAt(e.position + 1) === 45 && e.input.charCodeAt(e.position + 2) === 45 ? (e.position += 3, lt(e, !0, -1)) : a && ve(e, "directives end mark is expected"), e0(e, e.lineIndent - 1, Ea, !1, !0), lt(e, !0, -1), e.checkLineBreaks && Py.test(e.input.slice(t, e.position)) && va(e, "non-ASCII line breaks are interpreted as content"), e.documents.push(e.result), e.position === e.lineStart && Ua(e)) {
    e.input.charCodeAt(e.position) === 46 && (e.position += 3, lt(e, !0, -1));
    return;
  }
  if (e.position < e.length - 1)
    ve(e, "end of the stream or a document separator is expected");
  else
    return;
}
function Rm(e, t) {
  e = String(e), t = t || {}, e.length !== 0 && (e.charCodeAt(e.length - 1) !== 10 && e.charCodeAt(e.length - 1) !== 13 && (e += `
`), e.charCodeAt(0) === 65279 && (e = e.slice(1)));
  var r = new Yy(e, t), n = e.indexOf("\0");
  for (n !== -1 && (r.position = n, ve(r, "null byte is not allowed in input")), r.input += "\0"; r.input.charCodeAt(r.position) === 32; )
    r.lineIndent += 1, r.position += 1;
  for (; r.position < r.length - 1; )
    Jy(r);
  return r.documents;
}
function eS(e, t, r) {
  t !== null && typeof t == "object" && typeof r > "u" && (r = t, t = null);
  var n = Rm(e, r);
  if (typeof t != "function")
    return n;
  for (var i = 0, a = n.length; i < a; i += 1)
    t(n[i]);
}
function tS(e, t) {
  var r = Rm(e, t);
  if (r.length !== 0) {
    if (r.length === 1)
      return r[0];
    throw new yt("expected a single document in the stream, but found more");
  }
}
var rS = eS, nS = tS, Om = {
  loadAll: rS,
  load: nS
}, Lm = Object.prototype.toString, Bm = Object.prototype.hasOwnProperty, Lo = 65279, iS = 9, X0 = 10, aS = 13, sS = 32, uS = 33, oS = 34, Hu = 35, lS = 37, cS = 38, hS = 39, fS = 42, Pm = 44, dS = 45, _a = 58, mS = 61, pS = 62, gS = 63, bS = 64, Fm = 91, Hm = 93, ES = 96, Um = 123, vS = 124, zm = 125, _t = {};
_t[0] = "\\0";
_t[7] = "\\a";
_t[8] = "\\b";
_t[9] = "\\t";
_t[10] = "\\n";
_t[11] = "\\v";
_t[12] = "\\f";
_t[13] = "\\r";
_t[27] = "\\e";
_t[34] = '\\"';
_t[92] = "\\\\";
_t[133] = "\\N";
_t[160] = "\\_";
_t[8232] = "\\L";
_t[8233] = "\\P";
var _S = [
  "y",
  "Y",
  "yes",
  "Yes",
  "YES",
  "on",
  "On",
  "ON",
  "n",
  "N",
  "no",
  "No",
  "NO",
  "off",
  "Off",
  "OFF"
], TS = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
function AS(e, t) {
  var r, n, i, a, o, c, f;
  if (t === null)
    return {};
  for (r = {}, n = Object.keys(t), i = 0, a = n.length; i < a; i += 1)
    o = n[i], c = String(t[o]), o.slice(0, 2) === "!!" && (o = "tag:yaml.org,2002:" + o.slice(2)), f = e.compiledTypeMap.fallback[o], f && Bm.call(f.styleAliases, c) && (c = f.styleAliases[c]), r[o] = c;
  return r;
}
function xS(e) {
  var t, r, n;
  if (t = e.toString(16).toUpperCase(), e <= 255)
    r = "x", n = 2;
  else if (e <= 65535)
    r = "u", n = 4;
  else if (e <= 4294967295)
    r = "U", n = 8;
  else
    throw new yt("code point within a string may not be greater than 0xFFFFFFFF");
  return "\\" + r + ft.repeat("0", n - t.length) + t;
}
var yS = 1, W0 = 2;
function SS(e) {
  this.schema = e.schema || Do, this.indent = Math.max(1, e.indent || 2), this.noArrayIndent = e.noArrayIndent || !1, this.skipInvalid = e.skipInvalid || !1, this.flowLevel = ft.isNothing(e.flowLevel) ? -1 : e.flowLevel, this.styleMap = AS(this.schema, e.styles || null), this.sortKeys = e.sortKeys || !1, this.lineWidth = e.lineWidth || 80, this.noRefs = e.noRefs || !1, this.noCompatMode = e.noCompatMode || !1, this.condenseFlow = e.condenseFlow || !1, this.quotingType = e.quotingType === '"' ? W0 : yS, this.forceQuotes = e.forceQuotes || !1, this.replacer = typeof e.replacer == "function" ? e.replacer : null, this.implicitTypes = this.schema.compiledImplicit, this.explicitTypes = this.schema.compiledExplicit, this.tag = null, this.result = "", this.duplicates = [], this.usedDuplicates = null;
}
function b1(e, t) {
  for (var r = ft.repeat(" ", t), n = 0, i = -1, a = "", o, c = e.length; n < c; )
    i = e.indexOf(`
`, n), i === -1 ? (o = e.slice(n), n = c) : (o = e.slice(n, i + 1), n = i + 1), o.length && o !== `
` && (a += r), a += o;
  return a;
}
function Uu(e, t) {
  return `
` + ft.repeat(" ", e.indent * t);
}
function CS(e, t) {
  var r, n, i;
  for (r = 0, n = e.implicitTypes.length; r < n; r += 1)
    if (i = e.implicitTypes[r], i.resolve(t))
      return !0;
  return !1;
}
function Ta(e) {
  return e === sS || e === iS;
}
function j0(e) {
  return 32 <= e && e <= 126 || 161 <= e && e <= 55295 && e !== 8232 && e !== 8233 || 57344 <= e && e <= 65533 && e !== Lo || 65536 <= e && e <= 1114111;
}
function E1(e) {
  return j0(e) && e !== Lo && e !== aS && e !== X0;
}
function v1(e, t, r) {
  var n = E1(e), i = n && !Ta(e);
  return (
    // ns-plain-safe
    (r ? (
      // c = flow-in
      n
    ) : n && e !== Pm && e !== Fm && e !== Hm && e !== Um && e !== zm) && e !== Hu && !(t === _a && !i) || E1(t) && !Ta(t) && e === Hu || t === _a && i
  );
}
function kS(e) {
  return j0(e) && e !== Lo && !Ta(e) && e !== dS && e !== gS && e !== _a && e !== Pm && e !== Fm && e !== Hm && e !== Um && e !== zm && e !== Hu && e !== cS && e !== fS && e !== uS && e !== vS && e !== mS && e !== pS && e !== hS && e !== oS && e !== lS && e !== bS && e !== ES;
}
function wS(e) {
  return !Ta(e) && e !== _a;
}
function x0(e, t) {
  var r = e.charCodeAt(t), n;
  return r >= 55296 && r <= 56319 && t + 1 < e.length && (n = e.charCodeAt(t + 1), n >= 56320 && n <= 57343) ? (r - 55296) * 1024 + n - 56320 + 65536 : r;
}
function qm(e) {
  var t = /^\n* /;
  return t.test(e);
}
var Ym = 1, zu = 2, Vm = 3, Gm = 4, Fn = 5;
function NS(e, t, r, n, i, a, o, c) {
  var f, m = 0, b = null, A = !1, k = !1, N = n !== -1, M = -1, F = kS(x0(e, 0)) && wS(x0(e, e.length - 1));
  if (t || o)
    for (f = 0; f < e.length; m >= 65536 ? f += 2 : f++) {
      if (m = x0(e, f), !j0(m))
        return Fn;
      F = F && v1(m, b, c), b = m;
    }
  else {
    for (f = 0; f < e.length; m >= 65536 ? f += 2 : f++) {
      if (m = x0(e, f), m === X0)
        A = !0, N && (k = k || // Foldable line = too long, and not more-indented.
        f - M - 1 > n && e[M + 1] !== " ", M = f);
      else if (!j0(m))
        return Fn;
      F = F && v1(m, b, c), b = m;
    }
    k = k || N && f - M - 1 > n && e[M + 1] !== " ";
  }
  return !A && !k ? F && !o && !i(e) ? Ym : a === W0 ? Fn : zu : r > 9 && qm(e) ? Fn : o ? a === W0 ? Fn : zu : k ? Gm : Vm;
}
function IS(e, t, r, n, i) {
  e.dump = function() {
    if (t.length === 0)
      return e.quotingType === W0 ? '""' : "''";
    if (!e.noCompatMode && (_S.indexOf(t) !== -1 || TS.test(t)))
      return e.quotingType === W0 ? '"' + t + '"' : "'" + t + "'";
    var a = e.indent * Math.max(1, r), o = e.lineWidth === -1 ? -1 : Math.max(Math.min(e.lineWidth, 40), e.lineWidth - a), c = n || e.flowLevel > -1 && r >= e.flowLevel;
    function f(m) {
      return CS(e, m);
    }
    switch (NS(
      t,
      c,
      e.indent,
      o,
      f,
      e.quotingType,
      e.forceQuotes && !n,
      i
    )) {
      case Ym:
        return t;
      case zu:
        return "'" + t.replace(/'/g, "''") + "'";
      case Vm:
        return "|" + _1(t, e.indent) + T1(b1(t, a));
      case Gm:
        return ">" + _1(t, e.indent) + T1(b1(MS(t, o), a));
      case Fn:
        return '"' + DS(t) + '"';
      default:
        throw new yt("impossible error: invalid scalar style");
    }
  }();
}
function _1(e, t) {
  var r = qm(e) ? String(t) : "", n = e[e.length - 1] === `
`, i = n && (e[e.length - 2] === `
` || e === `
`), a = i ? "+" : n ? "" : "-";
  return r + a + `
`;
}
function T1(e) {
  return e[e.length - 1] === `
` ? e.slice(0, -1) : e;
}
function MS(e, t) {
  for (var r = /(\n+)([^\n]*)/g, n = function() {
    var m = e.indexOf(`
`);
    return m = m !== -1 ? m : e.length, r.lastIndex = m, A1(e.slice(0, m), t);
  }(), i = e[0] === `
` || e[0] === " ", a, o; o = r.exec(e); ) {
    var c = o[1], f = o[2];
    a = f[0] === " ", n += c + (!i && !a && f !== "" ? `
` : "") + A1(f, t), i = a;
  }
  return n;
}
function A1(e, t) {
  if (e === "" || e[0] === " ")
    return e;
  for (var r = / [^ ]/g, n, i = 0, a, o = 0, c = 0, f = ""; n = r.exec(e); )
    c = n.index, c - i > t && (a = o > i ? o : c, f += `
` + e.slice(i, a), i = a + 1), o = c;
  return f += `
`, e.length - i > t && o > i ? f += e.slice(i, o) + `
` + e.slice(o + 1) : f += e.slice(i), f.slice(1);
}
function DS(e) {
  for (var t = "", r = 0, n, i = 0; i < e.length; r >= 65536 ? i += 2 : i++)
    r = x0(e, i), n = _t[r], !n && j0(r) ? (t += e[i], r >= 65536 && (t += e[i + 1])) : t += n || xS(r);
  return t;
}
function RS(e, t, r) {
  var n = "", i = e.tag, a, o, c;
  for (a = 0, o = r.length; a < o; a += 1)
    c = r[a], e.replacer && (c = e.replacer.call(r, String(a), c)), (Mr(e, t, c, !1, !1) || typeof c > "u" && Mr(e, t, null, !1, !1)) && (n !== "" && (n += "," + (e.condenseFlow ? "" : " ")), n += e.dump);
  e.tag = i, e.dump = "[" + n + "]";
}
function x1(e, t, r, n) {
  var i = "", a = e.tag, o, c, f;
  for (o = 0, c = r.length; o < c; o += 1)
    f = r[o], e.replacer && (f = e.replacer.call(r, String(o), f)), (Mr(e, t + 1, f, !0, !0, !1, !0) || typeof f > "u" && Mr(e, t + 1, null, !0, !0, !1, !0)) && ((!n || i !== "") && (i += Uu(e, t)), e.dump && X0 === e.dump.charCodeAt(0) ? i += "-" : i += "- ", i += e.dump);
  e.tag = a, e.dump = i || "[]";
}
function OS(e, t, r) {
  var n = "", i = e.tag, a = Object.keys(r), o, c, f, m, b;
  for (o = 0, c = a.length; o < c; o += 1)
    b = "", n !== "" && (b += ", "), e.condenseFlow && (b += '"'), f = a[o], m = r[f], e.replacer && (m = e.replacer.call(r, f, m)), Mr(e, t, f, !1, !1) && (e.dump.length > 1024 && (b += "? "), b += e.dump + (e.condenseFlow ? '"' : "") + ":" + (e.condenseFlow ? "" : " "), Mr(e, t, m, !1, !1) && (b += e.dump, n += b));
  e.tag = i, e.dump = "{" + n + "}";
}
function LS(e, t, r, n) {
  var i = "", a = e.tag, o = Object.keys(r), c, f, m, b, A, k;
  if (e.sortKeys === !0)
    o.sort();
  else if (typeof e.sortKeys == "function")
    o.sort(e.sortKeys);
  else if (e.sortKeys)
    throw new yt("sortKeys must be a boolean or a function");
  for (c = 0, f = o.length; c < f; c += 1)
    k = "", (!n || i !== "") && (k += Uu(e, t)), m = o[c], b = r[m], e.replacer && (b = e.replacer.call(r, m, b)), Mr(e, t + 1, m, !0, !0, !0) && (A = e.tag !== null && e.tag !== "?" || e.dump && e.dump.length > 1024, A && (e.dump && X0 === e.dump.charCodeAt(0) ? k += "?" : k += "? "), k += e.dump, A && (k += Uu(e, t)), Mr(e, t + 1, b, !0, A) && (e.dump && X0 === e.dump.charCodeAt(0) ? k += ":" : k += ": ", k += e.dump, i += k));
  e.tag = a, e.dump = i || "{}";
}
function y1(e, t, r) {
  var n, i, a, o, c, f;
  for (i = r ? e.explicitTypes : e.implicitTypes, a = 0, o = i.length; a < o; a += 1)
    if (c = i[a], (c.instanceOf || c.predicate) && (!c.instanceOf || typeof t == "object" && t instanceof c.instanceOf) && (!c.predicate || c.predicate(t))) {
      if (r ? c.multi && c.representName ? e.tag = c.representName(t) : e.tag = c.tag : e.tag = "?", c.represent) {
        if (f = e.styleMap[c.tag] || c.defaultStyle, Lm.call(c.represent) === "[object Function]")
          n = c.represent(t, f);
        else if (Bm.call(c.represent, f))
          n = c.represent[f](t, f);
        else
          throw new yt("!<" + c.tag + '> tag resolver accepts not "' + f + '" style');
        e.dump = n;
      }
      return !0;
    }
  return !1;
}
function Mr(e, t, r, n, i, a, o) {
  e.tag = null, e.dump = r, y1(e, r, !1) || y1(e, r, !0);
  var c = Lm.call(e.dump), f = n, m;
  n && (n = e.flowLevel < 0 || e.flowLevel > t);
  var b = c === "[object Object]" || c === "[object Array]", A, k;
  if (b && (A = e.duplicates.indexOf(r), k = A !== -1), (e.tag !== null && e.tag !== "?" || k || e.indent !== 2 && t > 0) && (i = !1), k && e.usedDuplicates[A])
    e.dump = "*ref_" + A;
  else {
    if (b && k && !e.usedDuplicates[A] && (e.usedDuplicates[A] = !0), c === "[object Object]")
      n && Object.keys(e.dump).length !== 0 ? (LS(e, t, e.dump, i), k && (e.dump = "&ref_" + A + e.dump)) : (OS(e, t, e.dump), k && (e.dump = "&ref_" + A + " " + e.dump));
    else if (c === "[object Array]")
      n && e.dump.length !== 0 ? (e.noArrayIndent && !o && t > 0 ? x1(e, t - 1, e.dump, i) : x1(e, t, e.dump, i), k && (e.dump = "&ref_" + A + e.dump)) : (RS(e, t, e.dump), k && (e.dump = "&ref_" + A + " " + e.dump));
    else if (c === "[object String]")
      e.tag !== "?" && IS(e, e.dump, t, a, f);
    else {
      if (c === "[object Undefined]")
        return !1;
      if (e.skipInvalid)
        return !1;
      throw new yt("unacceptable kind of an object to dump " + c);
    }
    e.tag !== null && e.tag !== "?" && (m = encodeURI(
      e.tag[0] === "!" ? e.tag.slice(1) : e.tag
    ).replace(/!/g, "%21"), e.tag[0] === "!" ? m = "!" + m : m.slice(0, 18) === "tag:yaml.org,2002:" ? m = "!!" + m.slice(18) : m = "!<" + m + ">", e.dump = m + " " + e.dump);
  }
  return !0;
}
function BS(e, t) {
  var r = [], n = [], i, a;
  for (qu(e, r, n), i = 0, a = n.length; i < a; i += 1)
    t.duplicates.push(r[n[i]]);
  t.usedDuplicates = new Array(a);
}
function qu(e, t, r) {
  var n, i, a;
  if (e !== null && typeof e == "object")
    if (i = t.indexOf(e), i !== -1)
      r.indexOf(i) === -1 && r.push(i);
    else if (t.push(e), Array.isArray(e))
      for (i = 0, a = e.length; i < a; i += 1)
        qu(e[i], t, r);
    else
      for (n = Object.keys(e), i = 0, a = n.length; i < a; i += 1)
        qu(e[n[i]], t, r);
}
function PS(e, t) {
  t = t || {};
  var r = new SS(t);
  r.noRefs || BS(e, r);
  var n = e;
  return r.replacer && (n = r.replacer.call({ "": n }, "", n)), Mr(r, 0, n, !0, !0) ? r.dump + `
` : "";
}
var FS = PS, HS = {
  dump: FS
};
function Bo(e, t) {
  return function() {
    throw new Error("Function yaml." + e + " is removed in js-yaml 4. Use yaml." + t + " instead, which is now safe by default.");
  };
}
var US = bt, zS = um, qS = hm, YS = gm, VS = bm, GS = Do, XS = Om.load, WS = Om.loadAll, jS = HS.dump, KS = yt, $S = {
  binary: Am,
  float: pm,
  map: cm,
  null: fm,
  pairs: ym,
  set: Sm,
  timestamp: _m,
  bool: dm,
  int: mm,
  merge: Tm,
  omap: xm,
  seq: lm,
  str: om
}, QS = Bo("safeLoad", "load"), ZS = Bo("safeLoadAll", "loadAll"), JS = Bo("safeDump", "dump"), eC = {
  Type: US,
  Schema: zS,
  FAILSAFE_SCHEMA: qS,
  JSON_SCHEMA: YS,
  CORE_SCHEMA: VS,
  DEFAULT_SCHEMA: GS,
  load: XS,
  loadAll: WS,
  dump: jS,
  YAMLException: KS,
  types: $S,
  safeLoad: QS,
  safeLoadAll: ZS,
  safeDump: JS
}, iu = { exports: {} }, S1;
function tC() {
  return S1 || (S1 = 1, function(e, t) {
    (function(n, i) {
      e.exports = i();
    })(typeof self < "u" ? self : m9, function() {
      return (
        /******/
        function() {
          var r = {};
          (function() {
            r.d = function(E, s) {
              for (var u in s)
                r.o(s, u) && !r.o(E, u) && Object.defineProperty(E, u, { enumerable: !0, get: s[u] });
            };
          })(), function() {
            r.o = function(E, s) {
              return Object.prototype.hasOwnProperty.call(E, s);
            };
          }();
          var n = {};
          r.d(n, {
            default: function() {
              return (
                /* binding */
                I4
              );
            }
          });
          var i = (
            // Error start position based on passed-in Token or ParseNode.
            // Length of affected text based on passed-in Token or ParseNode.
            // The underlying error message without any context added.
            function E(s, u) {
              this.name = void 0, this.position = void 0, this.length = void 0, this.rawMessage = void 0;
              var l = "KaTeX parse error: " + s, h, p, v = u && u.loc;
              if (v && v.start <= v.end) {
                var T = v.lexer.input;
                h = v.start, p = v.end, h === T.length ? l += " at end of input: " : l += " at position " + (h + 1) + ": ";
                var y = T.slice(h, p).replace(/[^]/g, "$&̲"), w;
                h > 15 ? w = "…" + T.slice(h - 15, h) : w = T.slice(0, h);
                var L;
                p + 15 < T.length ? L = T.slice(p, p + 15) + "…" : L = T.slice(p), l += w + y + L;
              }
              var U = new Error(l);
              return U.name = "ParseError", U.__proto__ = E.prototype, U.position = h, h != null && p != null && (U.length = p - h), U.rawMessage = s, U;
            }
          );
          i.prototype.__proto__ = Error.prototype;
          var a = i, o = function(s, u) {
            return s.indexOf(u) !== -1;
          }, c = function(s, u) {
            return s === void 0 ? u : s;
          }, f = /([A-Z])/g, m = function(s) {
            return s.replace(f, "-$1").toLowerCase();
          }, b = {
            "&": "&amp;",
            ">": "&gt;",
            "<": "&lt;",
            '"': "&quot;",
            "'": "&#x27;"
          }, A = /[&><"']/g;
          function k(E) {
            return String(E).replace(A, function(s) {
              return b[s];
            });
          }
          var N = function E(s) {
            return s.type === "ordgroup" || s.type === "color" ? s.body.length === 1 ? E(s.body[0]) : s : s.type === "font" ? E(s.body) : s;
          }, M = function(s) {
            var u = N(s);
            return u.type === "mathord" || u.type === "textord" || u.type === "atom";
          }, F = function(s) {
            if (!s)
              throw new Error("Expected non-null, but got " + String(s));
            return s;
          }, q = function(s) {
            var u = /^\s*([^\\/#]*?)(?::|&#0*58|&#x0*3a)/i.exec(s);
            return u != null ? u[1] : "_relative";
          }, B = {
            contains: o,
            deflt: c,
            escape: k,
            hyphenate: m,
            getBaseElem: N,
            isCharacterBox: M,
            protocolFromUrl: q
          }, $ = {
            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: function(s) {
                return "#" + s;
              }
            },
            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: function(s, u) {
                return u.push(s), u;
              }
            },
            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: function(s) {
                return Math.max(0, s);
              },
              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: function(s) {
                return Math.max(0, s);
              },
              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: function(s) {
                return Math.max(0, s);
              },
              cli: "-e, --max-expand <n>",
              cliProcessor: function(s) {
                return s === "Infinity" ? 1 / 0 : parseInt(s);
              }
            },
            globalGroup: {
              type: "boolean",
              cli: !1
            }
          };
          function V(E) {
            if (E.default)
              return E.default;
            var s = E.type, u = Array.isArray(s) ? s[0] : s;
            if (typeof u != "string")
              return u.enum[0];
            switch (u) {
              case "boolean":
                return !1;
              case "string":
                return "";
              case "number":
                return 0;
              case "object":
                return {};
            }
          }
          var oe = /* @__PURE__ */ function() {
            function E(u) {
              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, u = u || {};
              for (var l in $)
                if ($.hasOwnProperty(l)) {
                  var h = $[l];
                  this[l] = u[l] !== void 0 ? h.processor ? h.processor(u[l]) : u[l] : V(h);
                }
            }
            var s = E.prototype;
            return s.reportNonstrict = function(l, h, p) {
              var v = this.strict;
              if (typeof v == "function" && (v = v(l, h, p)), !(!v || v === "ignore")) {
                if (v === !0 || v === "error")
                  throw new a("LaTeX-incompatible input and strict mode is set to 'error': " + (h + " [" + l + "]"), p);
                v === "warn" ? typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (h + " [" + l + "]")) : typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + v + "': " + h + " [" + l + "]"));
              }
            }, s.useStrictBehavior = function(l, h, p) {
              var v = this.strict;
              if (typeof v == "function")
                try {
                  v = v(l, h, p);
                } catch {
                  v = "error";
                }
              return !v || v === "ignore" ? !1 : v === !0 || v === "error" ? !0 : v === "warn" ? (typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (h + " [" + l + "]")), !1) : (typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + v + "': " + h + " [" + l + "]")), !1);
            }, s.isTrusted = function(l) {
              l.url && !l.protocol && (l.protocol = B.protocolFromUrl(l.url));
              var h = typeof this.trust == "function" ? this.trust(l) : this.trust;
              return !!h;
            }, E;
          }(), pe = /* @__PURE__ */ function() {
            function E(u, l, h) {
              this.id = void 0, this.size = void 0, this.cramped = void 0, this.id = u, this.size = l, this.cramped = h;
            }
            var s = E.prototype;
            return s.sup = function() {
              return Y[ce[this.id]];
            }, s.sub = function() {
              return Y[re[this.id]];
            }, s.fracNum = function() {
              return Y[be[this.id]];
            }, s.fracDen = function() {
              return Y[Ce[this.id]];
            }, s.cramp = function() {
              return Y[we[this.id]];
            }, s.text = function() {
              return Y[ke[this.id]];
            }, s.isTight = function() {
              return this.size >= 2;
            }, E;
          }(), se = 0, We = 1, Qe = 2, Ve = 3, Ze = 4, X = 5, Te = 6, Re = 7, Y = [new pe(se, 0, !1), new pe(We, 0, !0), new pe(Qe, 1, !1), new pe(Ve, 1, !0), new pe(Ze, 2, !1), new pe(X, 2, !0), new pe(Te, 3, !1), new pe(Re, 3, !0)], ce = [Ze, X, Ze, X, Te, Re, Te, Re], re = [X, X, X, X, Re, Re, Re, Re], be = [Qe, Ve, Ze, X, Te, Re, Te, Re], Ce = [Ve, Ve, X, X, Re, Re, Re, Re], we = [We, We, Ve, Ve, X, X, Re, Re], ke = [se, We, Qe, Ve, Qe, Ve, Qe, Ve], ae = {
            DISPLAY: Y[se],
            TEXT: Y[Qe],
            SCRIPT: Y[Ze],
            SCRIPTSCRIPT: Y[Te]
          }, Ge = [{
            // Latin characters beyond the Latin-1 characters we have metrics for.
            // Needed for Czech, Hungarian and Turkish text, for example.
            name: "latin",
            blocks: [
              [256, 591],
              // Latin Extended-A and Latin Extended-B
              [768, 879]
              // Combining Diacritical marks
            ]
          }, {
            // The Cyrillic script used by Russian and related languages.
            // A Cyrillic subset used to be supported as explicitly defined
            // symbols in symbols.js
            name: "cyrillic",
            blocks: [[1024, 1279]]
          }, {
            // Armenian
            name: "armenian",
            blocks: [[1328, 1423]]
          }, {
            // The Brahmic scripts of South and Southeast Asia
            // Devanagari (0900–097F)
            // Bengali (0980–09FF)
            // Gurmukhi (0A00–0A7F)
            // Gujarati (0A80–0AFF)
            // Oriya (0B00–0B7F)
            // Tamil (0B80–0BFF)
            // Telugu (0C00–0C7F)
            // Kannada (0C80–0CFF)
            // Malayalam (0D00–0D7F)
            // Sinhala (0D80–0DFF)
            // Thai (0E00–0E7F)
            // Lao (0E80–0EFF)
            // Tibetan (0F00–0FFF)
            // Myanmar (1000–109F)
            name: "brahmic",
            blocks: [[2304, 4255]]
          }, {
            name: "georgian",
            blocks: [[4256, 4351]]
          }, {
            // Chinese and Japanese.
            // The "k" in cjk is for Korean, but we've separated Korean out
            name: "cjk",
            blocks: [
              [12288, 12543],
              // CJK symbols and punctuation, Hiragana, Katakana
              [19968, 40879],
              // CJK ideograms
              [65280, 65376]
              // Fullwidth punctuation
              // TODO: add halfwidth Katakana and Romanji glyphs
            ]
          }, {
            // Korean
            name: "hangul",
            blocks: [[44032, 55215]]
          }];
          function ge(E) {
            for (var s = 0; s < Ge.length; s++)
              for (var u = Ge[s], l = 0; l < u.blocks.length; l++) {
                var h = u.blocks[l];
                if (E >= h[0] && E <= h[1])
                  return u.name;
              }
            return null;
          }
          var Je = [];
          Ge.forEach(function(E) {
            return E.blocks.forEach(function(s) {
              return Je.push.apply(Je, s);
            });
          });
          function St(E) {
            for (var s = 0; s < Je.length; s += 2)
              if (E >= Je[s] && E <= Je[s + 1])
                return !0;
            return !1;
          }
          var Et = 80, Pt = function(s, u) {
            return "M95," + (622 + s + u) + `
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` + s / 2.075 + " -" + s + `
c5.3,-9.3,12,-14,20,-14
H400000v` + (40 + s) + `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 + s) + " " + u + "h400000v" + (40 + s) + "h-400000z";
          }, Zt = function(s, u) {
            return "M263," + (601 + s + u) + `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` + s / 2.084 + " -" + s + `
c4.7,-7.3,11,-11,19,-11
H40000v` + (40 + s) + `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 + s) + " " + u + "h400000v" + (40 + s) + "h-400000z";
          }, a0 = function(s, u) {
            return "M983 " + (10 + s + u) + `
l` + s / 3.13 + " -" + s + `
c4,-6.7,10,-10,18,-10 H400000v` + (40 + s) + `
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 + s) + " " + u + "h400000v" + (40 + s) + "h-400000z";
          }, jm = function(s, u) {
            return "M424," + (2398 + s + u) + `
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` + s / 4.223 + " -" + s + `c4,-6.7,10,-10,18,-10 H400000
v` + (40 + s) + `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 + s) + " " + u + `
h400000v` + (40 + s) + "h-400000z";
          }, Km = function(s, u) {
            return "M473," + (2713 + s + u) + `
c339.3,-1799.3,509.3,-2700,510,-2702 l` + s / 5.298 + " -" + s + `
c3.3,-7.3,9.3,-11,18,-11 H400000v` + (40 + s) + `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 + s) + " " + u + "h400000v" + (40 + s) + "H1017.7z";
          }, $m = function(s) {
            var u = s / 2;
            return "M400000 " + s + " H0 L" + u + " 0 l65 45 L145 " + (s - 80) + " H400000z";
          }, Qm = function(s, u, l) {
            var h = l - 54 - u - s;
            return "M702 " + (s + u) + "H400000" + (40 + s) + `
H742v` + h + `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 ` + u + "H400000v" + (40 + s) + "H742z";
          }, Zm = function(s, u, l) {
            u = 1e3 * u;
            var h = "";
            switch (s) {
              case "sqrtMain":
                h = Pt(u, Et);
                break;
              case "sqrtSize1":
                h = Zt(u, Et);
                break;
              case "sqrtSize2":
                h = a0(u, Et);
                break;
              case "sqrtSize3":
                h = jm(u, Et);
                break;
              case "sqrtSize4":
                h = Km(u, Et);
                break;
              case "sqrtTall":
                h = Qm(u, Et, l);
            }
            return h;
          }, Jm = function(s, u) {
            switch (s) {
              case "⎜":
                return "M291 0 H417 V" + u + " H291z M291 0 H417 V" + u + " H291z";
              case "∣":
                return "M145 0 H188 V" + u + " H145z M145 0 H188 V" + u + " H145z";
              case "∥":
                return "M145 0 H188 V" + u + " H145z M145 0 H188 V" + u + " H145z" + ("M367 0 H410 V" + u + " H367z M367 0 H410 V" + u + " H367z");
              case "⎟":
                return "M457 0 H583 V" + u + " H457z M457 0 H583 V" + u + " H457z";
              case "⎢":
                return "M319 0 H403 V" + u + " H319z M319 0 H403 V" + u + " H319z";
              case "⎥":
                return "M263 0 H347 V" + u + " H263z M263 0 H347 V" + u + " H263z";
              case "⎪":
                return "M384 0 H504 V" + u + " H384z M384 0 H504 V" + u + " H384z";
              case "⏐":
                return "M312 0 H355 V" + u + " H312z M312 0 H355 V" + u + " H312z";
              case "‖":
                return "M257 0 H300 V" + u + " H257z M257 0 H300 V" + u + " H257z" + ("M478 0 H521 V" + u + " H478z M478 0 H521 V" + u + " H478z");
              default:
                return "";
            }
          }, zo = {
            // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main
            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 is from glyph U+21D2 in font KaTeX Main
            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 is from glyph U+2190 in font KaTeX Main
            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`,
            // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular
            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`,
            // overgroup is from the MnSymbol package (public domain)
            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`,
            // Harpoons are from glyph U+21BD in font KaTeX Main
            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`,
            // hook is from glyph U+21A9 in font KaTeX Main
            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`,
            // tofrom is from glyph U+21C4 in font KaTeX AMS Regular
            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 is from glyph U+219E in font KaTeX AMS Regular
            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 is a modified version of a glyph from the MnSymbol package
            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`,
            // ditto tilde2, tilde3, & tilde4
            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 is from glyph U+20D7 in font KaTeX Main
            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 is a modified version of a glyph from the MnSymbol package
            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`,
            // ditto widehat2, widehat3, & widehat4
            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`,
            // widecheck paths are all inverted versions of widehat
            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`,
            // The next ten paths support reaction arrows from the mhchem package.
            // Arrows for \ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX
            // baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main
            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 is mostly from glyph U+2192, KaTeX Main
            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`,
            // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.
            // Ref from mhchem.sty: \rlap{\raisebox{-.22ex}{$\kern0.5em
            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`
          }, e2 = function(s, u) {
            switch (s) {
              case "lbrack":
                return "M403 1759 V84 H666 V0 H319 V1759 v" + u + ` v1759 h347 v-84
H403z M403 1759 V0 H319 V1759 v` + u + " v1759 h84z";
              case "rbrack":
                return "M347 1759 V0 H0 V84 H263 V1759 v" + u + ` v1759 H0 v84 H347z
M347 1759 V0 H263 V1759 v` + u + " v1759 h84z";
              case "vert":
                return "M145 15 v585 v" + u + ` v585 c2.667,10,9.667,15,21,15
c10,0,16.667,-5,20,-15 v-585 v` + -u + ` v-585 c-2.667,-10,-9.667,-15,-21,-15
c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` + u + " v585 h43z";
              case "doublevert":
                return "M145 15 v585 v" + u + ` v585 c2.667,10,9.667,15,21,15
c10,0,16.667,-5,20,-15 v-585 v` + -u + ` v-585 c-2.667,-10,-9.667,-15,-21,-15
c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` + u + ` v585 h43z
M367 15 v585 v` + u + ` v585 c2.667,10,9.667,15,21,15
c10,0,16.667,-5,20,-15 v-585 v` + -u + ` v-585 c-2.667,-10,-9.667,-15,-21,-15
c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v` + u + " v585 h43z";
              case "lfloor":
                return "M319 602 V0 H403 V602 v" + u + ` v1715 h263 v84 H319z
MM319 602 V0 H403 V602 v` + u + " v1715 H319z";
              case "rfloor":
                return "M319 602 V0 H403 V602 v" + u + ` v1799 H0 v-84 H319z
MM319 602 V0 H403 V602 v` + u + " v1715 H319z";
              case "lceil":
                return "M403 1759 V84 H666 V0 H319 V1759 v" + u + ` v602 h84z
M403 1759 V0 H319 V1759 v` + u + " v602 h84z";
              case "rceil":
                return "M347 1759 V0 H0 V84 H263 V1759 v" + u + ` v602 h84z
M347 1759 V0 h-84 V1759 v` + u + " 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,` + (u + 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,-` + (u + 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,` + (u + 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,-` + (u + 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.");
            }
          }, s0 = /* @__PURE__ */ function() {
            function E(u) {
              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 = u, this.classes = [], this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = {};
            }
            var s = E.prototype;
            return s.hasClass = function(l) {
              return B.contains(this.classes, l);
            }, s.toNode = function() {
              for (var l = document.createDocumentFragment(), h = 0; h < this.children.length; h++)
                l.appendChild(this.children[h].toNode());
              return l;
            }, s.toMarkup = function() {
              for (var l = "", h = 0; h < this.children.length; h++)
                l += this.children[h].toMarkup();
              return l;
            }, s.toText = function() {
              var l = function(p) {
                return p.toText();
              };
              return this.children.map(l).join("");
            }, E;
          }(), ur = {
            "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, 965e-5, 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: [222e-5, 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: [222e-5, 0.50222, 0, 0, 0.89444],
              8801: [222e-5, 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: [5e-3, 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, 421e-5, 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, 88e-4, 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, 773e-5, 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, 37e-4, 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, 316e-5, 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, 981e-5, 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, 316e-5, 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: [-599e-5, 0.606, 0, 0, 0.33333],
              8741: [-599e-5, 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: [-499e-5, 0.605, 0, 0, 1.05556],
              57345: [-499e-5, 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]
            }
          }, ti = {
            slant: [0.25, 0.25, 0.25],
            // sigma1
            space: [0, 0, 0],
            // sigma2
            stretch: [0, 0, 0],
            // sigma3
            shrink: [0, 0, 0],
            // sigma4
            xHeight: [0.431, 0.431, 0.431],
            // sigma5
            quad: [1, 1.171, 1.472],
            // sigma6
            extraSpace: [0, 0, 0],
            // sigma7
            num1: [0.677, 0.732, 0.925],
            // sigma8
            num2: [0.394, 0.384, 0.387],
            // sigma9
            num3: [0.444, 0.471, 0.504],
            // sigma10
            denom1: [0.686, 0.752, 1.025],
            // sigma11
            denom2: [0.345, 0.344, 0.532],
            // sigma12
            sup1: [0.413, 0.503, 0.504],
            // sigma13
            sup2: [0.363, 0.431, 0.404],
            // sigma14
            sup3: [0.289, 0.286, 0.294],
            // sigma15
            sub1: [0.15, 0.143, 0.2],
            // sigma16
            sub2: [0.247, 0.286, 0.4],
            // sigma17
            supDrop: [0.386, 0.353, 0.494],
            // sigma18
            subDrop: [0.05, 0.071, 0.1],
            // sigma19
            delim1: [2.39, 1.7, 1.98],
            // sigma20
            delim2: [1.01, 1.157, 1.42],
            // sigma21
            axisHeight: [0.25, 0.25, 0.25],
            // sigma22
            // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;
            // they correspond to the font parameters of the extension fonts (family 3).
            // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to
            // match cmex7, we'd use cmex7.tfm values for script and scriptscript
            // values.
            defaultRuleThickness: [0.04, 0.049, 0.049],
            // xi8; cmex7: 0.049
            bigOpSpacing1: [0.111, 0.111, 0.111],
            // xi9
            bigOpSpacing2: [0.166, 0.166, 0.166],
            // xi10
            bigOpSpacing3: [0.2, 0.2, 0.2],
            // xi11
            bigOpSpacing4: [0.6, 0.611, 0.611],
            // xi12; cmex7: 0.611
            bigOpSpacing5: [0.1, 0.143, 0.143],
            // xi13; cmex7: 0.143
            // The \sqrt rule width is taken from the height of the surd character.
            // Since we use the same font at all sizes, this thickness doesn't scale.
            sqrtRuleThickness: [0.04, 0.04, 0.04],
            // This value determines how large a pt is, for metrics which are defined
            // in terms of pts.
            // This value is also used in katex.less; if you change it make sure the
            // values match.
            ptPerEm: [10, 10, 10],
            // The space between adjacent `|` columns in an array definition. From
            // `\showthe\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.
            doubleRuleSep: [0.2, 0.2, 0.2],
            // The width of separator lines in {array} environments. From
            // `\showthe\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm.
            arrayRuleWidth: [0.04, 0.04, 0.04],
            // Two values from LaTeX source2e:
            fboxsep: [0.3, 0.3, 0.3],
            //        3 pt / ptPerEm
            fboxrule: [0.04, 0.04, 0.04]
            // 0.4 pt / ptPerEm
          }, qo = {
            // Latin-1
            Å: "A",
            Ð: "D",
            Þ: "o",
            å: "a",
            ð: "d",
            þ: "o",
            // Cyrillic
            А: "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 t2(E, s) {
            ur[E] = s;
          }
          function za(E, s, u) {
            if (!ur[s])
              throw new Error("Font metrics not found for font: " + s + ".");
            var l = E.charCodeAt(0), h = ur[s][l];
            if (!h && E[0] in qo && (l = qo[E[0]].charCodeAt(0), h = ur[s][l]), !h && u === "text" && St(l) && (h = ur[s][77]), h)
              return {
                depth: h[0],
                height: h[1],
                italic: h[2],
                skew: h[3],
                width: h[4]
              };
          }
          var qa = {};
          function r2(E) {
            var s;
            if (E >= 5 ? s = 0 : E >= 3 ? s = 1 : s = 2, !qa[s]) {
              var u = qa[s] = {
                cssEmPerMu: ti.quad[s] / 18
              };
              for (var l in ti)
                ti.hasOwnProperty(l) && (u[l] = ti[l][s]);
            }
            return qa[s];
          }
          var n2 = [
            // Each element contains [textsize, scriptsize, scriptscriptsize].
            // The size mappings are taken from TeX with \normalsize=10pt.
            [1, 1, 1],
            // size1: [5, 5, 5]              \tiny
            [2, 1, 1],
            // size2: [6, 5, 5]
            [3, 1, 1],
            // size3: [7, 5, 5]              \scriptsize
            [4, 2, 1],
            // size4: [8, 6, 5]              \footnotesize
            [5, 2, 1],
            // size5: [9, 6, 5]              \small
            [6, 3, 1],
            // size6: [10, 7, 5]             \normalsize
            [7, 4, 2],
            // size7: [12, 8, 6]             \large
            [8, 6, 3],
            // size8: [14.4, 10, 7]          \Large
            [9, 7, 6],
            // size9: [17.28, 12, 10]        \LARGE
            [10, 8, 7],
            // size10: [20.74, 14.4, 12]     \huge
            [11, 10, 9]
            // size11: [24.88, 20.74, 17.28] \HUGE
          ], Yo = [
            // fontMetrics.js:getGlobalMetrics also uses size indexes, so if
            // you change size indexes, change that function.
            0.5,
            0.6,
            0.7,
            0.8,
            0.9,
            1,
            1.2,
            1.44,
            1.728,
            2.074,
            2.488
          ], Vo = function(s, u) {
            return u.size < 2 ? s : n2[s - 1][u.size - 1];
          }, Go = /* @__PURE__ */ function() {
            function E(u) {
              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 = u.style, this.color = u.color, this.size = u.size || E.BASESIZE, this.textSize = u.textSize || this.size, this.phantom = !!u.phantom, this.font = u.font || "", this.fontFamily = u.fontFamily || "", this.fontWeight = u.fontWeight || "", this.fontShape = u.fontShape || "", this.sizeMultiplier = Yo[this.size - 1], this.maxSize = u.maxSize, this.minRuleThickness = u.minRuleThickness, this._fontMetrics = void 0;
            }
            var s = E.prototype;
            return s.extend = function(l) {
              var h = {
                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 (var p in l)
                l.hasOwnProperty(p) && (h[p] = l[p]);
              return new E(h);
            }, s.havingStyle = function(l) {
              return this.style === l ? this : this.extend({
                style: l,
                size: Vo(this.textSize, l)
              });
            }, s.havingCrampedStyle = function() {
              return this.havingStyle(this.style.cramp());
            }, s.havingSize = function(l) {
              return this.size === l && this.textSize === l ? this : this.extend({
                style: this.style.text(),
                size: l,
                textSize: l,
                sizeMultiplier: Yo[l - 1]
              });
            }, s.havingBaseStyle = function(l) {
              l = l || this.style.text();
              var h = Vo(E.BASESIZE, l);
              return this.size === h && this.textSize === E.BASESIZE && this.style === l ? this : this.extend({
                style: l,
                size: h
              });
            }, s.havingBaseSizing = function() {
              var l;
              switch (this.style.id) {
                case 4:
                case 5:
                  l = 3;
                  break;
                case 6:
                case 7:
                  l = 1;
                  break;
                default:
                  l = 6;
              }
              return this.extend({
                style: this.style.text(),
                size: l
              });
            }, s.withColor = function(l) {
              return this.extend({
                color: l
              });
            }, s.withPhantom = function() {
              return this.extend({
                phantom: !0
              });
            }, s.withFont = function(l) {
              return this.extend({
                font: l
              });
            }, s.withTextFontFamily = function(l) {
              return this.extend({
                fontFamily: l,
                font: ""
              });
            }, s.withTextFontWeight = function(l) {
              return this.extend({
                fontWeight: l,
                font: ""
              });
            }, s.withTextFontShape = function(l) {
              return this.extend({
                fontShape: l,
                font: ""
              });
            }, s.sizingClasses = function(l) {
              return l.size !== this.size ? ["sizing", "reset-size" + l.size, "size" + this.size] : [];
            }, s.baseSizingClasses = function() {
              return this.size !== E.BASESIZE ? ["sizing", "reset-size" + this.size, "size" + E.BASESIZE] : [];
            }, s.fontMetrics = function() {
              return this._fontMetrics || (this._fontMetrics = r2(this.size)), this._fontMetrics;
            }, s.getColor = function() {
              return this.phantom ? "transparent" : this.color;
            }, E;
          }();
          Go.BASESIZE = 6;
          var i2 = Go, Ya = {
            // https://en.wikibooks.org/wiki/LaTeX/Lengths and
            // https://tex.stackexchange.com/a/8263
            pt: 1,
            // TeX point
            mm: 7227 / 2540,
            // millimeter
            cm: 7227 / 254,
            // centimeter
            in: 72.27,
            // inch
            bp: 803 / 800,
            // big (PostScript) points
            pc: 12,
            // pica
            dd: 1238 / 1157,
            // didot
            cc: 14856 / 1157,
            // cicero (12 didot)
            nd: 685 / 642,
            // new didot
            nc: 1370 / 107,
            // new cicero (12 new didot)
            sp: 1 / 65536,
            // scaled point (TeX's internal smallest unit)
            // https://tex.stackexchange.com/a/41371
            px: 803 / 800
            // \pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX
          }, a2 = {
            ex: !0,
            em: !0,
            mu: !0
          }, Xo = function(s) {
            return typeof s != "string" && (s = s.unit), s in Ya || s in a2 || s === "ex";
          }, et = function(s, u) {
            var l;
            if (s.unit in Ya)
              l = Ya[s.unit] / u.fontMetrics().ptPerEm / u.sizeMultiplier;
            else if (s.unit === "mu")
              l = u.fontMetrics().cssEmPerMu;
            else {
              var h;
              if (u.style.isTight() ? h = u.havingStyle(u.style.text()) : h = u, s.unit === "ex")
                l = h.fontMetrics().xHeight;
              else if (s.unit === "em")
                l = h.fontMetrics().quad;
              else
                throw new a("Invalid unit: '" + s.unit + "'");
              h !== u && (l *= h.sizeMultiplier / u.sizeMultiplier);
            }
            return Math.min(s.number * l, u.maxSize);
          }, ie = function(s) {
            return +s.toFixed(4) + "em";
          }, Dr = function(s) {
            return s.filter(function(u) {
              return u;
            }).join(" ");
          }, Wo = function(s, u, l) {
            if (this.classes = s || [], this.attributes = {}, this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = l || {}, u) {
              u.style.isTight() && this.classes.push("mtight");
              var h = u.getColor();
              h && (this.style.color = h);
            }
          }, jo = function(s) {
            var u = document.createElement(s);
            u.className = Dr(this.classes);
            for (var l in this.style)
              this.style.hasOwnProperty(l) && (u.style[l] = this.style[l]);
            for (var h in this.attributes)
              this.attributes.hasOwnProperty(h) && u.setAttribute(h, this.attributes[h]);
            for (var p = 0; p < this.children.length; p++)
              u.appendChild(this.children[p].toNode());
            return u;
          }, Ko = function(s) {
            var u = "<" + s;
            this.classes.length && (u += ' class="' + B.escape(Dr(this.classes)) + '"');
            var l = "";
            for (var h in this.style)
              this.style.hasOwnProperty(h) && (l += B.hyphenate(h) + ":" + this.style[h] + ";");
            l && (u += ' style="' + B.escape(l) + '"');
            for (var p in this.attributes)
              this.attributes.hasOwnProperty(p) && (u += " " + p + '="' + B.escape(this.attributes[p]) + '"');
            u += ">";
            for (var v = 0; v < this.children.length; v++)
              u += this.children[v].toMarkup();
            return u += "</" + s + ">", u;
          }, u0 = /* @__PURE__ */ function() {
            function E(u, l, h, p) {
              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, Wo.call(this, u, h, p), this.children = l || [];
            }
            var s = E.prototype;
            return s.setAttribute = function(l, h) {
              this.attributes[l] = h;
            }, s.hasClass = function(l) {
              return B.contains(this.classes, l);
            }, s.toNode = function() {
              return jo.call(this, "span");
            }, s.toMarkup = function() {
              return Ko.call(this, "span");
            }, E;
          }(), Va = /* @__PURE__ */ function() {
            function E(u, l, h, p) {
              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, Wo.call(this, l, p), this.children = h || [], this.setAttribute("href", u);
            }
            var s = E.prototype;
            return s.setAttribute = function(l, h) {
              this.attributes[l] = h;
            }, s.hasClass = function(l) {
              return B.contains(this.classes, l);
            }, s.toNode = function() {
              return jo.call(this, "a");
            }, s.toMarkup = function() {
              return Ko.call(this, "a");
            }, E;
          }(), s2 = /* @__PURE__ */ function() {
            function E(u, l, h) {
              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 = l, this.src = u, this.classes = ["mord"], this.style = h;
            }
            var s = E.prototype;
            return s.hasClass = function(l) {
              return B.contains(this.classes, l);
            }, s.toNode = function() {
              var l = document.createElement("img");
              l.src = this.src, l.alt = this.alt, l.className = "mord";
              for (var h in this.style)
                this.style.hasOwnProperty(h) && (l.style[h] = this.style[h]);
              return l;
            }, s.toMarkup = function() {
              var l = "<img  src='" + this.src + " 'alt='" + this.alt + "' ", h = "";
              for (var p in this.style)
                this.style.hasOwnProperty(p) && (h += B.hyphenate(p) + ":" + this.style[p] + ";");
              return h && (l += ' style="' + B.escape(h) + '"'), l += "'/>", l;
            }, E;
          }(), u2 = {
            î: "ı̂",
            ï: "ı̈",
            í: "ı́",
            // 'ī': '\u0131\u0304', // enable when we add Extended Latin
            ì: "ı̀"
          }, Vt = /* @__PURE__ */ function() {
            function E(u, l, h, p, v, T, y, w) {
              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 = u, this.height = l || 0, this.depth = h || 0, this.italic = p || 0, this.skew = v || 0, this.width = T || 0, this.classes = y || [], this.style = w || {}, this.maxFontSize = 0;
              var L = ge(this.text.charCodeAt(0));
              L && this.classes.push(L + "_fallback"), /[îïíì]/.test(this.text) && (this.text = u2[this.text]);
            }
            var s = E.prototype;
            return s.hasClass = function(l) {
              return B.contains(this.classes, l);
            }, s.toNode = function() {
              var l = document.createTextNode(this.text), h = null;
              this.italic > 0 && (h = document.createElement("span"), h.style.marginRight = ie(this.italic)), this.classes.length > 0 && (h = h || document.createElement("span"), h.className = Dr(this.classes));
              for (var p in this.style)
                this.style.hasOwnProperty(p) && (h = h || document.createElement("span"), h.style[p] = this.style[p]);
              return h ? (h.appendChild(l), h) : l;
            }, s.toMarkup = function() {
              var l = !1, h = "<span";
              this.classes.length && (l = !0, h += ' class="', h += B.escape(Dr(this.classes)), h += '"');
              var p = "";
              this.italic > 0 && (p += "margin-right:" + this.italic + "em;");
              for (var v in this.style)
                this.style.hasOwnProperty(v) && (p += B.hyphenate(v) + ":" + this.style[v] + ";");
              p && (l = !0, h += ' style="' + B.escape(p) + '"');
              var T = B.escape(this.text);
              return l ? (h += ">", h += T, h += "</span>", h) : T;
            }, E;
          }(), vr = /* @__PURE__ */ function() {
            function E(u, l) {
              this.children = void 0, this.attributes = void 0, this.children = u || [], this.attributes = l || {};
            }
            var s = E.prototype;
            return s.toNode = function() {
              var l = "http://www.w3.org/2000/svg", h = document.createElementNS(l, "svg");
              for (var p in this.attributes)
                Object.prototype.hasOwnProperty.call(this.attributes, p) && h.setAttribute(p, this.attributes[p]);
              for (var v = 0; v < this.children.length; v++)
                h.appendChild(this.children[v].toNode());
              return h;
            }, s.toMarkup = function() {
              var l = '<svg xmlns="http://www.w3.org/2000/svg"';
              for (var h in this.attributes)
                Object.prototype.hasOwnProperty.call(this.attributes, h) && (l += " " + h + "='" + this.attributes[h] + "'");
              l += ">";
              for (var p = 0; p < this.children.length; p++)
                l += this.children[p].toMarkup();
              return l += "</svg>", l;
            }, E;
          }(), Rr = /* @__PURE__ */ function() {
            function E(u, l) {
              this.pathName = void 0, this.alternate = void 0, this.pathName = u, this.alternate = l;
            }
            var s = E.prototype;
            return s.toNode = function() {
              var l = "http://www.w3.org/2000/svg", h = document.createElementNS(l, "path");
              return this.alternate ? h.setAttribute("d", this.alternate) : h.setAttribute("d", zo[this.pathName]), h;
            }, s.toMarkup = function() {
              return this.alternate ? "<path d='" + this.alternate + "'/>" : "<path d='" + zo[this.pathName] + "'/>";
            }, E;
          }(), Ga = /* @__PURE__ */ function() {
            function E(u) {
              this.attributes = void 0, this.attributes = u || {};
            }
            var s = E.prototype;
            return s.toNode = function() {
              var l = "http://www.w3.org/2000/svg", h = document.createElementNS(l, "line");
              for (var p in this.attributes)
                Object.prototype.hasOwnProperty.call(this.attributes, p) && h.setAttribute(p, this.attributes[p]);
              return h;
            }, s.toMarkup = function() {
              var l = "<line";
              for (var h in this.attributes)
                Object.prototype.hasOwnProperty.call(this.attributes, h) && (l += " " + h + "='" + this.attributes[h] + "'");
              return l += "/>", l;
            }, E;
          }();
          function $o(E) {
            if (E instanceof Vt)
              return E;
            throw new Error("Expected symbolNode but got " + String(E) + ".");
          }
          function o2(E) {
            if (E instanceof u0)
              return E;
            throw new Error("Expected span<HtmlDomNode> but got " + String(E) + ".");
          }
          var l2 = {
            bin: 1,
            close: 1,
            inner: 1,
            open: 1,
            punct: 1,
            rel: 1
          }, c2 = {
            "accent-token": 1,
            mathord: 1,
            "op-token": 1,
            spacing: 1,
            textord: 1
          }, ri = {
            math: {},
            text: {}
          }, tt = ri;
          function g(E, s, u, l, h, p) {
            ri[E][h] = {
              font: s,
              group: u,
              replace: l
            }, p && l && (ri[E][l] = ri[E][h]);
          }
          var _ = "math", J = "text", x = "main", D = "ams", Ke = "accent-token", he = "bin", Tt = "close", yn = "inner", Ae = "mathord", ot = "op-token", Ft = "open", ni = "punct", R = "rel", _r = "spacing", P = "textord";
          g(_, x, R, "≡", "\\equiv", !0), g(_, x, R, "≺", "\\prec", !0), g(_, x, R, "≻", "\\succ", !0), g(_, x, R, "∼", "\\sim", !0), g(_, x, R, "⊥", "\\perp"), g(_, x, R, "⪯", "\\preceq", !0), g(_, x, R, "⪰", "\\succeq", !0), g(_, x, R, "≃", "\\simeq", !0), g(_, x, R, "∣", "\\mid", !0), g(_, x, R, "≪", "\\ll", !0), g(_, x, R, "≫", "\\gg", !0), g(_, x, R, "≍", "\\asymp", !0), g(_, x, R, "∥", "\\parallel"), g(_, x, R, "⋈", "\\bowtie", !0), g(_, x, R, "⌣", "\\smile", !0), g(_, x, R, "⊑", "\\sqsubseteq", !0), g(_, x, R, "⊒", "\\sqsupseteq", !0), g(_, x, R, "≐", "\\doteq", !0), g(_, x, R, "⌢", "\\frown", !0), g(_, x, R, "∋", "\\ni", !0), g(_, x, R, "∝", "\\propto", !0), g(_, x, R, "⊢", "\\vdash", !0), g(_, x, R, "⊣", "\\dashv", !0), g(_, x, R, "∋", "\\owns"), g(_, x, ni, ".", "\\ldotp"), g(_, x, ni, "⋅", "\\cdotp"), g(_, x, P, "#", "\\#"), g(J, x, P, "#", "\\#"), g(_, x, P, "&", "\\&"), g(J, x, P, "&", "\\&"), g(_, x, P, "ℵ", "\\aleph", !0), g(_, x, P, "∀", "\\forall", !0), g(_, x, P, "ℏ", "\\hbar", !0), g(_, x, P, "∃", "\\exists", !0), g(_, x, P, "∇", "\\nabla", !0), g(_, x, P, "♭", "\\flat", !0), g(_, x, P, "ℓ", "\\ell", !0), g(_, x, P, "♮", "\\natural", !0), g(_, x, P, "♣", "\\clubsuit", !0), g(_, x, P, "℘", "\\wp", !0), g(_, x, P, "♯", "\\sharp", !0), g(_, x, P, "♢", "\\diamondsuit", !0), g(_, x, P, "ℜ", "\\Re", !0), g(_, x, P, "♡", "\\heartsuit", !0), g(_, x, P, "ℑ", "\\Im", !0), g(_, x, P, "♠", "\\spadesuit", !0), g(_, x, P, "§", "\\S", !0), g(J, x, P, "§", "\\S"), g(_, x, P, "¶", "\\P", !0), g(J, x, P, "¶", "\\P"), g(_, x, P, "†", "\\dag"), g(J, x, P, "†", "\\dag"), g(J, x, P, "†", "\\textdagger"), g(_, x, P, "‡", "\\ddag"), g(J, x, P, "‡", "\\ddag"), g(J, x, P, "‡", "\\textdaggerdbl"), g(_, x, Tt, "⎱", "\\rmoustache", !0), g(_, x, Ft, "⎰", "\\lmoustache", !0), g(_, x, Tt, "⟯", "\\rgroup", !0), g(_, x, Ft, "⟮", "\\lgroup", !0), g(_, x, he, "∓", "\\mp", !0), g(_, x, he, "⊖", "\\ominus", !0), g(_, x, he, "⊎", "\\uplus", !0), g(_, x, he, "⊓", "\\sqcap", !0), g(_, x, he, "∗", "\\ast"), g(_, x, he, "⊔", "\\sqcup", !0), g(_, x, he, "◯", "\\bigcirc", !0), g(_, x, he, "∙", "\\bullet", !0), g(_, x, he, "‡", "\\ddagger"), g(_, x, he, "≀", "\\wr", !0), g(_, x, he, "⨿", "\\amalg"), g(_, x, he, "&", "\\And"), g(_, x, R, "⟵", "\\longleftarrow", !0), g(_, x, R, "⇐", "\\Leftarrow", !0), g(_, x, R, "⟸", "\\Longleftarrow", !0), g(_, x, R, "⟶", "\\longrightarrow", !0), g(_, x, R, "⇒", "\\Rightarrow", !0), g(_, x, R, "⟹", "\\Longrightarrow", !0), g(_, x, R, "↔", "\\leftrightarrow", !0), g(_, x, R, "⟷", "\\longleftrightarrow", !0), g(_, x, R, "⇔", "\\Leftrightarrow", !0), g(_, x, R, "⟺", "\\Longleftrightarrow", !0), g(_, x, R, "↦", "\\mapsto", !0), g(_, x, R, "⟼", "\\longmapsto", !0), g(_, x, R, "↗", "\\nearrow", !0), g(_, x, R, "↩", "\\hookleftarrow", !0), g(_, x, R, "↪", "\\hookrightarrow", !0), g(_, x, R, "↘", "\\searrow", !0), g(_, x, R, "↼", "\\leftharpoonup", !0), g(_, x, R, "⇀", "\\rightharpoonup", !0), g(_, x, R, "↙", "\\swarrow", !0), g(_, x, R, "↽", "\\leftharpoondown", !0), g(_, x, R, "⇁", "\\rightharpoondown", !0), g(_, x, R, "↖", "\\nwarrow", !0), g(_, x, R, "⇌", "\\rightleftharpoons", !0), g(_, D, R, "≮", "\\nless", !0), g(_, D, R, "", "\\@nleqslant"), g(_, D, R, "", "\\@nleqq"), g(_, D, R, "⪇", "\\lneq", !0), g(_, D, R, "≨", "\\lneqq", !0), g(_, D, R, "", "\\@lvertneqq"), g(_, D, R, "⋦", "\\lnsim", !0), g(_, D, R, "⪉", "\\lnapprox", !0), g(_, D, R, "⊀", "\\nprec", !0), g(_, D, R, "⋠", "\\npreceq", !0), g(_, D, R, "⋨", "\\precnsim", !0), g(_, D, R, "⪹", "\\precnapprox", !0), g(_, D, R, "≁", "\\nsim", !0), g(_, D, R, "", "\\@nshortmid"), g(_, D, R, "∤", "\\nmid", !0), g(_, D, R, "⊬", "\\nvdash", !0), g(_, D, R, "⊭", "\\nvDash", !0), g(_, D, R, "⋪", "\\ntriangleleft"), g(_, D, R, "⋬", "\\ntrianglelefteq", !0), g(_, D, R, "⊊", "\\subsetneq", !0), g(_, D, R, "", "\\@varsubsetneq"), g(_, D, R, "⫋", "\\subsetneqq", !0), g(_, D, R, "", "\\@varsubsetneqq"), g(_, D, R, "≯", "\\ngtr", !0), g(_, D, R, "", "\\@ngeqslant"), g(_, D, R, "", "\\@ngeqq"), g(_, D, R, "⪈", "\\gneq", !0), g(_, D, R, "≩", "\\gneqq", !0), g(_, D, R, "", "\\@gvertneqq"), g(_, D, R, "⋧", "\\gnsim", !0), g(_, D, R, "⪊", "\\gnapprox", !0), g(_, D, R, "⊁", "\\nsucc", !0), g(_, D, R, "⋡", "\\nsucceq", !0), g(_, D, R, "⋩", "\\succnsim", !0), g(_, D, R, "⪺", "\\succnapprox", !0), g(_, D, R, "≆", "\\ncong", !0), g(_, D, R, "", "\\@nshortparallel"), g(_, D, R, "∦", "\\nparallel", !0), g(_, D, R, "⊯", "\\nVDash", !0), g(_, D, R, "⋫", "\\ntriangleright"), g(_, D, R, "⋭", "\\ntrianglerighteq", !0), g(_, D, R, "", "\\@nsupseteqq"), g(_, D, R, "⊋", "\\supsetneq", !0), g(_, D, R, "", "\\@varsupsetneq"), g(_, D, R, "⫌", "\\supsetneqq", !0), g(_, D, R, "", "\\@varsupsetneqq"), g(_, D, R, "⊮", "\\nVdash", !0), g(_, D, R, "⪵", "\\precneqq", !0), g(_, D, R, "⪶", "\\succneqq", !0), g(_, D, R, "", "\\@nsubseteqq"), g(_, D, he, "⊴", "\\unlhd"), g(_, D, he, "⊵", "\\unrhd"), g(_, D, R, "↚", "\\nleftarrow", !0), g(_, D, R, "↛", "\\nrightarrow", !0), g(_, D, R, "⇍", "\\nLeftarrow", !0), g(_, D, R, "⇏", "\\nRightarrow", !0), g(_, D, R, "↮", "\\nleftrightarrow", !0), g(_, D, R, "⇎", "\\nLeftrightarrow", !0), g(_, D, R, "△", "\\vartriangle"), g(_, D, P, "ℏ", "\\hslash"), g(_, D, P, "▽", "\\triangledown"), g(_, D, P, "◊", "\\lozenge"), g(_, D, P, "Ⓢ", "\\circledS"), g(_, D, P, "®", "\\circledR"), g(J, D, P, "®", "\\circledR"), g(_, D, P, "∡", "\\measuredangle", !0), g(_, D, P, "∄", "\\nexists"), g(_, D, P, "℧", "\\mho"), g(_, D, P, "Ⅎ", "\\Finv", !0), g(_, D, P, "⅁", "\\Game", !0), g(_, D, P, "‵", "\\backprime"), g(_, D, P, "▲", "\\blacktriangle"), g(_, D, P, "▼", "\\blacktriangledown"), g(_, D, P, "■", "\\blacksquare"), g(_, D, P, "⧫", "\\blacklozenge"), g(_, D, P, "★", "\\bigstar"), g(_, D, P, "∢", "\\sphericalangle", !0), g(_, D, P, "∁", "\\complement", !0), g(_, D, P, "ð", "\\eth", !0), g(J, x, P, "ð", "ð"), g(_, D, P, "╱", "\\diagup"), g(_, D, P, "╲", "\\diagdown"), g(_, D, P, "□", "\\square"), g(_, D, P, "□", "\\Box"), g(_, D, P, "◊", "\\Diamond"), g(_, D, P, "¥", "\\yen", !0), g(J, D, P, "¥", "\\yen", !0), g(_, D, P, "✓", "\\checkmark", !0), g(J, D, P, "✓", "\\checkmark"), g(_, D, P, "ℶ", "\\beth", !0), g(_, D, P, "ℸ", "\\daleth", !0), g(_, D, P, "ℷ", "\\gimel", !0), g(_, D, P, "ϝ", "\\digamma", !0), g(_, D, P, "ϰ", "\\varkappa"), g(_, D, Ft, "┌", "\\@ulcorner", !0), g(_, D, Tt, "┐", "\\@urcorner", !0), g(_, D, Ft, "└", "\\@llcorner", !0), g(_, D, Tt, "┘", "\\@lrcorner", !0), g(_, D, R, "≦", "\\leqq", !0), g(_, D, R, "⩽", "\\leqslant", !0), g(_, D, R, "⪕", "\\eqslantless", !0), g(_, D, R, "≲", "\\lesssim", !0), g(_, D, R, "⪅", "\\lessapprox", !0), g(_, D, R, "≊", "\\approxeq", !0), g(_, D, he, "⋖", "\\lessdot"), g(_, D, R, "⋘", "\\lll", !0), g(_, D, R, "≶", "\\lessgtr", !0), g(_, D, R, "⋚", "\\lesseqgtr", !0), g(_, D, R, "⪋", "\\lesseqqgtr", !0), g(_, D, R, "≑", "\\doteqdot"), g(_, D, R, "≓", "\\risingdotseq", !0), g(_, D, R, "≒", "\\fallingdotseq", !0), g(_, D, R, "∽", "\\backsim", !0), g(_, D, R, "⋍", "\\backsimeq", !0), g(_, D, R, "⫅", "\\subseteqq", !0), g(_, D, R, "⋐", "\\Subset", !0), g(_, D, R, "⊏", "\\sqsubset", !0), g(_, D, R, "≼", "\\preccurlyeq", !0), g(_, D, R, "⋞", "\\curlyeqprec", !0), g(_, D, R, "≾", "\\precsim", !0), g(_, D, R, "⪷", "\\precapprox", !0), g(_, D, R, "⊲", "\\vartriangleleft"), g(_, D, R, "⊴", "\\trianglelefteq"), g(_, D, R, "⊨", "\\vDash", !0), g(_, D, R, "⊪", "\\Vvdash", !0), g(_, D, R, "⌣", "\\smallsmile"), g(_, D, R, "⌢", "\\smallfrown"), g(_, D, R, "≏", "\\bumpeq", !0), g(_, D, R, "≎", "\\Bumpeq", !0), g(_, D, R, "≧", "\\geqq", !0), g(_, D, R, "⩾", "\\geqslant", !0), g(_, D, R, "⪖", "\\eqslantgtr", !0), g(_, D, R, "≳", "\\gtrsim", !0), g(_, D, R, "⪆", "\\gtrapprox", !0), g(_, D, he, "⋗", "\\gtrdot"), g(_, D, R, "⋙", "\\ggg", !0), g(_, D, R, "≷", "\\gtrless", !0), g(_, D, R, "⋛", "\\gtreqless", !0), g(_, D, R, "⪌", "\\gtreqqless", !0), g(_, D, R, "≖", "\\eqcirc", !0), g(_, D, R, "≗", "\\circeq", !0), g(_, D, R, "≜", "\\triangleq", !0), g(_, D, R, "∼", "\\thicksim"), g(_, D, R, "≈", "\\thickapprox"), g(_, D, R, "⫆", "\\supseteqq", !0), g(_, D, R, "⋑", "\\Supset", !0), g(_, D, R, "⊐", "\\sqsupset", !0), g(_, D, R, "≽", "\\succcurlyeq", !0), g(_, D, R, "⋟", "\\curlyeqsucc", !0), g(_, D, R, "≿", "\\succsim", !0), g(_, D, R, "⪸", "\\succapprox", !0), g(_, D, R, "⊳", "\\vartriangleright"), g(_, D, R, "⊵", "\\trianglerighteq"), g(_, D, R, "⊩", "\\Vdash", !0), g(_, D, R, "∣", "\\shortmid"), g(_, D, R, "∥", "\\shortparallel"), g(_, D, R, "≬", "\\between", !0), g(_, D, R, "⋔", "\\pitchfork", !0), g(_, D, R, "∝", "\\varpropto"), g(_, D, R, "◀", "\\blacktriangleleft"), g(_, D, R, "∴", "\\therefore", !0), g(_, D, R, "∍", "\\backepsilon"), g(_, D, R, "▶", "\\blacktriangleright"), g(_, D, R, "∵", "\\because", !0), g(_, D, R, "⋘", "\\llless"), g(_, D, R, "⋙", "\\gggtr"), g(_, D, he, "⊲", "\\lhd"), g(_, D, he, "⊳", "\\rhd"), g(_, D, R, "≂", "\\eqsim", !0), g(_, x, R, "⋈", "\\Join"), g(_, D, R, "≑", "\\Doteq", !0), g(_, D, he, "∔", "\\dotplus", !0), g(_, D, he, "∖", "\\smallsetminus"), g(_, D, he, "⋒", "\\Cap", !0), g(_, D, he, "⋓", "\\Cup", !0), g(_, D, he, "⩞", "\\doublebarwedge", !0), g(_, D, he, "⊟", "\\boxminus", !0), g(_, D, he, "⊞", "\\boxplus", !0), g(_, D, he, "⋇", "\\divideontimes", !0), g(_, D, he, "⋉", "\\ltimes", !0), g(_, D, he, "⋊", "\\rtimes", !0), g(_, D, he, "⋋", "\\leftthreetimes", !0), g(_, D, he, "⋌", "\\rightthreetimes", !0), g(_, D, he, "⋏", "\\curlywedge", !0), g(_, D, he, "⋎", "\\curlyvee", !0), g(_, D, he, "⊝", "\\circleddash", !0), g(_, D, he, "⊛", "\\circledast", !0), g(_, D, he, "⋅", "\\centerdot"), g(_, D, he, "⊺", "\\intercal", !0), g(_, D, he, "⋒", "\\doublecap"), g(_, D, he, "⋓", "\\doublecup"), g(_, D, he, "⊠", "\\boxtimes", !0), g(_, D, R, "⇢", "\\dashrightarrow", !0), g(_, D, R, "⇠", "\\dashleftarrow", !0), g(_, D, R, "⇇", "\\leftleftarrows", !0), g(_, D, R, "⇆", "\\leftrightarrows", !0), g(_, D, R, "⇚", "\\Lleftarrow", !0), g(_, D, R, "↞", "\\twoheadleftarrow", !0), g(_, D, R, "↢", "\\leftarrowtail", !0), g(_, D, R, "↫", "\\looparrowleft", !0), g(_, D, R, "⇋", "\\leftrightharpoons", !0), g(_, D, R, "↶", "\\curvearrowleft", !0), g(_, D, R, "↺", "\\circlearrowleft", !0), g(_, D, R, "↰", "\\Lsh", !0), g(_, D, R, "⇈", "\\upuparrows", !0), g(_, D, R, "↿", "\\upharpoonleft", !0), g(_, D, R, "⇃", "\\downharpoonleft", !0), g(_, x, R, "⊶", "\\origof", !0), g(_, x, R, "⊷", "\\imageof", !0), g(_, D, R, "⊸", "\\multimap", !0), g(_, D, R, "↭", "\\leftrightsquigarrow", !0), g(_, D, R, "⇉", "\\rightrightarrows", !0), g(_, D, R, "⇄", "\\rightleftarrows", !0), g(_, D, R, "↠", "\\twoheadrightarrow", !0), g(_, D, R, "↣", "\\rightarrowtail", !0), g(_, D, R, "↬", "\\looparrowright", !0), g(_, D, R, "↷", "\\curvearrowright", !0), g(_, D, R, "↻", "\\circlearrowright", !0), g(_, D, R, "↱", "\\Rsh", !0), g(_, D, R, "⇊", "\\downdownarrows", !0), g(_, D, R, "↾", "\\upharpoonright", !0), g(_, D, R, "⇂", "\\downharpoonright", !0), g(_, D, R, "⇝", "\\rightsquigarrow", !0), g(_, D, R, "⇝", "\\leadsto"), g(_, D, R, "⇛", "\\Rrightarrow", !0), g(_, D, R, "↾", "\\restriction"), g(_, x, P, "‘", "`"), g(_, x, P, "$", "\\$"), g(J, x, P, "$", "\\$"), g(J, x, P, "$", "\\textdollar"), g(_, x, P, "%", "\\%"), g(J, x, P, "%", "\\%"), g(_, x, P, "_", "\\_"), g(J, x, P, "_", "\\_"), g(J, x, P, "_", "\\textunderscore"), g(_, x, P, "∠", "\\angle", !0), g(_, x, P, "∞", "\\infty", !0), g(_, x, P, "′", "\\prime"), g(_, x, P, "△", "\\triangle"), g(_, x, P, "Γ", "\\Gamma", !0), g(_, x, P, "Δ", "\\Delta", !0), g(_, x, P, "Θ", "\\Theta", !0), g(_, x, P, "Λ", "\\Lambda", !0), g(_, x, P, "Ξ", "\\Xi", !0), g(_, x, P, "Π", "\\Pi", !0), g(_, x, P, "Σ", "\\Sigma", !0), g(_, x, P, "Υ", "\\Upsilon", !0), g(_, x, P, "Φ", "\\Phi", !0), g(_, x, P, "Ψ", "\\Psi", !0), g(_, x, P, "Ω", "\\Omega", !0), g(_, x, P, "A", "Α"), g(_, x, P, "B", "Β"), g(_, x, P, "E", "Ε"), g(_, x, P, "Z", "Ζ"), g(_, x, P, "H", "Η"), g(_, x, P, "I", "Ι"), g(_, x, P, "K", "Κ"), g(_, x, P, "M", "Μ"), g(_, x, P, "N", "Ν"), g(_, x, P, "O", "Ο"), g(_, x, P, "P", "Ρ"), g(_, x, P, "T", "Τ"), g(_, x, P, "X", "Χ"), g(_, x, P, "¬", "\\neg", !0), g(_, x, P, "¬", "\\lnot"), g(_, x, P, "⊤", "\\top"), g(_, x, P, "⊥", "\\bot"), g(_, x, P, "∅", "\\emptyset"), g(_, D, P, "∅", "\\varnothing"), g(_, x, Ae, "α", "\\alpha", !0), g(_, x, Ae, "β", "\\beta", !0), g(_, x, Ae, "γ", "\\gamma", !0), g(_, x, Ae, "δ", "\\delta", !0), g(_, x, Ae, "ϵ", "\\epsilon", !0), g(_, x, Ae, "ζ", "\\zeta", !0), g(_, x, Ae, "η", "\\eta", !0), g(_, x, Ae, "θ", "\\theta", !0), g(_, x, Ae, "ι", "\\iota", !0), g(_, x, Ae, "κ", "\\kappa", !0), g(_, x, Ae, "λ", "\\lambda", !0), g(_, x, Ae, "μ", "\\mu", !0), g(_, x, Ae, "ν", "\\nu", !0), g(_, x, Ae, "ξ", "\\xi", !0), g(_, x, Ae, "ο", "\\omicron", !0), g(_, x, Ae, "π", "\\pi", !0), g(_, x, Ae, "ρ", "\\rho", !0), g(_, x, Ae, "σ", "\\sigma", !0), g(_, x, Ae, "τ", "\\tau", !0), g(_, x, Ae, "υ", "\\upsilon", !0), g(_, x, Ae, "ϕ", "\\phi", !0), g(_, x, Ae, "χ", "\\chi", !0), g(_, x, Ae, "ψ", "\\psi", !0), g(_, x, Ae, "ω", "\\omega", !0), g(_, x, Ae, "ε", "\\varepsilon", !0), g(_, x, Ae, "ϑ", "\\vartheta", !0), g(_, x, Ae, "ϖ", "\\varpi", !0), g(_, x, Ae, "ϱ", "\\varrho", !0), g(_, x, Ae, "ς", "\\varsigma", !0), g(_, x, Ae, "φ", "\\varphi", !0), g(_, x, he, "∗", "*", !0), g(_, x, he, "+", "+"), g(_, x, he, "−", "-", !0), g(_, x, he, "⋅", "\\cdot", !0), g(_, x, he, "∘", "\\circ", !0), g(_, x, he, "÷", "\\div", !0), g(_, x, he, "±", "\\pm", !0), g(_, x, he, "×", "\\times", !0), g(_, x, he, "∩", "\\cap", !0), g(_, x, he, "∪", "\\cup", !0), g(_, x, he, "∖", "\\setminus", !0), g(_, x, he, "∧", "\\land"), g(_, x, he, "∨", "\\lor"), g(_, x, he, "∧", "\\wedge", !0), g(_, x, he, "∨", "\\vee", !0), g(_, x, P, "√", "\\surd"), g(_, x, Ft, "⟨", "\\langle", !0), g(_, x, Ft, "∣", "\\lvert"), g(_, x, Ft, "∥", "\\lVert"), g(_, x, Tt, "?", "?"), g(_, x, Tt, "!", "!"), g(_, x, Tt, "⟩", "\\rangle", !0), g(_, x, Tt, "∣", "\\rvert"), g(_, x, Tt, "∥", "\\rVert"), g(_, x, R, "=", "="), g(_, x, R, ":", ":"), g(_, x, R, "≈", "\\approx", !0), g(_, x, R, "≅", "\\cong", !0), g(_, x, R, "≥", "\\ge"), g(_, x, R, "≥", "\\geq", !0), g(_, x, R, "←", "\\gets"), g(_, x, R, ">", "\\gt", !0), g(_, x, R, "∈", "\\in", !0), g(_, x, R, "", "\\@not"), g(_, x, R, "⊂", "\\subset", !0), g(_, x, R, "⊃", "\\supset", !0), g(_, x, R, "⊆", "\\subseteq", !0), g(_, x, R, "⊇", "\\supseteq", !0), g(_, D, R, "⊈", "\\nsubseteq", !0), g(_, D, R, "⊉", "\\nsupseteq", !0), g(_, x, R, "⊨", "\\models"), g(_, x, R, "←", "\\leftarrow", !0), g(_, x, R, "≤", "\\le"), g(_, x, R, "≤", "\\leq", !0), g(_, x, R, "<", "\\lt", !0), g(_, x, R, "→", "\\rightarrow", !0), g(_, x, R, "→", "\\to"), g(_, D, R, "≱", "\\ngeq", !0), g(_, D, R, "≰", "\\nleq", !0), g(_, x, _r, " ", "\\ "), g(_, x, _r, " ", "\\space"), g(_, x, _r, " ", "\\nobreakspace"), g(J, x, _r, " ", "\\ "), g(J, x, _r, " ", " "), g(J, x, _r, " ", "\\space"), g(J, x, _r, " ", "\\nobreakspace"), g(_, x, _r, null, "\\nobreak"), g(_, x, _r, null, "\\allowbreak"), g(_, x, ni, ",", ","), g(_, x, ni, ";", ";"), g(_, D, he, "⊼", "\\barwedge", !0), g(_, D, he, "⊻", "\\veebar", !0), g(_, x, he, "⊙", "\\odot", !0), g(_, x, he, "⊕", "\\oplus", !0), g(_, x, he, "⊗", "\\otimes", !0), g(_, x, P, "∂", "\\partial", !0), g(_, x, he, "⊘", "\\oslash", !0), g(_, D, he, "⊚", "\\circledcirc", !0), g(_, D, he, "⊡", "\\boxdot", !0), g(_, x, he, "△", "\\bigtriangleup"), g(_, x, he, "▽", "\\bigtriangledown"), g(_, x, he, "†", "\\dagger"), g(_, x, he, "⋄", "\\diamond"), g(_, x, he, "⋆", "\\star"), g(_, x, he, "◃", "\\triangleleft"), g(_, x, he, "▹", "\\triangleright"), g(_, x, Ft, "{", "\\{"), g(J, x, P, "{", "\\{"), g(J, x, P, "{", "\\textbraceleft"), g(_, x, Tt, "}", "\\}"), g(J, x, P, "}", "\\}"), g(J, x, P, "}", "\\textbraceright"), g(_, x, Ft, "{", "\\lbrace"), g(_, x, Tt, "}", "\\rbrace"), g(_, x, Ft, "[", "\\lbrack", !0), g(J, x, P, "[", "\\lbrack", !0), g(_, x, Tt, "]", "\\rbrack", !0), g(J, x, P, "]", "\\rbrack", !0), g(_, x, Ft, "(", "\\lparen", !0), g(_, x, Tt, ")", "\\rparen", !0), g(J, x, P, "<", "\\textless", !0), g(J, x, P, ">", "\\textgreater", !0), g(_, x, Ft, "⌊", "\\lfloor", !0), g(_, x, Tt, "⌋", "\\rfloor", !0), g(_, x, Ft, "⌈", "\\lceil", !0), g(_, x, Tt, "⌉", "\\rceil", !0), g(_, x, P, "\\", "\\backslash"), g(_, x, P, "∣", "|"), g(_, x, P, "∣", "\\vert"), g(J, x, P, "|", "\\textbar", !0), g(_, x, P, "∥", "\\|"), g(_, x, P, "∥", "\\Vert"), g(J, x, P, "∥", "\\textbardbl"), g(J, x, P, "~", "\\textasciitilde"), g(J, x, P, "\\", "\\textbackslash"), g(J, x, P, "^", "\\textasciicircum"), g(_, x, R, "↑", "\\uparrow", !0), g(_, x, R, "⇑", "\\Uparrow", !0), g(_, x, R, "↓", "\\downarrow", !0), g(_, x, R, "⇓", "\\Downarrow", !0), g(_, x, R, "↕", "\\updownarrow", !0), g(_, x, R, "⇕", "\\Updownarrow", !0), g(_, x, ot, "∐", "\\coprod"), g(_, x, ot, "⋁", "\\bigvee"), g(_, x, ot, "⋀", "\\bigwedge"), g(_, x, ot, "⨄", "\\biguplus"), g(_, x, ot, "⋂", "\\bigcap"), g(_, x, ot, "⋃", "\\bigcup"), g(_, x, ot, "∫", "\\int"), g(_, x, ot, "∫", "\\intop"), g(_, x, ot, "∬", "\\iint"), g(_, x, ot, "∭", "\\iiint"), g(_, x, ot, "∏", "\\prod"), g(_, x, ot, "∑", "\\sum"), g(_, x, ot, "⨂", "\\bigotimes"), g(_, x, ot, "⨁", "\\bigoplus"), g(_, x, ot, "⨀", "\\bigodot"), g(_, x, ot, "∮", "\\oint"), g(_, x, ot, "∯", "\\oiint"), g(_, x, ot, "∰", "\\oiiint"), g(_, x, ot, "⨆", "\\bigsqcup"), g(_, x, ot, "∫", "\\smallint"), g(J, x, yn, "…", "\\textellipsis"), g(_, x, yn, "…", "\\mathellipsis"), g(J, x, yn, "…", "\\ldots", !0), g(_, x, yn, "…", "\\ldots", !0), g(_, x, yn, "⋯", "\\@cdots", !0), g(_, x, yn, "⋱", "\\ddots", !0), g(_, x, P, "⋮", "\\varvdots"), g(_, x, Ke, "ˊ", "\\acute"), g(_, x, Ke, "ˋ", "\\grave"), g(_, x, Ke, "¨", "\\ddot"), g(_, x, Ke, "~", "\\tilde"), g(_, x, Ke, "ˉ", "\\bar"), g(_, x, Ke, "˘", "\\breve"), g(_, x, Ke, "ˇ", "\\check"), g(_, x, Ke, "^", "\\hat"), g(_, x, Ke, "⃗", "\\vec"), g(_, x, Ke, "˙", "\\dot"), g(_, x, Ke, "˚", "\\mathring"), g(_, x, Ae, "", "\\@imath"), g(_, x, Ae, "", "\\@jmath"), g(_, x, P, "ı", "ı"), g(_, x, P, "ȷ", "ȷ"), g(J, x, P, "ı", "\\i", !0), g(J, x, P, "ȷ", "\\j", !0), g(J, x, P, "ß", "\\ss", !0), g(J, x, P, "æ", "\\ae", !0), g(J, x, P, "œ", "\\oe", !0), g(J, x, P, "ø", "\\o", !0), g(J, x, P, "Æ", "\\AE", !0), g(J, x, P, "Œ", "\\OE", !0), g(J, x, P, "Ø", "\\O", !0), g(J, x, Ke, "ˊ", "\\'"), g(J, x, Ke, "ˋ", "\\`"), g(J, x, Ke, "ˆ", "\\^"), g(J, x, Ke, "˜", "\\~"), g(J, x, Ke, "ˉ", "\\="), g(J, x, Ke, "˘", "\\u"), g(J, x, Ke, "˙", "\\."), g(J, x, Ke, "¸", "\\c"), g(J, x, Ke, "˚", "\\r"), g(J, x, Ke, "ˇ", "\\v"), g(J, x, Ke, "¨", '\\"'), g(J, x, Ke, "˝", "\\H"), g(J, x, Ke, "◯", "\\textcircled");
          var Qo = {
            "--": !0,
            "---": !0,
            "``": !0,
            "''": !0
          };
          g(J, x, P, "–", "--", !0), g(J, x, P, "–", "\\textendash"), g(J, x, P, "—", "---", !0), g(J, x, P, "—", "\\textemdash"), g(J, x, P, "‘", "`", !0), g(J, x, P, "‘", "\\textquoteleft"), g(J, x, P, "’", "'", !0), g(J, x, P, "’", "\\textquoteright"), g(J, x, P, "“", "``", !0), g(J, x, P, "“", "\\textquotedblleft"), g(J, x, P, "”", "''", !0), g(J, x, P, "”", "\\textquotedblright"), g(_, x, P, "°", "\\degree", !0), g(J, x, P, "°", "\\degree"), g(J, x, P, "°", "\\textdegree", !0), g(_, x, P, "£", "\\pounds"), g(_, x, P, "£", "\\mathsterling", !0), g(J, x, P, "£", "\\pounds"), g(J, x, P, "£", "\\textsterling", !0), g(_, D, P, "✠", "\\maltese"), g(J, D, P, "✠", "\\maltese");
          for (var Zo = '0123456789/@."', Xa = 0; Xa < Zo.length; Xa++) {
            var Jo = Zo.charAt(Xa);
            g(_, x, P, Jo, Jo);
          }
          for (var el = '0123456789!@*()-=+";:?/.,', Wa = 0; Wa < el.length; Wa++) {
            var tl = el.charAt(Wa);
            g(J, x, P, tl, tl);
          }
          for (var ii = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", ja = 0; ja < ii.length; ja++) {
            var ai = ii.charAt(ja);
            g(_, x, Ae, ai, ai), g(J, x, P, ai, ai);
          }
          g(_, D, P, "C", "ℂ"), g(J, D, P, "C", "ℂ"), g(_, D, P, "H", "ℍ"), g(J, D, P, "H", "ℍ"), g(_, D, P, "N", "ℕ"), g(J, D, P, "N", "ℕ"), g(_, D, P, "P", "ℙ"), g(J, D, P, "P", "ℙ"), g(_, D, P, "Q", "ℚ"), g(J, D, P, "Q", "ℚ"), g(_, D, P, "R", "ℝ"), g(J, D, P, "R", "ℝ"), g(_, D, P, "Z", "ℤ"), g(J, D, P, "Z", "ℤ"), g(_, x, Ae, "h", "ℎ"), g(J, x, Ae, "h", "ℎ");
          for (var ye = "", At = 0; At < ii.length; At++) {
            var st = ii.charAt(At);
            ye = String.fromCharCode(55349, 56320 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56372 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56424 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56580 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56684 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56736 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56788 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56840 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56944 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), At < 26 && (ye = String.fromCharCode(55349, 56632 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye), ye = String.fromCharCode(55349, 56476 + At), g(_, x, Ae, st, ye), g(J, x, P, st, ye));
          }
          ye = String.fromCharCode(55349, 56668), g(_, x, Ae, "k", ye), g(J, x, P, "k", ye);
          for (var Jr = 0; Jr < 10; Jr++) {
            var Or = Jr.toString();
            ye = String.fromCharCode(55349, 57294 + Jr), g(_, x, Ae, Or, ye), g(J, x, P, Or, ye), ye = String.fromCharCode(55349, 57314 + Jr), g(_, x, Ae, Or, ye), g(J, x, P, Or, ye), ye = String.fromCharCode(55349, 57324 + Jr), g(_, x, Ae, Or, ye), g(J, x, P, Or, ye), ye = String.fromCharCode(55349, 57334 + Jr), g(_, x, Ae, Or, ye), g(J, x, P, Or, ye);
          }
          for (var Ka = "ÐÞþ", $a = 0; $a < Ka.length; $a++) {
            var si = Ka.charAt($a);
            g(_, x, Ae, si, si), g(J, x, P, si, si);
          }
          var ui = [
            ["mathbf", "textbf", "Main-Bold"],
            // A-Z bold upright
            ["mathbf", "textbf", "Main-Bold"],
            // a-z bold upright
            ["mathnormal", "textit", "Math-Italic"],
            // A-Z italic
            ["mathnormal", "textit", "Math-Italic"],
            // a-z italic
            ["boldsymbol", "boldsymbol", "Main-BoldItalic"],
            // A-Z bold italic
            ["boldsymbol", "boldsymbol", "Main-BoldItalic"],
            // a-z bold italic
            // Map fancy A-Z letters to script, not calligraphic.
            // This aligns with unicode-math and math fonts (except Cambria Math).
            ["mathscr", "textscr", "Script-Regular"],
            // A-Z script
            ["", "", ""],
            // a-z script.  No font
            ["", "", ""],
            // A-Z bold script. No font
            ["", "", ""],
            // a-z bold script. No font
            ["mathfrak", "textfrak", "Fraktur-Regular"],
            // A-Z Fraktur
            ["mathfrak", "textfrak", "Fraktur-Regular"],
            // a-z Fraktur
            ["mathbb", "textbb", "AMS-Regular"],
            // A-Z double-struck
            ["mathbb", "textbb", "AMS-Regular"],
            // k double-struck
            // Note that we are using a bold font, but font metrics for regular Fraktur.
            ["mathboldfrak", "textboldfrak", "Fraktur-Regular"],
            // A-Z bold Fraktur
            ["mathboldfrak", "textboldfrak", "Fraktur-Regular"],
            // a-z bold Fraktur
            ["mathsf", "textsf", "SansSerif-Regular"],
            // A-Z sans-serif
            ["mathsf", "textsf", "SansSerif-Regular"],
            // a-z sans-serif
            ["mathboldsf", "textboldsf", "SansSerif-Bold"],
            // A-Z bold sans-serif
            ["mathboldsf", "textboldsf", "SansSerif-Bold"],
            // a-z bold sans-serif
            ["mathitsf", "textitsf", "SansSerif-Italic"],
            // A-Z italic sans-serif
            ["mathitsf", "textitsf", "SansSerif-Italic"],
            // a-z italic sans-serif
            ["", "", ""],
            // A-Z bold italic sans. No font
            ["", "", ""],
            // a-z bold italic sans. No font
            ["mathtt", "texttt", "Typewriter-Regular"],
            // A-Z monospace
            ["mathtt", "texttt", "Typewriter-Regular"]
            // a-z monospace
          ], rl = [
            ["mathbf", "textbf", "Main-Bold"],
            // 0-9 bold
            ["", "", ""],
            // 0-9 double-struck. No KaTeX font.
            ["mathsf", "textsf", "SansSerif-Regular"],
            // 0-9 sans-serif
            ["mathboldsf", "textboldsf", "SansSerif-Bold"],
            // 0-9 bold sans-serif
            ["mathtt", "texttt", "Typewriter-Regular"]
            // 0-9 monospace
          ], h2 = function(s, u) {
            var l = s.charCodeAt(0), h = s.charCodeAt(1), p = (l - 55296) * 1024 + (h - 56320) + 65536, v = u === "math" ? 0 : 1;
            if (119808 <= p && p < 120484) {
              var T = Math.floor((p - 119808) / 26);
              return [ui[T][2], ui[T][v]];
            } else if (120782 <= p && p <= 120831) {
              var y = Math.floor((p - 120782) / 10);
              return [rl[y][2], rl[y][v]];
            } else {
              if (p === 120485 || p === 120486)
                return [ui[0][2], ui[0][v]];
              if (120486 < p && p < 120782)
                return ["", ""];
              throw new a("Unsupported character: " + s);
            }
          }, oi = function(s, u, l) {
            return tt[l][s] && tt[l][s].replace && (s = tt[l][s].replace), {
              value: s,
              metrics: za(s, u, l)
            };
          }, Jt = function(s, u, l, h, p) {
            var v = oi(s, u, l), T = v.metrics;
            s = v.value;
            var y;
            if (T) {
              var w = T.italic;
              (l === "text" || h && h.font === "mathit") && (w = 0), y = new Vt(s, T.height, T.depth, w, T.skew, T.width, p);
            } else
              typeof console < "u" && console.warn("No character metrics " + ("for '" + s + "' in style '" + u + "' and mode '" + l + "'")), y = new Vt(s, 0, 0, 0, 0, 0, p);
            if (h) {
              y.maxFontSize = h.sizeMultiplier, h.style.isTight() && y.classes.push("mtight");
              var L = h.getColor();
              L && (y.style.color = L);
            }
            return y;
          }, f2 = function(s, u, l, h) {
            return h === void 0 && (h = []), l.font === "boldsymbol" && oi(s, "Main-Bold", u).metrics ? Jt(s, "Main-Bold", u, l, h.concat(["mathbf"])) : s === "\\" || tt[u][s].font === "main" ? Jt(s, "Main-Regular", u, l, h) : Jt(s, "AMS-Regular", u, l, h.concat(["amsrm"]));
          }, d2 = function(s, u, l, h, p) {
            return p !== "textord" && oi(s, "Math-BoldItalic", u).metrics ? {
              fontName: "Math-BoldItalic",
              fontClass: "boldsymbol"
            } : {
              fontName: "Main-Bold",
              fontClass: "mathbf"
            };
          }, m2 = function(s, u, l) {
            var h = s.mode, p = s.text, v = ["mord"], T = h === "math" || h === "text" && u.font, y = T ? u.font : u.fontFamily, w = "", L = "";
            if (p.charCodeAt(0) === 55349) {
              var U = h2(p, h);
              w = U[0], L = U[1];
            }
            if (w.length > 0)
              return Jt(p, w, h, u, v.concat(L));
            if (y) {
              var j, W;
              if (y === "boldsymbol") {
                var Q = d2(p, h, u, v, l);
                j = Q.fontName, W = [Q.fontClass];
              } else
                T ? (j = al[y].fontName, W = [y]) : (j = li(y, u.fontWeight, u.fontShape), W = [y, u.fontWeight, u.fontShape]);
              if (oi(p, j, h).metrics)
                return Jt(p, j, h, u, v.concat(W));
              if (Qo.hasOwnProperty(p) && j.slice(0, 10) === "Typewriter") {
                for (var ne = [], ue = 0; ue < p.length; ue++)
                  ne.push(Jt(p[ue], j, h, u, v.concat(W)));
                return il(ne);
              }
            }
            if (l === "mathord")
              return Jt(p, "Math-Italic", h, u, v.concat(["mathnormal"]));
            if (l === "textord") {
              var fe = tt[h][p] && tt[h][p].font;
              if (fe === "ams") {
                var Ee = li("amsrm", u.fontWeight, u.fontShape);
                return Jt(p, Ee, h, u, v.concat("amsrm", u.fontWeight, u.fontShape));
              } else if (fe === "main" || !fe) {
                var _e = li("textrm", u.fontWeight, u.fontShape);
                return Jt(p, _e, h, u, v.concat(u.fontWeight, u.fontShape));
              } else {
                var He = li(fe, u.fontWeight, u.fontShape);
                return Jt(p, He, h, u, v.concat(He, u.fontWeight, u.fontShape));
              }
            } else
              throw new Error("unexpected type: " + l + " in makeOrd");
          }, p2 = function(s, u) {
            if (Dr(s.classes) !== Dr(u.classes) || s.skew !== u.skew || s.maxFontSize !== u.maxFontSize)
              return !1;
            if (s.classes.length === 1) {
              var l = s.classes[0];
              if (l === "mbin" || l === "mord")
                return !1;
            }
            for (var h in s.style)
              if (s.style.hasOwnProperty(h) && s.style[h] !== u.style[h])
                return !1;
            for (var p in u.style)
              if (u.style.hasOwnProperty(p) && s.style[p] !== u.style[p])
                return !1;
            return !0;
          }, g2 = function(s) {
            for (var u = 0; u < s.length - 1; u++) {
              var l = s[u], h = s[u + 1];
              l instanceof Vt && h instanceof Vt && p2(l, h) && (l.text += h.text, l.height = Math.max(l.height, h.height), l.depth = Math.max(l.depth, h.depth), l.italic = h.italic, s.splice(u + 1, 1), u--);
            }
            return s;
          }, Qa = function(s) {
            for (var u = 0, l = 0, h = 0, p = 0; p < s.children.length; p++) {
              var v = s.children[p];
              v.height > u && (u = v.height), v.depth > l && (l = v.depth), v.maxFontSize > h && (h = v.maxFontSize);
            }
            s.height = u, s.depth = l, s.maxFontSize = h;
          }, Ct = function(s, u, l, h) {
            var p = new u0(s, u, l, h);
            return Qa(p), p;
          }, nl = function(s, u, l, h) {
            return new u0(s, u, l, h);
          }, b2 = function(s, u, l) {
            var h = Ct([s], [], u);
            return h.height = Math.max(l || u.fontMetrics().defaultRuleThickness, u.minRuleThickness), h.style.borderBottomWidth = ie(h.height), h.maxFontSize = 1, h;
          }, E2 = function(s, u, l, h) {
            var p = new Va(s, u, l, h);
            return Qa(p), p;
          }, il = function(s) {
            var u = new s0(s);
            return Qa(u), u;
          }, v2 = function(s, u) {
            return s instanceof s0 ? Ct([], [s], u) : s;
          }, _2 = function(s) {
            if (s.positionType === "individualShift") {
              for (var u = s.children, l = [u[0]], h = -u[0].shift - u[0].elem.depth, p = h, v = 1; v < u.length; v++) {
                var T = -u[v].shift - p - u[v].elem.depth, y = T - (u[v - 1].elem.height + u[v - 1].elem.depth);
                p = p + T, l.push({
                  type: "kern",
                  size: y
                }), l.push(u[v]);
              }
              return {
                children: l,
                depth: h
              };
            }
            var w;
            if (s.positionType === "top") {
              for (var L = s.positionData, U = 0; U < s.children.length; U++) {
                var j = s.children[U];
                L -= j.type === "kern" ? j.size : j.elem.height + j.elem.depth;
              }
              w = L;
            } else if (s.positionType === "bottom")
              w = -s.positionData;
            else {
              var W = s.children[0];
              if (W.type !== "elem")
                throw new Error('First child must have type "elem".');
              if (s.positionType === "shift")
                w = -W.elem.depth - s.positionData;
              else if (s.positionType === "firstBaseline")
                w = -W.elem.depth;
              else
                throw new Error("Invalid positionType " + s.positionType + ".");
            }
            return {
              children: s.children,
              depth: w
            };
          }, T2 = function(s, u) {
            for (var l = _2(s), h = l.children, p = l.depth, v = 0, T = 0; T < h.length; T++) {
              var y = h[T];
              if (y.type === "elem") {
                var w = y.elem;
                v = Math.max(v, w.maxFontSize, w.height);
              }
            }
            v += 2;
            var L = Ct(["pstrut"], []);
            L.style.height = ie(v);
            for (var U = [], j = p, W = p, Q = p, ne = 0; ne < h.length; ne++) {
              var ue = h[ne];
              if (ue.type === "kern")
                Q += ue.size;
              else {
                var fe = ue.elem, Ee = ue.wrapperClasses || [], _e = ue.wrapperStyle || {}, He = Ct(Ee, [L, fe], void 0, _e);
                He.style.top = ie(-v - Q - fe.depth), ue.marginLeft && (He.style.marginLeft = ue.marginLeft), ue.marginRight && (He.style.marginRight = ue.marginRight), U.push(He), Q += fe.height + fe.depth;
              }
              j = Math.min(j, Q), W = Math.max(W, Q);
            }
            var Ie = Ct(["vlist"], U);
            Ie.style.height = ie(W);
            var ze;
            if (j < 0) {
              var Pe = Ct([], []), qe = Ct(["vlist"], [Pe]);
              qe.style.height = ie(-j);
              var je = Ct(["vlist-s"], [new Vt("​")]);
              ze = [Ct(["vlist-r"], [Ie, je]), Ct(["vlist-r"], [qe])];
            } else
              ze = [Ct(["vlist-r"], [Ie])];
            var gt = Ct(["vlist-t"], ze);
            return ze.length === 2 && gt.classes.push("vlist-t2"), gt.height = W, gt.depth = -j, gt;
          }, A2 = function(s, u) {
            var l = Ct(["mspace"], [], u), h = et(s, u);
            return l.style.marginRight = ie(h), l;
          }, li = function(s, u, l) {
            var h = "";
            switch (s) {
              case "amsrm":
                h = "AMS";
                break;
              case "textrm":
                h = "Main";
                break;
              case "textsf":
                h = "SansSerif";
                break;
              case "texttt":
                h = "Typewriter";
                break;
              default:
                h = s;
            }
            var p;
            return u === "textbf" && l === "textit" ? p = "BoldItalic" : u === "textbf" ? p = "Bold" : u === "textit" ? p = "Italic" : p = "Regular", h + "-" + p;
          }, al = {
            // styles
            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"
            },
            // "boldsymbol" is missing because they require the use of multiple fonts:
            // Math-BoldItalic and Main-Bold.  This is handled by a special case in
            // makeOrd which ends up calling boldsymbol.
            // families
            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"
            }
          }, sl = {
            //   path, width, height
            vec: ["vec", 0.471, 0.714],
            // values from the font glyph
            oiintSize1: ["oiintSize1", 0.957, 0.499],
            // oval to overlay the integrand
            oiintSize2: ["oiintSize2", 1.472, 0.659],
            oiiintSize1: ["oiiintSize1", 1.304, 0.499],
            oiiintSize2: ["oiiintSize2", 1.98, 0.659]
          }, x2 = function(s, u) {
            var l = sl[s], h = l[0], p = l[1], v = l[2], T = new Rr(h), y = new vr([T], {
              width: ie(p),
              height: ie(v),
              // Override CSS rule `.katex svg { width: 100% }`
              style: "width:" + ie(p),
              viewBox: "0 0 " + 1e3 * p + " " + 1e3 * v,
              preserveAspectRatio: "xMinYMin"
            }), w = nl(["overlay"], [y], u);
            return w.height = v, w.style.height = ie(v), w.style.width = ie(p), w;
          }, z = {
            fontMap: al,
            makeSymbol: Jt,
            mathsym: f2,
            makeSpan: Ct,
            makeSvgSpan: nl,
            makeLineSpan: b2,
            makeAnchor: E2,
            makeFragment: il,
            wrapFragment: v2,
            makeVList: T2,
            makeOrd: m2,
            makeGlue: A2,
            staticSvg: x2,
            svgData: sl,
            tryCombineChars: g2
          }, rt = {
            number: 3,
            unit: "mu"
          }, en = {
            number: 4,
            unit: "mu"
          }, Tr = {
            number: 5,
            unit: "mu"
          }, y2 = {
            mord: {
              mop: rt,
              mbin: en,
              mrel: Tr,
              minner: rt
            },
            mop: {
              mord: rt,
              mop: rt,
              mrel: Tr,
              minner: rt
            },
            mbin: {
              mord: en,
              mop: en,
              mopen: en,
              minner: en
            },
            mrel: {
              mord: Tr,
              mop: Tr,
              mopen: Tr,
              minner: Tr
            },
            mopen: {},
            mclose: {
              mop: rt,
              mbin: en,
              mrel: Tr,
              minner: rt
            },
            mpunct: {
              mord: rt,
              mop: rt,
              mrel: Tr,
              mopen: rt,
              mclose: rt,
              mpunct: rt,
              minner: rt
            },
            minner: {
              mord: rt,
              mop: rt,
              mbin: en,
              mrel: Tr,
              mopen: rt,
              mpunct: rt,
              minner: rt
            }
          }, S2 = {
            mord: {
              mop: rt
            },
            mop: {
              mord: rt,
              mop: rt
            },
            mbin: {},
            mrel: {},
            mopen: {},
            mclose: {
              mop: rt
            },
            mpunct: {},
            minner: {
              mop: rt
            }
          }, ul = {}, ci = {}, hi = {};
          function le(E) {
            for (var s = E.type, u = E.names, l = E.props, h = E.handler, p = E.htmlBuilder, v = E.mathmlBuilder, T = {
              type: s,
              numArgs: l.numArgs,
              argTypes: l.argTypes,
              allowedInArgument: !!l.allowedInArgument,
              allowedInText: !!l.allowedInText,
              allowedInMath: l.allowedInMath === void 0 ? !0 : l.allowedInMath,
              numOptionalArgs: l.numOptionalArgs || 0,
              infix: !!l.infix,
              primitive: !!l.primitive,
              handler: h
            }, y = 0; y < u.length; ++y)
              ul[u[y]] = T;
            s && (p && (ci[s] = p), v && (hi[s] = v));
          }
          function tn(E) {
            var s = E.type, u = E.htmlBuilder, l = E.mathmlBuilder;
            le({
              type: s,
              names: [],
              props: {
                numArgs: 0
              },
              handler: function() {
                throw new Error("Should never be called.");
              },
              htmlBuilder: u,
              mathmlBuilder: l
            });
          }
          var fi = function(s) {
            return s.type === "ordgroup" && s.body.length === 1 ? s.body[0] : s;
          }, ut = function(s) {
            return s.type === "ordgroup" ? s.body : [s];
          }, Ar = z.makeSpan, C2 = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"], k2 = ["rightmost", "mrel", "mclose", "mpunct"], w2 = {
            display: ae.DISPLAY,
            text: ae.TEXT,
            script: ae.SCRIPT,
            scriptscript: ae.SCRIPTSCRIPT
          }, N2 = {
            mord: "mord",
            mop: "mop",
            mbin: "mbin",
            mrel: "mrel",
            mopen: "mopen",
            mclose: "mclose",
            mpunct: "mpunct",
            minner: "minner"
          }, ct = function(s, u, l, h) {
            h === void 0 && (h = [null, null]);
            for (var p = [], v = 0; v < s.length; v++) {
              var T = Be(s[v], u);
              if (T instanceof s0) {
                var y = T.children;
                p.push.apply(p, y);
              } else
                p.push(T);
            }
            if (z.tryCombineChars(p), !l)
              return p;
            var w = u;
            if (s.length === 1) {
              var L = s[0];
              L.type === "sizing" ? w = u.havingSize(L.size) : L.type === "styling" && (w = u.havingStyle(w2[L.style]));
            }
            var U = Ar([h[0] || "leftmost"], [], u), j = Ar([h[1] || "rightmost"], [], u), W = l === "root";
            return ol(p, function(Q, ne) {
              var ue = ne.classes[0], fe = Q.classes[0];
              ue === "mbin" && B.contains(k2, fe) ? ne.classes[0] = "mord" : fe === "mbin" && B.contains(C2, ue) && (Q.classes[0] = "mord");
            }, {
              node: U
            }, j, W), ol(p, function(Q, ne) {
              var ue = Za(ne), fe = Za(Q), Ee = ue && fe ? Q.hasClass("mtight") ? S2[ue][fe] : y2[ue][fe] : null;
              if (Ee)
                return z.makeGlue(Ee, w);
            }, {
              node: U
            }, j, W), p;
          }, ol = function E(s, u, l, h, p) {
            h && s.push(h);
            for (var v = 0; v < s.length; v++) {
              var T = s[v], y = ll(T);
              if (y) {
                E(y.children, u, l, null, p);
                continue;
              }
              var w = !T.hasClass("mspace");
              if (w) {
                var L = u(T, l.node);
                L && (l.insertAfter ? l.insertAfter(L) : (s.unshift(L), v++));
              }
              w ? l.node = T : p && T.hasClass("newline") && (l.node = Ar(["leftmost"])), l.insertAfter = function(U) {
                return function(j) {
                  s.splice(U + 1, 0, j), v++;
                };
              }(v);
            }
            h && s.pop();
          }, ll = function(s) {
            return s instanceof s0 || s instanceof Va || s instanceof u0 && s.hasClass("enclosing") ? s : null;
          }, I2 = function E(s, u) {
            var l = ll(s);
            if (l) {
              var h = l.children;
              if (h.length) {
                if (u === "right")
                  return E(h[h.length - 1], "right");
                if (u === "left")
                  return E(h[0], "left");
              }
            }
            return s;
          }, Za = function(s, u) {
            return s ? (u && (s = I2(s, u)), N2[s.classes[0]] || null) : null;
          }, o0 = function(s, u) {
            var l = ["nulldelimiter"].concat(s.baseSizingClasses());
            return Ar(u.concat(l));
          }, Be = function(s, u, l) {
            if (!s)
              return Ar();
            if (ci[s.type]) {
              var h = ci[s.type](s, u);
              if (l && u.size !== l.size) {
                h = Ar(u.sizingClasses(l), [h], u);
                var p = u.sizeMultiplier / l.sizeMultiplier;
                h.height *= p, h.depth *= p;
              }
              return h;
            } else
              throw new a("Got group of unknown type: '" + s.type + "'");
          };
          function di(E, s) {
            var u = Ar(["base"], E, s), l = Ar(["strut"]);
            return l.style.height = ie(u.height + u.depth), u.depth && (l.style.verticalAlign = ie(-u.depth)), u.children.unshift(l), u;
          }
          function Ja(E, s) {
            var u = null;
            E.length === 1 && E[0].type === "tag" && (u = E[0].tag, E = E[0].body);
            var l = ct(E, s, "root"), h;
            l.length === 2 && l[1].hasClass("tag") && (h = l.pop());
            for (var p = [], v = [], T = 0; T < l.length; T++)
              if (v.push(l[T]), l[T].hasClass("mbin") || l[T].hasClass("mrel") || l[T].hasClass("allowbreak")) {
                for (var y = !1; T < l.length - 1 && l[T + 1].hasClass("mspace") && !l[T + 1].hasClass("newline"); )
                  T++, v.push(l[T]), l[T].hasClass("nobreak") && (y = !0);
                y || (p.push(di(v, s)), v = []);
              } else
                l[T].hasClass("newline") && (v.pop(), v.length > 0 && (p.push(di(v, s)), v = []), p.push(l[T]));
            v.length > 0 && p.push(di(v, s));
            var w;
            u ? (w = di(ct(u, s, !0)), w.classes = ["tag"], p.push(w)) : h && p.push(h);
            var L = Ar(["katex-html"], p);
            if (L.setAttribute("aria-hidden", "true"), w) {
              var U = w.children[0];
              U.style.height = ie(L.height + L.depth), L.depth && (U.style.verticalAlign = ie(-L.depth));
            }
            return L;
          }
          function cl(E) {
            return new s0(E);
          }
          var Gt = /* @__PURE__ */ function() {
            function E(u, l, h) {
              this.type = void 0, this.attributes = void 0, this.children = void 0, this.classes = void 0, this.type = u, this.attributes = {}, this.children = l || [], this.classes = h || [];
            }
            var s = E.prototype;
            return s.setAttribute = function(l, h) {
              this.attributes[l] = h;
            }, s.getAttribute = function(l) {
              return this.attributes[l];
            }, s.toNode = function() {
              var l = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type);
              for (var h in this.attributes)
                Object.prototype.hasOwnProperty.call(this.attributes, h) && l.setAttribute(h, this.attributes[h]);
              this.classes.length > 0 && (l.className = Dr(this.classes));
              for (var p = 0; p < this.children.length; p++)
                l.appendChild(this.children[p].toNode());
              return l;
            }, s.toMarkup = function() {
              var l = "<" + this.type;
              for (var h in this.attributes)
                Object.prototype.hasOwnProperty.call(this.attributes, h) && (l += " " + h + '="', l += B.escape(this.attributes[h]), l += '"');
              this.classes.length > 0 && (l += ' class ="' + B.escape(Dr(this.classes)) + '"'), l += ">";
              for (var p = 0; p < this.children.length; p++)
                l += this.children[p].toMarkup();
              return l += "</" + this.type + ">", l;
            }, s.toText = function() {
              return this.children.map(function(l) {
                return l.toText();
              }).join("");
            }, E;
          }(), l0 = /* @__PURE__ */ function() {
            function E(u) {
              this.text = void 0, this.text = u;
            }
            var s = E.prototype;
            return s.toNode = function() {
              return document.createTextNode(this.text);
            }, s.toMarkup = function() {
              return B.escape(this.toText());
            }, s.toText = function() {
              return this.text;
            }, E;
          }(), M2 = /* @__PURE__ */ function() {
            function E(u) {
              this.width = void 0, this.character = void 0, this.width = u, u >= 0.05555 && u <= 0.05556 ? this.character = " " : u >= 0.1666 && u <= 0.1667 ? this.character = " " : u >= 0.2222 && u <= 0.2223 ? this.character = " " : u >= 0.2777 && u <= 0.2778 ? this.character = "  " : u >= -0.05556 && u <= -0.05555 ? this.character = " ⁣" : u >= -0.1667 && u <= -0.1666 ? this.character = " ⁣" : u >= -0.2223 && u <= -0.2222 ? this.character = " ⁣" : u >= -0.2778 && u <= -0.2777 ? this.character = " ⁣" : this.character = null;
            }
            var s = E.prototype;
            return s.toNode = function() {
              if (this.character)
                return document.createTextNode(this.character);
              var l = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace");
              return l.setAttribute("width", ie(this.width)), l;
            }, s.toMarkup = function() {
              return this.character ? "<mtext>" + this.character + "</mtext>" : '<mspace width="' + ie(this.width) + '"/>';
            }, s.toText = function() {
              return this.character ? this.character : " ";
            }, E;
          }(), ee = {
            MathNode: Gt,
            TextNode: l0,
            SpaceNode: M2,
            newDocumentFragment: cl
          }, Xt = function(s, u, l) {
            return tt[u][s] && tt[u][s].replace && s.charCodeAt(0) !== 55349 && !(Qo.hasOwnProperty(s) && l && (l.fontFamily && l.fontFamily.slice(4, 6) === "tt" || l.font && l.font.slice(4, 6) === "tt")) && (s = tt[u][s].replace), new ee.TextNode(s);
          }, es = function(s) {
            return s.length === 1 ? s[0] : new ee.MathNode("mrow", s);
          }, ts = function(s, u) {
            if (u.fontFamily === "texttt")
              return "monospace";
            if (u.fontFamily === "textsf")
              return u.fontShape === "textit" && u.fontWeight === "textbf" ? "sans-serif-bold-italic" : u.fontShape === "textit" ? "sans-serif-italic" : u.fontWeight === "textbf" ? "bold-sans-serif" : "sans-serif";
            if (u.fontShape === "textit" && u.fontWeight === "textbf")
              return "bold-italic";
            if (u.fontShape === "textit")
              return "italic";
            if (u.fontWeight === "textbf")
              return "bold";
            var l = u.font;
            if (!l || l === "mathnormal")
              return null;
            var h = s.mode;
            if (l === "mathit")
              return "italic";
            if (l === "boldsymbol")
              return s.type === "textord" ? "bold" : "bold-italic";
            if (l === "mathbf")
              return "bold";
            if (l === "mathbb")
              return "double-struck";
            if (l === "mathfrak")
              return "fraktur";
            if (l === "mathscr" || l === "mathcal")
              return "script";
            if (l === "mathsf")
              return "sans-serif";
            if (l === "mathtt")
              return "monospace";
            var p = s.text;
            if (B.contains(["\\imath", "\\jmath"], p))
              return null;
            tt[h][p] && tt[h][p].replace && (p = tt[h][p].replace);
            var v = z.fontMap[l].fontName;
            return za(p, v, h) ? z.fontMap[l].variant : null;
          }, kt = function(s, u, l) {
            if (s.length === 1) {
              var h = Xe(s[0], u);
              return l && h instanceof Gt && h.type === "mo" && (h.setAttribute("lspace", "0em"), h.setAttribute("rspace", "0em")), [h];
            }
            for (var p = [], v, T = 0; T < s.length; T++) {
              var y = Xe(s[T], u);
              if (y instanceof Gt && v instanceof Gt) {
                if (y.type === "mtext" && v.type === "mtext" && y.getAttribute("mathvariant") === v.getAttribute("mathvariant")) {
                  var w;
                  (w = v.children).push.apply(w, y.children);
                  continue;
                } else if (y.type === "mn" && v.type === "mn") {
                  var L;
                  (L = v.children).push.apply(L, y.children);
                  continue;
                } else if (y.type === "mi" && y.children.length === 1 && v.type === "mn") {
                  var U = y.children[0];
                  if (U instanceof l0 && U.text === ".") {
                    var j;
                    (j = v.children).push.apply(j, y.children);
                    continue;
                  }
                } else if (v.type === "mi" && v.children.length === 1) {
                  var W = v.children[0];
                  if (W instanceof l0 && W.text === "̸" && (y.type === "mo" || y.type === "mi" || y.type === "mn")) {
                    var Q = y.children[0];
                    Q instanceof l0 && Q.text.length > 0 && (Q.text = Q.text.slice(0, 1) + "̸" + Q.text.slice(1), p.pop());
                  }
                }
              }
              p.push(y), v = y;
            }
            return p;
          }, Lr = function(s, u, l) {
            return es(kt(s, u, l));
          }, Xe = function(s, u) {
            if (!s)
              return new ee.MathNode("mrow");
            if (hi[s.type]) {
              var l = hi[s.type](s, u);
              return l;
            } else
              throw new a("Got group of unknown type: '" + s.type + "'");
          };
          function hl(E, s, u, l, h) {
            var p = kt(E, u), v;
            p.length === 1 && p[0] instanceof Gt && B.contains(["mrow", "mtable"], p[0].type) ? v = p[0] : v = new ee.MathNode("mrow", p);
            var T = new ee.MathNode("annotation", [new ee.TextNode(s)]);
            T.setAttribute("encoding", "application/x-tex");
            var y = new ee.MathNode("semantics", [v, T]), w = new ee.MathNode("math", [y]);
            w.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"), l && w.setAttribute("display", "block");
            var L = h ? "katex" : "katex-mathml";
            return z.makeSpan([L], [w]);
          }
          var fl = function(s) {
            return new i2({
              style: s.displayMode ? ae.DISPLAY : ae.TEXT,
              maxSize: s.maxSize,
              minRuleThickness: s.minRuleThickness
            });
          }, dl = function(s, u) {
            if (u.displayMode) {
              var l = ["katex-display"];
              u.leqno && l.push("leqno"), u.fleqn && l.push("fleqn"), s = z.makeSpan(l, [s]);
            }
            return s;
          }, D2 = function(s, u, l) {
            var h = fl(l), p;
            if (l.output === "mathml")
              return hl(s, u, h, l.displayMode, !0);
            if (l.output === "html") {
              var v = Ja(s, h);
              p = z.makeSpan(["katex"], [v]);
            } else {
              var T = hl(s, u, h, l.displayMode, !1), y = Ja(s, h);
              p = z.makeSpan(["katex"], [T, y]);
            }
            return dl(p, l);
          }, R2 = function(s, u, l) {
            var h = fl(l), p = Ja(s, h), v = z.makeSpan(["katex"], [p]);
            return dl(v, l);
          }, O2 = {
            widehat: "^",
            widecheck: "ˇ",
            widetilde: "~",
            utilde: "~",
            overleftarrow: "←",
            underleftarrow: "←",
            xleftarrow: "←",
            overrightarrow: "→",
            underrightarrow: "→",
            xrightarrow: "→",
            underbrace: "⏟",
            overbrace: "⏞",
            overgroup: "⏠",
            undergroup: "⏡",
            overleftrightarrow: "↔",
            underleftrightarrow: "↔",
            xleftrightarrow: "↔",
            Overrightarrow: "⇒",
            xRightarrow: "⇒",
            overleftharpoon: "↼",
            xleftharpoonup: "↼",
            overrightharpoon: "⇀",
            xrightharpoonup: "⇀",
            xLeftarrow: "⇐",
            xLeftrightarrow: "⇔",
            xhookleftarrow: "↩",
            xhookrightarrow: "↪",
            xmapsto: "↦",
            xrightharpoondown: "⇁",
            xleftharpoondown: "↽",
            xrightleftharpoons: "⇌",
            xleftrightharpoons: "⇋",
            xtwoheadleftarrow: "↞",
            xtwoheadrightarrow: "↠",
            xlongequal: "=",
            xtofrom: "⇄",
            xrightleftarrows: "⇄",
            xrightequilibrium: "⇌",
            // Not a perfect match.
            xleftequilibrium: "⇋",
            // None better available.
            "\\cdrightarrow": "→",
            "\\cdleftarrow": "←",
            "\\cdlongequal": "="
          }, L2 = function(s) {
            var u = new ee.MathNode("mo", [new ee.TextNode(O2[s.replace(/^\\/, "")])]);
            return u.setAttribute("stretchy", "true"), u;
          }, B2 = {
            //   path(s), minWidth, height, align
            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"],
            // CD minwwidth2.5pc
            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],
            // The next three arrows are from the mhchem package.
            // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the
            // document as \xrightarrow or \xrightleftharpoons. Those have
            // min-length = 1.75em, so we set min-length on these next three to match.
            xrightleftarrows: [["baraboveleftarrow", "rightarrowabovebar"], 1.75, 901],
            xrightequilibrium: [["baraboveshortleftharpoon", "rightharpoonaboveshortbar"], 1.75, 716],
            xleftequilibrium: [["shortbaraboveleftharpoon", "shortrightharpoonabovebar"], 1.75, 716]
          }, P2 = function(s) {
            return s.type === "ordgroup" ? s.body.length : 1;
          }, F2 = function(s, u) {
            function l() {
              var y = 4e5, w = s.label.slice(1);
              if (B.contains(["widehat", "widecheck", "widetilde", "utilde"], w)) {
                var L = s, U = P2(L.base), j, W, Q;
                if (U > 5)
                  w === "widehat" || w === "widecheck" ? (j = 420, y = 2364, Q = 0.42, W = w + "4") : (j = 312, y = 2340, Q = 0.34, W = "tilde4");
                else {
                  var ne = [1, 1, 2, 2, 3, 3][U];
                  w === "widehat" || w === "widecheck" ? (y = [0, 1062, 2364, 2364, 2364][ne], j = [0, 239, 300, 360, 420][ne], Q = [0, 0.24, 0.3, 0.3, 0.36, 0.42][ne], W = w + ne) : (y = [0, 600, 1033, 2339, 2340][ne], j = [0, 260, 286, 306, 312][ne], Q = [0, 0.26, 0.286, 0.3, 0.306, 0.34][ne], W = "tilde" + ne);
                }
                var ue = new Rr(W), fe = new vr([ue], {
                  width: "100%",
                  height: ie(Q),
                  viewBox: "0 0 " + y + " " + j,
                  preserveAspectRatio: "none"
                });
                return {
                  span: z.makeSvgSpan([], [fe], u),
                  minWidth: 0,
                  height: Q
                };
              } else {
                var Ee = [], _e = B2[w], He = _e[0], Ie = _e[1], ze = _e[2], Pe = ze / 1e3, qe = He.length, je, gt;
                if (qe === 1) {
                  var Ht = _e[3];
                  je = ["hide-tail"], gt = [Ht];
                } else if (qe === 2)
                  je = ["halfarrow-left", "halfarrow-right"], gt = ["xMinYMin", "xMaxYMin"];
                else if (qe === 3)
                  je = ["brace-left", "brace-center", "brace-right"], gt = ["xMinYMin", "xMidYMin", "xMaxYMin"];
                else
                  throw new Error(`Correct katexImagesData or update code here to support
                    ` + qe + " children.");
                for (var nt = 0; nt < qe; nt++) {
                  var rn = new Rr(He[nt]), Wt = new vr([rn], {
                    width: "400em",
                    height: ie(Pe),
                    viewBox: "0 0 " + y + " " + ze,
                    preserveAspectRatio: gt[nt] + " slice"
                  }), xt = z.makeSvgSpan([je[nt]], [Wt], u);
                  if (qe === 1)
                    return {
                      span: xt,
                      minWidth: Ie,
                      height: Pe
                    };
                  xt.style.height = ie(Pe), Ee.push(xt);
                }
                return {
                  span: z.makeSpan(["stretchy"], Ee, u),
                  minWidth: Ie,
                  height: Pe
                };
              }
            }
            var h = l(), p = h.span, v = h.minWidth, T = h.height;
            return p.height = T, p.style.height = ie(T), v > 0 && (p.style.minWidth = ie(v)), p;
          }, H2 = function(s, u, l, h, p) {
            var v, T = s.height + s.depth + l + h;
            if (/fbox|color|angl/.test(u)) {
              if (v = z.makeSpan(["stretchy", u], [], p), u === "fbox") {
                var y = p.color && p.getColor();
                y && (v.style.borderColor = y);
              }
            } else {
              var w = [];
              /^[bx]cancel$/.test(u) && w.push(new Ga({
                x1: "0",
                y1: "0",
                x2: "100%",
                y2: "100%",
                "stroke-width": "0.046em"
              })), /^x?cancel$/.test(u) && w.push(new Ga({
                x1: "0",
                y1: "100%",
                x2: "100%",
                y2: "0",
                "stroke-width": "0.046em"
              }));
              var L = new vr(w, {
                width: "100%",
                height: ie(T)
              });
              v = z.makeSvgSpan([], [L], p);
            }
            return v.height = T, v.style.height = ie(T), v;
          }, xr = {
            encloseSpan: H2,
            mathMLnode: L2,
            svgSpan: F2
          };
          function Ne(E, s) {
            if (!E || E.type !== s)
              throw new Error("Expected node of type " + s + ", but got " + (E ? "node of type " + E.type : String(E)));
            return E;
          }
          function rs(E) {
            var s = mi(E);
            if (!s)
              throw new Error("Expected node of symbol group type, but got " + (E ? "node of type " + E.type : String(E)));
            return s;
          }
          function mi(E) {
            return E && (E.type === "atom" || c2.hasOwnProperty(E.type)) ? E : null;
          }
          var ns = function(s, u) {
            var l, h, p;
            s && s.type === "supsub" ? (h = Ne(s.base, "accent"), l = h.base, s.base = l, p = o2(Be(s, u)), s.base = h) : (h = Ne(s, "accent"), l = h.base);
            var v = Be(l, u.havingCrampedStyle()), T = h.isShifty && B.isCharacterBox(l), y = 0;
            if (T) {
              var w = B.getBaseElem(l), L = Be(w, u.havingCrampedStyle());
              y = $o(L).skew;
            }
            var U = h.label === "\\c", j = U ? v.height + v.depth : Math.min(v.height, u.fontMetrics().xHeight), W;
            if (h.isStretchy)
              W = xr.svgSpan(h, u), W = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: v
                }, {
                  type: "elem",
                  elem: W,
                  wrapperClasses: ["svg-align"],
                  wrapperStyle: y > 0 ? {
                    width: "calc(100% - " + ie(2 * y) + ")",
                    marginLeft: ie(2 * y)
                  } : void 0
                }]
              }, u);
            else {
              var Q, ne;
              h.label === "\\vec" ? (Q = z.staticSvg("vec", u), ne = z.svgData.vec[1]) : (Q = z.makeOrd({
                mode: h.mode,
                text: h.label
              }, u, "textord"), Q = $o(Q), Q.italic = 0, ne = Q.width, U && (j += Q.depth)), W = z.makeSpan(["accent-body"], [Q]);
              var ue = h.label === "\\textcircled";
              ue && (W.classes.push("accent-full"), j = v.height);
              var fe = y;
              ue || (fe -= ne / 2), W.style.left = ie(fe), h.label === "\\textcircled" && (W.style.top = ".2em"), W = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: v
                }, {
                  type: "kern",
                  size: -j
                }, {
                  type: "elem",
                  elem: W
                }]
              }, u);
            }
            var Ee = z.makeSpan(["mord", "accent"], [W], u);
            return p ? (p.children[0] = Ee, p.height = Math.max(Ee.height, p.height), p.classes[0] = "mord", p) : Ee;
          }, ml = function(s, u) {
            var l = s.isStretchy ? xr.mathMLnode(s.label) : new ee.MathNode("mo", [Xt(s.label, s.mode)]), h = new ee.MathNode("mover", [Xe(s.base, u), l]);
            return h.setAttribute("accent", "true"), h;
          }, U2 = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map(function(E) {
            return "\\" + E;
          }).join("|"));
          le({
            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: function(s, u) {
              var l = fi(u[0]), h = !U2.test(s.funcName), p = !h || s.funcName === "\\widehat" || s.funcName === "\\widetilde" || s.funcName === "\\widecheck";
              return {
                type: "accent",
                mode: s.parser.mode,
                label: s.funcName,
                isStretchy: h,
                isShifty: p,
                base: l
              };
            },
            htmlBuilder: ns,
            mathmlBuilder: ml
          }), le({
            type: "accent",
            names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"],
            props: {
              numArgs: 1,
              allowedInText: !0,
              allowedInMath: !0,
              // unless in strict mode
              argTypes: ["primitive"]
            },
            handler: function(s, u) {
              var l = u[0], h = s.parser.mode;
              return h === "math" && (s.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + s.funcName + " works only in text mode"), h = "text"), {
                type: "accent",
                mode: h,
                label: s.funcName,
                isStretchy: !1,
                isShifty: !0,
                base: l
              };
            },
            htmlBuilder: ns,
            mathmlBuilder: ml
          }), le({
            type: "accentUnder",
            names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              return {
                type: "accentUnder",
                mode: l.mode,
                label: h,
                base: p
              };
            },
            htmlBuilder: function(s, u) {
              var l = Be(s.base, u), h = xr.svgSpan(s, u), p = s.label === "\\utilde" ? 0.12 : 0, v = z.makeVList({
                positionType: "top",
                positionData: l.height,
                children: [{
                  type: "elem",
                  elem: h,
                  wrapperClasses: ["svg-align"]
                }, {
                  type: "kern",
                  size: p
                }, {
                  type: "elem",
                  elem: l
                }]
              }, u);
              return z.makeSpan(["mord", "accentunder"], [v], u);
            },
            mathmlBuilder: function(s, u) {
              var l = xr.mathMLnode(s.label), h = new ee.MathNode("munder", [Xe(s.base, u), l]);
              return h.setAttribute("accentunder", "true"), h;
            }
          });
          var pi = function(s) {
            var u = new ee.MathNode("mpadded", s ? [s] : []);
            return u.setAttribute("width", "+0.6em"), u.setAttribute("lspace", "0.3em"), u;
          };
          le({
            type: "xArrow",
            names: [
              "\\xleftarrow",
              "\\xrightarrow",
              "\\xLeftarrow",
              "\\xRightarrow",
              "\\xleftrightarrow",
              "\\xLeftrightarrow",
              "\\xhookleftarrow",
              "\\xhookrightarrow",
              "\\xmapsto",
              "\\xrightharpoondown",
              "\\xrightharpoonup",
              "\\xleftharpoondown",
              "\\xleftharpoonup",
              "\\xrightleftharpoons",
              "\\xleftrightharpoons",
              "\\xlongequal",
              "\\xtwoheadrightarrow",
              "\\xtwoheadleftarrow",
              "\\xtofrom",
              // The next 3 functions are here to support the mhchem extension.
              // Direct use of these functions is discouraged and may break someday.
              "\\xrightleftarrows",
              "\\xrightequilibrium",
              "\\xleftequilibrium",
              // The next 3 functions are here only to support the {CD} environment.
              "\\\\cdrightarrow",
              "\\\\cdleftarrow",
              "\\\\cdlongequal"
            ],
            props: {
              numArgs: 1,
              numOptionalArgs: 1
            },
            handler: function(s, u, l) {
              var h = s.parser, p = s.funcName;
              return {
                type: "xArrow",
                mode: h.mode,
                label: p,
                body: u[0],
                below: l[0]
              };
            },
            // Flow is unable to correctly infer the type of `group`, even though it's
            // unambiguously determined from the passed-in `type` above.
            htmlBuilder: function(s, u) {
              var l = u.style, h = u.havingStyle(l.sup()), p = z.wrapFragment(Be(s.body, h, u), u), v = s.label.slice(0, 2) === "\\x" ? "x" : "cd";
              p.classes.push(v + "-arrow-pad");
              var T;
              s.below && (h = u.havingStyle(l.sub()), T = z.wrapFragment(Be(s.below, h, u), u), T.classes.push(v + "-arrow-pad"));
              var y = xr.svgSpan(s, u), w = -u.fontMetrics().axisHeight + 0.5 * y.height, L = -u.fontMetrics().axisHeight - 0.5 * y.height - 0.111;
              (p.depth > 0.25 || s.label === "\\xleftequilibrium") && (L -= p.depth);
              var U;
              if (T) {
                var j = -u.fontMetrics().axisHeight + T.height + 0.5 * y.height + 0.111;
                U = z.makeVList({
                  positionType: "individualShift",
                  children: [{
                    type: "elem",
                    elem: p,
                    shift: L
                  }, {
                    type: "elem",
                    elem: y,
                    shift: w
                  }, {
                    type: "elem",
                    elem: T,
                    shift: j
                  }]
                }, u);
              } else
                U = z.makeVList({
                  positionType: "individualShift",
                  children: [{
                    type: "elem",
                    elem: p,
                    shift: L
                  }, {
                    type: "elem",
                    elem: y,
                    shift: w
                  }]
                }, u);
              return U.children[0].children[0].children[1].classes.push("svg-align"), z.makeSpan(["mrel", "x-arrow"], [U], u);
            },
            mathmlBuilder: function(s, u) {
              var l = xr.mathMLnode(s.label);
              l.setAttribute("minsize", s.label.charAt(0) === "x" ? "1.75em" : "3.0em");
              var h;
              if (s.body) {
                var p = pi(Xe(s.body, u));
                if (s.below) {
                  var v = pi(Xe(s.below, u));
                  h = new ee.MathNode("munderover", [l, v, p]);
                } else
                  h = new ee.MathNode("mover", [l, p]);
              } else if (s.below) {
                var T = pi(Xe(s.below, u));
                h = new ee.MathNode("munder", [l, T]);
              } else
                h = pi(), h = new ee.MathNode("mover", [l, h]);
              return h;
            }
          });
          var z2 = z.makeSpan;
          function pl(E, s) {
            var u = ct(E.body, s, !0);
            return z2([E.mclass], u, s);
          }
          function gl(E, s) {
            var u, l = kt(E.body, s);
            return E.mclass === "minner" ? u = new ee.MathNode("mpadded", l) : E.mclass === "mord" ? E.isCharacterBox ? (u = l[0], u.type = "mi") : u = new ee.MathNode("mi", l) : (E.isCharacterBox ? (u = l[0], u.type = "mo") : u = new ee.MathNode("mo", l), E.mclass === "mbin" ? (u.attributes.lspace = "0.22em", u.attributes.rspace = "0.22em") : E.mclass === "mpunct" ? (u.attributes.lspace = "0em", u.attributes.rspace = "0.17em") : E.mclass === "mopen" || E.mclass === "mclose" ? (u.attributes.lspace = "0em", u.attributes.rspace = "0em") : E.mclass === "minner" && (u.attributes.lspace = "0.0556em", u.attributes.width = "+0.1111em")), u;
          }
          le({
            type: "mclass",
            names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"],
            props: {
              numArgs: 1,
              primitive: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              return {
                type: "mclass",
                mode: l.mode,
                mclass: "m" + h.slice(5),
                // TODO(kevinb): don't prefix with 'm'
                body: ut(p),
                isCharacterBox: B.isCharacterBox(p)
              };
            },
            htmlBuilder: pl,
            mathmlBuilder: gl
          });
          var gi = function(s) {
            var u = s.type === "ordgroup" && s.body.length ? s.body[0] : s;
            return u.type === "atom" && (u.family === "bin" || u.family === "rel") ? "m" + u.family : "mord";
          };
          le({
            type: "mclass",
            names: ["\\@binrel"],
            props: {
              numArgs: 2
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "mclass",
                mode: l.mode,
                mclass: gi(u[0]),
                body: ut(u[1]),
                isCharacterBox: B.isCharacterBox(u[1])
              };
            }
          }), le({
            type: "mclass",
            names: ["\\stackrel", "\\overset", "\\underset"],
            props: {
              numArgs: 2
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[1], v = u[0], T;
              h !== "\\stackrel" ? T = gi(p) : T = "mrel";
              var y = {
                type: "op",
                mode: p.mode,
                limits: !0,
                alwaysHandleSupSub: !0,
                parentIsSupSub: !1,
                symbol: !1,
                suppressBaseShift: h !== "\\stackrel",
                body: ut(p)
              }, w = {
                type: "supsub",
                mode: v.mode,
                base: y,
                sup: h === "\\underset" ? null : v,
                sub: h === "\\underset" ? v : null
              };
              return {
                type: "mclass",
                mode: l.mode,
                mclass: T,
                body: [w],
                isCharacterBox: B.isCharacterBox(w)
              };
            },
            htmlBuilder: pl,
            mathmlBuilder: gl
          }), le({
            type: "pmb",
            names: ["\\pmb"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "pmb",
                mode: l.mode,
                mclass: gi(u[0]),
                body: ut(u[0])
              };
            },
            htmlBuilder: function(s, u) {
              var l = ct(s.body, u, !0), h = z.makeSpan([s.mclass], l, u);
              return h.style.textShadow = "0.02em 0.01em 0.04px", h;
            },
            mathmlBuilder: function(s, u) {
              var l = kt(s.body, u), h = new ee.MathNode("mstyle", l);
              return h.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px"), h;
            }
          });
          var q2 = {
            ">": "\\\\cdrightarrow",
            "<": "\\\\cdleftarrow",
            "=": "\\\\cdlongequal",
            A: "\\uparrow",
            V: "\\downarrow",
            "|": "\\Vert",
            ".": "no arrow"
          }, bl = function() {
            return {
              type: "styling",
              body: [],
              mode: "math",
              style: "display"
            };
          }, El = function(s) {
            return s.type === "textord" && s.text === "@";
          }, Y2 = function(s, u) {
            return (s.type === "mathord" || s.type === "atom") && s.text === u;
          };
          function V2(E, s, u) {
            var l = q2[E];
            switch (l) {
              case "\\\\cdrightarrow":
              case "\\\\cdleftarrow":
                return u.callFunction(l, [s[0]], [s[1]]);
              case "\\uparrow":
              case "\\downarrow": {
                var h = u.callFunction("\\\\cdleft", [s[0]], []), p = {
                  type: "atom",
                  text: l,
                  mode: "math",
                  family: "rel"
                }, v = u.callFunction("\\Big", [p], []), T = u.callFunction("\\\\cdright", [s[1]], []), y = {
                  type: "ordgroup",
                  mode: "math",
                  body: [h, v, T]
                };
                return u.callFunction("\\\\cdparent", [y], []);
              }
              case "\\\\cdlongequal":
                return u.callFunction("\\\\cdlongequal", [], []);
              case "\\Vert": {
                var w = {
                  type: "textord",
                  text: "\\Vert",
                  mode: "math"
                };
                return u.callFunction("\\Big", [w], []);
              }
              default:
                return {
                  type: "textord",
                  text: " ",
                  mode: "math"
                };
            }
          }
          function G2(E) {
            var s = [];
            for (E.gullet.beginGroup(), E.gullet.macros.set("\\cr", "\\\\\\relax"), E.gullet.beginGroup(); ; ) {
              s.push(E.parseExpression(!1, "\\\\")), E.gullet.endGroup(), E.gullet.beginGroup();
              var u = E.fetch().text;
              if (u === "&" || u === "\\\\")
                E.consume();
              else if (u === "\\end") {
                s[s.length - 1].length === 0 && s.pop();
                break;
              } else
                throw new a("Expected \\\\ or \\cr or \\end", E.nextToken);
            }
            for (var l = [], h = [l], p = 0; p < s.length; p++) {
              for (var v = s[p], T = bl(), y = 0; y < v.length; y++)
                if (!El(v[y]))
                  T.body.push(v[y]);
                else {
                  l.push(T), y += 1;
                  var w = rs(v[y]).text, L = new Array(2);
                  if (L[0] = {
                    type: "ordgroup",
                    mode: "math",
                    body: []
                  }, L[1] = {
                    type: "ordgroup",
                    mode: "math",
                    body: []
                  }, !("=|.".indexOf(w) > -1))
                    if ("<>AV".indexOf(w) > -1)
                      for (var U = 0; U < 2; U++) {
                        for (var j = !0, W = y + 1; W < v.length; W++) {
                          if (Y2(v[W], w)) {
                            j = !1, y = W;
                            break;
                          }
                          if (El(v[W]))
                            throw new a("Missing a " + w + " character to complete a CD arrow.", v[W]);
                          L[U].body.push(v[W]);
                        }
                        if (j)
                          throw new a("Missing a " + w + " character to complete a CD arrow.", v[y]);
                      }
                    else
                      throw new a('Expected one of "<>AV=|." after @', v[y]);
                  var Q = V2(w, L, E), ne = {
                    type: "styling",
                    body: [Q],
                    mode: "math",
                    style: "display"
                    // CD is always displaystyle.
                  };
                  l.push(ne), T = bl();
                }
              p % 2 === 0 ? l.push(T) : l.shift(), l = [], h.push(l);
            }
            E.gullet.endGroup(), E.gullet.endGroup();
            var ue = new Array(h[0].length).fill({
              type: "align",
              align: "c",
              pregap: 0.25,
              // CD package sets \enskip between columns.
              postgap: 0.25
              // So pre and post each get half an \enskip, i.e. 0.25em.
            });
            return {
              type: "array",
              mode: "math",
              body: h,
              arraystretch: 1,
              addJot: !0,
              rowGaps: [null],
              cols: ue,
              colSeparationType: "CD",
              hLinesBeforeRow: new Array(h.length + 1).fill([])
            };
          }
          le({
            type: "cdlabel",
            names: ["\\\\cdleft", "\\\\cdright"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName;
              return {
                type: "cdlabel",
                mode: l.mode,
                side: h.slice(4),
                label: u[0]
              };
            },
            htmlBuilder: function(s, u) {
              var l = u.havingStyle(u.style.sup()), h = z.wrapFragment(Be(s.label, l, u), u);
              return h.classes.push("cd-label-" + s.side), h.style.bottom = ie(0.8 - h.depth), h.height = 0, h.depth = 0, h;
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mrow", [Xe(s.label, u)]);
              return l = new ee.MathNode("mpadded", [l]), l.setAttribute("width", "0"), s.side === "left" && l.setAttribute("lspace", "-1width"), l.setAttribute("voffset", "0.7em"), l = new ee.MathNode("mstyle", [l]), l.setAttribute("displaystyle", "false"), l.setAttribute("scriptlevel", "1"), l;
            }
          }), le({
            type: "cdlabelparent",
            names: ["\\\\cdparent"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "cdlabelparent",
                mode: l.mode,
                fragment: u[0]
              };
            },
            htmlBuilder: function(s, u) {
              var l = z.wrapFragment(Be(s.fragment, u), u);
              return l.classes.push("cd-vert-arrow"), l;
            },
            mathmlBuilder: function(s, u) {
              return new ee.MathNode("mrow", [Xe(s.fragment, u)]);
            }
          }), le({
            type: "textord",
            names: ["\\@char"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              for (var l = s.parser, h = Ne(u[0], "ordgroup"), p = h.body, v = "", T = 0; T < p.length; T++) {
                var y = Ne(p[T], "textord");
                v += y.text;
              }
              var w = parseInt(v), L;
              if (isNaN(w))
                throw new a("\\@char has non-numeric argument " + v);
              if (w < 0 || w >= 1114111)
                throw new a("\\@char with invalid code point " + v);
              return w <= 65535 ? L = String.fromCharCode(w) : (w -= 65536, L = String.fromCharCode((w >> 10) + 55296, (w & 1023) + 56320)), {
                type: "textord",
                mode: l.mode,
                text: L
              };
            }
          });
          var vl = function(s, u) {
            var l = ct(s.body, u.withColor(s.color), !1);
            return z.makeFragment(l);
          }, _l = function(s, u) {
            var l = kt(s.body, u.withColor(s.color)), h = new ee.MathNode("mstyle", l);
            return h.setAttribute("mathcolor", s.color), h;
          };
          le({
            type: "color",
            names: ["\\textcolor"],
            props: {
              numArgs: 2,
              allowedInText: !0,
              argTypes: ["color", "original"]
            },
            handler: function(s, u) {
              var l = s.parser, h = Ne(u[0], "color-token").color, p = u[1];
              return {
                type: "color",
                mode: l.mode,
                color: h,
                body: ut(p)
              };
            },
            htmlBuilder: vl,
            mathmlBuilder: _l
          }), le({
            type: "color",
            names: ["\\color"],
            props: {
              numArgs: 1,
              allowedInText: !0,
              argTypes: ["color"]
            },
            handler: function(s, u) {
              var l = s.parser, h = s.breakOnTokenText, p = Ne(u[0], "color-token").color;
              l.gullet.macros.set("\\current@color", p);
              var v = l.parseExpression(!0, h);
              return {
                type: "color",
                mode: l.mode,
                color: p,
                body: v
              };
            },
            htmlBuilder: vl,
            mathmlBuilder: _l
          }), le({
            type: "cr",
            names: ["\\\\"],
            props: {
              numArgs: 0,
              numOptionalArgs: 0,
              allowedInText: !0
            },
            handler: function(s, u, l) {
              var h = s.parser, p = h.gullet.future().text === "[" ? h.parseSizeGroup(!0) : null, v = !h.settings.displayMode || !h.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode");
              return {
                type: "cr",
                mode: h.mode,
                newLine: v,
                size: p && Ne(p, "size").value
              };
            },
            // The following builders are called only at the top level,
            // not within tabular/array environments.
            htmlBuilder: function(s, u) {
              var l = z.makeSpan(["mspace"], [], u);
              return s.newLine && (l.classes.push("newline"), s.size && (l.style.marginTop = ie(et(s.size, u)))), l;
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mspace");
              return s.newLine && (l.setAttribute("linebreak", "newline"), s.size && l.setAttribute("height", ie(et(s.size, u)))), l;
            }
          });
          var is = {
            "\\global": "\\global",
            "\\long": "\\\\globallong",
            "\\\\globallong": "\\\\globallong",
            "\\def": "\\gdef",
            "\\gdef": "\\gdef",
            "\\edef": "\\xdef",
            "\\xdef": "\\xdef",
            "\\let": "\\\\globallet",
            "\\futurelet": "\\\\globalfuture"
          }, Tl = function(s) {
            var u = s.text;
            if (/^(?:[\\{}$&#^_]|EOF)$/.test(u))
              throw new a("Expected a control sequence", s);
            return u;
          }, X2 = function(s) {
            var u = s.gullet.popToken();
            return u.text === "=" && (u = s.gullet.popToken(), u.text === " " && (u = s.gullet.popToken())), u;
          }, Al = function(s, u, l, h) {
            var p = s.gullet.macros.get(l.text);
            p == null && (l.noexpand = !0, p = {
              tokens: [l],
              numArgs: 0,
              // reproduce the same behavior in expansion
              unexpandable: !s.gullet.isExpandable(l.text)
            }), s.gullet.macros.set(u, p, h);
          };
          le({
            type: "internal",
            names: [
              "\\global",
              "\\long",
              "\\\\globallong"
              // can’t be entered directly
            ],
            props: {
              numArgs: 0,
              allowedInText: !0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName;
              u.consumeSpaces();
              var h = u.fetch();
              if (is[h.text])
                return (l === "\\global" || l === "\\\\globallong") && (h.text = is[h.text]), Ne(u.parseFunction(), "internal");
              throw new a("Invalid token after macro prefix", h);
            }
          }), le({
            type: "internal",
            names: ["\\def", "\\gdef", "\\edef", "\\xdef"],
            props: {
              numArgs: 0,
              allowedInText: !0,
              primitive: !0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName, h = u.gullet.popToken(), p = h.text;
              if (/^(?:[\\{}$&#^_]|EOF)$/.test(p))
                throw new a("Expected a control sequence", h);
              for (var v = 0, T, y = [[]]; u.gullet.future().text !== "{"; )
                if (h = u.gullet.popToken(), h.text === "#") {
                  if (u.gullet.future().text === "{") {
                    T = u.gullet.future(), y[v].push("{");
                    break;
                  }
                  if (h = u.gullet.popToken(), !/^[1-9]$/.test(h.text))
                    throw new a('Invalid argument number "' + h.text + '"');
                  if (parseInt(h.text) !== v + 1)
                    throw new a('Argument number "' + h.text + '" out of order');
                  v++, y.push([]);
                } else {
                  if (h.text === "EOF")
                    throw new a("Expected a macro definition");
                  y[v].push(h.text);
                }
              var w = u.gullet.consumeArg(), L = w.tokens;
              return T && L.unshift(T), (l === "\\edef" || l === "\\xdef") && (L = u.gullet.expandTokens(L), L.reverse()), u.gullet.macros.set(p, {
                tokens: L,
                numArgs: v,
                delimiters: y
              }, l === is[l]), {
                type: "internal",
                mode: u.mode
              };
            }
          }), le({
            type: "internal",
            names: [
              "\\let",
              "\\\\globallet"
              // can’t be entered directly
            ],
            props: {
              numArgs: 0,
              allowedInText: !0,
              primitive: !0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName, h = Tl(u.gullet.popToken());
              u.gullet.consumeSpaces();
              var p = X2(u);
              return Al(u, h, p, l === "\\\\globallet"), {
                type: "internal",
                mode: u.mode
              };
            }
          }), le({
            type: "internal",
            names: [
              "\\futurelet",
              "\\\\globalfuture"
              // can’t be entered directly
            ],
            props: {
              numArgs: 0,
              allowedInText: !0,
              primitive: !0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName, h = Tl(u.gullet.popToken()), p = u.gullet.popToken(), v = u.gullet.popToken();
              return Al(u, h, v, l === "\\\\globalfuture"), u.gullet.pushToken(v), u.gullet.pushToken(p), {
                type: "internal",
                mode: u.mode
              };
            }
          });
          var c0 = function(s, u, l) {
            var h = tt.math[s] && tt.math[s].replace, p = za(h || s, u, l);
            if (!p)
              throw new Error("Unsupported symbol " + s + " and font size " + u + ".");
            return p;
          }, as = function(s, u, l, h) {
            var p = l.havingBaseStyle(u), v = z.makeSpan(h.concat(p.sizingClasses(l)), [s], l), T = p.sizeMultiplier / l.sizeMultiplier;
            return v.height *= T, v.depth *= T, v.maxFontSize = p.sizeMultiplier, v;
          }, xl = function(s, u, l) {
            var h = u.havingBaseStyle(l), p = (1 - u.sizeMultiplier / h.sizeMultiplier) * u.fontMetrics().axisHeight;
            s.classes.push("delimcenter"), s.style.top = ie(p), s.height -= p, s.depth += p;
          }, W2 = function(s, u, l, h, p, v) {
            var T = z.makeSymbol(s, "Main-Regular", p, h), y = as(T, u, h, v);
            return l && xl(y, h, u), y;
          }, j2 = function(s, u, l, h) {
            return z.makeSymbol(s, "Size" + u + "-Regular", l, h);
          }, yl = function(s, u, l, h, p, v) {
            var T = j2(s, u, p, h), y = as(z.makeSpan(["delimsizing", "size" + u], [T], h), ae.TEXT, h, v);
            return l && xl(y, h, ae.TEXT), y;
          }, ss = function(s, u, l) {
            var h;
            u === "Size1-Regular" ? h = "delim-size1" : h = "delim-size4";
            var p = z.makeSpan(["delimsizinginner", h], [z.makeSpan([], [z.makeSymbol(s, u, l)])]);
            return {
              type: "elem",
              elem: p
            };
          }, us = function(s, u, l) {
            var h = ur["Size4-Regular"][s.charCodeAt(0)] ? ur["Size4-Regular"][s.charCodeAt(0)][4] : ur["Size1-Regular"][s.charCodeAt(0)][4], p = new Rr("inner", Jm(s, Math.round(1e3 * u))), v = new vr([p], {
              width: ie(h),
              height: ie(u),
              // Override CSS rule `.katex svg { width: 100% }`
              style: "width:" + ie(h),
              viewBox: "0 0 " + 1e3 * h + " " + Math.round(1e3 * u),
              preserveAspectRatio: "xMinYMin"
            }), T = z.makeSvgSpan([], [v], l);
            return T.height = u, T.style.height = ie(u), T.style.width = ie(h), {
              type: "elem",
              elem: T
            };
          }, os = 8e-3, bi = {
            type: "kern",
            size: -1 * os
          }, K2 = ["|", "\\lvert", "\\rvert", "\\vert"], $2 = ["\\|", "\\lVert", "\\rVert", "\\Vert"], Sl = function(s, u, l, h, p, v) {
            var T, y, w, L, U = "", j = 0;
            T = w = L = s, y = null;
            var W = "Size1-Regular";
            s === "\\uparrow" ? w = L = "⏐" : s === "\\Uparrow" ? w = L = "‖" : s === "\\downarrow" ? T = w = "⏐" : s === "\\Downarrow" ? T = w = "‖" : s === "\\updownarrow" ? (T = "\\uparrow", w = "⏐", L = "\\downarrow") : s === "\\Updownarrow" ? (T = "\\Uparrow", w = "‖", L = "\\Downarrow") : B.contains(K2, s) ? (w = "∣", U = "vert", j = 333) : B.contains($2, s) ? (w = "∥", U = "doublevert", j = 556) : s === "[" || s === "\\lbrack" ? (T = "⎡", w = "⎢", L = "⎣", W = "Size4-Regular", U = "lbrack", j = 667) : s === "]" || s === "\\rbrack" ? (T = "⎤", w = "⎥", L = "⎦", W = "Size4-Regular", U = "rbrack", j = 667) : s === "\\lfloor" || s === "⌊" ? (w = T = "⎢", L = "⎣", W = "Size4-Regular", U = "lfloor", j = 667) : s === "\\lceil" || s === "⌈" ? (T = "⎡", w = L = "⎢", W = "Size4-Regular", U = "lceil", j = 667) : s === "\\rfloor" || s === "⌋" ? (w = T = "⎥", L = "⎦", W = "Size4-Regular", U = "rfloor", j = 667) : s === "\\rceil" || s === "⌉" ? (T = "⎤", w = L = "⎥", W = "Size4-Regular", U = "rceil", j = 667) : s === "(" || s === "\\lparen" ? (T = "⎛", w = "⎜", L = "⎝", W = "Size4-Regular", U = "lparen", j = 875) : s === ")" || s === "\\rparen" ? (T = "⎞", w = "⎟", L = "⎠", W = "Size4-Regular", U = "rparen", j = 875) : s === "\\{" || s === "\\lbrace" ? (T = "⎧", y = "⎨", L = "⎩", w = "⎪", W = "Size4-Regular") : s === "\\}" || s === "\\rbrace" ? (T = "⎫", y = "⎬", L = "⎭", w = "⎪", W = "Size4-Regular") : s === "\\lgroup" || s === "⟮" ? (T = "⎧", L = "⎩", w = "⎪", W = "Size4-Regular") : s === "\\rgroup" || s === "⟯" ? (T = "⎫", L = "⎭", w = "⎪", W = "Size4-Regular") : s === "\\lmoustache" || s === "⎰" ? (T = "⎧", L = "⎭", w = "⎪", W = "Size4-Regular") : (s === "\\rmoustache" || s === "⎱") && (T = "⎫", L = "⎩", w = "⎪", W = "Size4-Regular");
            var Q = c0(T, W, p), ne = Q.height + Q.depth, ue = c0(w, W, p), fe = ue.height + ue.depth, Ee = c0(L, W, p), _e = Ee.height + Ee.depth, He = 0, Ie = 1;
            if (y !== null) {
              var ze = c0(y, W, p);
              He = ze.height + ze.depth, Ie = 2;
            }
            var Pe = ne + _e + He, qe = Math.max(0, Math.ceil((u - Pe) / (Ie * fe))), je = Pe + qe * Ie * fe, gt = h.fontMetrics().axisHeight;
            l && (gt *= h.sizeMultiplier);
            var Ht = je / 2 - gt, nt = [];
            if (U.length > 0) {
              var rn = je - ne - _e, Wt = Math.round(je * 1e3), xt = e2(U, Math.round(rn * 1e3)), Hr = new Rr(U, xt), Cn = (j / 1e3).toFixed(3) + "em", kn = (Wt / 1e3).toFixed(3) + "em", ks = new vr([Hr], {
                width: Cn,
                height: kn,
                viewBox: "0 0 " + j + " " + Wt
              }), Ur = z.makeSvgSpan([], [ks], h);
              Ur.height = Wt / 1e3, Ur.style.width = Cn, Ur.style.height = kn, nt.push({
                type: "elem",
                elem: Ur
              });
            } else {
              if (nt.push(ss(L, W, p)), nt.push(bi), y === null) {
                var zr = je - ne - _e + 2 * os;
                nt.push(us(w, zr, h));
              } else {
                var jt = (je - ne - _e - He) / 2 + 2 * os;
                nt.push(us(w, jt, h)), nt.push(bi), nt.push(ss(y, W, p)), nt.push(bi), nt.push(us(w, jt, h));
              }
              nt.push(bi), nt.push(ss(T, W, p));
            }
            var d0 = h.havingBaseStyle(ae.TEXT), ws = z.makeVList({
              positionType: "bottom",
              positionData: Ht,
              children: nt
            }, d0);
            return as(z.makeSpan(["delimsizing", "mult"], [ws], d0), ae.TEXT, h, v);
          }, ls = 80, cs = 0.08, hs = function(s, u, l, h, p) {
            var v = Zm(s, h, l), T = new Rr(s, v), y = new vr([T], {
              // Note: 1000:1 ratio of viewBox to document em width.
              width: "400em",
              height: ie(u),
              viewBox: "0 0 400000 " + l,
              preserveAspectRatio: "xMinYMin slice"
            });
            return z.makeSvgSpan(["hide-tail"], [y], p);
          }, Q2 = function(s, u) {
            var l = u.havingBaseSizing(), h = Nl("\\surd", s * l.sizeMultiplier, wl, l), p = l.sizeMultiplier, v = Math.max(0, u.minRuleThickness - u.fontMetrics().sqrtRuleThickness), T, y = 0, w = 0, L = 0, U;
            return h.type === "small" ? (L = 1e3 + 1e3 * v + ls, s < 1 ? p = 1 : s < 1.4 && (p = 0.7), y = (1 + v + cs) / p, w = (1 + v) / p, T = hs("sqrtMain", y, L, v, u), T.style.minWidth = "0.853em", U = 0.833 / p) : h.type === "large" ? (L = (1e3 + ls) * h0[h.size], w = (h0[h.size] + v) / p, y = (h0[h.size] + v + cs) / p, T = hs("sqrtSize" + h.size, y, L, v, u), T.style.minWidth = "1.02em", U = 1 / p) : (y = s + v + cs, w = s + v, L = Math.floor(1e3 * s + v) + ls, T = hs("sqrtTall", y, L, v, u), T.style.minWidth = "0.742em", U = 1.056), T.height = w, T.style.height = ie(y), {
              span: T,
              advanceWidth: U,
              // Calculate the actual line width.
              // This actually should depend on the chosen font -- e.g. \boldmath
              // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and
              // have thicker rules.
              ruleWidth: (u.fontMetrics().sqrtRuleThickness + v) * p
            };
          }, Cl = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "\\surd"], Z2 = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱"], kl = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"], h0 = [0, 1.2, 1.8, 2.4, 3], J2 = function(s, u, l, h, p) {
            if (s === "<" || s === "\\lt" || s === "⟨" ? s = "\\langle" : (s === ">" || s === "\\gt" || s === "⟩") && (s = "\\rangle"), B.contains(Cl, s) || B.contains(kl, s))
              return yl(s, u, !1, l, h, p);
            if (B.contains(Z2, s))
              return Sl(s, h0[u], !1, l, h, p);
            throw new a("Illegal delimiter: '" + s + "'");
          }, e4 = [{
            type: "small",
            style: ae.SCRIPTSCRIPT
          }, {
            type: "small",
            style: ae.SCRIPT
          }, {
            type: "small",
            style: ae.TEXT
          }, {
            type: "large",
            size: 1
          }, {
            type: "large",
            size: 2
          }, {
            type: "large",
            size: 3
          }, {
            type: "large",
            size: 4
          }], t4 = [{
            type: "small",
            style: ae.SCRIPTSCRIPT
          }, {
            type: "small",
            style: ae.SCRIPT
          }, {
            type: "small",
            style: ae.TEXT
          }, {
            type: "stack"
          }], wl = [{
            type: "small",
            style: ae.SCRIPTSCRIPT
          }, {
            type: "small",
            style: ae.SCRIPT
          }, {
            type: "small",
            style: ae.TEXT
          }, {
            type: "large",
            size: 1
          }, {
            type: "large",
            size: 2
          }, {
            type: "large",
            size: 3
          }, {
            type: "large",
            size: 4
          }, {
            type: "stack"
          }], r4 = function(s) {
            if (s.type === "small")
              return "Main-Regular";
            if (s.type === "large")
              return "Size" + s.size + "-Regular";
            if (s.type === "stack")
              return "Size4-Regular";
            throw new Error("Add support for delim type '" + s.type + "' here.");
          }, Nl = function(s, u, l, h) {
            for (var p = Math.min(2, 3 - h.style.size), v = p; v < l.length && l[v].type !== "stack"; v++) {
              var T = c0(s, r4(l[v]), "math"), y = T.height + T.depth;
              if (l[v].type === "small") {
                var w = h.havingBaseStyle(l[v].style);
                y *= w.sizeMultiplier;
              }
              if (y > u)
                return l[v];
            }
            return l[l.length - 1];
          }, Il = function(s, u, l, h, p, v) {
            s === "<" || s === "\\lt" || s === "⟨" ? s = "\\langle" : (s === ">" || s === "\\gt" || s === "⟩") && (s = "\\rangle");
            var T;
            B.contains(kl, s) ? T = e4 : B.contains(Cl, s) ? T = wl : T = t4;
            var y = Nl(s, u, T, h);
            return y.type === "small" ? W2(s, y.style, l, h, p, v) : y.type === "large" ? yl(s, y.size, l, h, p, v) : Sl(s, u, l, h, p, v);
          }, n4 = function(s, u, l, h, p, v) {
            var T = h.fontMetrics().axisHeight * h.sizeMultiplier, y = 901, w = 5 / h.fontMetrics().ptPerEm, L = Math.max(u - T, l + T), U = Math.max(
              // In real TeX, calculations are done using integral values which are
              // 65536 per pt, or 655360 per em. So, the division here truncates in
              // TeX but doesn't here, producing different results. If we wanted to
              // exactly match TeX's calculation, we could do
              //   Math.floor(655360 * maxDistFromAxis / 500) *
              //    delimiterFactor / 655360
              // (To see the difference, compare
              //    x^{x^{\left(\rule{0.1em}{0.68em}\right)}}
              // in TeX and KaTeX)
              L / 500 * y,
              2 * L - w
            );
            return Il(s, U, !0, h, p, v);
          }, yr = {
            sqrtImage: Q2,
            sizedDelim: J2,
            sizeToMaxHeight: h0,
            customSizedDelim: Il,
            leftRightDelim: n4
          }, Ml = {
            "\\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
            }
          }, i4 = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "<", ">", "\\langle", "⟨", "\\rangle", "⟩", "\\lt", "\\gt", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱", "/", "\\backslash", "|", "\\vert", "\\|", "\\Vert", "\\uparrow", "\\Uparrow", "\\downarrow", "\\Downarrow", "\\updownarrow", "\\Updownarrow", "."];
          function Ei(E, s) {
            var u = mi(E);
            if (u && B.contains(i4, u.text))
              return u;
            throw u ? new a("Invalid delimiter '" + u.text + "' after '" + s.funcName + "'", E) : new a("Invalid delimiter type '" + E.type + "'", E);
          }
          le({
            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: function(s, u) {
              var l = Ei(u[0], s);
              return {
                type: "delimsizing",
                mode: s.parser.mode,
                size: Ml[s.funcName].size,
                mclass: Ml[s.funcName].mclass,
                delim: l.text
              };
            },
            htmlBuilder: function(s, u) {
              return s.delim === "." ? z.makeSpan([s.mclass]) : yr.sizedDelim(s.delim, s.size, u, s.mode, [s.mclass]);
            },
            mathmlBuilder: function(s) {
              var u = [];
              s.delim !== "." && u.push(Xt(s.delim, s.mode));
              var l = new ee.MathNode("mo", u);
              s.mclass === "mopen" || s.mclass === "mclose" ? l.setAttribute("fence", "true") : l.setAttribute("fence", "false"), l.setAttribute("stretchy", "true");
              var h = ie(yr.sizeToMaxHeight[s.size]);
              return l.setAttribute("minsize", h), l.setAttribute("maxsize", h), l;
            }
          });
          function Dl(E) {
            if (!E.body)
              throw new Error("Bug: The leftright ParseNode wasn't fully parsed.");
          }
          le({
            type: "leftright-right",
            names: ["\\right"],
            props: {
              numArgs: 1,
              primitive: !0
            },
            handler: function(s, u) {
              var l = s.parser.gullet.macros.get("\\current@color");
              if (l && typeof l != "string")
                throw new a("\\current@color set to non-string in \\right");
              return {
                type: "leftright-right",
                mode: s.parser.mode,
                delim: Ei(u[0], s).text,
                color: l
                // undefined if not set via \color
              };
            }
          }), le({
            type: "leftright",
            names: ["\\left"],
            props: {
              numArgs: 1,
              primitive: !0
            },
            handler: function(s, u) {
              var l = Ei(u[0], s), h = s.parser;
              ++h.leftrightDepth;
              var p = h.parseExpression(!1);
              --h.leftrightDepth, h.expect("\\right", !1);
              var v = Ne(h.parseFunction(), "leftright-right");
              return {
                type: "leftright",
                mode: h.mode,
                body: p,
                left: l.text,
                right: v.delim,
                rightColor: v.color
              };
            },
            htmlBuilder: function(s, u) {
              Dl(s);
              for (var l = ct(s.body, u, !0, ["mopen", "mclose"]), h = 0, p = 0, v = !1, T = 0; T < l.length; T++)
                l[T].isMiddle ? v = !0 : (h = Math.max(l[T].height, h), p = Math.max(l[T].depth, p));
              h *= u.sizeMultiplier, p *= u.sizeMultiplier;
              var y;
              if (s.left === "." ? y = o0(u, ["mopen"]) : y = yr.leftRightDelim(s.left, h, p, u, s.mode, ["mopen"]), l.unshift(y), v)
                for (var w = 1; w < l.length; w++) {
                  var L = l[w], U = L.isMiddle;
                  U && (l[w] = yr.leftRightDelim(U.delim, h, p, U.options, s.mode, []));
                }
              var j;
              if (s.right === ".")
                j = o0(u, ["mclose"]);
              else {
                var W = s.rightColor ? u.withColor(s.rightColor) : u;
                j = yr.leftRightDelim(s.right, h, p, W, s.mode, ["mclose"]);
              }
              return l.push(j), z.makeSpan(["minner"], l, u);
            },
            mathmlBuilder: function(s, u) {
              Dl(s);
              var l = kt(s.body, u);
              if (s.left !== ".") {
                var h = new ee.MathNode("mo", [Xt(s.left, s.mode)]);
                h.setAttribute("fence", "true"), l.unshift(h);
              }
              if (s.right !== ".") {
                var p = new ee.MathNode("mo", [Xt(s.right, s.mode)]);
                p.setAttribute("fence", "true"), s.rightColor && p.setAttribute("mathcolor", s.rightColor), l.push(p);
              }
              return es(l);
            }
          }), le({
            type: "middle",
            names: ["\\middle"],
            props: {
              numArgs: 1,
              primitive: !0
            },
            handler: function(s, u) {
              var l = Ei(u[0], s);
              if (!s.parser.leftrightDepth)
                throw new a("\\middle without preceding \\left", l);
              return {
                type: "middle",
                mode: s.parser.mode,
                delim: l.text
              };
            },
            htmlBuilder: function(s, u) {
              var l;
              if (s.delim === ".")
                l = o0(u, []);
              else {
                l = yr.sizedDelim(s.delim, 1, u, s.mode, []);
                var h = {
                  delim: s.delim,
                  options: u
                };
                l.isMiddle = h;
              }
              return l;
            },
            mathmlBuilder: function(s, u) {
              var l = s.delim === "\\vert" || s.delim === "|" ? Xt("|", "text") : Xt(s.delim, s.mode), h = new ee.MathNode("mo", [l]);
              return h.setAttribute("fence", "true"), h.setAttribute("lspace", "0.05em"), h.setAttribute("rspace", "0.05em"), h;
            }
          });
          var fs = function(s, u) {
            var l = z.wrapFragment(Be(s.body, u), u), h = s.label.slice(1), p = u.sizeMultiplier, v, T = 0, y = B.isCharacterBox(s.body);
            if (h === "sout")
              v = z.makeSpan(["stretchy", "sout"]), v.height = u.fontMetrics().defaultRuleThickness / p, T = -0.5 * u.fontMetrics().xHeight;
            else if (h === "phase") {
              var w = et({
                number: 0.6,
                unit: "pt"
              }, u), L = et({
                number: 0.35,
                unit: "ex"
              }, u), U = u.havingBaseSizing();
              p = p / U.sizeMultiplier;
              var j = l.height + l.depth + w + L;
              l.style.paddingLeft = ie(j / 2 + w);
              var W = Math.floor(1e3 * j * p), Q = $m(W), ne = new vr([new Rr("phase", Q)], {
                width: "400em",
                height: ie(W / 1e3),
                viewBox: "0 0 400000 " + W,
                preserveAspectRatio: "xMinYMin slice"
              });
              v = z.makeSvgSpan(["hide-tail"], [ne], u), v.style.height = ie(j), T = l.depth + w + L;
            } else {
              /cancel/.test(h) ? y || l.classes.push("cancel-pad") : h === "angl" ? l.classes.push("anglpad") : l.classes.push("boxpad");
              var ue = 0, fe = 0, Ee = 0;
              /box/.test(h) ? (Ee = Math.max(
                u.fontMetrics().fboxrule,
                // default
                u.minRuleThickness
                // User override.
              ), ue = u.fontMetrics().fboxsep + (h === "colorbox" ? 0 : Ee), fe = ue) : h === "angl" ? (Ee = Math.max(u.fontMetrics().defaultRuleThickness, u.minRuleThickness), ue = 4 * Ee, fe = Math.max(0, 0.25 - l.depth)) : (ue = y ? 0.2 : 0, fe = ue), v = xr.encloseSpan(l, h, ue, fe, u), /fbox|boxed|fcolorbox/.test(h) ? (v.style.borderStyle = "solid", v.style.borderWidth = ie(Ee)) : h === "angl" && Ee !== 0.049 && (v.style.borderTopWidth = ie(Ee), v.style.borderRightWidth = ie(Ee)), T = l.depth + fe, s.backgroundColor && (v.style.backgroundColor = s.backgroundColor, s.borderColor && (v.style.borderColor = s.borderColor));
            }
            var _e;
            if (s.backgroundColor)
              _e = z.makeVList({
                positionType: "individualShift",
                children: [
                  // Put the color background behind inner;
                  {
                    type: "elem",
                    elem: v,
                    shift: T
                  },
                  {
                    type: "elem",
                    elem: l,
                    shift: 0
                  }
                ]
              }, u);
            else {
              var He = /cancel|phase/.test(h) ? ["svg-align"] : [];
              _e = z.makeVList({
                positionType: "individualShift",
                children: [
                  // Write the \cancel stroke on top of inner.
                  {
                    type: "elem",
                    elem: l,
                    shift: 0
                  },
                  {
                    type: "elem",
                    elem: v,
                    shift: T,
                    wrapperClasses: He
                  }
                ]
              }, u);
            }
            return /cancel/.test(h) && (_e.height = l.height, _e.depth = l.depth), /cancel/.test(h) && !y ? z.makeSpan(["mord", "cancel-lap"], [_e], u) : z.makeSpan(["mord"], [_e], u);
          }, ds = function(s, u) {
            var l = 0, h = new ee.MathNode(s.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [Xe(s.body, u)]);
            switch (s.label) {
              case "\\cancel":
                h.setAttribute("notation", "updiagonalstrike");
                break;
              case "\\bcancel":
                h.setAttribute("notation", "downdiagonalstrike");
                break;
              case "\\phase":
                h.setAttribute("notation", "phasorangle");
                break;
              case "\\sout":
                h.setAttribute("notation", "horizontalstrike");
                break;
              case "\\fbox":
                h.setAttribute("notation", "box");
                break;
              case "\\angl":
                h.setAttribute("notation", "actuarial");
                break;
              case "\\fcolorbox":
              case "\\colorbox":
                if (l = u.fontMetrics().fboxsep * u.fontMetrics().ptPerEm, h.setAttribute("width", "+" + 2 * l + "pt"), h.setAttribute("height", "+" + 2 * l + "pt"), h.setAttribute("lspace", l + "pt"), h.setAttribute("voffset", l + "pt"), s.label === "\\fcolorbox") {
                  var p = Math.max(
                    u.fontMetrics().fboxrule,
                    // default
                    u.minRuleThickness
                    // user override
                  );
                  h.setAttribute("style", "border: " + p + "em solid " + String(s.borderColor));
                }
                break;
              case "\\xcancel":
                h.setAttribute("notation", "updiagonalstrike downdiagonalstrike");
                break;
            }
            return s.backgroundColor && h.setAttribute("mathbackground", s.backgroundColor), h;
          };
          le({
            type: "enclose",
            names: ["\\colorbox"],
            props: {
              numArgs: 2,
              allowedInText: !0,
              argTypes: ["color", "text"]
            },
            handler: function(s, u, l) {
              var h = s.parser, p = s.funcName, v = Ne(u[0], "color-token").color, T = u[1];
              return {
                type: "enclose",
                mode: h.mode,
                label: p,
                backgroundColor: v,
                body: T
              };
            },
            htmlBuilder: fs,
            mathmlBuilder: ds
          }), le({
            type: "enclose",
            names: ["\\fcolorbox"],
            props: {
              numArgs: 3,
              allowedInText: !0,
              argTypes: ["color", "color", "text"]
            },
            handler: function(s, u, l) {
              var h = s.parser, p = s.funcName, v = Ne(u[0], "color-token").color, T = Ne(u[1], "color-token").color, y = u[2];
              return {
                type: "enclose",
                mode: h.mode,
                label: p,
                backgroundColor: T,
                borderColor: v,
                body: y
              };
            },
            htmlBuilder: fs,
            mathmlBuilder: ds
          }), le({
            type: "enclose",
            names: ["\\fbox"],
            props: {
              numArgs: 1,
              argTypes: ["hbox"],
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "enclose",
                mode: l.mode,
                label: "\\fbox",
                body: u[0]
              };
            }
          }), le({
            type: "enclose",
            names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              return {
                type: "enclose",
                mode: l.mode,
                label: h,
                body: p
              };
            },
            htmlBuilder: fs,
            mathmlBuilder: ds
          }), le({
            type: "enclose",
            names: ["\\angl"],
            props: {
              numArgs: 1,
              argTypes: ["hbox"],
              allowedInText: !1
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "enclose",
                mode: l.mode,
                label: "\\angl",
                body: u[0]
              };
            }
          });
          var Rl = {};
          function or(E) {
            for (var s = E.type, u = E.names, l = E.props, h = E.handler, p = E.htmlBuilder, v = E.mathmlBuilder, T = {
              type: s,
              numArgs: l.numArgs || 0,
              allowedInText: !1,
              numOptionalArgs: 0,
              handler: h
            }, y = 0; y < u.length; ++y)
              Rl[u[y]] = T;
            p && (ci[s] = p), v && (hi[s] = v);
          }
          var Ol = {};
          function S(E, s) {
            Ol[E] = s;
          }
          var er = /* @__PURE__ */ function() {
            function E(s, u, l) {
              this.lexer = void 0, this.start = void 0, this.end = void 0, this.lexer = s, this.start = u, this.end = l;
            }
            return E.range = function(u, l) {
              return l ? !u || !u.loc || !l.loc || u.loc.lexer !== l.loc.lexer ? null : new E(u.loc.lexer, u.loc.start, l.loc.end) : u && u.loc;
            }, E;
          }(), Br = /* @__PURE__ */ function() {
            function E(u, l) {
              this.text = void 0, this.loc = void 0, this.noexpand = void 0, this.treatAsRelax = void 0, this.text = u, this.loc = l;
            }
            var s = E.prototype;
            return s.range = function(l, h) {
              return new E(h, er.range(this, l));
            }, E;
          }();
          function Ll(E) {
            var s = [];
            E.consumeSpaces();
            var u = E.fetch().text;
            for (u === "\\relax" && (E.consume(), E.consumeSpaces(), u = E.fetch().text); u === "\\hline" || u === "\\hdashline"; )
              E.consume(), s.push(u === "\\hdashline"), E.consumeSpaces(), u = E.fetch().text;
            return s;
          }
          var vi = function(s) {
            var u = s.parser.settings;
            if (!u.displayMode)
              throw new a("{" + s.envName + "} can be used only in display mode.");
          };
          function ms(E) {
            if (E.indexOf("ed") === -1)
              return E.indexOf("*") === -1;
          }
          function Pr(E, s, u) {
            var l = s.hskipBeforeAndAfter, h = s.addJot, p = s.cols, v = s.arraystretch, T = s.colSeparationType, y = s.autoTag, w = s.singleRow, L = s.emptySingleRow, U = s.maxNumCols, j = s.leqno;
            if (E.gullet.beginGroup(), w || E.gullet.macros.set("\\cr", "\\\\\\relax"), !v) {
              var W = E.gullet.expandMacroAsText("\\arraystretch");
              if (W == null)
                v = 1;
              else if (v = parseFloat(W), !v || v < 0)
                throw new a("Invalid \\arraystretch: " + W);
            }
            E.gullet.beginGroup();
            var Q = [], ne = [Q], ue = [], fe = [], Ee = y != null ? [] : void 0;
            function _e() {
              y && E.gullet.macros.set("\\@eqnsw", "1", !0);
            }
            function He() {
              Ee && (E.gullet.macros.get("\\df@tag") ? (Ee.push(E.subparse([new Br("\\df@tag")])), E.gullet.macros.set("\\df@tag", void 0, !0)) : Ee.push(!!y && E.gullet.macros.get("\\@eqnsw") === "1"));
            }
            for (_e(), fe.push(Ll(E)); ; ) {
              var Ie = E.parseExpression(!1, w ? "\\end" : "\\\\");
              E.gullet.endGroup(), E.gullet.beginGroup(), Ie = {
                type: "ordgroup",
                mode: E.mode,
                body: Ie
              }, u && (Ie = {
                type: "styling",
                mode: E.mode,
                style: u,
                body: [Ie]
              }), Q.push(Ie);
              var ze = E.fetch().text;
              if (ze === "&") {
                if (U && Q.length === U) {
                  if (w || T)
                    throw new a("Too many tab characters: &", E.nextToken);
                  E.settings.reportNonstrict("textEnv", "Too few columns specified in the {array} column argument.");
                }
                E.consume();
              } else if (ze === "\\end") {
                He(), Q.length === 1 && Ie.type === "styling" && Ie.body[0].body.length === 0 && (ne.length > 1 || !L) && ne.pop(), fe.length < ne.length + 1 && fe.push([]);
                break;
              } else if (ze === "\\\\") {
                E.consume();
                var Pe = void 0;
                E.gullet.future().text !== " " && (Pe = E.parseSizeGroup(!0)), ue.push(Pe ? Pe.value : null), He(), fe.push(Ll(E)), Q = [], ne.push(Q), _e();
              } else
                throw new a("Expected & or \\\\ or \\cr or \\end", E.nextToken);
            }
            return E.gullet.endGroup(), E.gullet.endGroup(), {
              type: "array",
              mode: E.mode,
              addJot: h,
              arraystretch: v,
              body: ne,
              cols: p,
              rowGaps: ue,
              hskipBeforeAndAfter: l,
              hLinesBeforeRow: fe,
              colSeparationType: T,
              tags: Ee,
              leqno: j
            };
          }
          function ps(E) {
            return E.slice(0, 1) === "d" ? "display" : "text";
          }
          var lr = function(s, u) {
            var l, h, p = s.body.length, v = s.hLinesBeforeRow, T = 0, y = new Array(p), w = [], L = Math.max(
              // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em.
              u.fontMetrics().arrayRuleWidth,
              u.minRuleThickness
              // User override.
            ), U = 1 / u.fontMetrics().ptPerEm, j = 5 * U;
            if (s.colSeparationType && s.colSeparationType === "small") {
              var W = u.havingStyle(ae.SCRIPT).sizeMultiplier;
              j = 0.2778 * (W / u.sizeMultiplier);
            }
            var Q = s.colSeparationType === "CD" ? et({
              number: 3,
              unit: "ex"
            }, u) : 12 * U, ne = 3 * U, ue = s.arraystretch * Q, fe = 0.7 * ue, Ee = 0.3 * ue, _e = 0;
            function He(xi) {
              for (var yi = 0; yi < xi.length; ++yi)
                yi > 0 && (_e += 0.25), w.push({
                  pos: _e,
                  isDashed: xi[yi]
                });
            }
            for (He(v[0]), l = 0; l < s.body.length; ++l) {
              var Ie = s.body[l], ze = fe, Pe = Ee;
              T < Ie.length && (T = Ie.length);
              var qe = new Array(Ie.length);
              for (h = 0; h < Ie.length; ++h) {
                var je = Be(Ie[h], u);
                Pe < je.depth && (Pe = je.depth), ze < je.height && (ze = je.height), qe[h] = je;
              }
              var gt = s.rowGaps[l], Ht = 0;
              gt && (Ht = et(gt, u), Ht > 0 && (Ht += Ee, Pe < Ht && (Pe = Ht), Ht = 0)), s.addJot && (Pe += ne), qe.height = ze, qe.depth = Pe, _e += ze, qe.pos = _e, _e += Pe + Ht, y[l] = qe, He(v[l + 1]);
            }
            var nt = _e / 2 + u.fontMetrics().axisHeight, rn = s.cols || [], Wt = [], xt, Hr, Cn = [];
            if (s.tags && s.tags.some(function(xi) {
              return xi;
            }))
              for (l = 0; l < p; ++l) {
                var kn = y[l], ks = kn.pos - nt, Ur = s.tags[l], zr = void 0;
                Ur === !0 ? zr = z.makeSpan(["eqn-num"], [], u) : Ur === !1 ? zr = z.makeSpan([], [], u) : zr = z.makeSpan([], ct(Ur, u, !0), u), zr.depth = kn.depth, zr.height = kn.height, Cn.push({
                  type: "elem",
                  elem: zr,
                  shift: ks
                });
              }
            for (
              h = 0, Hr = 0;
              // Continue while either there are more columns or more column
              // descriptions, so trailing separators don't get lost.
              h < T || Hr < rn.length;
              ++h, ++Hr
            ) {
              for (var jt = rn[Hr] || {}, d0 = !0; jt.type === "separator"; ) {
                if (d0 || (xt = z.makeSpan(["arraycolsep"], []), xt.style.width = ie(u.fontMetrics().doubleRuleSep), Wt.push(xt)), jt.separator === "|" || jt.separator === ":") {
                  var ws = jt.separator === "|" ? "solid" : "dashed", wn = z.makeSpan(["vertical-separator"], [], u);
                  wn.style.height = ie(_e), wn.style.borderRightWidth = ie(L), wn.style.borderRightStyle = ws, wn.style.margin = "0 " + ie(-L / 2);
                  var gc = _e - nt;
                  gc && (wn.style.verticalAlign = ie(-gc)), Wt.push(wn);
                } else
                  throw new a("Invalid separator type: " + jt.separator);
                Hr++, jt = rn[Hr] || {}, d0 = !1;
              }
              if (!(h >= T)) {
                var Nn = void 0;
                (h > 0 || s.hskipBeforeAndAfter) && (Nn = B.deflt(jt.pregap, j), Nn !== 0 && (xt = z.makeSpan(["arraycolsep"], []), xt.style.width = ie(Nn), Wt.push(xt)));
                var In = [];
                for (l = 0; l < p; ++l) {
                  var Ti = y[l], Ai = Ti[h];
                  if (Ai) {
                    var M4 = Ti.pos - nt;
                    Ai.depth = Ti.depth, Ai.height = Ti.height, In.push({
                      type: "elem",
                      elem: Ai,
                      shift: M4
                    });
                  }
                }
                In = z.makeVList({
                  positionType: "individualShift",
                  children: In
                }, u), In = z.makeSpan(["col-align-" + (jt.align || "c")], [In]), Wt.push(In), (h < T - 1 || s.hskipBeforeAndAfter) && (Nn = B.deflt(jt.postgap, j), Nn !== 0 && (xt = z.makeSpan(["arraycolsep"], []), xt.style.width = ie(Nn), Wt.push(xt)));
              }
            }
            if (y = z.makeSpan(["mtable"], Wt), w.length > 0) {
              for (var D4 = z.makeLineSpan("hline", u, L), R4 = z.makeLineSpan("hdashline", u, L), Ns = [{
                type: "elem",
                elem: y,
                shift: 0
              }]; w.length > 0; ) {
                var bc = w.pop(), Ec = bc.pos - nt;
                bc.isDashed ? Ns.push({
                  type: "elem",
                  elem: R4,
                  shift: Ec
                }) : Ns.push({
                  type: "elem",
                  elem: D4,
                  shift: Ec
                });
              }
              y = z.makeVList({
                positionType: "individualShift",
                children: Ns
              }, u);
            }
            if (Cn.length === 0)
              return z.makeSpan(["mord"], [y], u);
            var Is = z.makeVList({
              positionType: "individualShift",
              children: Cn
            }, u);
            return Is = z.makeSpan(["tag"], [Is], u), z.makeFragment([y, Is]);
          }, a4 = {
            c: "center ",
            l: "left ",
            r: "right "
          }, cr = function(s, u) {
            for (var l = [], h = new ee.MathNode("mtd", [], ["mtr-glue"]), p = new ee.MathNode("mtd", [], ["mml-eqn-num"]), v = 0; v < s.body.length; v++) {
              for (var T = s.body[v], y = [], w = 0; w < T.length; w++)
                y.push(new ee.MathNode("mtd", [Xe(T[w], u)]));
              s.tags && s.tags[v] && (y.unshift(h), y.push(h), s.leqno ? y.unshift(p) : y.push(p)), l.push(new ee.MathNode("mtr", y));
            }
            var L = new ee.MathNode("mtable", l), U = s.arraystretch === 0.5 ? 0.1 : 0.16 + s.arraystretch - 1 + (s.addJot ? 0.09 : 0);
            L.setAttribute("rowspacing", ie(U));
            var j = "", W = "";
            if (s.cols && s.cols.length > 0) {
              var Q = s.cols, ne = "", ue = !1, fe = 0, Ee = Q.length;
              Q[0].type === "separator" && (j += "top ", fe = 1), Q[Q.length - 1].type === "separator" && (j += "bottom ", Ee -= 1);
              for (var _e = fe; _e < Ee; _e++)
                Q[_e].type === "align" ? (W += a4[Q[_e].align], ue && (ne += "none "), ue = !0) : Q[_e].type === "separator" && ue && (ne += Q[_e].separator === "|" ? "solid " : "dashed ", ue = !1);
              L.setAttribute("columnalign", W.trim()), /[sd]/.test(ne) && L.setAttribute("columnlines", ne.trim());
            }
            if (s.colSeparationType === "align") {
              for (var He = s.cols || [], Ie = "", ze = 1; ze < He.length; ze++)
                Ie += ze % 2 ? "0em " : "1em ";
              L.setAttribute("columnspacing", Ie.trim());
            } else
              s.colSeparationType === "alignat" || s.colSeparationType === "gather" ? L.setAttribute("columnspacing", "0em") : s.colSeparationType === "small" ? L.setAttribute("columnspacing", "0.2778em") : s.colSeparationType === "CD" ? L.setAttribute("columnspacing", "0.5em") : L.setAttribute("columnspacing", "1em");
            var Pe = "", qe = s.hLinesBeforeRow;
            j += qe[0].length > 0 ? "left " : "", j += qe[qe.length - 1].length > 0 ? "right " : "";
            for (var je = 1; je < qe.length - 1; je++)
              Pe += qe[je].length === 0 ? "none " : qe[je][0] ? "dashed " : "solid ";
            return /[sd]/.test(Pe) && L.setAttribute("rowlines", Pe.trim()), j !== "" && (L = new ee.MathNode("menclose", [L]), L.setAttribute("notation", j.trim())), s.arraystretch && s.arraystretch < 1 && (L = new ee.MathNode("mstyle", [L]), L.setAttribute("scriptlevel", "1")), L;
          }, Bl = function(s, u) {
            s.envName.indexOf("ed") === -1 && vi(s);
            var l = [], h = s.envName.indexOf("at") > -1 ? "alignat" : "align", p = s.envName === "split", v = Pr(s.parser, {
              cols: l,
              addJot: !0,
              autoTag: p ? void 0 : ms(s.envName),
              emptySingleRow: !0,
              colSeparationType: h,
              maxNumCols: p ? 2 : void 0,
              leqno: s.parser.settings.leqno
            }, "display"), T, y = 0, w = {
              type: "ordgroup",
              mode: s.mode,
              body: []
            };
            if (u[0] && u[0].type === "ordgroup") {
              for (var L = "", U = 0; U < u[0].body.length; U++) {
                var j = Ne(u[0].body[U], "textord");
                L += j.text;
              }
              T = Number(L), y = T * 2;
            }
            var W = !y;
            v.body.forEach(function(fe) {
              for (var Ee = 1; Ee < fe.length; Ee += 2) {
                var _e = Ne(fe[Ee], "styling"), He = Ne(_e.body[0], "ordgroup");
                He.body.unshift(w);
              }
              if (W)
                y < fe.length && (y = fe.length);
              else {
                var Ie = fe.length / 2;
                if (T < Ie)
                  throw new a("Too many math in a row: " + ("expected " + T + ", but got " + Ie), fe[0]);
              }
            });
            for (var Q = 0; Q < y; ++Q) {
              var ne = "r", ue = 0;
              Q % 2 === 1 ? ne = "l" : Q > 0 && W && (ue = 1), l[Q] = {
                type: "align",
                align: ne,
                pregap: ue,
                postgap: 0
              };
            }
            return v.colSeparationType = W ? "align" : "alignat", v;
          };
          or({
            type: "array",
            names: ["array", "darray"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = mi(u[0]), h = l ? [u[0]] : Ne(u[0], "ordgroup").body, p = h.map(function(T) {
                var y = rs(T), w = y.text;
                if ("lcr".indexOf(w) !== -1)
                  return {
                    type: "align",
                    align: w
                  };
                if (w === "|")
                  return {
                    type: "separator",
                    separator: "|"
                  };
                if (w === ":")
                  return {
                    type: "separator",
                    separator: ":"
                  };
                throw new a("Unknown column alignment: " + w, T);
              }), v = {
                cols: p,
                hskipBeforeAndAfter: !0,
                // \@preamble in lttab.dtx
                maxNumCols: p.length
              };
              return Pr(s.parser, v, ps(s.envName));
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              var u = {
                matrix: null,
                pmatrix: ["(", ")"],
                bmatrix: ["[", "]"],
                Bmatrix: ["\\{", "\\}"],
                vmatrix: ["|", "|"],
                Vmatrix: ["\\Vert", "\\Vert"]
              }[s.envName.replace("*", "")], l = "c", h = {
                hskipBeforeAndAfter: !1,
                cols: [{
                  type: "align",
                  align: l
                }]
              };
              if (s.envName.charAt(s.envName.length - 1) === "*") {
                var p = s.parser;
                if (p.consumeSpaces(), p.fetch().text === "[") {
                  if (p.consume(), p.consumeSpaces(), l = p.fetch().text, "lcr".indexOf(l) === -1)
                    throw new a("Expected l or c or r", p.nextToken);
                  p.consume(), p.consumeSpaces(), p.expect("]"), p.consume(), h.cols = [{
                    type: "align",
                    align: l
                  }];
                }
              }
              var v = Pr(s.parser, h, ps(s.envName)), T = Math.max.apply(Math, [0].concat(v.body.map(function(y) {
                return y.length;
              })));
              return v.cols = new Array(T).fill({
                type: "align",
                align: l
              }), u ? {
                type: "leftright",
                mode: s.mode,
                body: [v],
                left: u[0],
                right: u[1],
                rightColor: void 0
                // \right uninfluenced by \color in array
              } : v;
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["smallmatrix"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              var u = {
                arraystretch: 0.5
              }, l = Pr(s.parser, u, "script");
              return l.colSeparationType = "small", l;
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["subarray"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = mi(u[0]), h = l ? [u[0]] : Ne(u[0], "ordgroup").body, p = h.map(function(T) {
                var y = rs(T), w = y.text;
                if ("lc".indexOf(w) !== -1)
                  return {
                    type: "align",
                    align: w
                  };
                throw new a("Unknown column alignment: " + w, T);
              });
              if (p.length > 1)
                throw new a("{subarray} can contain only one column");
              var v = {
                cols: p,
                hskipBeforeAndAfter: !1,
                arraystretch: 0.5
              };
              if (v = Pr(s.parser, v, "script"), v.body.length > 0 && v.body[0].length > 1)
                throw new a("{subarray} can contain only one column");
              return v;
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["cases", "dcases", "rcases", "drcases"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              var u = {
                arraystretch: 1.2,
                cols: [{
                  type: "align",
                  align: "l",
                  pregap: 0,
                  // TODO(kevinb) get the current style.
                  // For now we use the metrics for TEXT style which is what we were
                  // doing before.  Before attempting to get the current style we
                  // should look at TeX's behavior especially for \over and matrices.
                  postgap: 1
                  /* 1em quad */
                }, {
                  type: "align",
                  align: "l",
                  pregap: 0,
                  postgap: 0
                }]
              }, l = Pr(s.parser, u, ps(s.envName));
              return {
                type: "leftright",
                mode: s.mode,
                body: [l],
                left: s.envName.indexOf("r") > -1 ? "." : "\\{",
                right: s.envName.indexOf("r") > -1 ? "\\}" : ".",
                rightColor: void 0
              };
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["align", "align*", "aligned", "split"],
            props: {
              numArgs: 0
            },
            handler: Bl,
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["gathered", "gather", "gather*"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              B.contains(["gather", "gather*"], s.envName) && vi(s);
              var u = {
                cols: [{
                  type: "align",
                  align: "c"
                }],
                addJot: !0,
                colSeparationType: "gather",
                autoTag: ms(s.envName),
                emptySingleRow: !0,
                leqno: s.parser.settings.leqno
              };
              return Pr(s.parser, u, "display");
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["alignat", "alignat*", "alignedat"],
            props: {
              numArgs: 1
            },
            handler: Bl,
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["equation", "equation*"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              vi(s);
              var u = {
                autoTag: ms(s.envName),
                emptySingleRow: !0,
                singleRow: !0,
                maxNumCols: 1,
                leqno: s.parser.settings.leqno
              };
              return Pr(s.parser, u, "display");
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), or({
            type: "array",
            names: ["CD"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              return vi(s), G2(s.parser);
            },
            htmlBuilder: lr,
            mathmlBuilder: cr
          }), S("\\nonumber", "\\gdef\\@eqnsw{0}"), S("\\notag", "\\nonumber"), le({
            type: "text",
            // Doesn't matter what this is.
            names: ["\\hline", "\\hdashline"],
            props: {
              numArgs: 0,
              allowedInText: !0,
              allowedInMath: !0
            },
            handler: function(s, u) {
              throw new a(s.funcName + " valid only within array environment");
            }
          });
          var s4 = Rl, Pl = s4;
          le({
            type: "environment",
            names: ["\\begin", "\\end"],
            props: {
              numArgs: 1,
              argTypes: ["text"]
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              if (p.type !== "ordgroup")
                throw new a("Invalid environment name", p);
              for (var v = "", T = 0; T < p.body.length; ++T)
                v += Ne(p.body[T], "textord").text;
              if (h === "\\begin") {
                if (!Pl.hasOwnProperty(v))
                  throw new a("No such environment: " + v, p);
                var y = Pl[v], w = l.parseArguments("\\begin{" + v + "}", y), L = w.args, U = w.optArgs, j = {
                  mode: l.mode,
                  envName: v,
                  parser: l
                }, W = y.handler(j, L, U);
                l.expect("\\end", !1);
                var Q = l.nextToken, ne = Ne(l.parseFunction(), "environment");
                if (ne.name !== v)
                  throw new a("Mismatch: \\begin{" + v + "} matched by \\end{" + ne.name + "}", Q);
                return W;
              }
              return {
                type: "environment",
                mode: l.mode,
                name: v,
                nameGroup: p
              };
            }
          });
          var Fl = function(s, u) {
            var l = s.font, h = u.withFont(l);
            return Be(s.body, h);
          }, Hl = function(s, u) {
            var l = s.font, h = u.withFont(l);
            return Xe(s.body, h);
          }, Ul = {
            "\\Bbb": "\\mathbb",
            "\\bold": "\\mathbf",
            "\\frak": "\\mathfrak",
            "\\bm": "\\boldsymbol"
          };
          le({
            type: "font",
            names: [
              // styles, except \boldsymbol defined below
              "\\mathrm",
              "\\mathit",
              "\\mathbf",
              "\\mathnormal",
              // families
              "\\mathbb",
              "\\mathcal",
              "\\mathfrak",
              "\\mathscr",
              "\\mathsf",
              "\\mathtt",
              // aliases, except \bm defined below
              "\\Bbb",
              "\\bold",
              "\\frak"
            ],
            props: {
              numArgs: 1,
              allowedInArgument: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = fi(u[0]), v = h;
              return v in Ul && (v = Ul[v]), {
                type: "font",
                mode: l.mode,
                font: v.slice(1),
                body: p
              };
            },
            htmlBuilder: Fl,
            mathmlBuilder: Hl
          }), le({
            type: "mclass",
            names: ["\\boldsymbol", "\\bm"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = u[0], p = B.isCharacterBox(h);
              return {
                type: "mclass",
                mode: l.mode,
                mclass: gi(h),
                body: [{
                  type: "font",
                  mode: l.mode,
                  font: "boldsymbol",
                  body: h
                }],
                isCharacterBox: p
              };
            }
          }), le({
            type: "font",
            names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"],
            props: {
              numArgs: 0,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = s.breakOnTokenText, v = l.mode, T = l.parseExpression(!0, p), y = "math" + h.slice(1);
              return {
                type: "font",
                mode: v,
                font: y,
                body: {
                  type: "ordgroup",
                  mode: l.mode,
                  body: T
                }
              };
            },
            htmlBuilder: Fl,
            mathmlBuilder: Hl
          });
          var zl = function(s, u) {
            var l = u;
            return s === "display" ? l = l.id >= ae.SCRIPT.id ? l.text() : ae.DISPLAY : s === "text" && l.size === ae.DISPLAY.size ? l = ae.TEXT : s === "script" ? l = ae.SCRIPT : s === "scriptscript" && (l = ae.SCRIPTSCRIPT), l;
          }, gs = function(s, u) {
            var l = zl(s.size, u.style), h = l.fracNum(), p = l.fracDen(), v;
            v = u.havingStyle(h);
            var T = Be(s.numer, v, u);
            if (s.continued) {
              var y = 8.5 / u.fontMetrics().ptPerEm, w = 3.5 / u.fontMetrics().ptPerEm;
              T.height = T.height < y ? y : T.height, T.depth = T.depth < w ? w : T.depth;
            }
            v = u.havingStyle(p);
            var L = Be(s.denom, v, u), U, j, W;
            s.hasBarLine ? (s.barSize ? (j = et(s.barSize, u), U = z.makeLineSpan("frac-line", u, j)) : U = z.makeLineSpan("frac-line", u), j = U.height, W = U.height) : (U = null, j = 0, W = u.fontMetrics().defaultRuleThickness);
            var Q, ne, ue;
            l.size === ae.DISPLAY.size || s.size === "display" ? (Q = u.fontMetrics().num1, j > 0 ? ne = 3 * W : ne = 7 * W, ue = u.fontMetrics().denom1) : (j > 0 ? (Q = u.fontMetrics().num2, ne = W) : (Q = u.fontMetrics().num3, ne = 3 * W), ue = u.fontMetrics().denom2);
            var fe;
            if (U) {
              var _e = u.fontMetrics().axisHeight;
              Q - T.depth - (_e + 0.5 * j) < ne && (Q += ne - (Q - T.depth - (_e + 0.5 * j))), _e - 0.5 * j - (L.height - ue) < ne && (ue += ne - (_e - 0.5 * j - (L.height - ue)));
              var He = -(_e - 0.5 * j);
              fe = z.makeVList({
                positionType: "individualShift",
                children: [{
                  type: "elem",
                  elem: L,
                  shift: ue
                }, {
                  type: "elem",
                  elem: U,
                  shift: He
                }, {
                  type: "elem",
                  elem: T,
                  shift: -Q
                }]
              }, u);
            } else {
              var Ee = Q - T.depth - (L.height - ue);
              Ee < ne && (Q += 0.5 * (ne - Ee), ue += 0.5 * (ne - Ee)), fe = z.makeVList({
                positionType: "individualShift",
                children: [{
                  type: "elem",
                  elem: L,
                  shift: ue
                }, {
                  type: "elem",
                  elem: T,
                  shift: -Q
                }]
              }, u);
            }
            v = u.havingStyle(l), fe.height *= v.sizeMultiplier / u.sizeMultiplier, fe.depth *= v.sizeMultiplier / u.sizeMultiplier;
            var Ie;
            l.size === ae.DISPLAY.size ? Ie = u.fontMetrics().delim1 : l.size === ae.SCRIPTSCRIPT.size ? Ie = u.havingStyle(ae.SCRIPT).fontMetrics().delim2 : Ie = u.fontMetrics().delim2;
            var ze, Pe;
            return s.leftDelim == null ? ze = o0(u, ["mopen"]) : ze = yr.customSizedDelim(s.leftDelim, Ie, !0, u.havingStyle(l), s.mode, ["mopen"]), s.continued ? Pe = z.makeSpan([]) : s.rightDelim == null ? Pe = o0(u, ["mclose"]) : Pe = yr.customSizedDelim(s.rightDelim, Ie, !0, u.havingStyle(l), s.mode, ["mclose"]), z.makeSpan(["mord"].concat(v.sizingClasses(u)), [ze, z.makeSpan(["mfrac"], [fe]), Pe], u);
          }, bs = function(s, u) {
            var l = new ee.MathNode("mfrac", [Xe(s.numer, u), Xe(s.denom, u)]);
            if (!s.hasBarLine)
              l.setAttribute("linethickness", "0px");
            else if (s.barSize) {
              var h = et(s.barSize, u);
              l.setAttribute("linethickness", ie(h));
            }
            var p = zl(s.size, u.style);
            if (p.size !== u.style.size) {
              l = new ee.MathNode("mstyle", [l]);
              var v = p.size === ae.DISPLAY.size ? "true" : "false";
              l.setAttribute("displaystyle", v), l.setAttribute("scriptlevel", "0");
            }
            if (s.leftDelim != null || s.rightDelim != null) {
              var T = [];
              if (s.leftDelim != null) {
                var y = new ee.MathNode("mo", [new ee.TextNode(s.leftDelim.replace("\\", ""))]);
                y.setAttribute("fence", "true"), T.push(y);
              }
              if (T.push(l), s.rightDelim != null) {
                var w = new ee.MathNode("mo", [new ee.TextNode(s.rightDelim.replace("\\", ""))]);
                w.setAttribute("fence", "true"), T.push(w);
              }
              return es(T);
            }
            return l;
          };
          le({
            type: "genfrac",
            names: [
              "\\dfrac",
              "\\frac",
              "\\tfrac",
              "\\dbinom",
              "\\binom",
              "\\tbinom",
              "\\\\atopfrac",
              // can’t be entered directly
              "\\\\bracefrac",
              "\\\\brackfrac"
              // ditto
            ],
            props: {
              numArgs: 2,
              allowedInArgument: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0], v = u[1], T, y = null, w = null, L = "auto";
              switch (h) {
                case "\\dfrac":
                case "\\frac":
                case "\\tfrac":
                  T = !0;
                  break;
                case "\\\\atopfrac":
                  T = !1;
                  break;
                case "\\dbinom":
                case "\\binom":
                case "\\tbinom":
                  T = !1, y = "(", w = ")";
                  break;
                case "\\\\bracefrac":
                  T = !1, y = "\\{", w = "\\}";
                  break;
                case "\\\\brackfrac":
                  T = !1, y = "[", w = "]";
                  break;
                default:
                  throw new Error("Unrecognized genfrac command");
              }
              switch (h) {
                case "\\dfrac":
                case "\\dbinom":
                  L = "display";
                  break;
                case "\\tfrac":
                case "\\tbinom":
                  L = "text";
                  break;
              }
              return {
                type: "genfrac",
                mode: l.mode,
                continued: !1,
                numer: p,
                denom: v,
                hasBarLine: T,
                leftDelim: y,
                rightDelim: w,
                size: L,
                barSize: null
              };
            },
            htmlBuilder: gs,
            mathmlBuilder: bs
          }), le({
            type: "genfrac",
            names: ["\\cfrac"],
            props: {
              numArgs: 2
            },
            handler: function(s, u) {
              var l = s.parser;
              s.funcName;
              var h = u[0], p = u[1];
              return {
                type: "genfrac",
                mode: l.mode,
                continued: !0,
                numer: h,
                denom: p,
                hasBarLine: !0,
                leftDelim: null,
                rightDelim: null,
                size: "display",
                barSize: null
              };
            }
          }), le({
            type: "infix",
            names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"],
            props: {
              numArgs: 0,
              infix: !0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName, h = s.token, p;
              switch (l) {
                case "\\over":
                  p = "\\frac";
                  break;
                case "\\choose":
                  p = "\\binom";
                  break;
                case "\\atop":
                  p = "\\\\atopfrac";
                  break;
                case "\\brace":
                  p = "\\\\bracefrac";
                  break;
                case "\\brack":
                  p = "\\\\brackfrac";
                  break;
                default:
                  throw new Error("Unrecognized infix genfrac command");
              }
              return {
                type: "infix",
                mode: u.mode,
                replaceWith: p,
                token: h
              };
            }
          });
          var ql = ["display", "text", "script", "scriptscript"], Yl = function(s) {
            var u = null;
            return s.length > 0 && (u = s, u = u === "." ? null : u), u;
          };
          le({
            type: "genfrac",
            names: ["\\genfrac"],
            props: {
              numArgs: 6,
              allowedInArgument: !0,
              argTypes: ["math", "math", "size", "text", "math", "math"]
            },
            handler: function(s, u) {
              var l = s.parser, h = u[4], p = u[5], v = fi(u[0]), T = v.type === "atom" && v.family === "open" ? Yl(v.text) : null, y = fi(u[1]), w = y.type === "atom" && y.family === "close" ? Yl(y.text) : null, L = Ne(u[2], "size"), U, j = null;
              L.isBlank ? U = !0 : (j = L.value, U = j.number > 0);
              var W = "auto", Q = u[3];
              if (Q.type === "ordgroup") {
                if (Q.body.length > 0) {
                  var ne = Ne(Q.body[0], "textord");
                  W = ql[Number(ne.text)];
                }
              } else
                Q = Ne(Q, "textord"), W = ql[Number(Q.text)];
              return {
                type: "genfrac",
                mode: l.mode,
                numer: h,
                denom: p,
                continued: !1,
                hasBarLine: U,
                barSize: j,
                leftDelim: T,
                rightDelim: w,
                size: W
              };
            },
            htmlBuilder: gs,
            mathmlBuilder: bs
          }), le({
            type: "infix",
            names: ["\\above"],
            props: {
              numArgs: 1,
              argTypes: ["size"],
              infix: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              s.funcName;
              var h = s.token;
              return {
                type: "infix",
                mode: l.mode,
                replaceWith: "\\\\abovefrac",
                size: Ne(u[0], "size").value,
                token: h
              };
            }
          }), le({
            type: "genfrac",
            names: ["\\\\abovefrac"],
            props: {
              numArgs: 3,
              argTypes: ["math", "size", "math"]
            },
            handler: function(s, u) {
              var l = s.parser;
              s.funcName;
              var h = u[0], p = F(Ne(u[1], "infix").size), v = u[2], T = p.number > 0;
              return {
                type: "genfrac",
                mode: l.mode,
                numer: h,
                denom: v,
                continued: !1,
                hasBarLine: T,
                barSize: p,
                leftDelim: null,
                rightDelim: null,
                size: "auto"
              };
            },
            htmlBuilder: gs,
            mathmlBuilder: bs
          });
          var Vl = function(s, u) {
            var l = u.style, h, p;
            s.type === "supsub" ? (h = s.sup ? Be(s.sup, u.havingStyle(l.sup()), u) : Be(s.sub, u.havingStyle(l.sub()), u), p = Ne(s.base, "horizBrace")) : p = Ne(s, "horizBrace");
            var v = Be(p.base, u.havingBaseStyle(ae.DISPLAY)), T = xr.svgSpan(p, u), y;
            if (p.isOver ? (y = z.makeVList({
              positionType: "firstBaseline",
              children: [{
                type: "elem",
                elem: v
              }, {
                type: "kern",
                size: 0.1
              }, {
                type: "elem",
                elem: T
              }]
            }, u), y.children[0].children[0].children[1].classes.push("svg-align")) : (y = z.makeVList({
              positionType: "bottom",
              positionData: v.depth + 0.1 + T.height,
              children: [{
                type: "elem",
                elem: T
              }, {
                type: "kern",
                size: 0.1
              }, {
                type: "elem",
                elem: v
              }]
            }, u), y.children[0].children[0].children[0].classes.push("svg-align")), h) {
              var w = z.makeSpan(["mord", p.isOver ? "mover" : "munder"], [y], u);
              p.isOver ? y = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: w
                }, {
                  type: "kern",
                  size: 0.2
                }, {
                  type: "elem",
                  elem: h
                }]
              }, u) : y = z.makeVList({
                positionType: "bottom",
                positionData: w.depth + 0.2 + h.height + h.depth,
                children: [{
                  type: "elem",
                  elem: h
                }, {
                  type: "kern",
                  size: 0.2
                }, {
                  type: "elem",
                  elem: w
                }]
              }, u);
            }
            return z.makeSpan(["mord", p.isOver ? "mover" : "munder"], [y], u);
          }, u4 = function(s, u) {
            var l = xr.mathMLnode(s.label);
            return new ee.MathNode(s.isOver ? "mover" : "munder", [Xe(s.base, u), l]);
          };
          le({
            type: "horizBrace",
            names: ["\\overbrace", "\\underbrace"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName;
              return {
                type: "horizBrace",
                mode: l.mode,
                label: h,
                isOver: /^\\over/.test(h),
                base: u[0]
              };
            },
            htmlBuilder: Vl,
            mathmlBuilder: u4
          }), le({
            type: "href",
            names: ["\\href"],
            props: {
              numArgs: 2,
              argTypes: ["url", "original"],
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = u[1], p = Ne(u[0], "url").url;
              return l.settings.isTrusted({
                command: "\\href",
                url: p
              }) ? {
                type: "href",
                mode: l.mode,
                href: p,
                body: ut(h)
              } : l.formatUnsupportedCmd("\\href");
            },
            htmlBuilder: function(s, u) {
              var l = ct(s.body, u, !1);
              return z.makeAnchor(s.href, [], l, u);
            },
            mathmlBuilder: function(s, u) {
              var l = Lr(s.body, u);
              return l instanceof Gt || (l = new Gt("mrow", [l])), l.setAttribute("href", s.href), l;
            }
          }), le({
            type: "href",
            names: ["\\url"],
            props: {
              numArgs: 1,
              argTypes: ["url"],
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = Ne(u[0], "url").url;
              if (!l.settings.isTrusted({
                command: "\\url",
                url: h
              }))
                return l.formatUnsupportedCmd("\\url");
              for (var p = [], v = 0; v < h.length; v++) {
                var T = h[v];
                T === "~" && (T = "\\textasciitilde"), p.push({
                  type: "textord",
                  mode: "text",
                  text: T
                });
              }
              var y = {
                type: "text",
                mode: l.mode,
                font: "\\texttt",
                body: p
              };
              return {
                type: "href",
                mode: l.mode,
                href: h,
                body: ut(y)
              };
            }
          }), le({
            type: "hbox",
            names: ["\\hbox"],
            props: {
              numArgs: 1,
              argTypes: ["text"],
              allowedInText: !0,
              primitive: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "hbox",
                mode: l.mode,
                body: ut(u[0])
              };
            },
            htmlBuilder: function(s, u) {
              var l = ct(s.body, u, !1);
              return z.makeFragment(l);
            },
            mathmlBuilder: function(s, u) {
              return new ee.MathNode("mrow", kt(s.body, u));
            }
          }), le({
            type: "html",
            names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"],
            props: {
              numArgs: 2,
              argTypes: ["raw", "original"],
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName;
              s.token;
              var p = Ne(u[0], "raw").string, v = u[1];
              l.settings.strict && l.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode");
              var T, y = {};
              switch (h) {
                case "\\htmlClass":
                  y.class = p, T = {
                    command: "\\htmlClass",
                    class: p
                  };
                  break;
                case "\\htmlId":
                  y.id = p, T = {
                    command: "\\htmlId",
                    id: p
                  };
                  break;
                case "\\htmlStyle":
                  y.style = p, T = {
                    command: "\\htmlStyle",
                    style: p
                  };
                  break;
                case "\\htmlData": {
                  for (var w = p.split(","), L = 0; L < w.length; L++) {
                    var U = w[L].split("=");
                    if (U.length !== 2)
                      throw new a("Error parsing key-value for \\htmlData");
                    y["data-" + U[0].trim()] = U[1].trim();
                  }
                  T = {
                    command: "\\htmlData",
                    attributes: y
                  };
                  break;
                }
                default:
                  throw new Error("Unrecognized html command");
              }
              return l.settings.isTrusted(T) ? {
                type: "html",
                mode: l.mode,
                attributes: y,
                body: ut(v)
              } : l.formatUnsupportedCmd(h);
            },
            htmlBuilder: function(s, u) {
              var l = ct(s.body, u, !1), h = ["enclosing"];
              s.attributes.class && h.push.apply(h, s.attributes.class.trim().split(/\s+/));
              var p = z.makeSpan(h, l, u);
              for (var v in s.attributes)
                v !== "class" && s.attributes.hasOwnProperty(v) && p.setAttribute(v, s.attributes[v]);
              return p;
            },
            mathmlBuilder: function(s, u) {
              return Lr(s.body, u);
            }
          }), le({
            type: "htmlmathml",
            names: ["\\html@mathml"],
            props: {
              numArgs: 2,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "htmlmathml",
                mode: l.mode,
                html: ut(u[0]),
                mathml: ut(u[1])
              };
            },
            htmlBuilder: function(s, u) {
              var l = ct(s.html, u, !1);
              return z.makeFragment(l);
            },
            mathmlBuilder: function(s, u) {
              return Lr(s.mathml, u);
            }
          });
          var Es = function(s) {
            if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(s))
              return {
                number: +s,
                unit: "bp"
              };
            var u = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(s);
            if (!u)
              throw new a("Invalid size: '" + s + "' in \\includegraphics");
            var l = {
              number: +(u[1] + u[2]),
              // sign + magnitude, cast to number
              unit: u[3]
            };
            if (!Xo(l))
              throw new a("Invalid unit: '" + l.unit + "' in \\includegraphics.");
            return l;
          };
          le({
            type: "includegraphics",
            names: ["\\includegraphics"],
            props: {
              numArgs: 1,
              numOptionalArgs: 1,
              argTypes: ["raw", "url"],
              allowedInText: !1
            },
            handler: function(s, u, l) {
              var h = s.parser, p = {
                number: 0,
                unit: "em"
              }, v = {
                number: 0.9,
                unit: "em"
              }, T = {
                number: 0,
                unit: "em"
              }, y = "";
              if (l[0])
                for (var w = Ne(l[0], "raw").string, L = w.split(","), U = 0; U < L.length; U++) {
                  var j = L[U].split("=");
                  if (j.length === 2) {
                    var W = j[1].trim();
                    switch (j[0].trim()) {
                      case "alt":
                        y = W;
                        break;
                      case "width":
                        p = Es(W);
                        break;
                      case "height":
                        v = Es(W);
                        break;
                      case "totalheight":
                        T = Es(W);
                        break;
                      default:
                        throw new a("Invalid key: '" + j[0] + "' in \\includegraphics.");
                    }
                  }
                }
              var Q = Ne(u[0], "url").url;
              return y === "" && (y = Q, y = y.replace(/^.*[\\/]/, ""), y = y.substring(0, y.lastIndexOf("."))), h.settings.isTrusted({
                command: "\\includegraphics",
                url: Q
              }) ? {
                type: "includegraphics",
                mode: h.mode,
                alt: y,
                width: p,
                height: v,
                totalheight: T,
                src: Q
              } : h.formatUnsupportedCmd("\\includegraphics");
            },
            htmlBuilder: function(s, u) {
              var l = et(s.height, u), h = 0;
              s.totalheight.number > 0 && (h = et(s.totalheight, u) - l);
              var p = 0;
              s.width.number > 0 && (p = et(s.width, u));
              var v = {
                height: ie(l + h)
              };
              p > 0 && (v.width = ie(p)), h > 0 && (v.verticalAlign = ie(-h));
              var T = new s2(s.src, s.alt, v);
              return T.height = l, T.depth = h, T;
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mglyph", []);
              l.setAttribute("alt", s.alt);
              var h = et(s.height, u), p = 0;
              if (s.totalheight.number > 0 && (p = et(s.totalheight, u) - h, l.setAttribute("valign", ie(-p))), l.setAttribute("height", ie(h + p)), s.width.number > 0) {
                var v = et(s.width, u);
                l.setAttribute("width", ie(v));
              }
              return l.setAttribute("src", s.src), l;
            }
          }), le({
            type: "kern",
            names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"],
            props: {
              numArgs: 1,
              argTypes: ["size"],
              primitive: !0,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = Ne(u[0], "size");
              if (l.settings.strict) {
                var v = h[1] === "m", T = p.value.unit === "mu";
                v ? (T || l.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + h + " supports only mu units, " + ("not " + p.value.unit + " units")), l.mode !== "math" && l.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + h + " works only in math mode")) : T && l.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + h + " doesn't support mu units");
              }
              return {
                type: "kern",
                mode: l.mode,
                dimension: p.value
              };
            },
            htmlBuilder: function(s, u) {
              return z.makeGlue(s.dimension, u);
            },
            mathmlBuilder: function(s, u) {
              var l = et(s.dimension, u);
              return new ee.SpaceNode(l);
            }
          }), le({
            type: "lap",
            names: ["\\mathllap", "\\mathrlap", "\\mathclap"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              return {
                type: "lap",
                mode: l.mode,
                alignment: h.slice(5),
                body: p
              };
            },
            htmlBuilder: function(s, u) {
              var l;
              s.alignment === "clap" ? (l = z.makeSpan([], [Be(s.body, u)]), l = z.makeSpan(["inner"], [l], u)) : l = z.makeSpan(["inner"], [Be(s.body, u)]);
              var h = z.makeSpan(["fix"], []), p = z.makeSpan([s.alignment], [l, h], u), v = z.makeSpan(["strut"]);
              return v.style.height = ie(p.height + p.depth), p.depth && (v.style.verticalAlign = ie(-p.depth)), p.children.unshift(v), p = z.makeSpan(["thinbox"], [p], u), z.makeSpan(["mord", "vbox"], [p], u);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mpadded", [Xe(s.body, u)]);
              if (s.alignment !== "rlap") {
                var h = s.alignment === "llap" ? "-1" : "-0.5";
                l.setAttribute("lspace", h + "width");
              }
              return l.setAttribute("width", "0px"), l;
            }
          }), le({
            type: "styling",
            names: ["\\(", "$"],
            props: {
              numArgs: 0,
              allowedInText: !0,
              allowedInMath: !1
            },
            handler: function(s, u) {
              var l = s.funcName, h = s.parser, p = h.mode;
              h.switchMode("math");
              var v = l === "\\(" ? "\\)" : "$", T = h.parseExpression(!1, v);
              return h.expect(v), h.switchMode(p), {
                type: "styling",
                mode: h.mode,
                style: "text",
                body: T
              };
            }
          }), le({
            type: "text",
            // Doesn't matter what this is.
            names: ["\\)", "\\]"],
            props: {
              numArgs: 0,
              allowedInText: !0,
              allowedInMath: !1
            },
            handler: function(s, u) {
              throw new a("Mismatched " + s.funcName);
            }
          });
          var Gl = function(s, u) {
            switch (u.style.size) {
              case ae.DISPLAY.size:
                return s.display;
              case ae.TEXT.size:
                return s.text;
              case ae.SCRIPT.size:
                return s.script;
              case ae.SCRIPTSCRIPT.size:
                return s.scriptscript;
              default:
                return s.text;
            }
          };
          le({
            type: "mathchoice",
            names: ["\\mathchoice"],
            props: {
              numArgs: 4,
              primitive: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "mathchoice",
                mode: l.mode,
                display: ut(u[0]),
                text: ut(u[1]),
                script: ut(u[2]),
                scriptscript: ut(u[3])
              };
            },
            htmlBuilder: function(s, u) {
              var l = Gl(s, u), h = ct(l, u, !1);
              return z.makeFragment(h);
            },
            mathmlBuilder: function(s, u) {
              var l = Gl(s, u);
              return Lr(l, u);
            }
          });
          var Xl = function(s, u, l, h, p, v, T) {
            s = z.makeSpan([], [s]);
            var y = l && B.isCharacterBox(l), w, L;
            if (u) {
              var U = Be(u, h.havingStyle(p.sup()), h);
              L = {
                elem: U,
                kern: Math.max(h.fontMetrics().bigOpSpacing1, h.fontMetrics().bigOpSpacing3 - U.depth)
              };
            }
            if (l) {
              var j = Be(l, h.havingStyle(p.sub()), h);
              w = {
                elem: j,
                kern: Math.max(h.fontMetrics().bigOpSpacing2, h.fontMetrics().bigOpSpacing4 - j.height)
              };
            }
            var W;
            if (L && w) {
              var Q = h.fontMetrics().bigOpSpacing5 + w.elem.height + w.elem.depth + w.kern + s.depth + T;
              W = z.makeVList({
                positionType: "bottom",
                positionData: Q,
                children: [{
                  type: "kern",
                  size: h.fontMetrics().bigOpSpacing5
                }, {
                  type: "elem",
                  elem: w.elem,
                  marginLeft: ie(-v)
                }, {
                  type: "kern",
                  size: w.kern
                }, {
                  type: "elem",
                  elem: s
                }, {
                  type: "kern",
                  size: L.kern
                }, {
                  type: "elem",
                  elem: L.elem,
                  marginLeft: ie(v)
                }, {
                  type: "kern",
                  size: h.fontMetrics().bigOpSpacing5
                }]
              }, h);
            } else if (w) {
              var ne = s.height - T;
              W = z.makeVList({
                positionType: "top",
                positionData: ne,
                children: [{
                  type: "kern",
                  size: h.fontMetrics().bigOpSpacing5
                }, {
                  type: "elem",
                  elem: w.elem,
                  marginLeft: ie(-v)
                }, {
                  type: "kern",
                  size: w.kern
                }, {
                  type: "elem",
                  elem: s
                }]
              }, h);
            } else if (L) {
              var ue = s.depth + T;
              W = z.makeVList({
                positionType: "bottom",
                positionData: ue,
                children: [{
                  type: "elem",
                  elem: s
                }, {
                  type: "kern",
                  size: L.kern
                }, {
                  type: "elem",
                  elem: L.elem,
                  marginLeft: ie(v)
                }, {
                  type: "kern",
                  size: h.fontMetrics().bigOpSpacing5
                }]
              }, h);
            } else
              return s;
            var fe = [W];
            if (w && v !== 0 && !y) {
              var Ee = z.makeSpan(["mspace"], [], h);
              Ee.style.marginRight = ie(v), fe.unshift(Ee);
            }
            return z.makeSpan(["mop", "op-limits"], fe, h);
          }, Wl = ["\\smallint"], Sn = function(s, u) {
            var l, h, p = !1, v;
            s.type === "supsub" ? (l = s.sup, h = s.sub, v = Ne(s.base, "op"), p = !0) : v = Ne(s, "op");
            var T = u.style, y = !1;
            T.size === ae.DISPLAY.size && v.symbol && !B.contains(Wl, v.name) && (y = !0);
            var w;
            if (v.symbol) {
              var L = y ? "Size2-Regular" : "Size1-Regular", U = "";
              if ((v.name === "\\oiint" || v.name === "\\oiiint") && (U = v.name.slice(1), v.name = U === "oiint" ? "\\iint" : "\\iiint"), w = z.makeSymbol(v.name, L, "math", u, ["mop", "op-symbol", y ? "large-op" : "small-op"]), U.length > 0) {
                var j = w.italic, W = z.staticSvg(U + "Size" + (y ? "2" : "1"), u);
                w = z.makeVList({
                  positionType: "individualShift",
                  children: [{
                    type: "elem",
                    elem: w,
                    shift: 0
                  }, {
                    type: "elem",
                    elem: W,
                    shift: y ? 0.08 : 0
                  }]
                }, u), v.name = "\\" + U, w.classes.unshift("mop"), w.italic = j;
              }
            } else if (v.body) {
              var Q = ct(v.body, u, !0);
              Q.length === 1 && Q[0] instanceof Vt ? (w = Q[0], w.classes[0] = "mop") : w = z.makeSpan(["mop"], Q, u);
            } else {
              for (var ne = [], ue = 1; ue < v.name.length; ue++)
                ne.push(z.mathsym(v.name[ue], v.mode, u));
              w = z.makeSpan(["mop"], ne, u);
            }
            var fe = 0, Ee = 0;
            return (w instanceof Vt || v.name === "\\oiint" || v.name === "\\oiiint") && !v.suppressBaseShift && (fe = (w.height - w.depth) / 2 - u.fontMetrics().axisHeight, Ee = w.italic), p ? Xl(w, l, h, u, T, Ee, fe) : (fe && (w.style.position = "relative", w.style.top = ie(fe)), w);
          }, f0 = function(s, u) {
            var l;
            if (s.symbol)
              l = new Gt("mo", [Xt(s.name, s.mode)]), B.contains(Wl, s.name) && l.setAttribute("largeop", "false");
            else if (s.body)
              l = new Gt("mo", kt(s.body, u));
            else {
              l = new Gt("mi", [new l0(s.name.slice(1))]);
              var h = new Gt("mo", [Xt("⁡", "text")]);
              s.parentIsSupSub ? l = new Gt("mrow", [l, h]) : l = cl([l, h]);
            }
            return l;
          }, o4 = {
            "∏": "\\prod",
            "∐": "\\coprod",
            "∑": "\\sum",
            "⋀": "\\bigwedge",
            "⋁": "\\bigvee",
            "⋂": "\\bigcap",
            "⋃": "\\bigcup",
            "⨀": "\\bigodot",
            "⨁": "\\bigoplus",
            "⨂": "\\bigotimes",
            "⨄": "\\biguplus",
            "⨆": "\\bigsqcup"
          };
          le({
            type: "op",
            names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨄", "⨆"],
            props: {
              numArgs: 0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = h;
              return p.length === 1 && (p = o4[p]), {
                type: "op",
                mode: l.mode,
                limits: !0,
                parentIsSupSub: !1,
                symbol: !0,
                name: p
              };
            },
            htmlBuilder: Sn,
            mathmlBuilder: f0
          }), le({
            type: "op",
            names: ["\\mathop"],
            props: {
              numArgs: 1,
              primitive: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = u[0];
              return {
                type: "op",
                mode: l.mode,
                limits: !1,
                parentIsSupSub: !1,
                symbol: !1,
                body: ut(h)
              };
            },
            htmlBuilder: Sn,
            mathmlBuilder: f0
          });
          var l4 = {
            "∫": "\\int",
            "∬": "\\iint",
            "∭": "\\iiint",
            "∮": "\\oint",
            "∯": "\\oiint",
            "∰": "\\oiiint"
          };
          le({
            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: function(s) {
              var u = s.parser, l = s.funcName;
              return {
                type: "op",
                mode: u.mode,
                limits: !1,
                parentIsSupSub: !1,
                symbol: !1,
                name: l
              };
            },
            htmlBuilder: Sn,
            mathmlBuilder: f0
          }), le({
            type: "op",
            names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName;
              return {
                type: "op",
                mode: u.mode,
                limits: !0,
                parentIsSupSub: !1,
                symbol: !1,
                name: l
              };
            },
            htmlBuilder: Sn,
            mathmlBuilder: f0
          }), le({
            type: "op",
            names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "∫", "∬", "∭", "∮", "∯", "∰"],
            props: {
              numArgs: 0
            },
            handler: function(s) {
              var u = s.parser, l = s.funcName, h = l;
              return h.length === 1 && (h = l4[h]), {
                type: "op",
                mode: u.mode,
                limits: !1,
                parentIsSupSub: !1,
                symbol: !0,
                name: h
              };
            },
            htmlBuilder: Sn,
            mathmlBuilder: f0
          });
          var jl = function(s, u) {
            var l, h, p = !1, v;
            s.type === "supsub" ? (l = s.sup, h = s.sub, v = Ne(s.base, "operatorname"), p = !0) : v = Ne(s, "operatorname");
            var T;
            if (v.body.length > 0) {
              for (var y = v.body.map(function(j) {
                var W = j.text;
                return typeof W == "string" ? {
                  type: "textord",
                  mode: j.mode,
                  text: W
                } : j;
              }), w = ct(y, u.withFont("mathrm"), !0), L = 0; L < w.length; L++) {
                var U = w[L];
                U instanceof Vt && (U.text = U.text.replace(/\u2212/, "-").replace(/\u2217/, "*"));
              }
              T = z.makeSpan(["mop"], w, u);
            } else
              T = z.makeSpan(["mop"], [], u);
            return p ? Xl(T, l, h, u, u.style, 0, 0) : T;
          }, c4 = function(s, u) {
            for (var l = kt(s.body, u.withFont("mathrm")), h = !0, p = 0; p < l.length; p++) {
              var v = l[p];
              if (!(v instanceof ee.SpaceNode))
                if (v instanceof ee.MathNode)
                  switch (v.type) {
                    case "mi":
                    case "mn":
                    case "ms":
                    case "mspace":
                    case "mtext":
                      break;
                    case "mo": {
                      var T = v.children[0];
                      v.children.length === 1 && T instanceof ee.TextNode ? T.text = T.text.replace(/\u2212/, "-").replace(/\u2217/, "*") : h = !1;
                      break;
                    }
                    default:
                      h = !1;
                  }
                else
                  h = !1;
            }
            if (h) {
              var y = l.map(function(U) {
                return U.toText();
              }).join("");
              l = [new ee.TextNode(y)];
            }
            var w = new ee.MathNode("mi", l);
            w.setAttribute("mathvariant", "normal");
            var L = new ee.MathNode("mo", [Xt("⁡", "text")]);
            return s.parentIsSupSub ? new ee.MathNode("mrow", [w, L]) : ee.newDocumentFragment([w, L]);
          };
          le({
            type: "operatorname",
            names: ["\\operatorname@", "\\operatornamewithlimits"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              return {
                type: "operatorname",
                mode: l.mode,
                body: ut(p),
                alwaysHandleSupSub: h === "\\operatornamewithlimits",
                limits: !1,
                parentIsSupSub: !1
              };
            },
            htmlBuilder: jl,
            mathmlBuilder: c4
          }), S("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@"), tn({
            type: "ordgroup",
            htmlBuilder: function(s, u) {
              return s.semisimple ? z.makeFragment(ct(s.body, u, !1)) : z.makeSpan(["mord"], ct(s.body, u, !0), u);
            },
            mathmlBuilder: function(s, u) {
              return Lr(s.body, u, !0);
            }
          }), le({
            type: "overline",
            names: ["\\overline"],
            props: {
              numArgs: 1
            },
            handler: function(s, u) {
              var l = s.parser, h = u[0];
              return {
                type: "overline",
                mode: l.mode,
                body: h
              };
            },
            htmlBuilder: function(s, u) {
              var l = Be(s.body, u.havingCrampedStyle()), h = z.makeLineSpan("overline-line", u), p = u.fontMetrics().defaultRuleThickness, v = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: l
                }, {
                  type: "kern",
                  size: 3 * p
                }, {
                  type: "elem",
                  elem: h
                }, {
                  type: "kern",
                  size: p
                }]
              }, u);
              return z.makeSpan(["mord", "overline"], [v], u);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mo", [new ee.TextNode("‾")]);
              l.setAttribute("stretchy", "true");
              var h = new ee.MathNode("mover", [Xe(s.body, u), l]);
              return h.setAttribute("accent", "true"), h;
            }
          }), le({
            type: "phantom",
            names: ["\\phantom"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = u[0];
              return {
                type: "phantom",
                mode: l.mode,
                body: ut(h)
              };
            },
            htmlBuilder: function(s, u) {
              var l = ct(s.body, u.withPhantom(), !1);
              return z.makeFragment(l);
            },
            mathmlBuilder: function(s, u) {
              var l = kt(s.body, u);
              return new ee.MathNode("mphantom", l);
            }
          }), le({
            type: "hphantom",
            names: ["\\hphantom"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = u[0];
              return {
                type: "hphantom",
                mode: l.mode,
                body: h
              };
            },
            htmlBuilder: function(s, u) {
              var l = z.makeSpan([], [Be(s.body, u.withPhantom())]);
              if (l.height = 0, l.depth = 0, l.children)
                for (var h = 0; h < l.children.length; h++)
                  l.children[h].height = 0, l.children[h].depth = 0;
              return l = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: l
                }]
              }, u), z.makeSpan(["mord"], [l], u);
            },
            mathmlBuilder: function(s, u) {
              var l = kt(ut(s.body), u), h = new ee.MathNode("mphantom", l), p = new ee.MathNode("mpadded", [h]);
              return p.setAttribute("height", "0px"), p.setAttribute("depth", "0px"), p;
            }
          }), le({
            type: "vphantom",
            names: ["\\vphantom"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = u[0];
              return {
                type: "vphantom",
                mode: l.mode,
                body: h
              };
            },
            htmlBuilder: function(s, u) {
              var l = z.makeSpan(["inner"], [Be(s.body, u.withPhantom())]), h = z.makeSpan(["fix"], []);
              return z.makeSpan(["mord", "rlap"], [l, h], u);
            },
            mathmlBuilder: function(s, u) {
              var l = kt(ut(s.body), u), h = new ee.MathNode("mphantom", l), p = new ee.MathNode("mpadded", [h]);
              return p.setAttribute("width", "0px"), p;
            }
          }), le({
            type: "raisebox",
            names: ["\\raisebox"],
            props: {
              numArgs: 2,
              argTypes: ["size", "hbox"],
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = Ne(u[0], "size").value, p = u[1];
              return {
                type: "raisebox",
                mode: l.mode,
                dy: h,
                body: p
              };
            },
            htmlBuilder: function(s, u) {
              var l = Be(s.body, u), h = et(s.dy, u);
              return z.makeVList({
                positionType: "shift",
                positionData: -h,
                children: [{
                  type: "elem",
                  elem: l
                }]
              }, u);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mpadded", [Xe(s.body, u)]), h = s.dy.number + s.dy.unit;
              return l.setAttribute("voffset", h), l;
            }
          }), le({
            type: "internal",
            names: ["\\relax"],
            props: {
              numArgs: 0,
              allowedInText: !0
            },
            handler: function(s) {
              var u = s.parser;
              return {
                type: "internal",
                mode: u.mode
              };
            }
          }), le({
            type: "rule",
            names: ["\\rule"],
            props: {
              numArgs: 2,
              numOptionalArgs: 1,
              argTypes: ["size", "size", "size"]
            },
            handler: function(s, u, l) {
              var h = s.parser, p = l[0], v = Ne(u[0], "size"), T = Ne(u[1], "size");
              return {
                type: "rule",
                mode: h.mode,
                shift: p && Ne(p, "size").value,
                width: v.value,
                height: T.value
              };
            },
            htmlBuilder: function(s, u) {
              var l = z.makeSpan(["mord", "rule"], [], u), h = et(s.width, u), p = et(s.height, u), v = s.shift ? et(s.shift, u) : 0;
              return l.style.borderRightWidth = ie(h), l.style.borderTopWidth = ie(p), l.style.bottom = ie(v), l.width = h, l.height = p + v, l.depth = -v, l.maxFontSize = p * 1.125 * u.sizeMultiplier, l;
            },
            mathmlBuilder: function(s, u) {
              var l = et(s.width, u), h = et(s.height, u), p = s.shift ? et(s.shift, u) : 0, v = u.color && u.getColor() || "black", T = new ee.MathNode("mspace");
              T.setAttribute("mathbackground", v), T.setAttribute("width", ie(l)), T.setAttribute("height", ie(h));
              var y = new ee.MathNode("mpadded", [T]);
              return p >= 0 ? y.setAttribute("height", ie(p)) : (y.setAttribute("height", ie(p)), y.setAttribute("depth", ie(-p))), y.setAttribute("voffset", ie(p)), y;
            }
          });
          function Kl(E, s, u) {
            for (var l = ct(E, s, !1), h = s.sizeMultiplier / u.sizeMultiplier, p = 0; p < l.length; p++) {
              var v = l[p].classes.indexOf("sizing");
              v < 0 ? Array.prototype.push.apply(l[p].classes, s.sizingClasses(u)) : l[p].classes[v + 1] === "reset-size" + s.size && (l[p].classes[v + 1] = "reset-size" + u.size), l[p].height *= h, l[p].depth *= h;
            }
            return z.makeFragment(l);
          }
          var $l = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], h4 = function(s, u) {
            var l = u.havingSize(s.size);
            return Kl(s.body, l, u);
          };
          le({
            type: "sizing",
            names: $l,
            props: {
              numArgs: 0,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.breakOnTokenText, h = s.funcName, p = s.parser, v = p.parseExpression(!1, l);
              return {
                type: "sizing",
                mode: p.mode,
                // Figure out what size to use based on the list of functions above
                size: $l.indexOf(h) + 1,
                body: v
              };
            },
            htmlBuilder: h4,
            mathmlBuilder: function(s, u) {
              var l = u.havingSize(s.size), h = kt(s.body, l), p = new ee.MathNode("mstyle", h);
              return p.setAttribute("mathsize", ie(l.sizeMultiplier)), p;
            }
          }), le({
            type: "smash",
            names: ["\\smash"],
            props: {
              numArgs: 1,
              numOptionalArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u, l) {
              var h = s.parser, p = !1, v = !1, T = l[0] && Ne(l[0], "ordgroup");
              if (T)
                for (var y = "", w = 0; w < T.body.length; ++w) {
                  var L = T.body[w];
                  if (y = L.text, y === "t")
                    p = !0;
                  else if (y === "b")
                    v = !0;
                  else {
                    p = !1, v = !1;
                    break;
                  }
                }
              else
                p = !0, v = !0;
              var U = u[0];
              return {
                type: "smash",
                mode: h.mode,
                body: U,
                smashHeight: p,
                smashDepth: v
              };
            },
            htmlBuilder: function(s, u) {
              var l = z.makeSpan([], [Be(s.body, u)]);
              if (!s.smashHeight && !s.smashDepth)
                return l;
              if (s.smashHeight && (l.height = 0, l.children))
                for (var h = 0; h < l.children.length; h++)
                  l.children[h].height = 0;
              if (s.smashDepth && (l.depth = 0, l.children))
                for (var p = 0; p < l.children.length; p++)
                  l.children[p].depth = 0;
              var v = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: l
                }]
              }, u);
              return z.makeSpan(["mord"], [v], u);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mpadded", [Xe(s.body, u)]);
              return s.smashHeight && l.setAttribute("height", "0px"), s.smashDepth && l.setAttribute("depth", "0px"), l;
            }
          }), le({
            type: "sqrt",
            names: ["\\sqrt"],
            props: {
              numArgs: 1,
              numOptionalArgs: 1
            },
            handler: function(s, u, l) {
              var h = s.parser, p = l[0], v = u[0];
              return {
                type: "sqrt",
                mode: h.mode,
                body: v,
                index: p
              };
            },
            htmlBuilder: function(s, u) {
              var l = Be(s.body, u.havingCrampedStyle());
              l.height === 0 && (l.height = u.fontMetrics().xHeight), l = z.wrapFragment(l, u);
              var h = u.fontMetrics(), p = h.defaultRuleThickness, v = p;
              u.style.id < ae.TEXT.id && (v = u.fontMetrics().xHeight);
              var T = p + v / 4, y = l.height + l.depth + T + p, w = yr.sqrtImage(y, u), L = w.span, U = w.ruleWidth, j = w.advanceWidth, W = L.height - U;
              W > l.height + l.depth + T && (T = (T + W - l.height - l.depth) / 2);
              var Q = L.height - l.height - T - U;
              l.style.paddingLeft = ie(j);
              var ne = z.makeVList({
                positionType: "firstBaseline",
                children: [{
                  type: "elem",
                  elem: l,
                  wrapperClasses: ["svg-align"]
                }, {
                  type: "kern",
                  size: -(l.height + Q)
                }, {
                  type: "elem",
                  elem: L
                }, {
                  type: "kern",
                  size: U
                }]
              }, u);
              if (s.index) {
                var ue = u.havingStyle(ae.SCRIPTSCRIPT), fe = Be(s.index, ue, u), Ee = 0.6 * (ne.height - ne.depth), _e = z.makeVList({
                  positionType: "shift",
                  positionData: -Ee,
                  children: [{
                    type: "elem",
                    elem: fe
                  }]
                }, u), He = z.makeSpan(["root"], [_e]);
                return z.makeSpan(["mord", "sqrt"], [He, ne], u);
              } else
                return z.makeSpan(["mord", "sqrt"], [ne], u);
            },
            mathmlBuilder: function(s, u) {
              var l = s.body, h = s.index;
              return h ? new ee.MathNode("mroot", [Xe(l, u), Xe(h, u)]) : new ee.MathNode("msqrt", [Xe(l, u)]);
            }
          });
          var Ql = {
            display: ae.DISPLAY,
            text: ae.TEXT,
            script: ae.SCRIPT,
            scriptscript: ae.SCRIPTSCRIPT
          };
          le({
            type: "styling",
            names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"],
            props: {
              numArgs: 0,
              allowedInText: !0,
              primitive: !0
            },
            handler: function(s, u) {
              var l = s.breakOnTokenText, h = s.funcName, p = s.parser, v = p.parseExpression(!0, l), T = h.slice(1, h.length - 5);
              return {
                type: "styling",
                mode: p.mode,
                // Figure out what style to use by pulling out the style from
                // the function name
                style: T,
                body: v
              };
            },
            htmlBuilder: function(s, u) {
              var l = Ql[s.style], h = u.havingStyle(l).withFont("");
              return Kl(s.body, h, u);
            },
            mathmlBuilder: function(s, u) {
              var l = Ql[s.style], h = u.havingStyle(l), p = kt(s.body, h), v = new ee.MathNode("mstyle", p), T = {
                display: ["0", "true"],
                text: ["0", "false"],
                script: ["1", "false"],
                scriptscript: ["2", "false"]
              }, y = T[s.style];
              return v.setAttribute("scriptlevel", y[0]), v.setAttribute("displaystyle", y[1]), v;
            }
          });
          var f4 = function(s, u) {
            var l = s.base;
            if (l)
              if (l.type === "op") {
                var h = l.limits && (u.style.size === ae.DISPLAY.size || l.alwaysHandleSupSub);
                return h ? Sn : null;
              } else if (l.type === "operatorname") {
                var p = l.alwaysHandleSupSub && (u.style.size === ae.DISPLAY.size || l.limits);
                return p ? jl : null;
              } else {
                if (l.type === "accent")
                  return B.isCharacterBox(l.base) ? ns : null;
                if (l.type === "horizBrace") {
                  var v = !s.sub;
                  return v === l.isOver ? Vl : null;
                } else
                  return null;
              }
            else
              return null;
          };
          tn({
            type: "supsub",
            htmlBuilder: function(s, u) {
              var l = f4(s, u);
              if (l)
                return l(s, u);
              var h = s.base, p = s.sup, v = s.sub, T = Be(h, u), y, w, L = u.fontMetrics(), U = 0, j = 0, W = h && B.isCharacterBox(h);
              if (p) {
                var Q = u.havingStyle(u.style.sup());
                y = Be(p, Q, u), W || (U = T.height - Q.fontMetrics().supDrop * Q.sizeMultiplier / u.sizeMultiplier);
              }
              if (v) {
                var ne = u.havingStyle(u.style.sub());
                w = Be(v, ne, u), W || (j = T.depth + ne.fontMetrics().subDrop * ne.sizeMultiplier / u.sizeMultiplier);
              }
              var ue;
              u.style === ae.DISPLAY ? ue = L.sup1 : u.style.cramped ? ue = L.sup3 : ue = L.sup2;
              var fe = u.sizeMultiplier, Ee = ie(0.5 / L.ptPerEm / fe), _e = null;
              if (w) {
                var He = s.base && s.base.type === "op" && s.base.name && (s.base.name === "\\oiint" || s.base.name === "\\oiiint");
                (T instanceof Vt || He) && (_e = ie(-T.italic));
              }
              var Ie;
              if (y && w) {
                U = Math.max(U, ue, y.depth + 0.25 * L.xHeight), j = Math.max(j, L.sub2);
                var ze = L.defaultRuleThickness, Pe = 4 * ze;
                if (U - y.depth - (w.height - j) < Pe) {
                  j = Pe - (U - y.depth) + w.height;
                  var qe = 0.8 * L.xHeight - (U - y.depth);
                  qe > 0 && (U += qe, j -= qe);
                }
                var je = [{
                  type: "elem",
                  elem: w,
                  shift: j,
                  marginRight: Ee,
                  marginLeft: _e
                }, {
                  type: "elem",
                  elem: y,
                  shift: -U,
                  marginRight: Ee
                }];
                Ie = z.makeVList({
                  positionType: "individualShift",
                  children: je
                }, u);
              } else if (w) {
                j = Math.max(j, L.sub1, w.height - 0.8 * L.xHeight);
                var gt = [{
                  type: "elem",
                  elem: w,
                  marginLeft: _e,
                  marginRight: Ee
                }];
                Ie = z.makeVList({
                  positionType: "shift",
                  positionData: j,
                  children: gt
                }, u);
              } else if (y)
                U = Math.max(U, ue, y.depth + 0.25 * L.xHeight), Ie = z.makeVList({
                  positionType: "shift",
                  positionData: -U,
                  children: [{
                    type: "elem",
                    elem: y,
                    marginRight: Ee
                  }]
                }, u);
              else
                throw new Error("supsub must have either sup or sub.");
              var Ht = Za(T, "right") || "mord";
              return z.makeSpan([Ht], [T, z.makeSpan(["msupsub"], [Ie])], u);
            },
            mathmlBuilder: function(s, u) {
              var l = !1, h, p;
              s.base && s.base.type === "horizBrace" && (p = !!s.sup, p === s.base.isOver && (l = !0, h = s.base.isOver)), s.base && (s.base.type === "op" || s.base.type === "operatorname") && (s.base.parentIsSupSub = !0);
              var v = [Xe(s.base, u)];
              s.sub && v.push(Xe(s.sub, u)), s.sup && v.push(Xe(s.sup, u));
              var T;
              if (l)
                T = h ? "mover" : "munder";
              else if (s.sub)
                if (s.sup) {
                  var L = s.base;
                  L && L.type === "op" && L.limits && u.style === ae.DISPLAY || L && L.type === "operatorname" && L.alwaysHandleSupSub && (u.style === ae.DISPLAY || L.limits) ? T = "munderover" : T = "msubsup";
                } else {
                  var w = s.base;
                  w && w.type === "op" && w.limits && (u.style === ae.DISPLAY || w.alwaysHandleSupSub) || w && w.type === "operatorname" && w.alwaysHandleSupSub && (w.limits || u.style === ae.DISPLAY) ? T = "munder" : T = "msub";
                }
              else {
                var y = s.base;
                y && y.type === "op" && y.limits && (u.style === ae.DISPLAY || y.alwaysHandleSupSub) || y && y.type === "operatorname" && y.alwaysHandleSupSub && (y.limits || u.style === ae.DISPLAY) ? T = "mover" : T = "msup";
              }
              return new ee.MathNode(T, v);
            }
          }), tn({
            type: "atom",
            htmlBuilder: function(s, u) {
              return z.mathsym(s.text, s.mode, u, ["m" + s.family]);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mo", [Xt(s.text, s.mode)]);
              if (s.family === "bin") {
                var h = ts(s, u);
                h === "bold-italic" && l.setAttribute("mathvariant", h);
              } else
                s.family === "punct" ? l.setAttribute("separator", "true") : (s.family === "open" || s.family === "close") && l.setAttribute("stretchy", "false");
              return l;
            }
          });
          var Zl = {
            mi: "italic",
            mn: "normal",
            mtext: "normal"
          };
          tn({
            type: "mathord",
            htmlBuilder: function(s, u) {
              return z.makeOrd(s, u, "mathord");
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mi", [Xt(s.text, s.mode, u)]), h = ts(s, u) || "italic";
              return h !== Zl[l.type] && l.setAttribute("mathvariant", h), l;
            }
          }), tn({
            type: "textord",
            htmlBuilder: function(s, u) {
              return z.makeOrd(s, u, "textord");
            },
            mathmlBuilder: function(s, u) {
              var l = Xt(s.text, s.mode, u), h = ts(s, u) || "normal", p;
              return s.mode === "text" ? p = new ee.MathNode("mtext", [l]) : /[0-9]/.test(s.text) ? p = new ee.MathNode("mn", [l]) : s.text === "\\prime" ? p = new ee.MathNode("mo", [l]) : p = new ee.MathNode("mi", [l]), h !== Zl[p.type] && p.setAttribute("mathvariant", h), p;
            }
          });
          var vs = {
            "\\nobreak": "nobreak",
            "\\allowbreak": "allowbreak"
          }, _s = {
            " ": {},
            "\\ ": {},
            "~": {
              className: "nobreak"
            },
            "\\space": {},
            "\\nobreakspace": {
              className: "nobreak"
            }
          };
          tn({
            type: "spacing",
            htmlBuilder: function(s, u) {
              if (_s.hasOwnProperty(s.text)) {
                var l = _s[s.text].className || "";
                if (s.mode === "text") {
                  var h = z.makeOrd(s, u, "textord");
                  return h.classes.push(l), h;
                } else
                  return z.makeSpan(["mspace", l], [z.mathsym(s.text, s.mode, u)], u);
              } else {
                if (vs.hasOwnProperty(s.text))
                  return z.makeSpan(["mspace", vs[s.text]], [], u);
                throw new a('Unknown type of space "' + s.text + '"');
              }
            },
            mathmlBuilder: function(s, u) {
              var l;
              if (_s.hasOwnProperty(s.text))
                l = new ee.MathNode("mtext", [new ee.TextNode(" ")]);
              else {
                if (vs.hasOwnProperty(s.text))
                  return new ee.MathNode("mspace");
                throw new a('Unknown type of space "' + s.text + '"');
              }
              return l;
            }
          });
          var Jl = function() {
            var s = new ee.MathNode("mtd", []);
            return s.setAttribute("width", "50%"), s;
          };
          tn({
            type: "tag",
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mtable", [new ee.MathNode("mtr", [Jl(), new ee.MathNode("mtd", [Lr(s.body, u)]), Jl(), new ee.MathNode("mtd", [Lr(s.tag, u)])])]);
              return l.setAttribute("width", "100%"), l;
            }
          });
          var ec = {
            "\\text": void 0,
            "\\textrm": "textrm",
            "\\textsf": "textsf",
            "\\texttt": "texttt",
            "\\textnormal": "textrm"
          }, tc = {
            "\\textbf": "textbf",
            "\\textmd": "textmd"
          }, d4 = {
            "\\textit": "textit",
            "\\textup": "textup"
          }, rc = function(s, u) {
            var l = s.font;
            return l ? ec[l] ? u.withTextFontFamily(ec[l]) : tc[l] ? u.withTextFontWeight(tc[l]) : u.withTextFontShape(d4[l]) : u;
          };
          le({
            type: "text",
            names: [
              // Font families
              "\\text",
              "\\textrm",
              "\\textsf",
              "\\texttt",
              "\\textnormal",
              // Font weights
              "\\textbf",
              "\\textmd",
              // Font Shapes
              "\\textit",
              "\\textup"
            ],
            props: {
              numArgs: 1,
              argTypes: ["text"],
              allowedInArgument: !0,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser, h = s.funcName, p = u[0];
              return {
                type: "text",
                mode: l.mode,
                body: ut(p),
                font: h
              };
            },
            htmlBuilder: function(s, u) {
              var l = rc(s, u), h = ct(s.body, l, !0);
              return z.makeSpan(["mord", "text"], h, l);
            },
            mathmlBuilder: function(s, u) {
              var l = rc(s, u);
              return Lr(s.body, l);
            }
          }), le({
            type: "underline",
            names: ["\\underline"],
            props: {
              numArgs: 1,
              allowedInText: !0
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "underline",
                mode: l.mode,
                body: u[0]
              };
            },
            htmlBuilder: function(s, u) {
              var l = Be(s.body, u), h = z.makeLineSpan("underline-line", u), p = u.fontMetrics().defaultRuleThickness, v = z.makeVList({
                positionType: "top",
                positionData: l.height,
                children: [{
                  type: "kern",
                  size: p
                }, {
                  type: "elem",
                  elem: h
                }, {
                  type: "kern",
                  size: 3 * p
                }, {
                  type: "elem",
                  elem: l
                }]
              }, u);
              return z.makeSpan(["mord", "underline"], [v], u);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.MathNode("mo", [new ee.TextNode("‾")]);
              l.setAttribute("stretchy", "true");
              var h = new ee.MathNode("munder", [Xe(s.body, u), l]);
              return h.setAttribute("accentunder", "true"), h;
            }
          }), le({
            type: "vcenter",
            names: ["\\vcenter"],
            props: {
              numArgs: 1,
              argTypes: ["original"],
              // In LaTeX, \vcenter can act only on a box.
              allowedInText: !1
            },
            handler: function(s, u) {
              var l = s.parser;
              return {
                type: "vcenter",
                mode: l.mode,
                body: u[0]
              };
            },
            htmlBuilder: function(s, u) {
              var l = Be(s.body, u), h = u.fontMetrics().axisHeight, p = 0.5 * (l.height - h - (l.depth + h));
              return z.makeVList({
                positionType: "shift",
                positionData: p,
                children: [{
                  type: "elem",
                  elem: l
                }]
              }, u);
            },
            mathmlBuilder: function(s, u) {
              return new ee.MathNode("mpadded", [Xe(s.body, u)], ["vcenter"]);
            }
          }), le({
            type: "verb",
            names: ["\\verb"],
            props: {
              numArgs: 0,
              allowedInText: !0
            },
            handler: function(s, u, l) {
              throw new a("\\verb ended by end of line instead of matching delimiter");
            },
            htmlBuilder: function(s, u) {
              for (var l = nc(s), h = [], p = u.havingStyle(u.style.text()), v = 0; v < l.length; v++) {
                var T = l[v];
                T === "~" && (T = "\\textasciitilde"), h.push(z.makeSymbol(T, "Typewriter-Regular", s.mode, p, ["mord", "texttt"]));
              }
              return z.makeSpan(["mord", "text"].concat(p.sizingClasses(u)), z.tryCombineChars(h), p);
            },
            mathmlBuilder: function(s, u) {
              var l = new ee.TextNode(nc(s)), h = new ee.MathNode("mtext", [l]);
              return h.setAttribute("mathvariant", "monospace"), h;
            }
          });
          var nc = function(s) {
            return s.body.replace(/ /g, s.star ? "␣" : " ");
          }, m4 = ul, Fr = m4, ic = `[ \r
	]`, p4 = "\\\\[a-zA-Z@]+", g4 = "\\\\[^\uD800-\uDFFF]", b4 = "(" + p4 + ")" + ic + "*", E4 = `\\\\(
|[ \r	]+
?)[ \r	]*`, Ts = "[̀-ͯ]", v4 = new RegExp(Ts + "+$"), _4 = "(" + ic + "+)|" + // whitespace
          (E4 + "|") + // \whitespace
          "([!-\\[\\]-‧‪-퟿豈-]" + // single codepoint
          (Ts + "*") + // ...plus accents
          "|[\uD800-\uDBFF][\uDC00-\uDFFF]" + // surrogate pair
          (Ts + "*") + // ...plus accents
          "|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5" + // \verb unstarred
          ("|" + b4) + // \macroName + spaces
          ("|" + g4 + ")"), ac = /* @__PURE__ */ function() {
            function E(u, l) {
              this.input = void 0, this.settings = void 0, this.tokenRegex = void 0, this.catcodes = void 0, this.input = u, this.settings = l, this.tokenRegex = new RegExp(_4, "g"), this.catcodes = {
                "%": 14,
                // comment character
                "~": 13
                // active character
              };
            }
            var s = E.prototype;
            return s.setCatcode = function(l, h) {
              this.catcodes[l] = h;
            }, s.lex = function() {
              var l = this.input, h = this.tokenRegex.lastIndex;
              if (h === l.length)
                return new Br("EOF", new er(this, h, h));
              var p = this.tokenRegex.exec(l);
              if (p === null || p.index !== h)
                throw new a("Unexpected character: '" + l[h] + "'", new Br(l[h], new er(this, h, h + 1)));
              var v = p[6] || p[3] || (p[2] ? "\\ " : " ");
              if (this.catcodes[v] === 14) {
                var T = l.indexOf(`
`, this.tokenRegex.lastIndex);
                return T === -1 ? (this.tokenRegex.lastIndex = l.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 = T + 1, this.lex();
              }
              return new Br(v, new er(this, h, this.tokenRegex.lastIndex));
            }, E;
          }(), T4 = /* @__PURE__ */ function() {
            function E(u, l) {
              u === void 0 && (u = {}), l === void 0 && (l = {}), this.current = void 0, this.builtins = void 0, this.undefStack = void 0, this.current = l, this.builtins = u, this.undefStack = [];
            }
            var s = E.prototype;
            return s.beginGroup = function() {
              this.undefStack.push({});
            }, s.endGroup = function() {
              if (this.undefStack.length === 0)
                throw new a("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");
              var l = this.undefStack.pop();
              for (var h in l)
                l.hasOwnProperty(h) && (l[h] == null ? delete this.current[h] : this.current[h] = l[h]);
            }, s.endGroups = function() {
              for (; this.undefStack.length > 0; )
                this.endGroup();
            }, s.has = function(l) {
              return this.current.hasOwnProperty(l) || this.builtins.hasOwnProperty(l);
            }, s.get = function(l) {
              return this.current.hasOwnProperty(l) ? this.current[l] : this.builtins[l];
            }, s.set = function(l, h, p) {
              if (p === void 0 && (p = !1), p) {
                for (var v = 0; v < this.undefStack.length; v++)
                  delete this.undefStack[v][l];
                this.undefStack.length > 0 && (this.undefStack[this.undefStack.length - 1][l] = h);
              } else {
                var T = this.undefStack[this.undefStack.length - 1];
                T && !T.hasOwnProperty(l) && (T[l] = this.current[l]);
              }
              h == null ? delete this.current[l] : this.current[l] = h;
            }, E;
          }(), A4 = Ol, x4 = A4;
          S("\\noexpand", function(E) {
            var s = E.popToken();
            return E.isExpandable(s.text) && (s.noexpand = !0, s.treatAsRelax = !0), {
              tokens: [s],
              numArgs: 0
            };
          }), S("\\expandafter", function(E) {
            var s = E.popToken();
            return E.expandOnce(!0), {
              tokens: [s],
              numArgs: 0
            };
          }), S("\\@firstoftwo", function(E) {
            var s = E.consumeArgs(2);
            return {
              tokens: s[0],
              numArgs: 0
            };
          }), S("\\@secondoftwo", function(E) {
            var s = E.consumeArgs(2);
            return {
              tokens: s[1],
              numArgs: 0
            };
          }), S("\\@ifnextchar", function(E) {
            var s = E.consumeArgs(3);
            E.consumeSpaces();
            var u = E.future();
            return s[0].length === 1 && s[0][0].text === u.text ? {
              tokens: s[1],
              numArgs: 0
            } : {
              tokens: s[2],
              numArgs: 0
            };
          }), S("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"), S("\\TextOrMath", function(E) {
            var s = E.consumeArgs(2);
            return E.mode === "text" ? {
              tokens: s[0],
              numArgs: 0
            } : {
              tokens: s[1],
              numArgs: 0
            };
          });
          var sc = {
            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
          };
          S("\\char", function(E) {
            var s = E.popToken(), u, l = "";
            if (s.text === "'")
              u = 8, s = E.popToken();
            else if (s.text === '"')
              u = 16, s = E.popToken();
            else if (s.text === "`")
              if (s = E.popToken(), s.text[0] === "\\")
                l = s.text.charCodeAt(1);
              else {
                if (s.text === "EOF")
                  throw new a("\\char` missing argument");
                l = s.text.charCodeAt(0);
              }
            else
              u = 10;
            if (u) {
              if (l = sc[s.text], l == null || l >= u)
                throw new a("Invalid base-" + u + " digit " + s.text);
              for (var h; (h = sc[E.future().text]) != null && h < u; )
                l *= u, l += h, E.popToken();
            }
            return "\\@char{" + l + "}";
          });
          var As = function(s, u, l) {
            var h = s.consumeArg().tokens;
            if (h.length !== 1)
              throw new a("\\newcommand's first argument must be a macro name");
            var p = h[0].text, v = s.isDefined(p);
            if (v && !u)
              throw new a("\\newcommand{" + p + "} attempting to redefine " + (p + "; use \\renewcommand"));
            if (!v && !l)
              throw new a("\\renewcommand{" + p + "} when command " + p + " does not yet exist; use \\newcommand");
            var T = 0;
            if (h = s.consumeArg().tokens, h.length === 1 && h[0].text === "[") {
              for (var y = "", w = s.expandNextToken(); w.text !== "]" && w.text !== "EOF"; )
                y += w.text, w = s.expandNextToken();
              if (!y.match(/^\s*[0-9]+\s*$/))
                throw new a("Invalid number of arguments: " + y);
              T = parseInt(y), h = s.consumeArg().tokens;
            }
            return s.macros.set(p, {
              tokens: h,
              numArgs: T
            }), "";
          };
          S("\\newcommand", function(E) {
            return As(E, !1, !0);
          }), S("\\renewcommand", function(E) {
            return As(E, !0, !1);
          }), S("\\providecommand", function(E) {
            return As(E, !0, !0);
          }), S("\\message", function(E) {
            var s = E.consumeArgs(1)[0];
            return console.log(s.reverse().map(function(u) {
              return u.text;
            }).join("")), "";
          }), S("\\errmessage", function(E) {
            var s = E.consumeArgs(1)[0];
            return console.error(s.reverse().map(function(u) {
              return u.text;
            }).join("")), "";
          }), S("\\show", function(E) {
            var s = E.popToken(), u = s.text;
            return console.log(s, E.macros.get(u), Fr[u], tt.math[u], tt.text[u]), "";
          }), S("\\bgroup", "{"), S("\\egroup", "}"), S("~", "\\nobreakspace"), S("\\lq", "`"), S("\\rq", "'"), S("\\aa", "\\r a"), S("\\AA", "\\r A"), S("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}"), S("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"), S("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"), S("ℬ", "\\mathscr{B}"), S("ℰ", "\\mathscr{E}"), S("ℱ", "\\mathscr{F}"), S("ℋ", "\\mathscr{H}"), S("ℐ", "\\mathscr{I}"), S("ℒ", "\\mathscr{L}"), S("ℳ", "\\mathscr{M}"), S("ℛ", "\\mathscr{R}"), S("ℭ", "\\mathfrak{C}"), S("ℌ", "\\mathfrak{H}"), S("ℨ", "\\mathfrak{Z}"), S("\\Bbbk", "\\Bbb{k}"), S("·", "\\cdotp"), S("\\llap", "\\mathllap{\\textrm{#1}}"), S("\\rlap", "\\mathrlap{\\textrm{#1}}"), S("\\clap", "\\mathclap{\\textrm{#1}}"), S("\\mathstrut", "\\vphantom{(}"), S("\\underbar", "\\underline{\\text{#1}}"), S("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'), S("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"), S("\\ne", "\\neq"), S("≠", "\\neq"), S("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"), S("∉", "\\notin"), S("≘", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"), S("≙", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"), S("≚", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"), S("≛", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"), S("≝", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"), S("≞", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"), S("≟", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"), S("⟂", "\\perp"), S("‼", "\\mathclose{!\\mkern-0.8mu!}"), S("∌", "\\notni"), S("⌜", "\\ulcorner"), S("⌝", "\\urcorner"), S("⌞", "\\llcorner"), S("⌟", "\\lrcorner"), S("©", "\\copyright"), S("®", "\\textregistered"), S("️", "\\textregistered"), S("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'), S("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'), S("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'), S("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'), S("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}"), S("⋮", "\\vdots"), S("\\varGamma", "\\mathit{\\Gamma}"), S("\\varDelta", "\\mathit{\\Delta}"), S("\\varTheta", "\\mathit{\\Theta}"), S("\\varLambda", "\\mathit{\\Lambda}"), S("\\varXi", "\\mathit{\\Xi}"), S("\\varPi", "\\mathit{\\Pi}"), S("\\varSigma", "\\mathit{\\Sigma}"), S("\\varUpsilon", "\\mathit{\\Upsilon}"), S("\\varPhi", "\\mathit{\\Phi}"), S("\\varPsi", "\\mathit{\\Psi}"), S("\\varOmega", "\\mathit{\\Omega}"), S("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"), S("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"), S("\\boxed", "\\fbox{$\\displaystyle{#1}$}"), S("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"), S("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"), S("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;");
          var uc = {
            ",": "\\dotsc",
            "\\not": "\\dotsb",
            // \keybin@ checks for the following:
            "+": "\\dotsb",
            "=": "\\dotsb",
            "<": "\\dotsb",
            ">": "\\dotsb",
            "-": "\\dotsb",
            "*": "\\dotsb",
            ":": "\\dotsb",
            // Symbols whose definition starts with \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",
            // Symbols whose definition starts with \mathbin:
            "\\mathbin": "\\dotsb",
            // Symbols whose definition starts with \mathrel:
            "\\mathrel": "\\dotsb",
            "\\relbar": "\\dotsb",
            "\\Relbar": "\\dotsb",
            "\\xrightarrow": "\\dotsb",
            "\\xleftarrow": "\\dotsb",
            // Symbols whose definition starts with \DOTSI:
            "\\DOTSI": "\\dotsi",
            "\\int": "\\dotsi",
            "\\oint": "\\dotsi",
            "\\iint": "\\dotsi",
            "\\iiint": "\\dotsi",
            "\\iiiint": "\\dotsi",
            "\\idotsint": "\\dotsi",
            // Symbols whose definition starts with \DOTSX:
            "\\DOTSX": "\\dotsx"
          };
          S("\\dots", function(E) {
            var s = "\\dotso", u = E.expandAfterFuture().text;
            return u in uc ? s = uc[u] : (u.slice(0, 4) === "\\not" || u in tt.math && B.contains(["bin", "rel"], tt.math[u].group)) && (s = "\\dotsb"), s;
          });
          var xs = {
            // \rightdelim@ checks for the following:
            ")": !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,
            // \extra@ also tests for the following:
            $: !0,
            // \extrap@ checks for the following:
            ";": !0,
            ".": !0,
            ",": !0
          };
          S("\\dotso", function(E) {
            var s = E.future().text;
            return s in xs ? "\\ldots\\," : "\\ldots";
          }), S("\\dotsc", function(E) {
            var s = E.future().text;
            return s in xs && s !== "," ? "\\ldots\\," : "\\ldots";
          }), S("\\cdots", function(E) {
            var s = E.future().text;
            return s in xs ? "\\@cdots\\," : "\\@cdots";
          }), S("\\dotsb", "\\cdots"), S("\\dotsm", "\\cdots"), S("\\dotsi", "\\!\\cdots"), S("\\dotsx", "\\ldots\\,"), S("\\DOTSI", "\\relax"), S("\\DOTSB", "\\relax"), S("\\DOTSX", "\\relax"), S("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"), S("\\,", "\\tmspace+{3mu}{.1667em}"), S("\\thinspace", "\\,"), S("\\>", "\\mskip{4mu}"), S("\\:", "\\tmspace+{4mu}{.2222em}"), S("\\medspace", "\\:"), S("\\;", "\\tmspace+{5mu}{.2777em}"), S("\\thickspace", "\\;"), S("\\!", "\\tmspace-{3mu}{.1667em}"), S("\\negthinspace", "\\!"), S("\\negmedspace", "\\tmspace-{4mu}{.2222em}"), S("\\negthickspace", "\\tmspace-{5mu}{.277em}"), S("\\enspace", "\\kern.5em "), S("\\enskip", "\\hskip.5em\\relax"), S("\\quad", "\\hskip1em\\relax"), S("\\qquad", "\\hskip2em\\relax"), S("\\tag", "\\@ifstar\\tag@literal\\tag@paren"), S("\\tag@paren", "\\tag@literal{({#1})}"), S("\\tag@literal", function(E) {
            if (E.macros.get("\\df@tag"))
              throw new a("Multiple \\tag");
            return "\\gdef\\df@tag{\\text{#1}}";
          }), S("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"), S("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"), S("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"), S("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"), S("\\newline", "\\\\\\relax"), S("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");
          var oc = ie(ur["Main-Regular"]["T".charCodeAt(0)][1] - 0.7 * ur["Main-Regular"]["A".charCodeAt(0)][1]);
          S("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + oc + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}"), S("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + oc + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}"), S("\\hspace", "\\@ifstar\\@hspacer\\@hspace"), S("\\@hspace", "\\hskip #1\\relax"), S("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"), S("\\ordinarycolon", ":"), S("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"), S("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'), S("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'), S("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'), S("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'), S("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'), S("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'), S("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'), S("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'), S("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'), S("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'), S("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'), S("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'), S("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'), S("∷", "\\dblcolon"), S("∹", "\\eqcolon"), S("≔", "\\coloneqq"), S("≕", "\\eqqcolon"), S("⩴", "\\Coloneqq"), S("\\ratio", "\\vcentcolon"), S("\\coloncolon", "\\dblcolon"), S("\\colonequals", "\\coloneqq"), S("\\coloncolonequals", "\\Coloneqq"), S("\\equalscolon", "\\eqqcolon"), S("\\equalscoloncolon", "\\Eqqcolon"), S("\\colonminus", "\\coloneq"), S("\\coloncolonminus", "\\Coloneq"), S("\\minuscolon", "\\eqcolon"), S("\\minuscoloncolon", "\\Eqcolon"), S("\\coloncolonapprox", "\\Colonapprox"), S("\\coloncolonsim", "\\Colonsim"), S("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"), S("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"), S("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"), S("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"), S("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"), S("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"), S("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"), S("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}"), S("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}"), S("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}"), S("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}"), S("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}"), S("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}"), S("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{≩}"), S("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{≨}"), S("\\ngeqq", "\\html@mathml{\\@ngeqq}{≱}"), S("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{≱}"), S("\\nleqq", "\\html@mathml{\\@nleqq}{≰}"), S("\\nleqslant", "\\html@mathml{\\@nleqslant}{≰}"), S("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}"), S("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}"), S("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{⊈}"), S("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{⊉}"), S("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}"), S("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}"), S("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}"), S("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}"), S("\\imath", "\\html@mathml{\\@imath}{ı}"), S("\\jmath", "\\html@mathml{\\@jmath}{ȷ}"), S("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"), S("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"), S("⟦", "\\llbracket"), S("⟧", "\\rrbracket"), S("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"), S("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"), S("⦃", "\\lBrace"), S("⦄", "\\rBrace"), S("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"), S("⦵", "\\minuso"), S("\\darr", "\\downarrow"), S("\\dArr", "\\Downarrow"), S("\\Darr", "\\Downarrow"), S("\\lang", "\\langle"), S("\\rang", "\\rangle"), S("\\uarr", "\\uparrow"), S("\\uArr", "\\Uparrow"), S("\\Uarr", "\\Uparrow"), S("\\N", "\\mathbb{N}"), S("\\R", "\\mathbb{R}"), S("\\Z", "\\mathbb{Z}"), S("\\alef", "\\aleph"), S("\\alefsym", "\\aleph"), S("\\Alpha", "\\mathrm{A}"), S("\\Beta", "\\mathrm{B}"), S("\\bull", "\\bullet"), S("\\Chi", "\\mathrm{X}"), S("\\clubs", "\\clubsuit"), S("\\cnums", "\\mathbb{C}"), S("\\Complex", "\\mathbb{C}"), S("\\Dagger", "\\ddagger"), S("\\diamonds", "\\diamondsuit"), S("\\empty", "\\emptyset"), S("\\Epsilon", "\\mathrm{E}"), S("\\Eta", "\\mathrm{H}"), S("\\exist", "\\exists"), S("\\harr", "\\leftrightarrow"), S("\\hArr", "\\Leftrightarrow"), S("\\Harr", "\\Leftrightarrow"), S("\\hearts", "\\heartsuit"), S("\\image", "\\Im"), S("\\infin", "\\infty"), S("\\Iota", "\\mathrm{I}"), S("\\isin", "\\in"), S("\\Kappa", "\\mathrm{K}"), S("\\larr", "\\leftarrow"), S("\\lArr", "\\Leftarrow"), S("\\Larr", "\\Leftarrow"), S("\\lrarr", "\\leftrightarrow"), S("\\lrArr", "\\Leftrightarrow"), S("\\Lrarr", "\\Leftrightarrow"), S("\\Mu", "\\mathrm{M}"), S("\\natnums", "\\mathbb{N}"), S("\\Nu", "\\mathrm{N}"), S("\\Omicron", "\\mathrm{O}"), S("\\plusmn", "\\pm"), S("\\rarr", "\\rightarrow"), S("\\rArr", "\\Rightarrow"), S("\\Rarr", "\\Rightarrow"), S("\\real", "\\Re"), S("\\reals", "\\mathbb{R}"), S("\\Reals", "\\mathbb{R}"), S("\\Rho", "\\mathrm{P}"), S("\\sdot", "\\cdot"), S("\\sect", "\\S"), S("\\spades", "\\spadesuit"), S("\\sub", "\\subset"), S("\\sube", "\\subseteq"), S("\\supe", "\\supseteq"), S("\\Tau", "\\mathrm{T}"), S("\\thetasym", "\\vartheta"), S("\\weierp", "\\wp"), S("\\Zeta", "\\mathrm{Z}"), S("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"), S("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"), S("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits"), S("\\bra", "\\mathinner{\\langle{#1}|}"), S("\\ket", "\\mathinner{|{#1}\\rangle}"), S("\\braket", "\\mathinner{\\langle{#1}\\rangle}"), S("\\Bra", "\\left\\langle#1\\right|"), S("\\Ket", "\\left|#1\\right\\rangle");
          var lc = function(s) {
            return function(u) {
              var l = u.consumeArg().tokens, h = u.consumeArg().tokens, p = u.consumeArg().tokens, v = u.consumeArg().tokens, T = u.macros.get("|"), y = u.macros.get("\\|");
              u.macros.beginGroup();
              var w = function(W) {
                return function(Q) {
                  s && (Q.macros.set("|", T), p.length && Q.macros.set("\\|", y));
                  var ne = W;
                  if (!W && p.length) {
                    var ue = Q.future();
                    ue.text === "|" && (Q.popToken(), ne = !0);
                  }
                  return {
                    tokens: ne ? p : h,
                    numArgs: 0
                  };
                };
              };
              u.macros.set("|", w(!1)), p.length && u.macros.set("\\|", w(!0));
              var L = u.consumeArg().tokens, U = u.expandTokens([].concat(v, L, l));
              return u.macros.endGroup(), {
                tokens: U.reverse(),
                numArgs: 0
              };
            };
          };
          S("\\bra@ket", lc(!1)), S("\\bra@set", lc(!0)), S("\\Braket", "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"), S("\\Set", "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"), S("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"), S("\\angln", "{\\angl n}"), S("\\blue", "\\textcolor{##6495ed}{#1}"), S("\\orange", "\\textcolor{##ffa500}{#1}"), S("\\pink", "\\textcolor{##ff00af}{#1}"), S("\\red", "\\textcolor{##df0030}{#1}"), S("\\green", "\\textcolor{##28ae7b}{#1}"), S("\\gray", "\\textcolor{gray}{#1}"), S("\\purple", "\\textcolor{##9d38bd}{#1}"), S("\\blueA", "\\textcolor{##ccfaff}{#1}"), S("\\blueB", "\\textcolor{##80f6ff}{#1}"), S("\\blueC", "\\textcolor{##63d9ea}{#1}"), S("\\blueD", "\\textcolor{##11accd}{#1}"), S("\\blueE", "\\textcolor{##0c7f99}{#1}"), S("\\tealA", "\\textcolor{##94fff5}{#1}"), S("\\tealB", "\\textcolor{##26edd5}{#1}"), S("\\tealC", "\\textcolor{##01d1c1}{#1}"), S("\\tealD", "\\textcolor{##01a995}{#1}"), S("\\tealE", "\\textcolor{##208170}{#1}"), S("\\greenA", "\\textcolor{##b6ffb0}{#1}"), S("\\greenB", "\\textcolor{##8af281}{#1}"), S("\\greenC", "\\textcolor{##74cf70}{#1}"), S("\\greenD", "\\textcolor{##1fab54}{#1}"), S("\\greenE", "\\textcolor{##0d923f}{#1}"), S("\\goldA", "\\textcolor{##ffd0a9}{#1}"), S("\\goldB", "\\textcolor{##ffbb71}{#1}"), S("\\goldC", "\\textcolor{##ff9c39}{#1}"), S("\\goldD", "\\textcolor{##e07d10}{#1}"), S("\\goldE", "\\textcolor{##a75a05}{#1}"), S("\\redA", "\\textcolor{##fca9a9}{#1}"), S("\\redB", "\\textcolor{##ff8482}{#1}"), S("\\redC", "\\textcolor{##f9685d}{#1}"), S("\\redD", "\\textcolor{##e84d39}{#1}"), S("\\redE", "\\textcolor{##bc2612}{#1}"), S("\\maroonA", "\\textcolor{##ffbde0}{#1}"), S("\\maroonB", "\\textcolor{##ff92c6}{#1}"), S("\\maroonC", "\\textcolor{##ed5fa6}{#1}"), S("\\maroonD", "\\textcolor{##ca337c}{#1}"), S("\\maroonE", "\\textcolor{##9e034e}{#1}"), S("\\purpleA", "\\textcolor{##ddd7ff}{#1}"), S("\\purpleB", "\\textcolor{##c6b9fc}{#1}"), S("\\purpleC", "\\textcolor{##aa87ff}{#1}"), S("\\purpleD", "\\textcolor{##7854ab}{#1}"), S("\\purpleE", "\\textcolor{##543b78}{#1}"), S("\\mintA", "\\textcolor{##f5f9e8}{#1}"), S("\\mintB", "\\textcolor{##edf2df}{#1}"), S("\\mintC", "\\textcolor{##e0e5cc}{#1}"), S("\\grayA", "\\textcolor{##f6f7f7}{#1}"), S("\\grayB", "\\textcolor{##f0f1f2}{#1}"), S("\\grayC", "\\textcolor{##e3e5e6}{#1}"), S("\\grayD", "\\textcolor{##d6d8da}{#1}"), S("\\grayE", "\\textcolor{##babec2}{#1}"), S("\\grayF", "\\textcolor{##888d93}{#1}"), S("\\grayG", "\\textcolor{##626569}{#1}"), S("\\grayH", "\\textcolor{##3b3e40}{#1}"), S("\\grayI", "\\textcolor{##21242c}{#1}"), S("\\kaBlue", "\\textcolor{##314453}{#1}"), S("\\kaGreen", "\\textcolor{##71B307}{#1}");
          var cc = {
            "^": !0,
            // Parser.js
            _: !0,
            // Parser.js
            "\\limits": !0,
            // Parser.js
            "\\nolimits": !0
            // Parser.js
          }, y4 = /* @__PURE__ */ function() {
            function E(u, l, h) {
              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 = l, this.expansionCount = 0, this.feed(u), this.macros = new T4(x4, l.macros), this.mode = h, this.stack = [];
            }
            var s = E.prototype;
            return s.feed = function(l) {
              this.lexer = new ac(l, this.settings);
            }, s.switchMode = function(l) {
              this.mode = l;
            }, s.beginGroup = function() {
              this.macros.beginGroup();
            }, s.endGroup = function() {
              this.macros.endGroup();
            }, s.endGroups = function() {
              this.macros.endGroups();
            }, s.future = function() {
              return this.stack.length === 0 && this.pushToken(this.lexer.lex()), this.stack[this.stack.length - 1];
            }, s.popToken = function() {
              return this.future(), this.stack.pop();
            }, s.pushToken = function(l) {
              this.stack.push(l);
            }, s.pushTokens = function(l) {
              var h;
              (h = this.stack).push.apply(h, l);
            }, s.scanArgument = function(l) {
              var h, p, v;
              if (l) {
                if (this.consumeSpaces(), this.future().text !== "[")
                  return null;
                h = this.popToken();
                var T = this.consumeArg(["]"]);
                v = T.tokens, p = T.end;
              } else {
                var y = this.consumeArg();
                v = y.tokens, h = y.start, p = y.end;
              }
              return this.pushToken(new Br("EOF", p.loc)), this.pushTokens(v), h.range(p, "");
            }, s.consumeSpaces = function() {
              for (; ; ) {
                var l = this.future();
                if (l.text === " ")
                  this.stack.pop();
                else
                  break;
              }
            }, s.consumeArg = function(l) {
              var h = [], p = l && l.length > 0;
              p || this.consumeSpaces();
              var v = this.future(), T, y = 0, w = 0;
              do {
                if (T = this.popToken(), h.push(T), T.text === "{")
                  ++y;
                else if (T.text === "}") {
                  if (--y, y === -1)
                    throw new a("Extra }", T);
                } else if (T.text === "EOF")
                  throw new a("Unexpected end of input in a macro argument, expected '" + (l && p ? l[w] : "}") + "'", T);
                if (l && p)
                  if ((y === 0 || y === 1 && l[w] === "{") && T.text === l[w]) {
                    if (++w, w === l.length) {
                      h.splice(-w, w);
                      break;
                    }
                  } else
                    w = 0;
              } while (y !== 0 || p);
              return v.text === "{" && h[h.length - 1].text === "}" && (h.pop(), h.shift()), h.reverse(), {
                tokens: h,
                start: v,
                end: T
              };
            }, s.consumeArgs = function(l, h) {
              if (h) {
                if (h.length !== l + 1)
                  throw new a("The length of delimiters doesn't match the number of args!");
                for (var p = h[0], v = 0; v < p.length; v++) {
                  var T = this.popToken();
                  if (p[v] !== T.text)
                    throw new a("Use of the macro doesn't match its definition", T);
                }
              }
              for (var y = [], w = 0; w < l; w++)
                y.push(this.consumeArg(h && h[w + 1]).tokens);
              return y;
            }, s.expandOnce = function(l) {
              var h = this.popToken(), p = h.text, v = h.noexpand ? null : this._getExpansion(p);
              if (v == null || l && v.unexpandable) {
                if (l && v == null && p[0] === "\\" && !this.isDefined(p))
                  throw new a("Undefined control sequence: " + p);
                return this.pushToken(h), !1;
              }
              if (this.expansionCount++, this.expansionCount > this.settings.maxExpand)
                throw new a("Too many expansions: infinite loop or need to increase maxExpand setting");
              var T = v.tokens, y = this.consumeArgs(v.numArgs, v.delimiters);
              if (v.numArgs) {
                T = T.slice();
                for (var w = T.length - 1; w >= 0; --w) {
                  var L = T[w];
                  if (L.text === "#") {
                    if (w === 0)
                      throw new a("Incomplete placeholder at end of macro body", L);
                    if (L = T[--w], L.text === "#")
                      T.splice(w + 1, 1);
                    else if (/^[1-9]$/.test(L.text)) {
                      var U;
                      (U = T).splice.apply(U, [w, 2].concat(y[+L.text - 1]));
                    } else
                      throw new a("Not a valid argument number", L);
                  }
                }
              }
              return this.pushTokens(T), T.length;
            }, s.expandAfterFuture = function() {
              return this.expandOnce(), this.future();
            }, s.expandNextToken = function() {
              for (; ; )
                if (this.expandOnce() === !1) {
                  var l = this.stack.pop();
                  return l.treatAsRelax && (l.text = "\\relax"), l;
                }
              throw new Error();
            }, s.expandMacro = function(l) {
              return this.macros.has(l) ? this.expandTokens([new Br(l)]) : void 0;
            }, s.expandTokens = function(l) {
              var h = [], p = this.stack.length;
              for (this.pushTokens(l); this.stack.length > p; )
                if (this.expandOnce(!0) === !1) {
                  var v = this.stack.pop();
                  v.treatAsRelax && (v.noexpand = !1, v.treatAsRelax = !1), h.push(v);
                }
              return h;
            }, s.expandMacroAsText = function(l) {
              var h = this.expandMacro(l);
              return h && h.map(function(p) {
                return p.text;
              }).join("");
            }, s._getExpansion = function(l) {
              var h = this.macros.get(l);
              if (h == null)
                return h;
              if (l.length === 1) {
                var p = this.lexer.catcodes[l];
                if (p != null && p !== 13)
                  return;
              }
              var v = typeof h == "function" ? h(this) : h;
              if (typeof v == "string") {
                var T = 0;
                if (v.indexOf("#") !== -1)
                  for (var y = v.replace(/##/g, ""); y.indexOf("#" + (T + 1)) !== -1; )
                    ++T;
                for (var w = new ac(v, this.settings), L = [], U = w.lex(); U.text !== "EOF"; )
                  L.push(U), U = w.lex();
                L.reverse();
                var j = {
                  tokens: L,
                  numArgs: T
                };
                return j;
              }
              return v;
            }, s.isDefined = function(l) {
              return this.macros.has(l) || Fr.hasOwnProperty(l) || tt.math.hasOwnProperty(l) || tt.text.hasOwnProperty(l) || cc.hasOwnProperty(l);
            }, s.isExpandable = function(l) {
              var h = this.macros.get(l);
              return h != null ? typeof h == "string" || typeof h == "function" || !h.unexpandable : Fr.hasOwnProperty(l) && !Fr[l].primitive;
            }, E;
          }(), hc = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/, _i = Object.freeze({
            "₊": "+",
            "₋": "-",
            "₌": "=",
            "₍": "(",
            "₎": ")",
            "₀": "0",
            "₁": "1",
            "₂": "2",
            "₃": "3",
            "₄": "4",
            "₅": "5",
            "₆": "6",
            "₇": "7",
            "₈": "8",
            "₉": "9",
            "ₐ": "a",
            "ₑ": "e",
            "ₕ": "h",
            "ᵢ": "i",
            "ⱼ": "j",
            "ₖ": "k",
            "ₗ": "l",
            "ₘ": "m",
            "ₙ": "n",
            "ₒ": "o",
            "ₚ": "p",
            "ᵣ": "r",
            "ₛ": "s",
            "ₜ": "t",
            "ᵤ": "u",
            "ᵥ": "v",
            "ₓ": "x",
            "ᵦ": "β",
            "ᵧ": "γ",
            "ᵨ": "ρ",
            "ᵩ": "ϕ",
            "ᵪ": "χ",
            "⁺": "+",
            "⁻": "-",
            "⁼": "=",
            "⁽": "(",
            "⁾": ")",
            "⁰": "0",
            "¹": "1",
            "²": "2",
            "³": "3",
            "⁴": "4",
            "⁵": "5",
            "⁶": "6",
            "⁷": "7",
            "⁸": "8",
            "⁹": "9",
            "ᴬ": "A",
            "ᴮ": "B",
            "ᴰ": "D",
            "ᴱ": "E",
            "ᴳ": "G",
            "ᴴ": "H",
            "ᴵ": "I",
            "ᴶ": "J",
            "ᴷ": "K",
            "ᴸ": "L",
            "ᴹ": "M",
            "ᴺ": "N",
            "ᴼ": "O",
            "ᴾ": "P",
            "ᴿ": "R",
            "ᵀ": "T",
            "ᵁ": "U",
            "ⱽ": "V",
            "ᵂ": "W",
            "ᵃ": "a",
            "ᵇ": "b",
            "ᶜ": "c",
            "ᵈ": "d",
            "ᵉ": "e",
            "ᶠ": "f",
            "ᵍ": "g",
            ʰ: "h",
            "ⁱ": "i",
            ʲ: "j",
            "ᵏ": "k",
            ˡ: "l",
            "ᵐ": "m",
            ⁿ: "n",
            "ᵒ": "o",
            "ᵖ": "p",
            ʳ: "r",
            ˢ: "s",
            "ᵗ": "t",
            "ᵘ": "u",
            "ᵛ": "v",
            ʷ: "w",
            ˣ: "x",
            ʸ: "y",
            "ᶻ": "z",
            "ᵝ": "β",
            "ᵞ": "γ",
            "ᵟ": "δ",
            "ᵠ": "ϕ",
            "ᵡ": "χ",
            "ᶿ": "θ"
          }), ys = {
            "́": {
              text: "\\'",
              math: "\\acute"
            },
            "̀": {
              text: "\\`",
              math: "\\grave"
            },
            "̈": {
              text: '\\"',
              math: "\\ddot"
            },
            "̃": {
              text: "\\~",
              math: "\\tilde"
            },
            "̄": {
              text: "\\=",
              math: "\\bar"
            },
            "̆": {
              text: "\\u",
              math: "\\breve"
            },
            "̌": {
              text: "\\v",
              math: "\\check"
            },
            "̂": {
              text: "\\^",
              math: "\\hat"
            },
            "̇": {
              text: "\\.",
              math: "\\dot"
            },
            "̊": {
              text: "\\r",
              math: "\\mathring"
            },
            "̋": {
              text: "\\H"
            },
            "̧": {
              text: "\\c"
            }
          }, fc = {
            á: "á",
            à: "à",
            ä: "ä",
            ǟ: "ǟ",
            ã: "ã",
            ā: "ā",
            ă: "ă",
            ắ: "ắ",
            ằ: "ằ",
            ẵ: "ẵ",
            ǎ: "ǎ",
            â: "â",
            ấ: "ấ",
            ầ: "ầ",
            ẫ: "ẫ",
            ȧ: "ȧ",
            ǡ: "ǡ",
            å: "å",
            ǻ: "ǻ",
            ḃ: "ḃ",
            ć: "ć",
            ḉ: "ḉ",
            č: "č",
            ĉ: "ĉ",
            ċ: "ċ",
            ç: "ç",
            ď: "ď",
            ḋ: "ḋ",
            ḑ: "ḑ",
            é: "é",
            è: "è",
            ë: "ë",
            ẽ: "ẽ",
            ē: "ē",
            ḗ: "ḗ",
            ḕ: "ḕ",
            ĕ: "ĕ",
            ḝ: "ḝ",
            ě: "ě",
            ê: "ê",
            ế: "ế",
            ề: "ề",
            ễ: "ễ",
            ė: "ė",
            ȩ: "ȩ",
            ḟ: "ḟ",
            ǵ: "ǵ",
            ḡ: "ḡ",
            ğ: "ğ",
            ǧ: "ǧ",
            ĝ: "ĝ",
            ġ: "ġ",
            ģ: "ģ",
            ḧ: "ḧ",
            ȟ: "ȟ",
            ĥ: "ĥ",
            ḣ: "ḣ",
            ḩ: "ḩ",
            í: "í",
            ì: "ì",
            ï: "ï",
            ḯ: "ḯ",
            ĩ: "ĩ",
            ī: "ī",
            ĭ: "ĭ",
            ǐ: "ǐ",
            î: "î",
            ǰ: "ǰ",
            ĵ: "ĵ",
            ḱ: "ḱ",
            ǩ: "ǩ",
            ķ: "ķ",
            ĺ: "ĺ",
            ľ: "ľ",
            ļ: "ļ",
            ḿ: "ḿ",
            ṁ: "ṁ",
            ń: "ń",
            ǹ: "ǹ",
            ñ: "ñ",
            ň: "ň",
            ṅ: "ṅ",
            ņ: "ņ",
            ó: "ó",
            ò: "ò",
            ö: "ö",
            ȫ: "ȫ",
            õ: "õ",
            ṍ: "ṍ",
            ṏ: "ṏ",
            ȭ: "ȭ",
            ō: "ō",
            ṓ: "ṓ",
            ṑ: "ṑ",
            ŏ: "ŏ",
            ǒ: "ǒ",
            ô: "ô",
            ố: "ố",
            ồ: "ồ",
            ỗ: "ỗ",
            ȯ: "ȯ",
            ȱ: "ȱ",
            ő: "ő",
            ṕ: "ṕ",
            ṗ: "ṗ",
            ŕ: "ŕ",
            ř: "ř",
            ṙ: "ṙ",
            ŗ: "ŗ",
            ś: "ś",
            ṥ: "ṥ",
            š: "š",
            ṧ: "ṧ",
            ŝ: "ŝ",
            ṡ: "ṡ",
            ş: "ş",
            ẗ: "ẗ",
            ť: "ť",
            ṫ: "ṫ",
            ţ: "ţ",
            ú: "ú",
            ù: "ù",
            ü: "ü",
            ǘ: "ǘ",
            ǜ: "ǜ",
            ǖ: "ǖ",
            ǚ: "ǚ",
            ũ: "ũ",
            ṹ: "ṹ",
            ū: "ū",
            ṻ: "ṻ",
            ŭ: "ŭ",
            ǔ: "ǔ",
            û: "û",
            ů: "ů",
            ű: "ű",
            ṽ: "ṽ",
            ẃ: "ẃ",
            ẁ: "ẁ",
            ẅ: "ẅ",
            ŵ: "ŵ",
            ẇ: "ẇ",
            ẘ: "ẘ",
            ẍ: "ẍ",
            ẋ: "ẋ",
            ý: "ý",
            ỳ: "ỳ",
            ÿ: "ÿ",
            ỹ: "ỹ",
            ȳ: "ȳ",
            ŷ: "ŷ",
            ẏ: "ẏ",
            ẙ: "ẙ",
            ź: "ź",
            ž: "ž",
            ẑ: "ẑ",
            ż: "ż",
            Á: "Á",
            À: "À",
            Ä: "Ä",
            Ǟ: "Ǟ",
            Ã: "Ã",
            Ā: "Ā",
            Ă: "Ă",
            Ắ: "Ắ",
            Ằ: "Ằ",
            Ẵ: "Ẵ",
            Ǎ: "Ǎ",
            Â: "Â",
            Ấ: "Ấ",
            Ầ: "Ầ",
            Ẫ: "Ẫ",
            Ȧ: "Ȧ",
            Ǡ: "Ǡ",
            Å: "Å",
            Ǻ: "Ǻ",
            Ḃ: "Ḃ",
            Ć: "Ć",
            Ḉ: "Ḉ",
            Č: "Č",
            Ĉ: "Ĉ",
            Ċ: "Ċ",
            Ç: "Ç",
            Ď: "Ď",
            Ḋ: "Ḋ",
            Ḑ: "Ḑ",
            É: "É",
            È: "È",
            Ë: "Ë",
            Ẽ: "Ẽ",
            Ē: "Ē",
            Ḗ: "Ḗ",
            Ḕ: "Ḕ",
            Ĕ: "Ĕ",
            Ḝ: "Ḝ",
            Ě: "Ě",
            Ê: "Ê",
            Ế: "Ế",
            Ề: "Ề",
            Ễ: "Ễ",
            Ė: "Ė",
            Ȩ: "Ȩ",
            Ḟ: "Ḟ",
            Ǵ: "Ǵ",
            Ḡ: "Ḡ",
            Ğ: "Ğ",
            Ǧ: "Ǧ",
            Ĝ: "Ĝ",
            Ġ: "Ġ",
            Ģ: "Ģ",
            Ḧ: "Ḧ",
            Ȟ: "Ȟ",
            Ĥ: "Ĥ",
            Ḣ: "Ḣ",
            Ḩ: "Ḩ",
            Í: "Í",
            Ì: "Ì",
            Ï: "Ï",
            Ḯ: "Ḯ",
            Ĩ: "Ĩ",
            Ī: "Ī",
            Ĭ: "Ĭ",
            Ǐ: "Ǐ",
            Î: "Î",
            İ: "İ",
            Ĵ: "Ĵ",
            Ḱ: "Ḱ",
            Ǩ: "Ǩ",
            Ķ: "Ķ",
            Ĺ: "Ĺ",
            Ľ: "Ľ",
            Ļ: "Ļ",
            Ḿ: "Ḿ",
            Ṁ: "Ṁ",
            Ń: "Ń",
            Ǹ: "Ǹ",
            Ñ: "Ñ",
            Ň: "Ň",
            Ṅ: "Ṅ",
            Ņ: "Ņ",
            Ó: "Ó",
            Ò: "Ò",
            Ö: "Ö",
            Ȫ: "Ȫ",
            Õ: "Õ",
            Ṍ: "Ṍ",
            Ṏ: "Ṏ",
            Ȭ: "Ȭ",
            Ō: "Ō",
            Ṓ: "Ṓ",
            Ṑ: "Ṑ",
            Ŏ: "Ŏ",
            Ǒ: "Ǒ",
            Ô: "Ô",
            Ố: "Ố",
            Ồ: "Ồ",
            Ỗ: "Ỗ",
            Ȯ: "Ȯ",
            Ȱ: "Ȱ",
            Ő: "Ő",
            Ṕ: "Ṕ",
            Ṗ: "Ṗ",
            Ŕ: "Ŕ",
            Ř: "Ř",
            Ṙ: "Ṙ",
            Ŗ: "Ŗ",
            Ś: "Ś",
            Ṥ: "Ṥ",
            Š: "Š",
            Ṧ: "Ṧ",
            Ŝ: "Ŝ",
            Ṡ: "Ṡ",
            Ş: "Ş",
            Ť: "Ť",
            Ṫ: "Ṫ",
            Ţ: "Ţ",
            Ú: "Ú",
            Ù: "Ù",
            Ü: "Ü",
            Ǘ: "Ǘ",
            Ǜ: "Ǜ",
            Ǖ: "Ǖ",
            Ǚ: "Ǚ",
            Ũ: "Ũ",
            Ṹ: "Ṹ",
            Ū: "Ū",
            Ṻ: "Ṻ",
            Ŭ: "Ŭ",
            Ǔ: "Ǔ",
            Û: "Û",
            Ů: "Ů",
            Ű: "Ű",
            Ṽ: "Ṽ",
            Ẃ: "Ẃ",
            Ẁ: "Ẁ",
            Ẅ: "Ẅ",
            Ŵ: "Ŵ",
            Ẇ: "Ẇ",
            Ẍ: "Ẍ",
            Ẋ: "Ẋ",
            Ý: "Ý",
            Ỳ: "Ỳ",
            Ÿ: "Ÿ",
            Ỹ: "Ỹ",
            Ȳ: "Ȳ",
            Ŷ: "Ŷ",
            Ẏ: "Ẏ",
            Ź: "Ź",
            Ž: "Ž",
            Ẑ: "Ẑ",
            Ż: "Ż",
            ά: "ά",
            ὰ: "ὰ",
            ᾱ: "ᾱ",
            ᾰ: "ᾰ",
            έ: "έ",
            ὲ: "ὲ",
            ή: "ή",
            ὴ: "ὴ",
            ί: "ί",
            ὶ: "ὶ",
            ϊ: "ϊ",
            ΐ: "ΐ",
            ῒ: "ῒ",
            ῑ: "ῑ",
            ῐ: "ῐ",
            ό: "ό",
            ὸ: "ὸ",
            ύ: "ύ",
            ὺ: "ὺ",
            ϋ: "ϋ",
            ΰ: "ΰ",
            ῢ: "ῢ",
            ῡ: "ῡ",
            ῠ: "ῠ",
            ώ: "ώ",
            ὼ: "ὼ",
            Ύ: "Ύ",
            Ὺ: "Ὺ",
            Ϋ: "Ϋ",
            Ῡ: "Ῡ",
            Ῠ: "Ῠ",
            Ώ: "Ώ",
            Ὼ: "Ὼ"
          }, dc = /* @__PURE__ */ function() {
            function E(u, l) {
              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 y4(u, l, this.mode), this.settings = l, this.leftrightDepth = 0;
            }
            var s = E.prototype;
            return s.expect = function(l, h) {
              if (h === void 0 && (h = !0), this.fetch().text !== l)
                throw new a("Expected '" + l + "', got '" + this.fetch().text + "'", this.fetch());
              h && this.consume();
            }, s.consume = function() {
              this.nextToken = null;
            }, s.fetch = function() {
              return this.nextToken == null && (this.nextToken = this.gullet.expandNextToken()), this.nextToken;
            }, s.switchMode = function(l) {
              this.mode = l, this.gullet.switchMode(l);
            }, s.parse = function() {
              this.settings.globalGroup || this.gullet.beginGroup(), this.settings.colorIsTextColor && this.gullet.macros.set("\\color", "\\textcolor");
              try {
                var l = this.parseExpression(!1);
                return this.expect("EOF"), this.settings.globalGroup || this.gullet.endGroup(), l;
              } finally {
                this.gullet.endGroups();
              }
            }, s.subparse = function(l) {
              var h = this.nextToken;
              this.consume(), this.gullet.pushToken(new Br("}")), this.gullet.pushTokens(l);
              var p = this.parseExpression(!1);
              return this.expect("}"), this.nextToken = h, p;
            }, s.parseExpression = function(l, h) {
              for (var p = []; ; ) {
                this.mode === "math" && this.consumeSpaces();
                var v = this.fetch();
                if (E.endOfExpression.indexOf(v.text) !== -1 || h && v.text === h || l && Fr[v.text] && Fr[v.text].infix)
                  break;
                var T = this.parseAtom(h);
                if (T) {
                  if (T.type === "internal")
                    continue;
                } else
                  break;
                p.push(T);
              }
              return this.mode === "text" && this.formLigatures(p), this.handleInfixNodes(p);
            }, s.handleInfixNodes = function(l) {
              for (var h = -1, p, v = 0; v < l.length; v++)
                if (l[v].type === "infix") {
                  if (h !== -1)
                    throw new a("only one infix operator per group", l[v].token);
                  h = v, p = l[v].replaceWith;
                }
              if (h !== -1 && p) {
                var T, y, w = l.slice(0, h), L = l.slice(h + 1);
                w.length === 1 && w[0].type === "ordgroup" ? T = w[0] : T = {
                  type: "ordgroup",
                  mode: this.mode,
                  body: w
                }, L.length === 1 && L[0].type === "ordgroup" ? y = L[0] : y = {
                  type: "ordgroup",
                  mode: this.mode,
                  body: L
                };
                var U;
                return p === "\\\\abovefrac" ? U = this.callFunction(p, [T, l[h], y], []) : U = this.callFunction(p, [T, y], []), [U];
              } else
                return l;
            }, s.handleSupSubscript = function(l) {
              var h = this.fetch(), p = h.text;
              this.consume(), this.consumeSpaces();
              var v = this.parseGroup(l);
              if (!v)
                throw new a("Expected group after '" + p + "'", h);
              return v;
            }, s.formatUnsupportedCmd = function(l) {
              for (var h = [], p = 0; p < l.length; p++)
                h.push({
                  type: "textord",
                  mode: "text",
                  text: l[p]
                });
              var v = {
                type: "text",
                mode: this.mode,
                body: h
              }, T = {
                type: "color",
                mode: this.mode,
                color: this.settings.errorColor,
                body: [v]
              };
              return T;
            }, s.parseAtom = function(l) {
              var h = this.parseGroup("atom", l);
              if (this.mode === "text")
                return h;
              for (var p, v; ; ) {
                this.consumeSpaces();
                var T = this.fetch();
                if (T.text === "\\limits" || T.text === "\\nolimits") {
                  if (h && h.type === "op") {
                    var y = T.text === "\\limits";
                    h.limits = y, h.alwaysHandleSupSub = !0;
                  } else if (h && h.type === "operatorname")
                    h.alwaysHandleSupSub && (h.limits = T.text === "\\limits");
                  else
                    throw new a("Limit controls must follow a math operator", T);
                  this.consume();
                } else if (T.text === "^") {
                  if (p)
                    throw new a("Double superscript", T);
                  p = this.handleSupSubscript("superscript");
                } else if (T.text === "_") {
                  if (v)
                    throw new a("Double subscript", T);
                  v = this.handleSupSubscript("subscript");
                } else if (T.text === "'") {
                  if (p)
                    throw new a("Double superscript", T);
                  var w = {
                    type: "textord",
                    mode: this.mode,
                    text: "\\prime"
                  }, L = [w];
                  for (this.consume(); this.fetch().text === "'"; )
                    L.push(w), this.consume();
                  this.fetch().text === "^" && L.push(this.handleSupSubscript("superscript")), p = {
                    type: "ordgroup",
                    mode: this.mode,
                    body: L
                  };
                } else if (_i[T.text]) {
                  var U = _i[T.text], j = hc.test(T.text);
                  for (this.consume(); ; ) {
                    var W = this.fetch().text;
                    if (!_i[W] || hc.test(W) !== j)
                      break;
                    this.consume(), U += _i[W];
                  }
                  var Q = new E(U, this.settings).parse();
                  j ? v = {
                    type: "ordgroup",
                    mode: "math",
                    body: Q
                  } : p = {
                    type: "ordgroup",
                    mode: "math",
                    body: Q
                  };
                } else
                  break;
              }
              return p || v ? {
                type: "supsub",
                mode: this.mode,
                base: h,
                sup: p,
                sub: v
              } : h;
            }, s.parseFunction = function(l, h) {
              var p = this.fetch(), v = p.text, T = Fr[v];
              if (!T)
                return null;
              if (this.consume(), h && h !== "atom" && !T.allowedInArgument)
                throw new a("Got function '" + v + "' with no arguments" + (h ? " as " + h : ""), p);
              if (this.mode === "text" && !T.allowedInText)
                throw new a("Can't use function '" + v + "' in text mode", p);
              if (this.mode === "math" && T.allowedInMath === !1)
                throw new a("Can't use function '" + v + "' in math mode", p);
              var y = this.parseArguments(v, T), w = y.args, L = y.optArgs;
              return this.callFunction(v, w, L, p, l);
            }, s.callFunction = function(l, h, p, v, T) {
              var y = {
                funcName: l,
                parser: this,
                token: v,
                breakOnTokenText: T
              }, w = Fr[l];
              if (w && w.handler)
                return w.handler(y, h, p);
              throw new a("No function handler for " + l);
            }, s.parseArguments = function(l, h) {
              var p = h.numArgs + h.numOptionalArgs;
              if (p === 0)
                return {
                  args: [],
                  optArgs: []
                };
              for (var v = [], T = [], y = 0; y < p; y++) {
                var w = h.argTypes && h.argTypes[y], L = y < h.numOptionalArgs;
                (h.primitive && w == null || // \sqrt expands into primitive if optional argument doesn't exist
                h.type === "sqrt" && y === 1 && T[0] == null) && (w = "primitive");
                var U = this.parseGroupOfType("argument to '" + l + "'", w, L);
                if (L)
                  T.push(U);
                else if (U != null)
                  v.push(U);
                else
                  throw new a("Null argument, please report this as a bug");
              }
              return {
                args: v,
                optArgs: T
              };
            }, s.parseGroupOfType = function(l, h, p) {
              switch (h) {
                case "color":
                  return this.parseColorGroup(p);
                case "size":
                  return this.parseSizeGroup(p);
                case "url":
                  return this.parseUrlGroup(p);
                case "math":
                case "text":
                  return this.parseArgumentGroup(p, h);
                case "hbox": {
                  var v = this.parseArgumentGroup(p, "text");
                  return v != null ? {
                    type: "styling",
                    mode: v.mode,
                    body: [v],
                    style: "text"
                    // simulate \textstyle
                  } : null;
                }
                case "raw": {
                  var T = this.parseStringGroup("raw", p);
                  return T != null ? {
                    type: "raw",
                    mode: "text",
                    string: T.text
                  } : null;
                }
                case "primitive": {
                  if (p)
                    throw new a("A primitive argument cannot be optional");
                  var y = this.parseGroup(l);
                  if (y == null)
                    throw new a("Expected group as " + l, this.fetch());
                  return y;
                }
                case "original":
                case null:
                case void 0:
                  return this.parseArgumentGroup(p);
                default:
                  throw new a("Unknown group type as " + l, this.fetch());
              }
            }, s.consumeSpaces = function() {
              for (; this.fetch().text === " "; )
                this.consume();
            }, s.parseStringGroup = function(l, h) {
              var p = this.gullet.scanArgument(h);
              if (p == null)
                return null;
              for (var v = "", T; (T = this.fetch()).text !== "EOF"; )
                v += T.text, this.consume();
              return this.consume(), p.text = v, p;
            }, s.parseRegexGroup = function(l, h) {
              for (var p = this.fetch(), v = p, T = "", y; (y = this.fetch()).text !== "EOF" && l.test(T + y.text); )
                v = y, T += v.text, this.consume();
              if (T === "")
                throw new a("Invalid " + h + ": '" + p.text + "'", p);
              return p.range(v, T);
            }, s.parseColorGroup = function(l) {
              var h = this.parseStringGroup("color", l);
              if (h == null)
                return null;
              var p = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(h.text);
              if (!p)
                throw new a("Invalid color: '" + h.text + "'", h);
              var v = p[0];
              return /^[0-9a-f]{6}$/i.test(v) && (v = "#" + v), {
                type: "color-token",
                mode: this.mode,
                color: v
              };
            }, s.parseSizeGroup = function(l) {
              var h, p = !1;
              if (this.gullet.consumeSpaces(), !l && this.gullet.future().text !== "{" ? h = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size") : h = this.parseStringGroup("size", l), !h)
                return null;
              !l && h.text.length === 0 && (h.text = "0pt", p = !0);
              var v = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(h.text);
              if (!v)
                throw new a("Invalid size: '" + h.text + "'", h);
              var T = {
                number: +(v[1] + v[2]),
                // sign + magnitude, cast to number
                unit: v[3]
              };
              if (!Xo(T))
                throw new a("Invalid unit: '" + T.unit + "'", h);
              return {
                type: "size",
                mode: this.mode,
                value: T,
                isBlank: p
              };
            }, s.parseUrlGroup = function(l) {
              this.gullet.lexer.setCatcode("%", 13), this.gullet.lexer.setCatcode("~", 12);
              var h = this.parseStringGroup("url", l);
              if (this.gullet.lexer.setCatcode("%", 14), this.gullet.lexer.setCatcode("~", 13), h == null)
                return null;
              var p = h.text.replace(/\\([#$%&~_^{}])/g, "$1");
              return {
                type: "url",
                mode: this.mode,
                url: p
              };
            }, s.parseArgumentGroup = function(l, h) {
              var p = this.gullet.scanArgument(l);
              if (p == null)
                return null;
              var v = this.mode;
              h && this.switchMode(h), this.gullet.beginGroup();
              var T = this.parseExpression(!1, "EOF");
              this.expect("EOF"), this.gullet.endGroup();
              var y = {
                type: "ordgroup",
                mode: this.mode,
                loc: p.loc,
                body: T
              };
              return h && this.switchMode(v), y;
            }, s.parseGroup = function(l, h) {
              var p = this.fetch(), v = p.text, T;
              if (v === "{" || v === "\\begingroup") {
                this.consume();
                var y = v === "{" ? "}" : "\\endgroup";
                this.gullet.beginGroup();
                var w = this.parseExpression(!1, y), L = this.fetch();
                this.expect(y), this.gullet.endGroup(), T = {
                  type: "ordgroup",
                  mode: this.mode,
                  loc: er.range(p, L),
                  body: w,
                  // A group formed by \begingroup...\endgroup is a semi-simple group
                  // which doesn't affect spacing in math mode, i.e., is transparent.
                  // https://tex.stackexchange.com/questions/1930/when-should-one-
                  // use-begingroup-instead-of-bgroup
                  semisimple: v === "\\begingroup" || void 0
                };
              } else if (T = this.parseFunction(h, l) || this.parseSymbol(), T == null && v[0] === "\\" && !cc.hasOwnProperty(v)) {
                if (this.settings.throwOnError)
                  throw new a("Undefined control sequence: " + v, p);
                T = this.formatUnsupportedCmd(v), this.consume();
              }
              return T;
            }, s.formLigatures = function(l) {
              for (var h = l.length - 1, p = 0; p < h; ++p) {
                var v = l[p], T = v.text;
                T === "-" && l[p + 1].text === "-" && (p + 1 < h && l[p + 2].text === "-" ? (l.splice(p, 3, {
                  type: "textord",
                  mode: "text",
                  loc: er.range(v, l[p + 2]),
                  text: "---"
                }), h -= 2) : (l.splice(p, 2, {
                  type: "textord",
                  mode: "text",
                  loc: er.range(v, l[p + 1]),
                  text: "--"
                }), h -= 1)), (T === "'" || T === "`") && l[p + 1].text === T && (l.splice(p, 2, {
                  type: "textord",
                  mode: "text",
                  loc: er.range(v, l[p + 1]),
                  text: T + T
                }), h -= 1);
              }
            }, s.parseSymbol = function() {
              var l = this.fetch(), h = l.text;
              if (/^\\verb[^a-zA-Z]/.test(h)) {
                this.consume();
                var p = h.slice(5), v = p.charAt(0) === "*";
                if (v && (p = p.slice(1)), p.length < 2 || p.charAt(0) !== p.slice(-1))
                  throw new a(`\\verb assertion failed --
                    please report what input caused this bug`);
                return p = p.slice(1, -1), {
                  type: "verb",
                  mode: "text",
                  body: p,
                  star: v
                };
              }
              fc.hasOwnProperty(h[0]) && !tt[this.mode][h[0]] && (this.settings.strict && this.mode === "math" && this.settings.reportNonstrict("unicodeTextInMathMode", 'Accented Unicode text character "' + h[0] + '" used in math mode', l), h = fc[h[0]] + h.slice(1));
              var T = v4.exec(h);
              T && (h = h.substring(0, T.index), h === "i" ? h = "ı" : h === "j" && (h = "ȷ"));
              var y;
              if (tt[this.mode][h]) {
                this.settings.strict && this.mode === "math" && Ka.indexOf(h) >= 0 && this.settings.reportNonstrict("unicodeTextInMathMode", 'Latin-1/Unicode text character "' + h[0] + '" used in math mode', l);
                var w = tt[this.mode][h].group, L = er.range(l), U;
                if (l2.hasOwnProperty(w)) {
                  var j = w;
                  U = {
                    type: "atom",
                    mode: this.mode,
                    family: j,
                    loc: L,
                    text: h
                  };
                } else
                  U = {
                    type: w,
                    mode: this.mode,
                    loc: L,
                    text: h
                  };
                y = U;
              } else if (h.charCodeAt(0) >= 128)
                this.settings.strict && (St(h.charCodeAt(0)) ? this.mode === "math" && this.settings.reportNonstrict("unicodeTextInMathMode", 'Unicode text character "' + h[0] + '" used in math mode', l) : this.settings.reportNonstrict("unknownSymbol", 'Unrecognized Unicode character "' + h[0] + '"' + (" (" + h.charCodeAt(0) + ")"), l)), y = {
                  type: "textord",
                  mode: "text",
                  loc: er.range(l),
                  text: h
                };
              else
                return null;
              if (this.consume(), T)
                for (var W = 0; W < T[0].length; W++) {
                  var Q = T[0][W];
                  if (!ys[Q])
                    throw new a("Unknown accent ' " + Q + "'", l);
                  var ne = ys[Q][this.mode] || ys[Q].text;
                  if (!ne)
                    throw new a("Accent " + Q + " unsupported in " + this.mode + " mode", l);
                  y = {
                    type: "accent",
                    mode: this.mode,
                    loc: er.range(l),
                    label: ne,
                    isStretchy: !1,
                    isShifty: !0,
                    // $FlowFixMe
                    base: y
                  };
                }
              return y;
            }, E;
          }();
          dc.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"];
          var S4 = function(s, u) {
            if (!(typeof s == "string" || s instanceof String))
              throw new TypeError("KaTeX can only parse string typed expression");
            var l = new dc(s, u);
            delete l.gullet.macros.current["\\df@tag"];
            var h = l.parse();
            if (delete l.gullet.macros.current["\\current@color"], delete l.gullet.macros.current["\\color"], l.gullet.macros.get("\\df@tag")) {
              if (!u.displayMode)
                throw new a("\\tag works only in display equations");
              h = [{
                type: "tag",
                mode: "text",
                body: h,
                tag: l.subparse([new Br("\\df@tag")])
              }];
            }
            return h;
          }, Ss = S4, mc = function(s, u, l) {
            u.textContent = "";
            var h = Cs(s, l).toNode();
            u.appendChild(h);
          };
          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."), mc = function() {
            throw new a("KaTeX doesn't work in quirks mode.");
          });
          var C4 = function(s, u) {
            var l = Cs(s, u).toMarkup();
            return l;
          }, k4 = function(s, u) {
            var l = new oe(u);
            return Ss(s, l);
          }, pc = function(s, u, l) {
            if (l.throwOnError || !(s instanceof a))
              throw s;
            var h = z.makeSpan(["katex-error"], [new Vt(u)]);
            return h.setAttribute("title", s.toString()), h.setAttribute("style", "color:" + l.errorColor), h;
          }, Cs = function(s, u) {
            var l = new oe(u);
            try {
              var h = Ss(s, l);
              return D2(h, s, l);
            } catch (p) {
              return pc(p, s, l);
            }
          }, w4 = function(s, u) {
            var l = new oe(u);
            try {
              var h = Ss(s, l);
              return R2(h, s, l);
            } catch (p) {
              return pc(p, s, l);
            }
          }, N4 = {
            /**
             * Current KaTeX version
             */
            version: "0.16.9",
            /**
             * Renders the given LaTeX into an HTML+MathML combination, and adds
             * it as a child to the specified DOM node.
             */
            render: mc,
            /**
             * Renders the given LaTeX into an HTML+MathML combination string,
             * for sending to the client.
             */
            renderToString: C4,
            /**
             * KaTeX error, usually during parsing.
             */
            ParseError: a,
            /**
             * The shema of Settings
             */
            SETTINGS_SCHEMA: $,
            /**
             * Parses the given LaTeX into KaTeX's internal parse tree structure,
             * without rendering to HTML or MathML.
             *
             * NOTE: This method is not currently recommended for public use.
             * The internal tree representation is unstable and is very likely
             * to change. Use at your own risk.
             */
            __parse: k4,
            /**
             * Renders the given LaTeX into an HTML+MathML internal DOM tree
             * representation, without flattening that representation to a string.
             *
             * NOTE: This method is not currently recommended for public use.
             * The internal tree representation is unstable and is very likely
             * to change. Use at your own risk.
             */
            __renderToDomTree: Cs,
            /**
             * Renders the given LaTeX into an HTML internal DOM tree representation,
             * without MathML and without flattening that representation to a string.
             *
             * NOTE: This method is not currently recommended for public use.
             * The internal tree representation is unstable and is very likely
             * to change. Use at your own risk.
             */
            __renderToHTMLTree: w4,
            /**
             * extends internal font metrics object with a new object
             * each key in the new object represents a font name
            */
            __setFontMetrics: t2,
            /**
             * adds a new symbol to builtin symbols table
             */
            __defineSymbol: g,
            /**
             * adds a new function to builtin function list,
             * which directly produce parse tree elements
             * and have their own html/mathml builders
             */
            __defineFunction: le,
            /**
             * adds a new macro to builtin macro list
             */
            __defineMacro: S,
            /**
             * Expose the dom tree node types, which can be useful for type checking nodes.
             *
             * NOTE: This method is not currently recommended for public use.
             * The internal tree representation is unstable and is very likely
             * to change. Use at your own risk.
             */
            __domTree: {
              Span: u0,
              Anchor: Va,
              SymbolNode: Vt,
              SvgNode: vr,
              PathNode: Rr,
              LineNode: Ga
            }
          }, I4 = N4;
          return n = n.default, n;
        }()
      );
    });
  }(iu)), iu.exports;
}
const rC = (e, t) => {
  const r = "\\", n = "$", a = (t || {}).delimiter || n;
  if (a.length !== 1)
    throw new Error("invalid delimiter");
  const o = tC(), c = (b, A) => o.renderToString(
    b,
    {
      displayMode: A,
      throwOnError: !1
    }
  ), f = (b, A, k) => {
    let N = !1, M = b.bMarks[A] + b.tShift[A], F = b.eMarks[A];
    if (M + 1 > F)
      return !1;
    const q = b.src.charAt(M);
    if (q !== a)
      return !1;
    let B = M;
    M = b.skipChars(M, q);
    let $ = M - B;
    if ($ !== 2)
      return !1;
    let V = A;
    for (; ++V, !(V >= k || (M = B = b.bMarks[V] + b.tShift[V], F = b.eMarks[V], M < F && b.tShift[V] < b.blkIndent)); )
      if (b.src.charAt(M) === a && !(b.tShift[V] - b.blkIndent >= 4) && (M = b.skipChars(M, q), !(M - B < $) && (M = b.skipSpaces(M), !(M < F)))) {
        N = !0;
        break;
      }
    $ = b.tShift[A], b.line = V + (N ? 1 : 0);
    const oe = b.getLines(A + 1, V, $, !0).replace(/[ \n]+/g, " ").trim();
    return b.tokens.push({
      type: "katex",
      params: null,
      content: oe,
      lines: [A, b.line],
      level: b.level,
      block: !0
    }), !0;
  }, m = (b, A) => {
    const k = b.pos, N = b.posMax;
    let M = k;
    if (b.src.charAt(M) !== a)
      return !1;
    for (++M; M < N && b.src.charAt(M) === a; )
      ++M;
    const F = b.src.slice(k, M);
    if (F.length > 2)
      return !1;
    const q = M;
    let B = 0;
    for (; M < N; ) {
      const $ = b.src.charAt(M);
      if ($ === "{" && (M == 0 || b.src.charAt(M - 1) != r))
        B += 1;
      else if ($ === "}" && (M == 0 || b.src.charAt(M - 1) != r)) {
        if (B -= 1, B < 0)
          return !1;
      } else if ($ === a && B === 0) {
        const V = M;
        let oe = M + 1;
        for (; oe < N && b.src.charAt(oe) === a; )
          ++oe;
        if (oe - V === F.length) {
          if (!A) {
            const pe = b.src.slice(q, V).replace(/[ \n]+/g, " ").trim();
            b.push({ type: "katex", content: pe, block: F.length > 1, level: b.level });
          }
          return b.pos = oe, !0;
        }
      }
      M += 1;
    }
    return A || (b.pending += F), b.pos += F.length, !0;
  };
  e.inline.ruler.push("katex", m, t), e.block.ruler.push("katex", f, t), e.renderer.rules.katex = (b, A) => c(b[A].content, b[A].block), e.renderer.rules.katex.delimiter = a;
};
var nC = rC;
const iC = /* @__PURE__ */ Qf(nC);
function aC(e) {
  return {
    transformer: e,
    parser: new Pn(),
    beforeParse: new Pn(),
    afterParse: new Pn(),
    htmltag: new Pn(),
    retransform: new Pn()
  };
}
const sC = `<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>
`, uC = `<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>
`, oC = "checkbox", C1 = {
  " ": uC.trim(),
  x: sC.trim()
}, lC = {
  name: oC,
  transform(e) {
    return e.parser.tap((t) => {
      t.core.ruler.before(
        "inline",
        "checkbox",
        (r) => {
          for (let n = 2; n < r.tokens.length; n += 1) {
            const i = r.tokens[n];
            if (i.type === "inline" && i.content) {
              const a = r.tokens[n - 1].type, o = r.tokens[n - 2].type;
              (a === "heading_open" || a === "paragraph_open" && o === "list_item_open") && (i.content = i.content.replace(
                /^\[(.)\] /,
                (c, f) => C1[f] ? `${C1[f]} ` : c
              ));
            }
          }
          return !1;
        },
        {}
      );
    }), {};
  }
}, cC = lC, hC = "frontmatter", fC = {
  name: hC,
  transform(e) {
    return e.beforeParse.tap((t, r) => {
      const { content: n } = r;
      if (!/^---\r?\n/.test(n))
        return;
      const i = /\n---\r?\n/.exec(n);
      if (!i)
        return;
      const a = n.slice(4, i.index);
      let o;
      try {
        o = eC.load(a), o != null && o.markmap && (o.markmap = dC(
          o.markmap
        ));
      } catch {
        return;
      }
      r.frontmatter = o, r.content = n.slice(i.index + i[0].length), r.contentLineOffset = n.slice(0, i.index).split(`
`).length + 1;
    }), {};
  }
};
function dC(e) {
  if (e)
    return ["color", "extraJs", "extraCss"].forEach((t) => {
      e[t] != null && (e[t] = mC(e[t]));
    }), ["duration", "maxWidth", "initialExpandLevel"].forEach((t) => {
      e[t] != null && (e[t] = pC(e[t]));
    }), e;
}
function mC(e) {
  let t;
  return typeof e == "string" ? t = [e] : Array.isArray(e) && (t = e.filter((r) => r && typeof r == "string")), t != null && t.length ? t : void 0;
}
function pC(e) {
  if (!isNaN(+e))
    return +e;
}
function Po(e, t) {
  return t.type === "script" && t.data.src ? {
    ...t,
    data: {
      ...t.data,
      src: e.getFullUrl(t.data.src)
    }
  } : t;
}
function gC(e, t) {
  return t.type === "stylesheet" && t.data.href ? {
    ...t,
    data: {
      ...t.data,
      href: e.getFullUrl(t.data.href)
    }
  } : t;
}
const k1 = "hljs", bC = [
  "@highlightjs/cdn-assets@11.8.0/highlight.min.js"
].map((e) => Wu(e)), EC = [
  "@highlightjs/cdn-assets@11.8.0/styles/default.min.css"
].map((e) => G1(e)), vC = {
  versions: {
    hljs: "11.8.0"
  },
  preloadScripts: bC,
  styles: EC
}, Yu = {
  name: k1,
  config: vC,
  transform(e) {
    var t, r, n;
    let i;
    const a = ((r = (t = Yu.config) == null ? void 0 : t.preloadScripts) == null ? void 0 : r.map(
      (f) => Po(e.transformer.urlBuilder, f)
    )) || [], o = () => (i || (i = V1(a)), i);
    let c = S0;
    return e.parser.tap((f) => {
      f.set({
        highlight: (m, b) => {
          c();
          const { hljs: A } = window;
          return A ? A.highlightAuto(m, b ? [b] : void 0).value : (o().then(() => {
            e.retransform.call();
          }), m);
        }
      });
    }), e.beforeParse.tap((f, m) => {
      c = () => {
        m.features[k1] = !0;
      };
    }), {
      styles: (n = Yu.config) == null ? void 0 : n.styles
    };
  }
}, _C = Yu, au = "katex", TC = [
  "katex@0.16.8/dist/katex.min.js"
].map((e) => Wu(e)), Xm = Wu(
  "webfontloader@1.6.28/webfontloader.js"
);
Xm.data.defer = !0;
const AC = ["katex@0.16.8/dist/katex.min.css"].map(
  (e) => G1(e)
), xC = {
  versions: {
    katex: "0.16.8",
    webfontloader: "1.6.28"
  },
  preloadScripts: TC,
  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];
        }
      }
    },
    Xm
  ],
  styles: AC
};
function yC(e, t, r) {
  return e.map((n) => {
    if (typeof n == "string" && !n.includes("://")) {
      n.startsWith("npm:") || (n = `npm:${n}`);
      const i = 4 + t.length;
      n.startsWith(`npm:${t}/`) && (n = `${n.slice(0, i)}@${r}${n.slice(
        i
      )}`);
    }
    return n;
  });
}
const y0 = {
  name: au,
  config: xC,
  transform(e) {
    var t, r, n, i;
    let a;
    const o = ((r = (t = y0.config) == null ? void 0 : t.preloadScripts) == null ? void 0 : r.map(
      (b) => Po(e.transformer.urlBuilder, b)
    )) || [], c = () => (a || (a = V1(o)), a), f = (b, A) => {
      const { katex: k } = window;
      return k ? k.renderToString(b, {
        displayMode: A,
        throwOnError: !1
      }) : (c().then(() => {
        e.retransform.call();
      }), b);
    };
    let m = S0;
    return e.parser.tap((b) => {
      b.use(iC), b.renderer.rules.katex = (A, k) => (m(), f(A[k].content, !!A[k].block));
    }), e.beforeParse.tap((b, A) => {
      m = () => {
        A.features[au] = !0;
      };
    }), e.afterParse.tap((b, A) => {
      var k;
      const N = (k = A.frontmatter) == null ? void 0 : k.markmap;
      N && ["extraJs", "extraCss"].forEach((M) => {
        var F, q;
        const B = N[M];
        B && (N[M] = yC(
          B,
          au,
          ((q = (F = y0.config) == null ? void 0 : F.versions) == null ? void 0 : q.katex) || ""
        ));
      });
    }), {
      styles: (n = y0.config) == null ? void 0 : n.styles,
      scripts: (i = y0.config) == null ? void 0 : i.scripts
    };
  }
}, SC = y0, CC = "npmUrl", kC = {
  name: CC,
  transform(e) {
    return e.afterParse.tap((t, r) => {
      const { frontmatter: n } = r, i = n == null ? void 0 : n.markmap;
      i && ["extraJs", "extraCss"].forEach((a) => {
        const o = i[a];
        o && (i[a] = o.map((c) => c.startsWith("npm:") ? e.transformer.urlBuilder.getFullUrl(
          c.slice(4)
        ) : c));
      });
    }), {};
  }
}, wC = "sourceLines", NC = {
  name: wC,
  transform(e) {
    return e.parser.tap((t) => {
      Object.entries(t.renderer.rules).forEach(([r, n]) => {
        typeof n == "function" ? t.renderer.rules[r] = w1(n) : Object.entries(n).forEach(([i, a]) => {
          n[i] = w1(a);
        });
      });
    }), {};
  }
};
function w1(e, t) {
  return U1(e, (r, n, i, ...a) => {
    let o = r(n, i, ...a);
    const { lines: c } = n[i];
    return c && (o = o.replace(
      /^<[\w-]+/,
      (f) => `${f} data-lines="${c.join(",")}"`
    )), o;
  });
}
const IC = NC, MC = [
  fC,
  SC,
  _C,
  kC,
  cC,
  IC
], DC = MC;
function Wm(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(Wm)
  };
}
class RC {
  constructor(t = DC) {
    this.assetsMap = {}, this.urlBuilder = new x3(), this.hooks = aC(this), this.plugins = t.map(
      (i) => typeof i == "function" ? i() : i
    );
    const r = {};
    for (const { name: i, transform: a } of this.plugins)
      r[i] = a(this.hooks);
    this.assetsMap = r;
    const n = new Zr("full", {
      html: !0,
      breaks: !0,
      maxNesting: 1 / 0
    });
    n.renderer.rules.htmltag = U1(
      n.renderer.rules.htmltag,
      (i, ...a) => {
        const o = i(...a);
        return this.hooks.htmltag.call({ args: a, result: o }), o;
      }
    ), this.md = n, this.hooks.parser.call(n);
  }
  transform(t, r) {
    var n, i;
    const a = {
      content: t,
      features: {},
      contentLineOffset: 0
    };
    this.hooks.beforeParse.call(this.md, a);
    const o = this.md.render(a.content, {});
    this.hooks.afterParse.call(this.md, a);
    const c = Wm(
      JT(o, {
        ...(i = (n = a.frontmatter) == null ? void 0 : n.markmap) == null ? void 0 : i.htmlParser,
        ...r
      })
    );
    return { ...a, root: c };
  }
  /**
   * Get all assets from enabled plugins or filter them by plugin names as keys.
   */
  getAssets(t) {
    const r = [], n = [];
    t ?? (t = this.plugins.map((i) => i.name));
    for (const i of t.map((a) => this.assetsMap[a]))
      i && (i.styles && r.push(...i.styles), i.scripts && n.push(...i.scripts));
    return {
      styles: r.map((i) => gC(this.urlBuilder, i)),
      scripts: n.map((i) => Po(this.urlBuilder, i))
    };
  }
  /**
   * Get used assets by features object returned by `transform`.
   */
  getUsedAssets(t) {
    const r = this.plugins.map((n) => n.name).filter((n) => t[n]);
    return this.getAssets(r);
  }
}
const {
  SvelteComponent: OC,
  append: Ui,
  assign: LC,
  attr: su,
  check_outros: BC,
  create_component: Fo,
  destroy_component: Ho,
  detach: Vu,
  element: N1,
  flush: It,
  get_spread_object: PC,
  get_spread_update: FC,
  group_outros: HC,
  init: UC,
  insert: Gu,
  mount_component: Uo,
  safe_not_equal: zC,
  set_data: qC,
  set_style: I1,
  space: uu,
  svg_element: YC,
  text: VC,
  toggle_class: GC,
  transition_in: Yn,
  transition_out: O0
} = window.__gradio__svelte__internal;
function M1(e) {
  let t, r;
  const n = [
    { autoscroll: (
      /*gradio*/
      e[1].autoscroll
    ) },
    { i18n: (
      /*gradio*/
      e[1].i18n
    ) },
    /*loading_status*/
    e[9]
  ];
  let i = {};
  for (let a = 0; a < n.length; a += 1)
    i = LC(i, n[a]);
  return t = new v3({ props: i }), {
    c() {
      Fo(t.$$.fragment);
    },
    m(a, o) {
      Uo(t, a, o), r = !0;
    },
    p(a, o) {
      const c = o & /*gradio, loading_status*/
      514 ? FC(n, [
        o & /*gradio*/
        2 && { autoscroll: (
          /*gradio*/
          a[1].autoscroll
        ) },
        o & /*gradio*/
        2 && { i18n: (
          /*gradio*/
          a[1].i18n
        ) },
        o & /*loading_status*/
        512 && PC(
          /*loading_status*/
          a[9]
        )
      ]) : {};
      t.$set(c);
    },
    i(a) {
      r || (Yn(t.$$.fragment, a), r = !0);
    },
    o(a) {
      O0(t.$$.fragment, a), r = !1;
    },
    d(a) {
      Ho(t, a);
    }
  };
}
function XC(e) {
  let t;
  return {
    c() {
      t = VC(
        /*label*/
        e[2]
      );
    },
    m(r, n) {
      Gu(r, t, n);
    },
    p(r, n) {
      n & /*label*/
      4 && qC(
        t,
        /*label*/
        r[2]
      );
    },
    d(r) {
      r && Vu(t);
    }
  };
}
function WC(e) {
  let t, r, n, i, a, o, c, f, m = (
    /*loading_status*/
    e[9] && M1(e)
  );
  return n = new Dp({
    props: {
      show_label: (
        /*show_label*/
        e[6]
      ),
      info: void 0,
      $$slots: { default: [XC] },
      $$scope: { ctx: e }
    }
  }), {
    c() {
      m && m.c(), t = uu(), r = N1("label"), Fo(n.$$.fragment), i = uu(), a = N1("textarea"), o = uu(), c = YC("svg"), a.value = /*value*/
      e[0], su(a, "class", "svelte-1p8prvt"), su(c, "id", "markmap"), I1(c, "width", "600px"), I1(c, "height", "400px"), su(r, "class", "svelte-1p8prvt"), GC(r, "container", KC);
    },
    m(b, A) {
      m && m.m(b, A), Gu(b, t, A), Gu(b, r, A), Uo(n, r, null), Ui(r, i), Ui(r, a), Ui(r, o), Ui(r, c), f = !0;
    },
    p(b, A) {
      /*loading_status*/
      b[9] ? m ? (m.p(b, A), A & /*loading_status*/
      512 && Yn(m, 1)) : (m = M1(b), m.c(), Yn(m, 1), m.m(t.parentNode, t)) : m && (HC(), O0(m, 1, 1, () => {
        m = null;
      }), BC());
      const k = {};
      A & /*show_label*/
      64 && (k.show_label = /*show_label*/
      b[6]), A & /*$$scope, label*/
      262148 && (k.$$scope = { dirty: A, ctx: b }), n.$set(k), (!f || A & /*value*/
      1) && (a.value = /*value*/
      b[0]);
    },
    i(b) {
      f || (Yn(m), Yn(n.$$.fragment, b), f = !0);
    },
    o(b) {
      O0(m), O0(n.$$.fragment, b), f = !1;
    },
    d(b) {
      b && (Vu(t), Vu(r)), m && m.d(b), Ho(n);
    }
  };
}
function jC(e) {
  let t, r;
  return t = new K4({
    props: {
      visible: (
        /*visible*/
        e[5]
      ),
      elem_id: (
        /*elem_id*/
        e[3]
      ),
      elem_classes: (
        /*elem_classes*/
        e[4]
      ),
      scale: (
        /*scale*/
        e[7]
      ),
      min_width: (
        /*min_width*/
        e[8]
      ),
      allow_overflow: !1,
      padding: !0,
      $$slots: { default: [WC] },
      $$scope: { ctx: e }
    }
  }), {
    c() {
      Fo(t.$$.fragment);
    },
    m(n, i) {
      Uo(t, n, i), r = !0;
    },
    p(n, [i]) {
      const a = {};
      i & /*visible*/
      32 && (a.visible = /*visible*/
      n[5]), i & /*elem_id*/
      8 && (a.elem_id = /*elem_id*/
      n[3]), i & /*elem_classes*/
      16 && (a.elem_classes = /*elem_classes*/
      n[4]), i & /*scale*/
      128 && (a.scale = /*scale*/
      n[7]), i & /*min_width*/
      256 && (a.min_width = /*min_width*/
      n[8]), i & /*$$scope, value, show_label, label, gradio, loading_status*/
      262727 && (a.$$scope = { dirty: i, ctx: n }), t.$set(a);
    },
    i(n) {
      r || (Yn(t.$$.fragment, n), r = !0);
    },
    o(n) {
      O0(t.$$.fragment, n), r = !1;
    },
    d(n) {
      Ho(t, n);
    }
  };
}
const KC = !0;
function $C(e, t, r) {
  let { gradio: n } = t, { label: i = "Textbox" } = t, { elem_id: a = "" } = t, { elem_classes: o = [] } = t, { visible: c = !0 } = t, { value: f = "" } = t, { placeholder: m = "" } = t, { show_label: b } = t, { scale: A = null } = t, { min_width: k = void 0 } = t, { loading_status: N = void 0 } = t, { value_is_output: M = !1 } = t, { interactive: F } = t, { rtl: q = !1 } = t;
  const B = new RC();
  function $() {
    if (n.dispatch("change"), M || n.dispatch("input"), f) {
      r(0, f = f.trim()), console.log(f), r(0, f = f.replace(/.*?```markdown/g, "").replace(/```\n*.*/g, ""));
      const { root: V, features: oe } = B.transform(f), pe = document.querySelector("#markmap");
      pe.innerHTML = "", no.create(pe, void 0, V);
    }
  }
  return e.$$set = (V) => {
    "gradio" in V && r(1, n = V.gradio), "label" in V && r(2, i = V.label), "elem_id" in V && r(3, a = V.elem_id), "elem_classes" in V && r(4, o = V.elem_classes), "visible" in V && r(5, c = V.visible), "value" in V && r(0, f = V.value), "placeholder" in V && r(10, m = V.placeholder), "show_label" in V && r(6, b = V.show_label), "scale" in V && r(7, A = V.scale), "min_width" in V && r(8, k = V.min_width), "loading_status" in V && r(9, N = V.loading_status), "value_is_output" in V && r(11, M = V.value_is_output), "interactive" in V && r(12, F = V.interactive), "rtl" in V && r(13, q = V.rtl);
  }, e.$$.update = () => {
    e.$$.dirty & /*value*/
    1 && f === null && r(0, f = ""), e.$$.dirty & /*value*/
    1 && $();
  }, [
    f,
    n,
    i,
    a,
    o,
    c,
    b,
    A,
    k,
    N,
    m,
    M,
    F,
    q
  ];
}
class ek extends OC {
  constructor(t) {
    super(), UC(this, t, $C, jC, zC, {
      gradio: 1,
      label: 2,
      elem_id: 3,
      elem_classes: 4,
      visible: 5,
      value: 0,
      placeholder: 10,
      show_label: 6,
      scale: 7,
      min_width: 8,
      loading_status: 9,
      value_is_output: 11,
      interactive: 12,
      rtl: 13
    });
  }
  get gradio() {
    return this.$$.ctx[1];
  }
  set gradio(t) {
    this.$$set({ gradio: t }), It();
  }
  get label() {
    return this.$$.ctx[2];
  }
  set label(t) {
    this.$$set({ label: t }), It();
  }
  get elem_id() {
    return this.$$.ctx[3];
  }
  set elem_id(t) {
    this.$$set({ elem_id: t }), It();
  }
  get elem_classes() {
    return this.$$.ctx[4];
  }
  set elem_classes(t) {
    this.$$set({ elem_classes: t }), It();
  }
  get visible() {
    return this.$$.ctx[5];
  }
  set visible(t) {
    this.$$set({ visible: t }), It();
  }
  get value() {
    return this.$$.ctx[0];
  }
  set value(t) {
    this.$$set({ value: t }), It();
  }
  get placeholder() {
    return this.$$.ctx[10];
  }
  set placeholder(t) {
    this.$$set({ placeholder: t }), It();
  }
  get show_label() {
    return this.$$.ctx[6];
  }
  set show_label(t) {
    this.$$set({ show_label: t }), It();
  }
  get scale() {
    return this.$$.ctx[7];
  }
  set scale(t) {
    this.$$set({ scale: t }), It();
  }
  get min_width() {
    return this.$$.ctx[8];
  }
  set min_width(t) {
    this.$$set({ min_width: t }), It();
  }
  get loading_status() {
    return this.$$.ctx[9];
  }
  set loading_status(t) {
    this.$$set({ loading_status: t }), It();
  }
  get value_is_output() {
    return this.$$.ctx[11];
  }
  set value_is_output(t) {
    this.$$set({ value_is_output: t }), It();
  }
  get interactive() {
    return this.$$.ctx[12];
  }
  set interactive(t) {
    this.$$set({ interactive: t }), It();
  }
  get rtl() {
    return this.$$.ctx[13];
  }
  set rtl(t) {
    this.$$set({ rtl: t }), It();
  }
}
export {
  ek as default
};
