diff --git "a/src/backend/gradio_rich_textbox/templates/component/index.js" "b/src/backend/gradio_rich_textbox/templates/component/index.js"
--- "a/src/backend/gradio_rich_textbox/templates/component/index.js"
+++ "b/src/backend/gradio_rich_textbox/templates/component/index.js"
@@ -1,514 +1,391 @@
 const {
-  SvelteComponent: gt,
-  assign: ht,
-  create_slot: wt,
-  detach: pt,
-  element: vt,
-  get_all_dirty_from_scope: kt,
-  get_slot_changes: yt,
-  get_spread_update: Tt,
-  init: zt,
-  insert: qt,
-  safe_not_equal: Ct,
-  set_dynamic_element_data: Le,
-  set_style: L,
-  toggle_class: Z,
-  transition_in: nt,
-  transition_out: it,
-  update_slot_base: Ft
+  SvelteComponent: Qo,
+  assign: Jo,
+  children: eu,
+  claim_element: tu,
+  create_slot: ru,
+  detach: ni,
+  element: au,
+  get_all_dirty_from_scope: nu,
+  get_slot_changes: iu,
+  get_spread_update: su,
+  init: lu,
+  insert_hydration: ou,
+  safe_not_equal: uu,
+  set_dynamic_element_data: ii,
+  set_style: Re,
+  toggle_class: it,
+  transition_in: Js,
+  transition_out: el,
+  update_slot_base: cu
 } = window.__gradio__svelte__internal;
-function Lt(n) {
-  let e, t, l;
-  const s = (
+function hu(a) {
+  let e, t, r;
+  const n = (
     /*#slots*/
-    n[17].default
-  ), i = wt(
-    s,
+    a[22].default
+  ), i = ru(
     n,
+    a,
     /*$$scope*/
-    n[16],
+    a[21],
     null
   );
-  let o = [
+  let s = [
     { "data-testid": (
       /*test_id*/
-      n[7]
+      a[10]
     ) },
     { id: (
       /*elem_id*/
-      n[2]
+      a[5]
     ) },
     {
       class: t = "block " + /*elem_classes*/
-      n[3].join(" ") + " svelte-1t38q2d"
+      a[6].join(" ") + " svelte-1ezsyiy"
     }
-  ], f = {};
-  for (let a = 0; a < o.length; a += 1)
-    f = ht(f, o[a]);
+  ], l = {};
+  for (let o = 0; o < s.length; o += 1)
+    l = Jo(l, s[o]);
   return {
     c() {
-      e = vt(
+      e = au(
+        /*tag*/
+        a[18]
+      ), i && i.c(), this.h();
+    },
+    l(o) {
+      e = tu(
+        o,
         /*tag*/
-        n[14]
-      ), i && i.c(), Le(
+        (a[18] || "null").toUpperCase(),
+        {
+          "data-testid": !0,
+          id: !0,
+          class: !0
+        }
+      );
+      var h = eu(e);
+      i && i.l(h), h.forEach(ni), this.h();
+    },
+    h() {
+      ii(
         /*tag*/
-        n[14]
-      )(e, f), Z(
+        a[18]
+      )(e, l), it(
         e,
         "hidden",
         /*visible*/
-        n[10] === !1
-      ), Z(
+        a[13] === !1
+      ), it(
         e,
         "padded",
         /*padding*/
-        n[6]
-      ), Z(
+        a[9]
+      ), it(
+        e,
+        "flex",
+        /*flex*/
+        a[0]
+      ), it(
         e,
         "border_focus",
         /*border_mode*/
-        n[5] === "focus"
-      ), Z(e, "hide-container", !/*explicit_call*/
-      n[8] && !/*container*/
-      n[9]), L(e, "height", typeof /*height*/
-      n[0] == "number" ? (
-        /*height*/
-        n[0] + "px"
-      ) : void 0), L(e, "width", typeof /*width*/
-      n[1] == "number" ? `calc(min(${/*width*/
-      n[1]}px, 100%))` : void 0), L(
+        a[8] === "focus"
+      ), it(
+        e,
+        "border_contrast",
+        /*border_mode*/
+        a[8] === "contrast"
+      ), it(e, "hide-container", !/*explicit_call*/
+      a[11] && !/*container*/
+      a[12]), Re(
+        e,
+        "height",
+        /*get_dimension*/
+        a[19](
+          /*height*/
+          a[1]
+        )
+      ), Re(
+        e,
+        "min-height",
+        /*get_dimension*/
+        a[19](
+          /*min_height*/
+          a[2]
+        )
+      ), Re(
+        e,
+        "max-height",
+        /*get_dimension*/
+        a[19](
+          /*max_height*/
+          a[3]
+        )
+      ), Re(e, "width", typeof /*width*/
+      a[4] == "number" ? `calc(min(${/*width*/
+      a[4]}px, 100%))` : (
+        /*get_dimension*/
+        a[19](
+          /*width*/
+          a[4]
+        )
+      )), Re(
         e,
         "border-style",
         /*variant*/
-        n[4]
-      ), L(
+        a[7]
+      ), Re(
         e,
         "overflow",
         /*allow_overflow*/
-        n[11] ? "visible" : "hidden"
-      ), L(
+        a[14] ? (
+          /*overflow_behavior*/
+          a[15]
+        ) : "hidden"
+      ), Re(
         e,
         "flex-grow",
         /*scale*/
-        n[12]
-      ), L(e, "min-width", `calc(min(${/*min_width*/
-      n[13]}px, 100%))`), L(e, "border-width", "var(--block-border-width)");
+        a[16]
+      ), Re(e, "min-width", `calc(min(${/*min_width*/
+      a[17]}px, 100%))`), Re(e, "border-width", "var(--block-border-width)");
     },
-    m(a, r) {
-      qt(a, e, r), i && i.m(e, null), l = !0;
+    m(o, h) {
+      ou(o, e, h), i && i.m(e, null), r = !0;
     },
-    p(a, r) {
-      i && i.p && (!l || r & /*$$scope*/
-      65536) && Ft(
+    p(o, h) {
+      i && i.p && (!r || h & /*$$scope*/
+      2097152) && cu(
         i,
-        s,
-        a,
+        n,
+        o,
         /*$$scope*/
-        a[16],
-        l ? yt(
-          s,
+        o[21],
+        r ? iu(
+          n,
           /*$$scope*/
-          a[16],
-          r,
+          o[21],
+          h,
           null
-        ) : kt(
+        ) : nu(
           /*$$scope*/
-          a[16]
+          o[21]
         ),
         null
-      ), Le(
+      ), ii(
         /*tag*/
-        a[14]
-      )(e, f = Tt(o, [
-        (!l || r & /*test_id*/
-        128) && { "data-testid": (
+        o[18]
+      )(e, l = su(s, [
+        (!r || h & /*test_id*/
+        1024) && { "data-testid": (
           /*test_id*/
-          a[7]
+          o[10]
         ) },
-        (!l || r & /*elem_id*/
-        4) && { id: (
+        (!r || h & /*elem_id*/
+        32) && { id: (
           /*elem_id*/
-          a[2]
+          o[5]
         ) },
-        (!l || r & /*elem_classes*/
-        8 && t !== (t = "block " + /*elem_classes*/
-        a[3].join(" ") + " svelte-1t38q2d")) && { class: t }
-      ])), Z(
+        (!r || h & /*elem_classes*/
+        64 && t !== (t = "block " + /*elem_classes*/
+        o[6].join(" ") + " svelte-1ezsyiy")) && { class: t }
+      ])), it(
         e,
         "hidden",
         /*visible*/
-        a[10] === !1
-      ), Z(
+        o[13] === !1
+      ), it(
         e,
         "padded",
         /*padding*/
-        a[6]
-      ), Z(
+        o[9]
+      ), it(
+        e,
+        "flex",
+        /*flex*/
+        o[0]
+      ), it(
         e,
         "border_focus",
         /*border_mode*/
-        a[5] === "focus"
-      ), Z(e, "hide-container", !/*explicit_call*/
-      a[8] && !/*container*/
-      a[9]), r & /*height*/
-      1 && L(e, "height", typeof /*height*/
-      a[0] == "number" ? (
-        /*height*/
-        a[0] + "px"
-      ) : void 0), r & /*width*/
-      2 && L(e, "width", typeof /*width*/
-      a[1] == "number" ? `calc(min(${/*width*/
-      a[1]}px, 100%))` : void 0), r & /*variant*/
-      16 && L(
+        o[8] === "focus"
+      ), it(
+        e,
+        "border_contrast",
+        /*border_mode*/
+        o[8] === "contrast"
+      ), it(e, "hide-container", !/*explicit_call*/
+      o[11] && !/*container*/
+      o[12]), h & /*height*/
+      2 && Re(
+        e,
+        "height",
+        /*get_dimension*/
+        o[19](
+          /*height*/
+          o[1]
+        )
+      ), h & /*min_height*/
+      4 && Re(
+        e,
+        "min-height",
+        /*get_dimension*/
+        o[19](
+          /*min_height*/
+          o[2]
+        )
+      ), h & /*max_height*/
+      8 && Re(
+        e,
+        "max-height",
+        /*get_dimension*/
+        o[19](
+          /*max_height*/
+          o[3]
+        )
+      ), h & /*width*/
+      16 && Re(e, "width", typeof /*width*/
+      o[4] == "number" ? `calc(min(${/*width*/
+      o[4]}px, 100%))` : (
+        /*get_dimension*/
+        o[19](
+          /*width*/
+          o[4]
+        )
+      )), h & /*variant*/
+      128 && Re(
         e,
         "border-style",
         /*variant*/
-        a[4]
-      ), r & /*allow_overflow*/
-      2048 && L(
+        o[7]
+      ), h & /*allow_overflow, overflow_behavior*/
+      49152 && Re(
         e,
         "overflow",
         /*allow_overflow*/
-        a[11] ? "visible" : "hidden"
-      ), r & /*scale*/
-      4096 && L(
+        o[14] ? (
+          /*overflow_behavior*/
+          o[15]
+        ) : "hidden"
+      ), h & /*scale*/
+      65536 && Re(
         e,
         "flex-grow",
         /*scale*/
-        a[12]
-      ), r & /*min_width*/
-      8192 && L(e, "min-width", `calc(min(${/*min_width*/
-      a[13]}px, 100%))`);
+        o[16]
+      ), h & /*min_width*/
+      131072 && Re(e, "min-width", `calc(min(${/*min_width*/
+      o[17]}px, 100%))`);
     },
-    i(a) {
-      l || (nt(i, a), l = !0);
+    i(o) {
+      r || (Js(i, o), r = !0);
     },
-    o(a) {
-      it(i, a), l = !1;
+    o(o) {
+      el(i, o), r = !1;
     },
-    d(a) {
-      a && pt(e), i && i.d(a);
+    d(o) {
+      o && ni(e), i && i.d(o);
     }
   };
 }
-function Et(n) {
+function mu(a) {
   let e, t = (
     /*tag*/
-    n[14] && Lt(n)
+    a[18] && hu(a)
   );
   return {
     c() {
       t && t.c();
     },
-    m(l, s) {
-      t && t.m(l, s), e = !0;
+    l(r) {
+      t && t.l(r);
     },
-    p(l, [s]) {
+    m(r, n) {
+      t && t.m(r, n), e = !0;
+    },
+    p(r, [n]) {
       /*tag*/
-      l[14] && t.p(l, s);
+      r[18] && t.p(r, n);
     },
-    i(l) {
-      e || (nt(t, l), e = !0);
+    i(r) {
+      e || (Js(t, r), e = !0);
     },
-    o(l) {
-      it(t, l), e = !1;
+    o(r) {
+      el(t, r), e = !1;
     },
-    d(l) {
-      t && t.d(l);
+    d(r) {
+      t && t.d(r);
     }
   };
 }
-function Bt(n, e, t) {
-  let { $$slots: l = {}, $$scope: s } = e, { height: i = void 0 } = e, { width: o = void 0 } = e, { elem_id: f = "" } = e, { elem_classes: a = [] } = e, { variant: r = "solid" } = e, { border_mode: _ = "base" } = e, { padding: u = !0 } = e, { type: b = "normal" } = e, { test_id: c = void 0 } = e, { explicit_call: d = !1 } = e, { container: y = !0 } = e, { visible: v = !0 } = e, { allow_overflow: F = !0 } = e, { scale: q = null } = e, { min_width: m = 0 } = e, z = b === "fieldset" ? "fieldset" : "div";
-  return n.$$set = (h) => {
-    "height" in h && t(0, i = h.height), "width" in h && t(1, o = h.width), "elem_id" in h && t(2, f = h.elem_id), "elem_classes" in h && t(3, a = h.elem_classes), "variant" in h && t(4, r = h.variant), "border_mode" in h && t(5, _ = h.border_mode), "padding" in h && t(6, u = h.padding), "type" in h && t(15, b = h.type), "test_id" in h && t(7, c = h.test_id), "explicit_call" in h && t(8, d = h.explicit_call), "container" in h && t(9, y = h.container), "visible" in h && t(10, v = h.visible), "allow_overflow" in h && t(11, F = h.allow_overflow), "scale" in h && t(12, q = h.scale), "min_width" in h && t(13, m = h.min_width), "$$scope" in h && t(16, s = h.$$scope);
+function fu(a, e, t) {
+  let { $$slots: r = {}, $$scope: n } = e, { height: i = void 0 } = e, { min_height: s = void 0 } = e, { max_height: l = void 0 } = e, { width: o = void 0 } = e, { elem_id: h = "" } = e, { elem_classes: m = [] } = e, { variant: d = "solid" } = e, { border_mode: v = "base" } = e, { padding: g = !0 } = e, { type: D = "normal" } = e, { test_id: S = void 0 } = e, { explicit_call: F = !1 } = e, { container: T = !0 } = e, { visible: x = !0 } = e, { allow_overflow: b = !0 } = e, { overflow_behavior: A = "auto" } = e, { scale: C = null } = e, { min_width: z = 0 } = e, { flex: B = !1 } = e;
+  x || (B = !1);
+  let P = D === "fieldset" ? "fieldset" : "div";
+  const M = (R) => {
+    if (R !== void 0) {
+      if (typeof R == "number")
+        return R + "px";
+      if (typeof R == "string")
+        return R;
+    }
+  };
+  return a.$$set = (R) => {
+    "height" in R && t(1, i = R.height), "min_height" in R && t(2, s = R.min_height), "max_height" in R && t(3, l = R.max_height), "width" in R && t(4, o = R.width), "elem_id" in R && t(5, h = R.elem_id), "elem_classes" in R && t(6, m = R.elem_classes), "variant" in R && t(7, d = R.variant), "border_mode" in R && t(8, v = R.border_mode), "padding" in R && t(9, g = R.padding), "type" in R && t(20, D = R.type), "test_id" in R && t(10, S = R.test_id), "explicit_call" in R && t(11, F = R.explicit_call), "container" in R && t(12, T = R.container), "visible" in R && t(13, x = R.visible), "allow_overflow" in R && t(14, b = R.allow_overflow), "overflow_behavior" in R && t(15, A = R.overflow_behavior), "scale" in R && t(16, C = R.scale), "min_width" in R && t(17, z = R.min_width), "flex" in R && t(0, B = R.flex), "$$scope" in R && t(21, n = R.$$scope);
   }, [
+    B,
     i,
+    s,
+    l,
     o,
-    f,
-    a,
-    r,
-    _,
-    u,
-    c,
+    h,
+    m,
     d,
-    y,
     v,
+    g,
+    S,
     F,
-    q,
-    m,
-    z,
+    T,
+    x,
     b,
-    s,
-    l
+    A,
+    C,
+    z,
+    P,
+    M,
+    D,
+    n,
+    r
   ];
 }
-class At extends gt {
+class du extends Qo {
   constructor(e) {
-    super(), zt(this, e, Bt, Et, Ct, {
-      height: 0,
-      width: 1,
-      elem_id: 2,
-      elem_classes: 3,
-      variant: 4,
-      border_mode: 5,
-      padding: 6,
-      type: 15,
-      test_id: 7,
-      explicit_call: 8,
-      container: 9,
-      visible: 10,
-      allow_overflow: 11,
-      scale: 12,
-      min_width: 13
+    super(), lu(this, e, fu, mu, uu, {
+      height: 1,
+      min_height: 2,
+      max_height: 3,
+      width: 4,
+      elem_id: 5,
+      elem_classes: 6,
+      variant: 7,
+      border_mode: 8,
+      padding: 9,
+      type: 20,
+      test_id: 10,
+      explicit_call: 11,
+      container: 12,
+      visible: 13,
+      allow_overflow: 14,
+      overflow_behavior: 15,
+      scale: 16,
+      min_width: 17,
+      flex: 0
     });
   }
 }
-const {
-  SvelteComponent: Mt,
-  attr: Nt,
-  create_slot: St,
-  detach: Vt,
-  element: Xt,
-  get_all_dirty_from_scope: It,
-  get_slot_changes: Zt,
-  init: Ot,
-  insert: Pt,
-  safe_not_equal: Rt,
-  transition_in: jt,
-  transition_out: Dt,
-  update_slot_base: Ht
-} = window.__gradio__svelte__internal;
-function Ut(n) {
-  let e, t;
-  const l = (
-    /*#slots*/
-    n[1].default
-  ), s = St(
-    l,
-    n,
-    /*$$scope*/
-    n[0],
-    null
-  );
-  return {
-    c() {
-      e = Xt("div"), s && s.c(), Nt(e, "class", "svelte-1hnfib2");
-    },
-    m(i, o) {
-      Pt(i, e, o), s && s.m(e, null), t = !0;
-    },
-    p(i, [o]) {
-      s && s.p && (!t || o & /*$$scope*/
-      1) && Ht(
-        s,
-        l,
-        i,
-        /*$$scope*/
-        i[0],
-        t ? Zt(
-          l,
-          /*$$scope*/
-          i[0],
-          o,
-          null
-        ) : It(
-          /*$$scope*/
-          i[0]
-        ),
-        null
-      );
-    },
-    i(i) {
-      t || (jt(s, i), t = !0);
-    },
-    o(i) {
-      Dt(s, i), t = !1;
-    },
-    d(i) {
-      i && Vt(e), s && s.d(i);
-    }
-  };
-}
-function Yt(n, e, t) {
-  let { $$slots: l = {}, $$scope: s } = e;
-  return n.$$set = (i) => {
-    "$$scope" in i && t(0, s = i.$$scope);
-  }, [s, l];
-}
-class Gt extends Mt {
-  constructor(e) {
-    super(), Ot(this, e, Yt, Ut, Rt, {});
-  }
-}
-const {
-  SvelteComponent: Kt,
-  attr: Ee,
-  check_outros: Jt,
-  create_component: Qt,
-  create_slot: Wt,
-  destroy_component: xt,
-  detach: ae,
-  element: $t,
-  empty: el,
-  get_all_dirty_from_scope: tl,
-  get_slot_changes: ll,
-  group_outros: nl,
-  init: il,
-  insert: re,
-  mount_component: sl,
-  safe_not_equal: fl,
-  set_data: ol,
-  space: al,
-  text: rl,
-  toggle_class: U,
-  transition_in: te,
-  transition_out: _e,
-  update_slot_base: _l
-} = window.__gradio__svelte__internal;
-function Be(n) {
-  let e, t;
-  return e = new Gt({
-    props: {
-      $$slots: { default: [ul] },
-      $$scope: { ctx: n }
-    }
-  }), {
-    c() {
-      Qt(e.$$.fragment);
-    },
-    m(l, s) {
-      sl(e, l, s), t = !0;
-    },
-    p(l, s) {
-      const i = {};
-      s & /*$$scope, info*/
-      10 && (i.$$scope = { dirty: s, ctx: l }), e.$set(i);
-    },
-    i(l) {
-      t || (te(e.$$.fragment, l), t = !0);
-    },
-    o(l) {
-      _e(e.$$.fragment, l), t = !1;
-    },
-    d(l) {
-      xt(e, l);
-    }
-  };
-}
-function ul(n) {
-  let e;
-  return {
-    c() {
-      e = rl(
-        /*info*/
-        n[1]
-      );
-    },
-    m(t, l) {
-      re(t, e, l);
-    },
-    p(t, l) {
-      l & /*info*/
-      2 && ol(
-        e,
-        /*info*/
-        t[1]
-      );
-    },
-    d(t) {
-      t && ae(e);
-    }
-  };
-}
-function cl(n) {
-  let e, t, l, s;
-  const i = (
-    /*#slots*/
-    n[2].default
-  ), o = Wt(
-    i,
-    n,
-    /*$$scope*/
-    n[3],
-    null
-  );
-  let f = (
-    /*info*/
-    n[1] && Be(n)
-  );
-  return {
-    c() {
-      e = $t("span"), o && o.c(), t = al(), f && f.c(), l = el(), Ee(e, "data-testid", "block-info"), Ee(e, "class", "svelte-22c38v"), U(e, "sr-only", !/*show_label*/
-      n[0]), U(e, "hide", !/*show_label*/
-      n[0]), U(
-        e,
-        "has-info",
-        /*info*/
-        n[1] != null
-      );
-    },
-    m(a, r) {
-      re(a, e, r), o && o.m(e, null), re(a, t, r), f && f.m(a, r), re(a, l, r), s = !0;
-    },
-    p(a, [r]) {
-      o && o.p && (!s || r & /*$$scope*/
-      8) && _l(
-        o,
-        i,
-        a,
-        /*$$scope*/
-        a[3],
-        s ? ll(
-          i,
-          /*$$scope*/
-          a[3],
-          r,
-          null
-        ) : tl(
-          /*$$scope*/
-          a[3]
-        ),
-        null
-      ), (!s || r & /*show_label*/
-      1) && U(e, "sr-only", !/*show_label*/
-      a[0]), (!s || r & /*show_label*/
-      1) && U(e, "hide", !/*show_label*/
-      a[0]), (!s || r & /*info*/
-      2) && U(
-        e,
-        "has-info",
-        /*info*/
-        a[1] != null
-      ), /*info*/
-      a[1] ? f ? (f.p(a, r), r & /*info*/
-      2 && te(f, 1)) : (f = Be(a), f.c(), te(f, 1), f.m(l.parentNode, l)) : f && (nl(), _e(f, 1, 1, () => {
-        f = null;
-      }), Jt());
-    },
-    i(a) {
-      s || (te(o, a), te(f), s = !0);
-    },
-    o(a) {
-      _e(o, a), _e(f), s = !1;
-    },
-    d(a) {
-      a && (ae(e), ae(t), ae(l)), o && o.d(a), f && f.d(a);
-    }
-  };
-}
-function dl(n, e, t) {
-  let { $$slots: l = {}, $$scope: s } = e, { show_label: i = !0 } = e, { info: o = void 0 } = e;
-  return n.$$set = (f) => {
-    "show_label" in f && t(0, i = f.show_label), "info" in f && t(1, o = f.info), "$$scope" in f && t(3, s = f.$$scope);
-  }, [i, o, l, s];
-}
-class ml extends Kt {
-  constructor(e) {
-    super(), il(this, e, dl, cl, fl, { show_label: 0, info: 1 });
-  }
-}
-const bl = [
+const pu = [
   { color: "red", primary: 600, secondary: 100 },
   { color: "green", primary: 600, secondary: 100 },
   { color: "blue", primary: 600, secondary: 100 },
@@ -519,7 +396,7 @@ const bl = [
   { color: "cyan", primary: 600, secondary: 100 },
   { color: "lime", primary: 500, secondary: 100 },
   { color: "pink", primary: 600, secondary: 100 }
-], Ae = {
+], si = {
   inherit: "inherit",
   current: "currentColor",
   transparent: "transparent",
@@ -812,1152 +689,18510 @@ const bl = [
     950: "#4c0519"
   }
 };
-bl.reduce(
-  (n, { color: e, primary: t, secondary: l }) => ({
-    ...n,
+pu.reduce(
+  (a, { color: e, primary: t, secondary: r }) => ({
+    ...a,
     [e]: {
-      primary: Ae[e][t],
-      secondary: Ae[e][l]
+      primary: si[e][t],
+      secondary: si[e][r]
     }
   }),
   {}
 );
-function G(n) {
-  let e = ["", "k", "M", "G", "T", "P", "E", "Z"], t = 0;
-  for (; n > 1e3 && t < e.length - 1; )
-    n /= 1e3, t++;
-  let l = e[t];
-  return (Number.isInteger(n) ? n : n.toFixed(1)) + l;
-}
-function ue() {
-}
-function gl(n, e) {
-  return n != n ? e == e : n !== e || n && typeof n == "object" || typeof n == "function";
-}
-const st = typeof window < "u";
-let Me = st ? () => window.performance.now() : () => Date.now(), ft = st ? (n) => requestAnimationFrame(n) : ue;
-const J = /* @__PURE__ */ new Set();
-function ot(n) {
-  J.forEach((e) => {
-    e.c(n) || (J.delete(e), e.f());
-  }), J.size !== 0 && ft(ot);
-}
-function hl(n) {
-  let e;
-  return J.size === 0 && ft(ot), {
-    promise: new Promise((t) => {
-      J.add(e = { c: n, f: t });
-    }),
-    abort() {
-      J.delete(e);
+const {
+  SvelteComponent: gu,
+  append_hydration: oa,
+  attr: yt,
+  children: cr,
+  claim_svg_element: hr,
+  detach: q0,
+  init: vu,
+  insert_hydration: bu,
+  noop: ua,
+  safe_not_equal: yu,
+  set_style: zt,
+  svg_element: mr
+} = window.__gradio__svelte__internal;
+function wu(a) {
+  let e, t, r, n;
+  return {
+    c() {
+      e = mr("svg"), t = mr("g"), r = mr("path"), n = mr("path"), this.h();
+    },
+    l(i) {
+      e = hr(i, "svg", {
+        width: !0,
+        height: !0,
+        viewBox: !0,
+        version: !0,
+        xmlns: !0,
+        "xmlns:xlink": !0,
+        "xml:space": !0,
+        stroke: !0,
+        style: !0
+      });
+      var s = cr(e);
+      t = hr(s, "g", { transform: !0 });
+      var l = cr(t);
+      r = hr(l, "path", { d: !0, style: !0 }), cr(r).forEach(q0), l.forEach(q0), n = hr(s, "path", { d: !0, style: !0 }), cr(n).forEach(q0), s.forEach(q0), this.h();
+    },
+    h() {
+      yt(r, "d", "M18,6L6.087,17.913"), zt(r, "fill", "none"), zt(r, "fill-rule", "nonzero"), zt(r, "stroke-width", "2px"), yt(t, "transform", "matrix(1.14096,-0.140958,-0.140958,1.14096,-0.0559523,0.0559523)"), yt(n, "d", "M4.364,4.364L19.636,19.636"), zt(n, "fill", "none"), zt(n, "fill-rule", "nonzero"), zt(n, "stroke-width", "2px"), yt(e, "width", "100%"), yt(e, "height", "100%"), yt(e, "viewBox", "0 0 24 24"), yt(e, "version", "1.1"), yt(e, "xmlns", "http://www.w3.org/2000/svg"), yt(e, "xmlns:xlink", "http://www.w3.org/1999/xlink"), yt(e, "xml:space", "preserve"), yt(e, "stroke", "currentColor"), zt(e, "fill-rule", "evenodd"), zt(e, "clip-rule", "evenodd"), zt(e, "stroke-linecap", "round"), zt(e, "stroke-linejoin", "round");
+    },
+    m(i, s) {
+      bu(i, e, s), oa(e, t), oa(t, r), oa(e, n);
+    },
+    p: ua,
+    i: ua,
+    o: ua,
+    d(i) {
+      i && q0(e);
     }
   };
 }
-const Y = [];
-function wl(n, e = ue) {
-  let t;
-  const l = /* @__PURE__ */ new Set();
-  function s(f) {
-    if (gl(n, f) && (n = f, t)) {
-      const a = !Y.length;
-      for (const r of l)
-        r[1](), Y.push(r, n);
-      if (a) {
-        for (let r = 0; r < Y.length; r += 2)
-          Y[r][0](Y[r + 1]);
-        Y.length = 0;
-      }
-    }
+class xu extends gu {
+  constructor(e) {
+    super(), vu(this, e, null, wu, yu, {});
   }
-  function i(f) {
-    s(f(n));
+}
+class et {
+  // The + prefix indicates that these fields aren't writeable
+  // Lexer holding the input string.
+  // Start offset, zero-based inclusive.
+  // End offset, zero-based exclusive.
+  constructor(e, t, r) {
+    this.lexer = void 0, this.start = void 0, this.end = void 0, this.lexer = e, this.start = t, this.end = r;
   }
-  function o(f, a = ue) {
-    const r = [f, a];
-    return l.add(r), l.size === 1 && (t = e(s, i) || ue), f(n), () => {
-      l.delete(r), l.size === 0 && t && (t(), t = null);
-    };
+  /**
+   * Merges two `SourceLocation`s from location providers, given they are
+   * provided in order of appearance.
+   * - Returns the first one's location if only the first is provided.
+   * - Returns a merged range of the first and the last if both are provided
+   *   and their lexers match.
+   * - Otherwise, returns null.
+   */
+  static range(e, t) {
+    return t ? !e || !e.loc || !t.loc || e.loc.lexer !== t.loc.lexer ? null : new et(e.loc.lexer, e.loc.start, t.loc.end) : e && e.loc;
   }
-  return { set: s, update: i, subscribe: o };
 }
-function Ne(n) {
-  return Object.prototype.toString.call(n) === "[object Date]";
-}
-function we(n, e, t, l) {
-  if (typeof t == "number" || Ne(t)) {
-    const s = l - t, i = (t - e) / (n.dt || 1 / 60), o = n.opts.stiffness * s, f = n.opts.damping * i, a = (o - f) * n.inv_mass, r = (i + a) * n.dt;
-    return Math.abs(r) < n.opts.precision && Math.abs(s) < n.opts.precision ? l : (n.settled = !1, Ne(t) ? new Date(t.getTime() + r) : t + r);
-  } else {
-    if (Array.isArray(t))
-      return t.map(
-        (s, i) => we(n, e[i], t[i], l[i])
-      );
-    if (typeof t == "object") {
-      const s = {};
-      for (const i in t)
-        s[i] = we(n, e[i], t[i], l[i]);
-      return s;
-    } else
-      throw new Error(`Cannot spring ${typeof t} values`);
+class mt {
+  // don't expand the token
+  // used in \noexpand
+  constructor(e, t) {
+    this.text = void 0, this.loc = void 0, this.noexpand = void 0, this.treatAsRelax = void 0, this.text = e, this.loc = t;
   }
-}
-function Se(n, e = {}) {
-  const t = wl(n), { stiffness: l = 0.15, damping: s = 0.8, precision: i = 0.01 } = e;
-  let o, f, a, r = n, _ = n, u = 1, b = 0, c = !1;
-  function d(v, F = {}) {
-    _ = v;
-    const q = a = {};
-    return n == null || F.hard || y.stiffness >= 1 && y.damping >= 1 ? (c = !0, o = Me(), r = v, t.set(n = _), Promise.resolve()) : (F.soft && (b = 1 / ((F.soft === !0 ? 0.5 : +F.soft) * 60), u = 0), f || (o = Me(), c = !1, f = hl((m) => {
-      if (c)
-        return c = !1, f = null, !1;
-      u = Math.min(u + b, 1);
-      const z = {
-        inv_mass: u,
-        opts: y,
-        settled: !0,
-        dt: (m - o) * 60 / 1e3
-      }, h = we(z, r, n, _);
-      return o = m, r = n, t.set(n = h), z.settled && (f = null), !z.settled;
-    })), new Promise((m) => {
-      f.promise.then(() => {
-        q === a && m();
-      });
-    }));
+  /**
+   * Given a pair of tokens (this and endToken), compute a `Token` encompassing
+   * the whole input range enclosed by these two.
+   */
+  range(e, t) {
+    return new mt(t, et.range(this, e));
   }
-  const y = {
-    set: d,
-    update: (v, F) => d(v(_, n), F),
-    subscribe: t.subscribe,
-    stiffness: l,
-    damping: s,
-    precision: i
-  };
-  return y;
 }
-const {
-  SvelteComponent: pl,
-  append: M,
-  attr: T,
-  component_subscribe: Ve,
-  detach: vl,
-  element: kl,
-  init: yl,
-  insert: Tl,
-  noop: Xe,
-  safe_not_equal: zl,
-  set_style: fe,
-  svg_element: N,
-  toggle_class: Ie
-} = window.__gradio__svelte__internal, { onMount: ql } = window.__gradio__svelte__internal;
-function Cl(n) {
-  let e, t, l, s, i, o, f, a, r, _, u, b;
-  return {
-    c() {
-      e = kl("div"), t = N("svg"), l = N("g"), s = N("path"), i = N("path"), o = N("path"), f = N("path"), a = N("g"), r = N("path"), _ = N("path"), u = N("path"), b = N("path"), T(s, "d", "M255.926 0.754768L509.702 139.936V221.027L255.926 81.8465V0.754768Z"), T(s, "fill", "#FF7C00"), T(s, "fill-opacity", "0.4"), T(s, "class", "svelte-43sxxs"), T(i, "d", "M509.69 139.936L254.981 279.641V361.255L509.69 221.55V139.936Z"), T(i, "fill", "#FF7C00"), T(i, "class", "svelte-43sxxs"), T(o, "d", "M0.250138 139.937L254.981 279.641V361.255L0.250138 221.55V139.937Z"), T(o, "fill", "#FF7C00"), T(o, "fill-opacity", "0.4"), T(o, "class", "svelte-43sxxs"), T(f, "d", "M255.923 0.232622L0.236328 139.936V221.55L255.923 81.8469V0.232622Z"), T(f, "fill", "#FF7C00"), T(f, "class", "svelte-43sxxs"), fe(l, "transform", "translate(" + /*$top*/
-      n[1][0] + "px, " + /*$top*/
-      n[1][1] + "px)"), T(r, "d", "M255.926 141.5L509.702 280.681V361.773L255.926 222.592V141.5Z"), T(r, "fill", "#FF7C00"), T(r, "fill-opacity", "0.4"), T(r, "class", "svelte-43sxxs"), T(_, "d", "M509.69 280.679L254.981 420.384V501.998L509.69 362.293V280.679Z"), T(_, "fill", "#FF7C00"), T(_, "class", "svelte-43sxxs"), T(u, "d", "M0.250138 280.681L254.981 420.386V502L0.250138 362.295V280.681Z"), T(u, "fill", "#FF7C00"), T(u, "fill-opacity", "0.4"), T(u, "class", "svelte-43sxxs"), T(b, "d", "M255.923 140.977L0.236328 280.68V362.294L255.923 222.591V140.977Z"), T(b, "fill", "#FF7C00"), T(b, "class", "svelte-43sxxs"), fe(a, "transform", "translate(" + /*$bottom*/
-      n[2][0] + "px, " + /*$bottom*/
-      n[2][1] + "px)"), T(t, "viewBox", "-1200 -1200 3000 3000"), T(t, "fill", "none"), T(t, "xmlns", "http://www.w3.org/2000/svg"), T(t, "class", "svelte-43sxxs"), T(e, "class", "svelte-43sxxs"), Ie(
-        e,
-        "margin",
-        /*margin*/
-        n[0]
-      );
-    },
-    m(c, d) {
-      Tl(c, e, d), M(e, t), M(t, l), M(l, s), M(l, i), M(l, o), M(l, f), M(t, a), M(a, r), M(a, _), M(a, u), M(a, b);
-    },
-    p(c, [d]) {
-      d & /*$top*/
-      2 && fe(l, "transform", "translate(" + /*$top*/
-      c[1][0] + "px, " + /*$top*/
-      c[1][1] + "px)"), d & /*$bottom*/
-      4 && fe(a, "transform", "translate(" + /*$bottom*/
-      c[2][0] + "px, " + /*$bottom*/
-      c[2][1] + "px)"), d & /*margin*/
-      1 && Ie(
-        e,
-        "margin",
-        /*margin*/
-        c[0]
-      );
-    },
-    i: Xe,
-    o: Xe,
-    d(c) {
-      c && vl(e);
+class 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.
+  constructor(e, t) {
+    this.name = void 0, this.position = void 0, this.length = void 0, this.rawMessage = void 0;
+    var r = "KaTeX parse error: " + e, n, i, s = t && t.loc;
+    if (s && s.start <= s.end) {
+      var l = s.lexer.input;
+      n = s.start, i = s.end, n === l.length ? r += " at end of input: " : r += " at position " + (n + 1) + ": ";
+      var o = l.slice(n, i).replace(/[^]/g, "$&̲"), h;
+      n > 15 ? h = "…" + l.slice(n - 15, n) : h = l.slice(0, n);
+      var m;
+      i + 15 < l.length ? m = l.slice(i, i + 15) + "…" : m = l.slice(i), r += h + o + m;
     }
-  };
-}
-function Fl(n, e, t) {
-  let l, s, { margin: i = !0 } = e;
-  const o = Se([0, 0]);
-  Ve(n, o, (b) => t(1, l = b));
-  const f = Se([0, 0]);
-  Ve(n, f, (b) => t(2, s = b));
-  let a;
-  async function r() {
-    await Promise.all([o.set([125, 140]), f.set([-125, -140])]), await Promise.all([o.set([-125, 140]), f.set([125, -140])]), await Promise.all([o.set([-125, 0]), f.set([125, -0])]), await Promise.all([o.set([125, 0]), f.set([-125, 0])]);
+    var d = new Error(r);
+    return d.name = "ParseError", d.__proto__ = I.prototype, d.position = n, n != null && i != null && (d.length = i - n), d.rawMessage = e, d;
   }
-  async function _() {
-    await r(), a || _();
+}
+I.prototype.__proto__ = Error.prototype;
+var ku = function(e, t) {
+  return e.indexOf(t) !== -1;
+}, Du = function(e, t) {
+  return e === void 0 ? t : e;
+}, Au = /([A-Z])/g, _u = function(e) {
+  return e.replace(Au, "-$1").toLowerCase();
+}, Su = {
+  "&": "&amp;",
+  ">": "&gt;",
+  "<": "&lt;",
+  '"': "&quot;",
+  "'": "&#x27;"
+}, Eu = /[&><"']/g;
+function Fu(a) {
+  return String(a).replace(Eu, (e) => Su[e]);
+}
+var tl = function a(e) {
+  return e.type === "ordgroup" || e.type === "color" ? e.body.length === 1 ? a(e.body[0]) : e : e.type === "font" ? a(e.body) : e;
+}, Tu = function(e) {
+  var t = tl(e);
+  return t.type === "mathord" || t.type === "textord" || t.type === "atom";
+}, Cu = function(e) {
+  if (!e)
+    throw new Error("Expected non-null, but got " + String(e));
+  return e;
+}, Mu = function(e) {
+  var t = /^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);
+  return t ? t[2] !== ":" || !/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1]) ? null : t[1].toLowerCase() : "_relative";
+}, Z = {
+  contains: ku,
+  deflt: Du,
+  escape: Fu,
+  hyphenate: _u,
+  getBaseElem: tl,
+  isCharacterBox: Tu,
+  protocolFromUrl: Mu
+}, zr = {
+  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: (a) => "#" + a
+  },
+  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: (a, e) => (e.push(a), e)
+  },
+  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: (a) => Math.max(0, a),
+    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: (a) => Math.max(0, a),
+    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: (a) => Math.max(0, a),
+    cli: "-e, --max-expand <n>",
+    cliProcessor: (a) => a === "Infinity" ? 1 / 0 : parseInt(a)
+  },
+  globalGroup: {
+    type: "boolean",
+    cli: !1
   }
-  async function u() {
-    await Promise.all([o.set([125, 0]), f.set([-125, 0])]), _();
+};
+function zu(a) {
+  if (a.default)
+    return a.default;
+  var e = a.type, t = Array.isArray(e) ? e[0] : e;
+  if (typeof t != "string")
+    return t.enum[0];
+  switch (t) {
+    case "boolean":
+      return !1;
+    case "string":
+      return "";
+    case "number":
+      return 0;
+    case "object":
+      return {};
   }
-  return ql(() => (u(), () => a = !0)), n.$$set = (b) => {
-    "margin" in b && t(0, i = b.margin);
-  }, [i, l, s, o, f];
 }
-class Ll extends pl {
+class nn {
   constructor(e) {
-    super(), yl(this, e, Fl, Cl, zl, { margin: 0 });
+    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, e = e || {};
+    for (var t in zr)
+      if (zr.hasOwnProperty(t)) {
+        var r = zr[t];
+        this[t] = e[t] !== void 0 ? r.processor ? r.processor(e[t]) : e[t] : zu(r);
+      }
+  }
+  /**
+   * Report nonstrict (non-LaTeX-compatible) input.
+   * Can safely not be called if `this.strict` is false in JavaScript.
+   */
+  reportNonstrict(e, t, r) {
+    var n = this.strict;
+    if (typeof n == "function" && (n = n(e, t, r)), !(!n || n === "ignore")) {
+      if (n === !0 || n === "error")
+        throw new I("LaTeX-incompatible input and strict mode is set to 'error': " + (t + " [" + e + "]"), r);
+      n === "warn" ? typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (t + " [" + e + "]")) : typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + n + "': " + t + " [" + e + "]"));
+    }
+  }
+  /**
+   * Check whether to apply strict (LaTeX-adhering) behavior for unusual
+   * input (like `\\`).  Unlike `nonstrict`, will not throw an error;
+   * instead, "error" translates to a return value of `true`, while "ignore"
+   * translates to a return value of `false`.  May still print a warning:
+   * "warn" prints a warning and returns `false`.
+   * This is for the second category of `errorCode`s listed in the README.
+   */
+  useStrictBehavior(e, t, r) {
+    var n = this.strict;
+    if (typeof n == "function")
+      try {
+        n = n(e, t, r);
+      } catch {
+        n = "error";
+      }
+    return !n || n === "ignore" ? !1 : n === !0 || n === "error" ? !0 : n === "warn" ? (typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to 'warn': " + (t + " [" + e + "]")), !1) : (typeof console < "u" && console.warn("LaTeX-incompatible input and strict mode is set to " + ("unrecognized '" + n + "': " + t + " [" + e + "]")), !1);
+  }
+  /**
+   * Check whether to test potentially dangerous input, and return
+   * `true` (trusted) or `false` (untrusted).  The sole argument `context`
+   * should be an object with `command` field specifying the relevant LaTeX
+   * command (as a string starting with `\`), and any other arguments, etc.
+   * If `context` has a `url` field, a `protocol` field will automatically
+   * get added by this function (changing the specified object).
+   */
+  isTrusted(e) {
+    if (e.url && !e.protocol) {
+      var t = Z.protocolFromUrl(e.url);
+      if (t == null)
+        return !1;
+      e.protocol = t;
+    }
+    var r = typeof this.trust == "function" ? this.trust(e) : this.trust;
+    return !!r;
   }
 }
-const {
-  SvelteComponent: El,
-  append: H,
-  attr: S,
-  binding_callbacks: Ze,
-  check_outros: at,
-  create_component: Bl,
-  create_slot: Al,
-  destroy_component: Ml,
-  destroy_each: rt,
-  detach: w,
-  element: X,
-  empty: x,
-  ensure_array_like: ce,
-  get_all_dirty_from_scope: Nl,
-  get_slot_changes: Sl,
-  group_outros: _t,
-  init: Vl,
-  insert: p,
-  mount_component: Xl,
-  noop: pe,
-  safe_not_equal: Il,
-  set_data: A,
-  set_style: P,
-  space: V,
-  text: C,
-  toggle_class: B,
-  transition_in: Q,
-  transition_out: W,
-  update_slot_base: Zl
-} = window.__gradio__svelte__internal, { tick: Ol } = window.__gradio__svelte__internal, { onDestroy: Pl } = window.__gradio__svelte__internal, Rl = (n) => ({}), Oe = (n) => ({});
-function Pe(n, e, t) {
-  const l = n.slice();
-  return l[38] = e[t], l[40] = t, l;
-}
-function Re(n, e, t) {
-  const l = n.slice();
-  return l[38] = e[t], l;
-}
-function jl(n) {
-  let e, t = (
+class a0 {
+  constructor(e, t, r) {
+    this.id = void 0, this.size = void 0, this.cramped = void 0, this.id = e, this.size = t, this.cramped = r;
+  }
+  /**
+   * Get the style of a superscript given a base in the current style.
+   */
+  sup() {
+    return Bt[Bu[this.id]];
+  }
+  /**
+   * Get the style of a subscript given a base in the current style.
+   */
+  sub() {
+    return Bt[Ru[this.id]];
+  }
+  /**
+   * Get the style of a fraction numerator given the fraction in the current
+   * style.
+   */
+  fracNum() {
+    return Bt[Nu[this.id]];
+  }
+  /**
+   * Get the style of a fraction denominator given the fraction in the current
+   * style.
+   */
+  fracDen() {
+    return Bt[Lu[this.id]];
+  }
+  /**
+   * Get the cramped version of a style (in particular, cramping a cramped style
+   * doesn't change the style).
+   */
+  cramp() {
+    return Bt[Iu[this.id]];
+  }
+  /**
+   * Get a text or display version of this style.
+   */
+  text() {
+    return Bt[Ou[this.id]];
+  }
+  /**
+   * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)
+   */
+  isTight() {
+    return this.size >= 2;
+  }
+}
+var sn = 0, Pr = 1, M0 = 2, $t = 3, J0 = 4, ut = 5, B0 = 6, Ue = 7, Bt = [new a0(sn, 0, !1), new a0(Pr, 0, !0), new a0(M0, 1, !1), new a0($t, 1, !0), new a0(J0, 2, !1), new a0(ut, 2, !0), new a0(B0, 3, !1), new a0(Ue, 3, !0)], Bu = [J0, ut, J0, ut, B0, Ue, B0, Ue], Ru = [ut, ut, ut, ut, Ue, Ue, Ue, Ue], Nu = [M0, $t, J0, ut, B0, Ue, B0, Ue], Lu = [$t, $t, ut, ut, Ue, Ue, Ue, Ue], Iu = [Pr, Pr, $t, $t, ut, ut, Ue, Ue], Ou = [sn, Pr, M0, $t, M0, $t, M0, $t], $ = {
+  DISPLAY: Bt[sn],
+  TEXT: Bt[M0],
+  SCRIPT: Bt[J0],
+  SCRIPTSCRIPT: Bt[B0]
+}, Ia = [{
+  // 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 qu(a) {
+  for (var e = 0; e < Ia.length; e++)
+    for (var t = Ia[e], r = 0; r < t.blocks.length; r++) {
+      var n = t.blocks[r];
+      if (a >= n[0] && a <= n[1])
+        return t.name;
+    }
+  return null;
+}
+var Br = [];
+Ia.forEach((a) => a.blocks.forEach((e) => Br.push(...e)));
+function rl(a) {
+  for (var e = 0; e < Br.length; e += 2)
+    if (a >= Br[e] && a <= Br[e + 1])
+      return !0;
+  return !1;
+}
+var S0 = 80, Pu = function(e, t) {
+  return "M95," + (622 + e + t) + `
+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` + e / 2.075 + " -" + e + `
+c5.3,-9.3,12,-14,20,-14
+H400000v` + (40 + e) + `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 + e) + " " + t + "h400000v" + (40 + e) + "h-400000z";
+}, Hu = function(e, t) {
+  return "M263," + (601 + e + t) + `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` + e / 2.084 + " -" + e + `
+c4.7,-7.3,11,-11,19,-11
+H40000v` + (40 + e) + `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 + e) + " " + t + "h400000v" + (40 + e) + "h-400000z";
+}, Uu = function(e, t) {
+  return "M983 " + (10 + e + t) + `
+l` + e / 3.13 + " -" + e + `
+c4,-6.7,10,-10,18,-10 H400000v` + (40 + e) + `
+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 + e) + " " + t + "h400000v" + (40 + e) + "h-400000z";
+}, Gu = function(e, t) {
+  return "M424," + (2398 + e + t) + `
+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` + e / 4.223 + " -" + e + `c4,-6.7,10,-10,18,-10 H400000
+v` + (40 + e) + `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 + e) + " " + t + `
+h400000v` + (40 + e) + "h-400000z";
+}, Vu = function(e, t) {
+  return "M473," + (2713 + e + t) + `
+c339.3,-1799.3,509.3,-2700,510,-2702 l` + e / 5.298 + " -" + e + `
+c3.3,-7.3,9.3,-11,18,-11 H400000v` + (40 + e) + `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 + e) + " " + t + "h400000v" + (40 + e) + "H1017.7z";
+}, Wu = function(e) {
+  var t = e / 2;
+  return "M400000 " + e + " H0 L" + t + " 0 l65 45 L145 " + (e - 80) + " H400000z";
+}, Xu = function(e, t, r) {
+  var n = r - 54 - t - e;
+  return "M702 " + (e + t) + "H400000" + (40 + e) + `
+H742v` + n + `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 ` + t + "H400000v" + (40 + e) + "H742z";
+}, Yu = function(e, t, r) {
+  t = 1e3 * t;
+  var n = "";
+  switch (e) {
+    case "sqrtMain":
+      n = Pu(t, S0);
+      break;
+    case "sqrtSize1":
+      n = Hu(t, S0);
+      break;
+    case "sqrtSize2":
+      n = Uu(t, S0);
+      break;
+    case "sqrtSize3":
+      n = Gu(t, S0);
+      break;
+    case "sqrtSize4":
+      n = Vu(t, S0);
+      break;
+    case "sqrtTall":
+      n = Xu(t, S0, r);
+  }
+  return n;
+}, ju = function(e, t) {
+  switch (e) {
+    case "⎜":
+      return "M291 0 H417 V" + t + " H291z M291 0 H417 V" + t + " H291z";
+    case "∣":
+      return "M145 0 H188 V" + t + " H145z M145 0 H188 V" + t + " H145z";
+    case "∥":
+      return "M145 0 H188 V" + t + " H145z M145 0 H188 V" + t + " H145z" + ("M367 0 H410 V" + t + " H367z M367 0 H410 V" + t + " H367z");
+    case "⎟":
+      return "M457 0 H583 V" + t + " H457z M457 0 H583 V" + t + " H457z";
+    case "⎢":
+      return "M319 0 H403 V" + t + " H319z M319 0 H403 V" + t + " H319z";
+    case "⎥":
+      return "M263 0 H347 V" + t + " H263z M263 0 H347 V" + t + " H263z";
+    case "⎪":
+      return "M384 0 H504 V" + t + " H384z M384 0 H504 V" + t + " H384z";
+    case "⏐":
+      return "M312 0 H355 V" + t + " H312z M312 0 H355 V" + t + " H312z";
+    case "‖":
+      return "M257 0 H300 V" + t + " H257z M257 0 H300 V" + t + " H257z" + ("M478 0 H521 V" + t + " H478z M478 0 H521 V" + t + " H478z");
+    default:
+      return "";
+  }
+}, li = {
+  // 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`
+}, Zu = function(e, t) {
+  switch (e) {
+    case "lbrack":
+      return "M403 1759 V84 H666 V0 H319 V1759 v" + t + ` v1759 h347 v-84
+H403z M403 1759 V0 H319 V1759 v` + t + " v1759 h84z";
+    case "rbrack":
+      return "M347 1759 V0 H0 V84 H263 V1759 v" + t + ` v1759 H0 v84 H347z
+M347 1759 V0 H263 V1759 v` + t + " v1759 h84z";
+    case "vert":
+      return "M145 15 v585 v" + t + ` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v` + -t + ` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` + t + " v585 h43z";
+    case "doublevert":
+      return "M145 15 v585 v" + t + ` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v` + -t + ` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v` + t + ` v585 h43z
+M367 15 v585 v` + t + ` v585 c2.667,10,9.667,15,21,15
+c10,0,16.667,-5,20,-15 v-585 v` + -t + ` v-585 c-2.667,-10,-9.667,-15,-21,-15
+c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v` + t + " v585 h43z";
+    case "lfloor":
+      return "M319 602 V0 H403 V602 v" + t + ` v1715 h263 v84 H319z
+MM319 602 V0 H403 V602 v` + t + " v1715 H319z";
+    case "rfloor":
+      return "M319 602 V0 H403 V602 v" + t + ` v1799 H0 v-84 H319z
+MM319 602 V0 H403 V602 v` + t + " v1715 H319z";
+    case "lceil":
+      return "M403 1759 V84 H666 V0 H319 V1759 v" + t + ` v602 h84z
+M403 1759 V0 H319 V1759 v` + t + " v602 h84z";
+    case "rceil":
+      return "M347 1759 V0 H0 V84 H263 V1759 v" + t + ` v602 h84z
+M347 1759 V0 h-84 V1759 v` + t + " 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,` + (t + 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,-` + (t + 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,` + (t + 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,-` + (t + 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.");
+  }
+};
+class rr {
+  // HtmlDomNode
+  // Never used; needed for satisfying interface.
+  constructor(e) {
+    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 = e, this.classes = [], this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = {};
+  }
+  hasClass(e) {
+    return Z.contains(this.classes, e);
+  }
+  /** Convert the fragment into a node. */
+  toNode() {
+    for (var e = document.createDocumentFragment(), t = 0; t < this.children.length; t++)
+      e.appendChild(this.children[t].toNode());
+    return e;
+  }
+  /** Convert the fragment into HTML markup. */
+  toMarkup() {
+    for (var e = "", t = 0; t < this.children.length; t++)
+      e += this.children[t].toMarkup();
+    return e;
+  }
+  /**
+   * Converts the math node into a string, similar to innerText. Applies to
+   * MathDomNode's only.
+   */
+  toText() {
+    var e = (t) => t.toText();
+    return this.children.map(e).join("");
+  }
+}
+var Rt = {
+  "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]
+  }
+}, fr = {
+  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.scss; 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
+}, oi = {
+  // 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 Ku(a, e) {
+  Rt[a] = e;
+}
+function ln(a, e, t) {
+  if (!Rt[e])
+    throw new Error("Font metrics not found for font: " + e + ".");
+  var r = a.charCodeAt(0), n = Rt[e][r];
+  if (!n && a[0] in oi && (r = oi[a[0]].charCodeAt(0), n = Rt[e][r]), !n && t === "text" && rl(r) && (n = Rt[e][77]), n)
+    return {
+      depth: n[0],
+      height: n[1],
+      italic: n[2],
+      skew: n[3],
+      width: n[4]
+    };
+}
+var ca = {};
+function $u(a) {
+  var e;
+  if (a >= 5 ? e = 0 : a >= 3 ? e = 1 : e = 2, !ca[e]) {
+    var t = ca[e] = {
+      cssEmPerMu: fr.quad[e] / 18
+    };
+    for (var r in fr)
+      fr.hasOwnProperty(r) && (t[r] = fr[r][e]);
+  }
+  return ca[e];
+}
+var Qu = [
+  // 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
+], ui = [
+  // 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
+], ci = function(e, t) {
+  return t.size < 2 ? e : Qu[e - 1][t.size - 1];
+};
+class Kt {
+  // A font family applies to a group of fonts (i.e. SansSerif), while a font
+  // represents a specific font (i.e. SansSerif Bold).
+  // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm
+  /**
+   * The base size index.
+   */
+  constructor(e) {
+    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 = e.style, this.color = e.color, this.size = e.size || Kt.BASESIZE, this.textSize = e.textSize || this.size, this.phantom = !!e.phantom, this.font = e.font || "", this.fontFamily = e.fontFamily || "", this.fontWeight = e.fontWeight || "", this.fontShape = e.fontShape || "", this.sizeMultiplier = ui[this.size - 1], this.maxSize = e.maxSize, this.minRuleThickness = e.minRuleThickness, this._fontMetrics = void 0;
+  }
+  /**
+   * Returns a new options object with the same properties as "this".  Properties
+   * from "extension" will be copied to the new options object.
+   */
+  extend(e) {
+    var t = {
+      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 r in e)
+      e.hasOwnProperty(r) && (t[r] = e[r]);
+    return new Kt(t);
+  }
+  /**
+   * Return an options object with the given style. If `this.style === style`,
+   * returns `this`.
+   */
+  havingStyle(e) {
+    return this.style === e ? this : this.extend({
+      style: e,
+      size: ci(this.textSize, e)
+    });
+  }
+  /**
+   * Return an options object with a cramped version of the current style. If
+   * the current style is cramped, returns `this`.
+   */
+  havingCrampedStyle() {
+    return this.havingStyle(this.style.cramp());
+  }
+  /**
+   * Return an options object with the given size and in at least `\textstyle`.
+   * Returns `this` if appropriate.
+   */
+  havingSize(e) {
+    return this.size === e && this.textSize === e ? this : this.extend({
+      style: this.style.text(),
+      size: e,
+      textSize: e,
+      sizeMultiplier: ui[e - 1]
+    });
+  }
+  /**
+   * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,
+   * changes to at least `\textstyle`.
+   */
+  havingBaseStyle(e) {
+    e = e || this.style.text();
+    var t = ci(Kt.BASESIZE, e);
+    return this.size === t && this.textSize === Kt.BASESIZE && this.style === e ? this : this.extend({
+      style: e,
+      size: t
+    });
+  }
+  /**
+   * Remove the effect of sizing changes such as \Huge.
+   * Keep the effect of the current style, such as \scriptstyle.
+   */
+  havingBaseSizing() {
+    var e;
+    switch (this.style.id) {
+      case 4:
+      case 5:
+        e = 3;
+        break;
+      case 6:
+      case 7:
+        e = 1;
+        break;
+      default:
+        e = 6;
+    }
+    return this.extend({
+      style: this.style.text(),
+      size: e
+    });
+  }
+  /**
+   * Create a new options object with the given color.
+   */
+  withColor(e) {
+    return this.extend({
+      color: e
+    });
+  }
+  /**
+   * Create a new options object with "phantom" set to true.
+   */
+  withPhantom() {
+    return this.extend({
+      phantom: !0
+    });
+  }
+  /**
+   * Creates a new options object with the given math font or old text font.
+   * @type {[type]}
+   */
+  withFont(e) {
+    return this.extend({
+      font: e
+    });
+  }
+  /**
+   * Create a new options objects with the given fontFamily.
+   */
+  withTextFontFamily(e) {
+    return this.extend({
+      fontFamily: e,
+      font: ""
+    });
+  }
+  /**
+   * Creates a new options object with the given font weight
+   */
+  withTextFontWeight(e) {
+    return this.extend({
+      fontWeight: e,
+      font: ""
+    });
+  }
+  /**
+   * Creates a new options object with the given font weight
+   */
+  withTextFontShape(e) {
+    return this.extend({
+      fontShape: e,
+      font: ""
+    });
+  }
+  /**
+   * Return the CSS sizing classes required to switch from enclosing options
+   * `oldOptions` to `this`. Returns an array of classes.
+   */
+  sizingClasses(e) {
+    return e.size !== this.size ? ["sizing", "reset-size" + e.size, "size" + this.size] : [];
+  }
+  /**
+   * Return the CSS sizing classes required to switch to the base size. Like
+   * `this.havingSize(BASESIZE).sizingClasses(this)`.
+   */
+  baseSizingClasses() {
+    return this.size !== Kt.BASESIZE ? ["sizing", "reset-size" + this.size, "size" + Kt.BASESIZE] : [];
+  }
+  /**
+   * Return the font metrics for this size.
+   */
+  fontMetrics() {
+    return this._fontMetrics || (this._fontMetrics = $u(this.size)), this._fontMetrics;
+  }
+  /**
+   * Gets the CSS color of the current options object
+   */
+  getColor() {
+    return this.phantom ? "transparent" : this.color;
+  }
+}
+Kt.BASESIZE = 6;
+var Oa = {
+  // 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
+}, Ju = {
+  ex: !0,
+  em: !0,
+  mu: !0
+}, al = function(e) {
+  return typeof e != "string" && (e = e.unit), e in Oa || e in Ju || e === "ex";
+}, xe = function(e, t) {
+  var r;
+  if (e.unit in Oa)
+    r = Oa[e.unit] / t.fontMetrics().ptPerEm / t.sizeMultiplier;
+  else if (e.unit === "mu")
+    r = t.fontMetrics().cssEmPerMu;
+  else {
+    var n;
+    if (t.style.isTight() ? n = t.havingStyle(t.style.text()) : n = t, e.unit === "ex")
+      r = n.fontMetrics().xHeight;
+    else if (e.unit === "em")
+      r = n.fontMetrics().quad;
+    else
+      throw new I("Invalid unit: '" + e.unit + "'");
+    n !== t && (r *= n.sizeMultiplier / t.sizeMultiplier);
+  }
+  return Math.min(e.number * r, t.maxSize);
+}, H = function(e) {
+  return +e.toFixed(4) + "em";
+}, u0 = function(e) {
+  return e.filter((t) => t).join(" ");
+}, nl = function(e, t, r) {
+  if (this.classes = e || [], this.attributes = {}, this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = r || {}, t) {
+    t.style.isTight() && this.classes.push("mtight");
+    var n = t.getColor();
+    n && (this.style.color = n);
+  }
+}, il = function(e) {
+  var t = document.createElement(e);
+  t.className = u0(this.classes);
+  for (var r in this.style)
+    this.style.hasOwnProperty(r) && (t.style[r] = this.style[r]);
+  for (var n in this.attributes)
+    this.attributes.hasOwnProperty(n) && t.setAttribute(n, this.attributes[n]);
+  for (var i = 0; i < this.children.length; i++)
+    t.appendChild(this.children[i].toNode());
+  return t;
+}, sl = function(e) {
+  var t = "<" + e;
+  this.classes.length && (t += ' class="' + Z.escape(u0(this.classes)) + '"');
+  var r = "";
+  for (var n in this.style)
+    this.style.hasOwnProperty(n) && (r += Z.hyphenate(n) + ":" + this.style[n] + ";");
+  r && (t += ' style="' + Z.escape(r) + '"');
+  for (var i in this.attributes)
+    this.attributes.hasOwnProperty(i) && (t += " " + i + '="' + Z.escape(this.attributes[i]) + '"');
+  t += ">";
+  for (var s = 0; s < this.children.length; s++)
+    t += this.children[s].toMarkup();
+  return t += "</" + e + ">", t;
+};
+class ar {
+  constructor(e, t, r, n) {
+    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, nl.call(this, e, r, n), this.children = t || [];
+  }
+  /**
+   * Sets an arbitrary attribute on the span. Warning: use this wisely. Not
+   * all browsers support attributes the same, and having too many custom
+   * attributes is probably bad.
+   */
+  setAttribute(e, t) {
+    this.attributes[e] = t;
+  }
+  hasClass(e) {
+    return Z.contains(this.classes, e);
+  }
+  toNode() {
+    return il.call(this, "span");
+  }
+  toMarkup() {
+    return sl.call(this, "span");
+  }
+}
+class on {
+  constructor(e, t, r, n) {
+    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, nl.call(this, t, n), this.children = r || [], this.setAttribute("href", e);
+  }
+  setAttribute(e, t) {
+    this.attributes[e] = t;
+  }
+  hasClass(e) {
+    return Z.contains(this.classes, e);
+  }
+  toNode() {
+    return il.call(this, "a");
+  }
+  toMarkup() {
+    return sl.call(this, "a");
+  }
+}
+class e1 {
+  constructor(e, t, r) {
+    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 = t, this.src = e, this.classes = ["mord"], this.style = r;
+  }
+  hasClass(e) {
+    return Z.contains(this.classes, e);
+  }
+  toNode() {
+    var e = document.createElement("img");
+    e.src = this.src, e.alt = this.alt, e.className = "mord";
+    for (var t in this.style)
+      this.style.hasOwnProperty(t) && (e.style[t] = this.style[t]);
+    return e;
+  }
+  toMarkup() {
+    var e = '<img src="' + Z.escape(this.src) + '"' + (' alt="' + Z.escape(this.alt) + '"'), t = "";
+    for (var r in this.style)
+      this.style.hasOwnProperty(r) && (t += Z.hyphenate(r) + ":" + this.style[r] + ";");
+    return t && (e += ' style="' + Z.escape(t) + '"'), e += "'/>", e;
+  }
+}
+var t1 = {
+  î: "ı̂",
+  ï: "ı̈",
+  í: "ı́",
+  // 'ī': '\u0131\u0304', // enable when we add Extended Latin
+  ì: "ı̀"
+};
+class ft {
+  constructor(e, t, r, n, i, s, l, o) {
+    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 = e, this.height = t || 0, this.depth = r || 0, this.italic = n || 0, this.skew = i || 0, this.width = s || 0, this.classes = l || [], this.style = o || {}, this.maxFontSize = 0;
+    var h = qu(this.text.charCodeAt(0));
+    h && this.classes.push(h + "_fallback"), /[îïíì]/.test(this.text) && (this.text = t1[this.text]);
+  }
+  hasClass(e) {
+    return Z.contains(this.classes, e);
+  }
+  /**
+   * Creates a text node or span from a symbol node. Note that a span is only
+   * created if it is needed.
+   */
+  toNode() {
+    var e = document.createTextNode(this.text), t = null;
+    this.italic > 0 && (t = document.createElement("span"), t.style.marginRight = H(this.italic)), this.classes.length > 0 && (t = t || document.createElement("span"), t.className = u0(this.classes));
+    for (var r in this.style)
+      this.style.hasOwnProperty(r) && (t = t || document.createElement("span"), t.style[r] = this.style[r]);
+    return t ? (t.appendChild(e), t) : e;
+  }
+  /**
+   * Creates markup for a symbol node.
+   */
+  toMarkup() {
+    var e = !1, t = "<span";
+    this.classes.length && (e = !0, t += ' class="', t += Z.escape(u0(this.classes)), t += '"');
+    var r = "";
+    this.italic > 0 && (r += "margin-right:" + this.italic + "em;");
+    for (var n in this.style)
+      this.style.hasOwnProperty(n) && (r += Z.hyphenate(n) + ":" + this.style[n] + ";");
+    r && (e = !0, t += ' style="' + Z.escape(r) + '"');
+    var i = Z.escape(this.text);
+    return e ? (t += ">", t += i, t += "</span>", t) : i;
+  }
+}
+class Jt {
+  constructor(e, t) {
+    this.children = void 0, this.attributes = void 0, this.children = e || [], this.attributes = t || {};
+  }
+  toNode() {
+    var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "svg");
+    for (var r in this.attributes)
+      Object.prototype.hasOwnProperty.call(this.attributes, r) && t.setAttribute(r, this.attributes[r]);
+    for (var n = 0; n < this.children.length; n++)
+      t.appendChild(this.children[n].toNode());
+    return t;
+  }
+  toMarkup() {
+    var e = '<svg xmlns="http://www.w3.org/2000/svg"';
+    for (var t in this.attributes)
+      Object.prototype.hasOwnProperty.call(this.attributes, t) && (e += " " + t + '="' + Z.escape(this.attributes[t]) + '"');
+    e += ">";
+    for (var r = 0; r < this.children.length; r++)
+      e += this.children[r].toMarkup();
+    return e += "</svg>", e;
+  }
+}
+class c0 {
+  constructor(e, t) {
+    this.pathName = void 0, this.alternate = void 0, this.pathName = e, this.alternate = t;
+  }
+  toNode() {
+    var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "path");
+    return this.alternate ? t.setAttribute("d", this.alternate) : t.setAttribute("d", li[this.pathName]), t;
+  }
+  toMarkup() {
+    return this.alternate ? '<path d="' + Z.escape(this.alternate) + '"/>' : '<path d="' + Z.escape(li[this.pathName]) + '"/>';
+  }
+}
+class qa {
+  constructor(e) {
+    this.attributes = void 0, this.attributes = e || {};
+  }
+  toNode() {
+    var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "line");
+    for (var r in this.attributes)
+      Object.prototype.hasOwnProperty.call(this.attributes, r) && t.setAttribute(r, this.attributes[r]);
+    return t;
+  }
+  toMarkup() {
+    var e = "<line";
+    for (var t in this.attributes)
+      Object.prototype.hasOwnProperty.call(this.attributes, t) && (e += " " + t + '="' + Z.escape(this.attributes[t]) + '"');
+    return e += "/>", e;
+  }
+}
+function hi(a) {
+  if (a instanceof ft)
+    return a;
+  throw new Error("Expected symbolNode but got " + String(a) + ".");
+}
+function r1(a) {
+  if (a instanceof ar)
+    return a;
+  throw new Error("Expected span<HtmlDomNode> but got " + String(a) + ".");
+}
+var a1 = {
+  bin: 1,
+  close: 1,
+  inner: 1,
+  open: 1,
+  punct: 1,
+  rel: 1
+}, n1 = {
+  "accent-token": 1,
+  mathord: 1,
+  "op-token": 1,
+  spacing: 1,
+  textord: 1
+}, pe = {
+  math: {},
+  text: {}
+};
+function u(a, e, t, r, n, i) {
+  pe[a][n] = {
+    font: e,
+    group: t,
+    replace: r
+  }, i && r && (pe[a][r] = pe[a][n]);
+}
+var c = "math", N = "text", f = "main", y = "ams", ve = "accent-token", G = "bin", Ve = "close", R0 = "inner", K = "mathord", Ee = "op-token", at = "open", Zr = "punct", w = "rel", r0 = "spacing", k = "textord";
+u(c, f, w, "≡", "\\equiv", !0);
+u(c, f, w, "≺", "\\prec", !0);
+u(c, f, w, "≻", "\\succ", !0);
+u(c, f, w, "∼", "\\sim", !0);
+u(c, f, w, "⊥", "\\perp");
+u(c, f, w, "⪯", "\\preceq", !0);
+u(c, f, w, "⪰", "\\succeq", !0);
+u(c, f, w, "≃", "\\simeq", !0);
+u(c, f, w, "∣", "\\mid", !0);
+u(c, f, w, "≪", "\\ll", !0);
+u(c, f, w, "≫", "\\gg", !0);
+u(c, f, w, "≍", "\\asymp", !0);
+u(c, f, w, "∥", "\\parallel");
+u(c, f, w, "⋈", "\\bowtie", !0);
+u(c, f, w, "⌣", "\\smile", !0);
+u(c, f, w, "⊑", "\\sqsubseteq", !0);
+u(c, f, w, "⊒", "\\sqsupseteq", !0);
+u(c, f, w, "≐", "\\doteq", !0);
+u(c, f, w, "⌢", "\\frown", !0);
+u(c, f, w, "∋", "\\ni", !0);
+u(c, f, w, "∝", "\\propto", !0);
+u(c, f, w, "⊢", "\\vdash", !0);
+u(c, f, w, "⊣", "\\dashv", !0);
+u(c, f, w, "∋", "\\owns");
+u(c, f, Zr, ".", "\\ldotp");
+u(c, f, Zr, "⋅", "\\cdotp");
+u(c, f, k, "#", "\\#");
+u(N, f, k, "#", "\\#");
+u(c, f, k, "&", "\\&");
+u(N, f, k, "&", "\\&");
+u(c, f, k, "ℵ", "\\aleph", !0);
+u(c, f, k, "∀", "\\forall", !0);
+u(c, f, k, "ℏ", "\\hbar", !0);
+u(c, f, k, "∃", "\\exists", !0);
+u(c, f, k, "∇", "\\nabla", !0);
+u(c, f, k, "♭", "\\flat", !0);
+u(c, f, k, "ℓ", "\\ell", !0);
+u(c, f, k, "♮", "\\natural", !0);
+u(c, f, k, "♣", "\\clubsuit", !0);
+u(c, f, k, "℘", "\\wp", !0);
+u(c, f, k, "♯", "\\sharp", !0);
+u(c, f, k, "♢", "\\diamondsuit", !0);
+u(c, f, k, "ℜ", "\\Re", !0);
+u(c, f, k, "♡", "\\heartsuit", !0);
+u(c, f, k, "ℑ", "\\Im", !0);
+u(c, f, k, "♠", "\\spadesuit", !0);
+u(c, f, k, "§", "\\S", !0);
+u(N, f, k, "§", "\\S");
+u(c, f, k, "¶", "\\P", !0);
+u(N, f, k, "¶", "\\P");
+u(c, f, k, "†", "\\dag");
+u(N, f, k, "†", "\\dag");
+u(N, f, k, "†", "\\textdagger");
+u(c, f, k, "‡", "\\ddag");
+u(N, f, k, "‡", "\\ddag");
+u(N, f, k, "‡", "\\textdaggerdbl");
+u(c, f, Ve, "⎱", "\\rmoustache", !0);
+u(c, f, at, "⎰", "\\lmoustache", !0);
+u(c, f, Ve, "⟯", "\\rgroup", !0);
+u(c, f, at, "⟮", "\\lgroup", !0);
+u(c, f, G, "∓", "\\mp", !0);
+u(c, f, G, "⊖", "\\ominus", !0);
+u(c, f, G, "⊎", "\\uplus", !0);
+u(c, f, G, "⊓", "\\sqcap", !0);
+u(c, f, G, "∗", "\\ast");
+u(c, f, G, "⊔", "\\sqcup", !0);
+u(c, f, G, "◯", "\\bigcirc", !0);
+u(c, f, G, "∙", "\\bullet", !0);
+u(c, f, G, "‡", "\\ddagger");
+u(c, f, G, "≀", "\\wr", !0);
+u(c, f, G, "⨿", "\\amalg");
+u(c, f, G, "&", "\\And");
+u(c, f, w, "⟵", "\\longleftarrow", !0);
+u(c, f, w, "⇐", "\\Leftarrow", !0);
+u(c, f, w, "⟸", "\\Longleftarrow", !0);
+u(c, f, w, "⟶", "\\longrightarrow", !0);
+u(c, f, w, "⇒", "\\Rightarrow", !0);
+u(c, f, w, "⟹", "\\Longrightarrow", !0);
+u(c, f, w, "↔", "\\leftrightarrow", !0);
+u(c, f, w, "⟷", "\\longleftrightarrow", !0);
+u(c, f, w, "⇔", "\\Leftrightarrow", !0);
+u(c, f, w, "⟺", "\\Longleftrightarrow", !0);
+u(c, f, w, "↦", "\\mapsto", !0);
+u(c, f, w, "⟼", "\\longmapsto", !0);
+u(c, f, w, "↗", "\\nearrow", !0);
+u(c, f, w, "↩", "\\hookleftarrow", !0);
+u(c, f, w, "↪", "\\hookrightarrow", !0);
+u(c, f, w, "↘", "\\searrow", !0);
+u(c, f, w, "↼", "\\leftharpoonup", !0);
+u(c, f, w, "⇀", "\\rightharpoonup", !0);
+u(c, f, w, "↙", "\\swarrow", !0);
+u(c, f, w, "↽", "\\leftharpoondown", !0);
+u(c, f, w, "⇁", "\\rightharpoondown", !0);
+u(c, f, w, "↖", "\\nwarrow", !0);
+u(c, f, w, "⇌", "\\rightleftharpoons", !0);
+u(c, y, w, "≮", "\\nless", !0);
+u(c, y, w, "", "\\@nleqslant");
+u(c, y, w, "", "\\@nleqq");
+u(c, y, w, "⪇", "\\lneq", !0);
+u(c, y, w, "≨", "\\lneqq", !0);
+u(c, y, w, "", "\\@lvertneqq");
+u(c, y, w, "⋦", "\\lnsim", !0);
+u(c, y, w, "⪉", "\\lnapprox", !0);
+u(c, y, w, "⊀", "\\nprec", !0);
+u(c, y, w, "⋠", "\\npreceq", !0);
+u(c, y, w, "⋨", "\\precnsim", !0);
+u(c, y, w, "⪹", "\\precnapprox", !0);
+u(c, y, w, "≁", "\\nsim", !0);
+u(c, y, w, "", "\\@nshortmid");
+u(c, y, w, "∤", "\\nmid", !0);
+u(c, y, w, "⊬", "\\nvdash", !0);
+u(c, y, w, "⊭", "\\nvDash", !0);
+u(c, y, w, "⋪", "\\ntriangleleft");
+u(c, y, w, "⋬", "\\ntrianglelefteq", !0);
+u(c, y, w, "⊊", "\\subsetneq", !0);
+u(c, y, w, "", "\\@varsubsetneq");
+u(c, y, w, "⫋", "\\subsetneqq", !0);
+u(c, y, w, "", "\\@varsubsetneqq");
+u(c, y, w, "≯", "\\ngtr", !0);
+u(c, y, w, "", "\\@ngeqslant");
+u(c, y, w, "", "\\@ngeqq");
+u(c, y, w, "⪈", "\\gneq", !0);
+u(c, y, w, "≩", "\\gneqq", !0);
+u(c, y, w, "", "\\@gvertneqq");
+u(c, y, w, "⋧", "\\gnsim", !0);
+u(c, y, w, "⪊", "\\gnapprox", !0);
+u(c, y, w, "⊁", "\\nsucc", !0);
+u(c, y, w, "⋡", "\\nsucceq", !0);
+u(c, y, w, "⋩", "\\succnsim", !0);
+u(c, y, w, "⪺", "\\succnapprox", !0);
+u(c, y, w, "≆", "\\ncong", !0);
+u(c, y, w, "", "\\@nshortparallel");
+u(c, y, w, "∦", "\\nparallel", !0);
+u(c, y, w, "⊯", "\\nVDash", !0);
+u(c, y, w, "⋫", "\\ntriangleright");
+u(c, y, w, "⋭", "\\ntrianglerighteq", !0);
+u(c, y, w, "", "\\@nsupseteqq");
+u(c, y, w, "⊋", "\\supsetneq", !0);
+u(c, y, w, "", "\\@varsupsetneq");
+u(c, y, w, "⫌", "\\supsetneqq", !0);
+u(c, y, w, "", "\\@varsupsetneqq");
+u(c, y, w, "⊮", "\\nVdash", !0);
+u(c, y, w, "⪵", "\\precneqq", !0);
+u(c, y, w, "⪶", "\\succneqq", !0);
+u(c, y, w, "", "\\@nsubseteqq");
+u(c, y, G, "⊴", "\\unlhd");
+u(c, y, G, "⊵", "\\unrhd");
+u(c, y, w, "↚", "\\nleftarrow", !0);
+u(c, y, w, "↛", "\\nrightarrow", !0);
+u(c, y, w, "⇍", "\\nLeftarrow", !0);
+u(c, y, w, "⇏", "\\nRightarrow", !0);
+u(c, y, w, "↮", "\\nleftrightarrow", !0);
+u(c, y, w, "⇎", "\\nLeftrightarrow", !0);
+u(c, y, w, "△", "\\vartriangle");
+u(c, y, k, "ℏ", "\\hslash");
+u(c, y, k, "▽", "\\triangledown");
+u(c, y, k, "◊", "\\lozenge");
+u(c, y, k, "Ⓢ", "\\circledS");
+u(c, y, k, "®", "\\circledR");
+u(N, y, k, "®", "\\circledR");
+u(c, y, k, "∡", "\\measuredangle", !0);
+u(c, y, k, "∄", "\\nexists");
+u(c, y, k, "℧", "\\mho");
+u(c, y, k, "Ⅎ", "\\Finv", !0);
+u(c, y, k, "⅁", "\\Game", !0);
+u(c, y, k, "‵", "\\backprime");
+u(c, y, k, "▲", "\\blacktriangle");
+u(c, y, k, "▼", "\\blacktriangledown");
+u(c, y, k, "■", "\\blacksquare");
+u(c, y, k, "⧫", "\\blacklozenge");
+u(c, y, k, "★", "\\bigstar");
+u(c, y, k, "∢", "\\sphericalangle", !0);
+u(c, y, k, "∁", "\\complement", !0);
+u(c, y, k, "ð", "\\eth", !0);
+u(N, f, k, "ð", "ð");
+u(c, y, k, "╱", "\\diagup");
+u(c, y, k, "╲", "\\diagdown");
+u(c, y, k, "□", "\\square");
+u(c, y, k, "□", "\\Box");
+u(c, y, k, "◊", "\\Diamond");
+u(c, y, k, "¥", "\\yen", !0);
+u(N, y, k, "¥", "\\yen", !0);
+u(c, y, k, "✓", "\\checkmark", !0);
+u(N, y, k, "✓", "\\checkmark");
+u(c, y, k, "ℶ", "\\beth", !0);
+u(c, y, k, "ℸ", "\\daleth", !0);
+u(c, y, k, "ℷ", "\\gimel", !0);
+u(c, y, k, "ϝ", "\\digamma", !0);
+u(c, y, k, "ϰ", "\\varkappa");
+u(c, y, at, "┌", "\\@ulcorner", !0);
+u(c, y, Ve, "┐", "\\@urcorner", !0);
+u(c, y, at, "└", "\\@llcorner", !0);
+u(c, y, Ve, "┘", "\\@lrcorner", !0);
+u(c, y, w, "≦", "\\leqq", !0);
+u(c, y, w, "⩽", "\\leqslant", !0);
+u(c, y, w, "⪕", "\\eqslantless", !0);
+u(c, y, w, "≲", "\\lesssim", !0);
+u(c, y, w, "⪅", "\\lessapprox", !0);
+u(c, y, w, "≊", "\\approxeq", !0);
+u(c, y, G, "⋖", "\\lessdot");
+u(c, y, w, "⋘", "\\lll", !0);
+u(c, y, w, "≶", "\\lessgtr", !0);
+u(c, y, w, "⋚", "\\lesseqgtr", !0);
+u(c, y, w, "⪋", "\\lesseqqgtr", !0);
+u(c, y, w, "≑", "\\doteqdot");
+u(c, y, w, "≓", "\\risingdotseq", !0);
+u(c, y, w, "≒", "\\fallingdotseq", !0);
+u(c, y, w, "∽", "\\backsim", !0);
+u(c, y, w, "⋍", "\\backsimeq", !0);
+u(c, y, w, "⫅", "\\subseteqq", !0);
+u(c, y, w, "⋐", "\\Subset", !0);
+u(c, y, w, "⊏", "\\sqsubset", !0);
+u(c, y, w, "≼", "\\preccurlyeq", !0);
+u(c, y, w, "⋞", "\\curlyeqprec", !0);
+u(c, y, w, "≾", "\\precsim", !0);
+u(c, y, w, "⪷", "\\precapprox", !0);
+u(c, y, w, "⊲", "\\vartriangleleft");
+u(c, y, w, "⊴", "\\trianglelefteq");
+u(c, y, w, "⊨", "\\vDash", !0);
+u(c, y, w, "⊪", "\\Vvdash", !0);
+u(c, y, w, "⌣", "\\smallsmile");
+u(c, y, w, "⌢", "\\smallfrown");
+u(c, y, w, "≏", "\\bumpeq", !0);
+u(c, y, w, "≎", "\\Bumpeq", !0);
+u(c, y, w, "≧", "\\geqq", !0);
+u(c, y, w, "⩾", "\\geqslant", !0);
+u(c, y, w, "⪖", "\\eqslantgtr", !0);
+u(c, y, w, "≳", "\\gtrsim", !0);
+u(c, y, w, "⪆", "\\gtrapprox", !0);
+u(c, y, G, "⋗", "\\gtrdot");
+u(c, y, w, "⋙", "\\ggg", !0);
+u(c, y, w, "≷", "\\gtrless", !0);
+u(c, y, w, "⋛", "\\gtreqless", !0);
+u(c, y, w, "⪌", "\\gtreqqless", !0);
+u(c, y, w, "≖", "\\eqcirc", !0);
+u(c, y, w, "≗", "\\circeq", !0);
+u(c, y, w, "≜", "\\triangleq", !0);
+u(c, y, w, "∼", "\\thicksim");
+u(c, y, w, "≈", "\\thickapprox");
+u(c, y, w, "⫆", "\\supseteqq", !0);
+u(c, y, w, "⋑", "\\Supset", !0);
+u(c, y, w, "⊐", "\\sqsupset", !0);
+u(c, y, w, "≽", "\\succcurlyeq", !0);
+u(c, y, w, "⋟", "\\curlyeqsucc", !0);
+u(c, y, w, "≿", "\\succsim", !0);
+u(c, y, w, "⪸", "\\succapprox", !0);
+u(c, y, w, "⊳", "\\vartriangleright");
+u(c, y, w, "⊵", "\\trianglerighteq");
+u(c, y, w, "⊩", "\\Vdash", !0);
+u(c, y, w, "∣", "\\shortmid");
+u(c, y, w, "∥", "\\shortparallel");
+u(c, y, w, "≬", "\\between", !0);
+u(c, y, w, "⋔", "\\pitchfork", !0);
+u(c, y, w, "∝", "\\varpropto");
+u(c, y, w, "◀", "\\blacktriangleleft");
+u(c, y, w, "∴", "\\therefore", !0);
+u(c, y, w, "∍", "\\backepsilon");
+u(c, y, w, "▶", "\\blacktriangleright");
+u(c, y, w, "∵", "\\because", !0);
+u(c, y, w, "⋘", "\\llless");
+u(c, y, w, "⋙", "\\gggtr");
+u(c, y, G, "⊲", "\\lhd");
+u(c, y, G, "⊳", "\\rhd");
+u(c, y, w, "≂", "\\eqsim", !0);
+u(c, f, w, "⋈", "\\Join");
+u(c, y, w, "≑", "\\Doteq", !0);
+u(c, y, G, "∔", "\\dotplus", !0);
+u(c, y, G, "∖", "\\smallsetminus");
+u(c, y, G, "⋒", "\\Cap", !0);
+u(c, y, G, "⋓", "\\Cup", !0);
+u(c, y, G, "⩞", "\\doublebarwedge", !0);
+u(c, y, G, "⊟", "\\boxminus", !0);
+u(c, y, G, "⊞", "\\boxplus", !0);
+u(c, y, G, "⋇", "\\divideontimes", !0);
+u(c, y, G, "⋉", "\\ltimes", !0);
+u(c, y, G, "⋊", "\\rtimes", !0);
+u(c, y, G, "⋋", "\\leftthreetimes", !0);
+u(c, y, G, "⋌", "\\rightthreetimes", !0);
+u(c, y, G, "⋏", "\\curlywedge", !0);
+u(c, y, G, "⋎", "\\curlyvee", !0);
+u(c, y, G, "⊝", "\\circleddash", !0);
+u(c, y, G, "⊛", "\\circledast", !0);
+u(c, y, G, "⋅", "\\centerdot");
+u(c, y, G, "⊺", "\\intercal", !0);
+u(c, y, G, "⋒", "\\doublecap");
+u(c, y, G, "⋓", "\\doublecup");
+u(c, y, G, "⊠", "\\boxtimes", !0);
+u(c, y, w, "⇢", "\\dashrightarrow", !0);
+u(c, y, w, "⇠", "\\dashleftarrow", !0);
+u(c, y, w, "⇇", "\\leftleftarrows", !0);
+u(c, y, w, "⇆", "\\leftrightarrows", !0);
+u(c, y, w, "⇚", "\\Lleftarrow", !0);
+u(c, y, w, "↞", "\\twoheadleftarrow", !0);
+u(c, y, w, "↢", "\\leftarrowtail", !0);
+u(c, y, w, "↫", "\\looparrowleft", !0);
+u(c, y, w, "⇋", "\\leftrightharpoons", !0);
+u(c, y, w, "↶", "\\curvearrowleft", !0);
+u(c, y, w, "↺", "\\circlearrowleft", !0);
+u(c, y, w, "↰", "\\Lsh", !0);
+u(c, y, w, "⇈", "\\upuparrows", !0);
+u(c, y, w, "↿", "\\upharpoonleft", !0);
+u(c, y, w, "⇃", "\\downharpoonleft", !0);
+u(c, f, w, "⊶", "\\origof", !0);
+u(c, f, w, "⊷", "\\imageof", !0);
+u(c, y, w, "⊸", "\\multimap", !0);
+u(c, y, w, "↭", "\\leftrightsquigarrow", !0);
+u(c, y, w, "⇉", "\\rightrightarrows", !0);
+u(c, y, w, "⇄", "\\rightleftarrows", !0);
+u(c, y, w, "↠", "\\twoheadrightarrow", !0);
+u(c, y, w, "↣", "\\rightarrowtail", !0);
+u(c, y, w, "↬", "\\looparrowright", !0);
+u(c, y, w, "↷", "\\curvearrowright", !0);
+u(c, y, w, "↻", "\\circlearrowright", !0);
+u(c, y, w, "↱", "\\Rsh", !0);
+u(c, y, w, "⇊", "\\downdownarrows", !0);
+u(c, y, w, "↾", "\\upharpoonright", !0);
+u(c, y, w, "⇂", "\\downharpoonright", !0);
+u(c, y, w, "⇝", "\\rightsquigarrow", !0);
+u(c, y, w, "⇝", "\\leadsto");
+u(c, y, w, "⇛", "\\Rrightarrow", !0);
+u(c, y, w, "↾", "\\restriction");
+u(c, f, k, "‘", "`");
+u(c, f, k, "$", "\\$");
+u(N, f, k, "$", "\\$");
+u(N, f, k, "$", "\\textdollar");
+u(c, f, k, "%", "\\%");
+u(N, f, k, "%", "\\%");
+u(c, f, k, "_", "\\_");
+u(N, f, k, "_", "\\_");
+u(N, f, k, "_", "\\textunderscore");
+u(c, f, k, "∠", "\\angle", !0);
+u(c, f, k, "∞", "\\infty", !0);
+u(c, f, k, "′", "\\prime");
+u(c, f, k, "△", "\\triangle");
+u(c, f, k, "Γ", "\\Gamma", !0);
+u(c, f, k, "Δ", "\\Delta", !0);
+u(c, f, k, "Θ", "\\Theta", !0);
+u(c, f, k, "Λ", "\\Lambda", !0);
+u(c, f, k, "Ξ", "\\Xi", !0);
+u(c, f, k, "Π", "\\Pi", !0);
+u(c, f, k, "Σ", "\\Sigma", !0);
+u(c, f, k, "Υ", "\\Upsilon", !0);
+u(c, f, k, "Φ", "\\Phi", !0);
+u(c, f, k, "Ψ", "\\Psi", !0);
+u(c, f, k, "Ω", "\\Omega", !0);
+u(c, f, k, "A", "Α");
+u(c, f, k, "B", "Β");
+u(c, f, k, "E", "Ε");
+u(c, f, k, "Z", "Ζ");
+u(c, f, k, "H", "Η");
+u(c, f, k, "I", "Ι");
+u(c, f, k, "K", "Κ");
+u(c, f, k, "M", "Μ");
+u(c, f, k, "N", "Ν");
+u(c, f, k, "O", "Ο");
+u(c, f, k, "P", "Ρ");
+u(c, f, k, "T", "Τ");
+u(c, f, k, "X", "Χ");
+u(c, f, k, "¬", "\\neg", !0);
+u(c, f, k, "¬", "\\lnot");
+u(c, f, k, "⊤", "\\top");
+u(c, f, k, "⊥", "\\bot");
+u(c, f, k, "∅", "\\emptyset");
+u(c, y, k, "∅", "\\varnothing");
+u(c, f, K, "α", "\\alpha", !0);
+u(c, f, K, "β", "\\beta", !0);
+u(c, f, K, "γ", "\\gamma", !0);
+u(c, f, K, "δ", "\\delta", !0);
+u(c, f, K, "ϵ", "\\epsilon", !0);
+u(c, f, K, "ζ", "\\zeta", !0);
+u(c, f, K, "η", "\\eta", !0);
+u(c, f, K, "θ", "\\theta", !0);
+u(c, f, K, "ι", "\\iota", !0);
+u(c, f, K, "κ", "\\kappa", !0);
+u(c, f, K, "λ", "\\lambda", !0);
+u(c, f, K, "μ", "\\mu", !0);
+u(c, f, K, "ν", "\\nu", !0);
+u(c, f, K, "ξ", "\\xi", !0);
+u(c, f, K, "ο", "\\omicron", !0);
+u(c, f, K, "π", "\\pi", !0);
+u(c, f, K, "ρ", "\\rho", !0);
+u(c, f, K, "σ", "\\sigma", !0);
+u(c, f, K, "τ", "\\tau", !0);
+u(c, f, K, "υ", "\\upsilon", !0);
+u(c, f, K, "ϕ", "\\phi", !0);
+u(c, f, K, "χ", "\\chi", !0);
+u(c, f, K, "ψ", "\\psi", !0);
+u(c, f, K, "ω", "\\omega", !0);
+u(c, f, K, "ε", "\\varepsilon", !0);
+u(c, f, K, "ϑ", "\\vartheta", !0);
+u(c, f, K, "ϖ", "\\varpi", !0);
+u(c, f, K, "ϱ", "\\varrho", !0);
+u(c, f, K, "ς", "\\varsigma", !0);
+u(c, f, K, "φ", "\\varphi", !0);
+u(c, f, G, "∗", "*", !0);
+u(c, f, G, "+", "+");
+u(c, f, G, "−", "-", !0);
+u(c, f, G, "⋅", "\\cdot", !0);
+u(c, f, G, "∘", "\\circ", !0);
+u(c, f, G, "÷", "\\div", !0);
+u(c, f, G, "±", "\\pm", !0);
+u(c, f, G, "×", "\\times", !0);
+u(c, f, G, "∩", "\\cap", !0);
+u(c, f, G, "∪", "\\cup", !0);
+u(c, f, G, "∖", "\\setminus", !0);
+u(c, f, G, "∧", "\\land");
+u(c, f, G, "∨", "\\lor");
+u(c, f, G, "∧", "\\wedge", !0);
+u(c, f, G, "∨", "\\vee", !0);
+u(c, f, k, "√", "\\surd");
+u(c, f, at, "⟨", "\\langle", !0);
+u(c, f, at, "∣", "\\lvert");
+u(c, f, at, "∥", "\\lVert");
+u(c, f, Ve, "?", "?");
+u(c, f, Ve, "!", "!");
+u(c, f, Ve, "⟩", "\\rangle", !0);
+u(c, f, Ve, "∣", "\\rvert");
+u(c, f, Ve, "∥", "\\rVert");
+u(c, f, w, "=", "=");
+u(c, f, w, ":", ":");
+u(c, f, w, "≈", "\\approx", !0);
+u(c, f, w, "≅", "\\cong", !0);
+u(c, f, w, "≥", "\\ge");
+u(c, f, w, "≥", "\\geq", !0);
+u(c, f, w, "←", "\\gets");
+u(c, f, w, ">", "\\gt", !0);
+u(c, f, w, "∈", "\\in", !0);
+u(c, f, w, "", "\\@not");
+u(c, f, w, "⊂", "\\subset", !0);
+u(c, f, w, "⊃", "\\supset", !0);
+u(c, f, w, "⊆", "\\subseteq", !0);
+u(c, f, w, "⊇", "\\supseteq", !0);
+u(c, y, w, "⊈", "\\nsubseteq", !0);
+u(c, y, w, "⊉", "\\nsupseteq", !0);
+u(c, f, w, "⊨", "\\models");
+u(c, f, w, "←", "\\leftarrow", !0);
+u(c, f, w, "≤", "\\le");
+u(c, f, w, "≤", "\\leq", !0);
+u(c, f, w, "<", "\\lt", !0);
+u(c, f, w, "→", "\\rightarrow", !0);
+u(c, f, w, "→", "\\to");
+u(c, y, w, "≱", "\\ngeq", !0);
+u(c, y, w, "≰", "\\nleq", !0);
+u(c, f, r0, " ", "\\ ");
+u(c, f, r0, " ", "\\space");
+u(c, f, r0, " ", "\\nobreakspace");
+u(N, f, r0, " ", "\\ ");
+u(N, f, r0, " ", " ");
+u(N, f, r0, " ", "\\space");
+u(N, f, r0, " ", "\\nobreakspace");
+u(c, f, r0, null, "\\nobreak");
+u(c, f, r0, null, "\\allowbreak");
+u(c, f, Zr, ",", ",");
+u(c, f, Zr, ";", ";");
+u(c, y, G, "⊼", "\\barwedge", !0);
+u(c, y, G, "⊻", "\\veebar", !0);
+u(c, f, G, "⊙", "\\odot", !0);
+u(c, f, G, "⊕", "\\oplus", !0);
+u(c, f, G, "⊗", "\\otimes", !0);
+u(c, f, k, "∂", "\\partial", !0);
+u(c, f, G, "⊘", "\\oslash", !0);
+u(c, y, G, "⊚", "\\circledcirc", !0);
+u(c, y, G, "⊡", "\\boxdot", !0);
+u(c, f, G, "△", "\\bigtriangleup");
+u(c, f, G, "▽", "\\bigtriangledown");
+u(c, f, G, "†", "\\dagger");
+u(c, f, G, "⋄", "\\diamond");
+u(c, f, G, "⋆", "\\star");
+u(c, f, G, "◃", "\\triangleleft");
+u(c, f, G, "▹", "\\triangleright");
+u(c, f, at, "{", "\\{");
+u(N, f, k, "{", "\\{");
+u(N, f, k, "{", "\\textbraceleft");
+u(c, f, Ve, "}", "\\}");
+u(N, f, k, "}", "\\}");
+u(N, f, k, "}", "\\textbraceright");
+u(c, f, at, "{", "\\lbrace");
+u(c, f, Ve, "}", "\\rbrace");
+u(c, f, at, "[", "\\lbrack", !0);
+u(N, f, k, "[", "\\lbrack", !0);
+u(c, f, Ve, "]", "\\rbrack", !0);
+u(N, f, k, "]", "\\rbrack", !0);
+u(c, f, at, "(", "\\lparen", !0);
+u(c, f, Ve, ")", "\\rparen", !0);
+u(N, f, k, "<", "\\textless", !0);
+u(N, f, k, ">", "\\textgreater", !0);
+u(c, f, at, "⌊", "\\lfloor", !0);
+u(c, f, Ve, "⌋", "\\rfloor", !0);
+u(c, f, at, "⌈", "\\lceil", !0);
+u(c, f, Ve, "⌉", "\\rceil", !0);
+u(c, f, k, "\\", "\\backslash");
+u(c, f, k, "∣", "|");
+u(c, f, k, "∣", "\\vert");
+u(N, f, k, "|", "\\textbar", !0);
+u(c, f, k, "∥", "\\|");
+u(c, f, k, "∥", "\\Vert");
+u(N, f, k, "∥", "\\textbardbl");
+u(N, f, k, "~", "\\textasciitilde");
+u(N, f, k, "\\", "\\textbackslash");
+u(N, f, k, "^", "\\textasciicircum");
+u(c, f, w, "↑", "\\uparrow", !0);
+u(c, f, w, "⇑", "\\Uparrow", !0);
+u(c, f, w, "↓", "\\downarrow", !0);
+u(c, f, w, "⇓", "\\Downarrow", !0);
+u(c, f, w, "↕", "\\updownarrow", !0);
+u(c, f, w, "⇕", "\\Updownarrow", !0);
+u(c, f, Ee, "∐", "\\coprod");
+u(c, f, Ee, "⋁", "\\bigvee");
+u(c, f, Ee, "⋀", "\\bigwedge");
+u(c, f, Ee, "⨄", "\\biguplus");
+u(c, f, Ee, "⋂", "\\bigcap");
+u(c, f, Ee, "⋃", "\\bigcup");
+u(c, f, Ee, "∫", "\\int");
+u(c, f, Ee, "∫", "\\intop");
+u(c, f, Ee, "∬", "\\iint");
+u(c, f, Ee, "∭", "\\iiint");
+u(c, f, Ee, "∏", "\\prod");
+u(c, f, Ee, "∑", "\\sum");
+u(c, f, Ee, "⨂", "\\bigotimes");
+u(c, f, Ee, "⨁", "\\bigoplus");
+u(c, f, Ee, "⨀", "\\bigodot");
+u(c, f, Ee, "∮", "\\oint");
+u(c, f, Ee, "∯", "\\oiint");
+u(c, f, Ee, "∰", "\\oiiint");
+u(c, f, Ee, "⨆", "\\bigsqcup");
+u(c, f, Ee, "∫", "\\smallint");
+u(N, f, R0, "…", "\\textellipsis");
+u(c, f, R0, "…", "\\mathellipsis");
+u(N, f, R0, "…", "\\ldots", !0);
+u(c, f, R0, "…", "\\ldots", !0);
+u(c, f, R0, "⋯", "\\@cdots", !0);
+u(c, f, R0, "⋱", "\\ddots", !0);
+u(c, f, k, "⋮", "\\varvdots");
+u(c, f, ve, "ˊ", "\\acute");
+u(c, f, ve, "ˋ", "\\grave");
+u(c, f, ve, "¨", "\\ddot");
+u(c, f, ve, "~", "\\tilde");
+u(c, f, ve, "ˉ", "\\bar");
+u(c, f, ve, "˘", "\\breve");
+u(c, f, ve, "ˇ", "\\check");
+u(c, f, ve, "^", "\\hat");
+u(c, f, ve, "⃗", "\\vec");
+u(c, f, ve, "˙", "\\dot");
+u(c, f, ve, "˚", "\\mathring");
+u(c, f, K, "", "\\@imath");
+u(c, f, K, "", "\\@jmath");
+u(c, f, k, "ı", "ı");
+u(c, f, k, "ȷ", "ȷ");
+u(N, f, k, "ı", "\\i", !0);
+u(N, f, k, "ȷ", "\\j", !0);
+u(N, f, k, "ß", "\\ss", !0);
+u(N, f, k, "æ", "\\ae", !0);
+u(N, f, k, "œ", "\\oe", !0);
+u(N, f, k, "ø", "\\o", !0);
+u(N, f, k, "Æ", "\\AE", !0);
+u(N, f, k, "Œ", "\\OE", !0);
+u(N, f, k, "Ø", "\\O", !0);
+u(N, f, ve, "ˊ", "\\'");
+u(N, f, ve, "ˋ", "\\`");
+u(N, f, ve, "ˆ", "\\^");
+u(N, f, ve, "˜", "\\~");
+u(N, f, ve, "ˉ", "\\=");
+u(N, f, ve, "˘", "\\u");
+u(N, f, ve, "˙", "\\.");
+u(N, f, ve, "¸", "\\c");
+u(N, f, ve, "˚", "\\r");
+u(N, f, ve, "ˇ", "\\v");
+u(N, f, ve, "¨", '\\"');
+u(N, f, ve, "˝", "\\H");
+u(N, f, ve, "◯", "\\textcircled");
+var ll = {
+  "--": !0,
+  "---": !0,
+  "``": !0,
+  "''": !0
+};
+u(N, f, k, "–", "--", !0);
+u(N, f, k, "–", "\\textendash");
+u(N, f, k, "—", "---", !0);
+u(N, f, k, "—", "\\textemdash");
+u(N, f, k, "‘", "`", !0);
+u(N, f, k, "‘", "\\textquoteleft");
+u(N, f, k, "’", "'", !0);
+u(N, f, k, "’", "\\textquoteright");
+u(N, f, k, "“", "``", !0);
+u(N, f, k, "“", "\\textquotedblleft");
+u(N, f, k, "”", "''", !0);
+u(N, f, k, "”", "\\textquotedblright");
+u(c, f, k, "°", "\\degree", !0);
+u(N, f, k, "°", "\\degree");
+u(N, f, k, "°", "\\textdegree", !0);
+u(c, f, k, "£", "\\pounds");
+u(c, f, k, "£", "\\mathsterling", !0);
+u(N, f, k, "£", "\\pounds");
+u(N, f, k, "£", "\\textsterling", !0);
+u(c, y, k, "✠", "\\maltese");
+u(N, y, k, "✠", "\\maltese");
+var mi = '0123456789/@."';
+for (var ha = 0; ha < mi.length; ha++) {
+  var fi = mi.charAt(ha);
+  u(c, f, k, fi, fi);
+}
+var di = '0123456789!@*()-=+";:?/.,';
+for (var ma = 0; ma < di.length; ma++) {
+  var pi = di.charAt(ma);
+  u(N, f, k, pi, pi);
+}
+var Hr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+for (var fa = 0; fa < Hr.length; fa++) {
+  var dr = Hr.charAt(fa);
+  u(c, f, K, dr, dr), u(N, f, k, dr, dr);
+}
+u(c, y, k, "C", "ℂ");
+u(N, y, k, "C", "ℂ");
+u(c, y, k, "H", "ℍ");
+u(N, y, k, "H", "ℍ");
+u(c, y, k, "N", "ℕ");
+u(N, y, k, "N", "ℕ");
+u(c, y, k, "P", "ℙ");
+u(N, y, k, "P", "ℙ");
+u(c, y, k, "Q", "ℚ");
+u(N, y, k, "Q", "ℚ");
+u(c, y, k, "R", "ℝ");
+u(N, y, k, "R", "ℝ");
+u(c, y, k, "Z", "ℤ");
+u(N, y, k, "Z", "ℤ");
+u(c, f, K, "h", "ℎ");
+u(N, f, K, "h", "ℎ");
+var Q = "";
+for (var Pe = 0; Pe < Hr.length; Pe++) {
+  var Ae = Hr.charAt(Pe);
+  Q = String.fromCharCode(55349, 56320 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56372 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56424 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56580 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56684 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56736 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56788 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56840 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56944 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Pe < 26 && (Q = String.fromCharCode(55349, 56632 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q), Q = String.fromCharCode(55349, 56476 + Pe), u(c, f, K, Ae, Q), u(N, f, k, Ae, Q));
+}
+Q = "𝕜";
+u(c, f, K, "k", Q);
+u(N, f, k, "k", Q);
+for (var f0 = 0; f0 < 10; f0++) {
+  var n0 = f0.toString();
+  Q = String.fromCharCode(55349, 57294 + f0), u(c, f, K, n0, Q), u(N, f, k, n0, Q), Q = String.fromCharCode(55349, 57314 + f0), u(c, f, K, n0, Q), u(N, f, k, n0, Q), Q = String.fromCharCode(55349, 57324 + f0), u(c, f, K, n0, Q), u(N, f, k, n0, Q), Q = String.fromCharCode(55349, 57334 + f0), u(c, f, K, n0, Q), u(N, f, k, n0, Q);
+}
+var Pa = "ÐÞþ";
+for (var da = 0; da < Pa.length; da++) {
+  var pr = Pa.charAt(da);
+  u(c, f, K, pr, pr), u(N, f, k, pr, pr);
+}
+var gr = [
+  ["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
+], gi = [
+  ["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
+], i1 = function(e, t) {
+  var r = e.charCodeAt(0), n = e.charCodeAt(1), i = (r - 55296) * 1024 + (n - 56320) + 65536, s = t === "math" ? 0 : 1;
+  if (119808 <= i && i < 120484) {
+    var l = Math.floor((i - 119808) / 26);
+    return [gr[l][2], gr[l][s]];
+  } else if (120782 <= i && i <= 120831) {
+    var o = Math.floor((i - 120782) / 10);
+    return [gi[o][2], gi[o][s]];
+  } else {
+    if (i === 120485 || i === 120486)
+      return [gr[0][2], gr[0][s]];
+    if (120486 < i && i < 120782)
+      return ["", ""];
+    throw new I("Unsupported character: " + e);
+  }
+}, Kr = function(e, t, r) {
+  return pe[r][e] && pe[r][e].replace && (e = pe[r][e].replace), {
+    value: e,
+    metrics: ln(e, t, r)
+  };
+}, At = function(e, t, r, n, i) {
+  var s = Kr(e, t, r), l = s.metrics;
+  e = s.value;
+  var o;
+  if (l) {
+    var h = l.italic;
+    (r === "text" || n && n.font === "mathit") && (h = 0), o = new ft(e, l.height, l.depth, h, l.skew, l.width, i);
+  } else
+    typeof console < "u" && console.warn("No character metrics " + ("for '" + e + "' in style '" + t + "' and mode '" + r + "'")), o = new ft(e, 0, 0, 0, 0, 0, i);
+  if (n) {
+    o.maxFontSize = n.sizeMultiplier, n.style.isTight() && o.classes.push("mtight");
+    var m = n.getColor();
+    m && (o.style.color = m);
+  }
+  return o;
+}, s1 = function(e, t, r, n) {
+  return n === void 0 && (n = []), r.font === "boldsymbol" && Kr(e, "Main-Bold", t).metrics ? At(e, "Main-Bold", t, r, n.concat(["mathbf"])) : e === "\\" || pe[t][e].font === "main" ? At(e, "Main-Regular", t, r, n) : At(e, "AMS-Regular", t, r, n.concat(["amsrm"]));
+}, l1 = function(e, t, r, n, i) {
+  return i !== "textord" && Kr(e, "Math-BoldItalic", t).metrics ? {
+    fontName: "Math-BoldItalic",
+    fontClass: "boldsymbol"
+  } : {
+    fontName: "Main-Bold",
+    fontClass: "mathbf"
+  };
+}, o1 = function(e, t, r) {
+  var n = e.mode, i = e.text, s = ["mord"], l = n === "math" || n === "text" && t.font, o = l ? t.font : t.fontFamily, h = "", m = "";
+  if (i.charCodeAt(0) === 55349 && ([h, m] = i1(i, n)), h.length > 0)
+    return At(i, h, n, t, s.concat(m));
+  if (o) {
+    var d, v;
+    if (o === "boldsymbol") {
+      var g = l1(i, n, t, s, r);
+      d = g.fontName, v = [g.fontClass];
+    } else l ? (d = cl[o].fontName, v = [o]) : (d = vr(o, t.fontWeight, t.fontShape), v = [o, t.fontWeight, t.fontShape]);
+    if (Kr(i, d, n).metrics)
+      return At(i, d, n, t, s.concat(v));
+    if (ll.hasOwnProperty(i) && d.slice(0, 10) === "Typewriter") {
+      for (var D = [], S = 0; S < i.length; S++)
+        D.push(At(i[S], d, n, t, s.concat(v)));
+      return ul(D);
+    }
+  }
+  if (r === "mathord")
+    return At(i, "Math-Italic", n, t, s.concat(["mathnormal"]));
+  if (r === "textord") {
+    var F = pe[n][i] && pe[n][i].font;
+    if (F === "ams") {
+      var T = vr("amsrm", t.fontWeight, t.fontShape);
+      return At(i, T, n, t, s.concat("amsrm", t.fontWeight, t.fontShape));
+    } else if (F === "main" || !F) {
+      var x = vr("textrm", t.fontWeight, t.fontShape);
+      return At(i, x, n, t, s.concat(t.fontWeight, t.fontShape));
+    } else {
+      var b = vr(F, t.fontWeight, t.fontShape);
+      return At(i, b, n, t, s.concat(b, t.fontWeight, t.fontShape));
+    }
+  } else
+    throw new Error("unexpected type: " + r + " in makeOrd");
+}, u1 = (a, e) => {
+  if (u0(a.classes) !== u0(e.classes) || a.skew !== e.skew || a.maxFontSize !== e.maxFontSize)
+    return !1;
+  if (a.classes.length === 1) {
+    var t = a.classes[0];
+    if (t === "mbin" || t === "mord")
+      return !1;
+  }
+  for (var r in a.style)
+    if (a.style.hasOwnProperty(r) && a.style[r] !== e.style[r])
+      return !1;
+  for (var n in e.style)
+    if (e.style.hasOwnProperty(n) && a.style[n] !== e.style[n])
+      return !1;
+  return !0;
+}, c1 = (a) => {
+  for (var e = 0; e < a.length - 1; e++) {
+    var t = a[e], r = a[e + 1];
+    t instanceof ft && r instanceof ft && u1(t, r) && (t.text += r.text, t.height = Math.max(t.height, r.height), t.depth = Math.max(t.depth, r.depth), t.italic = r.italic, a.splice(e + 1, 1), e--);
+  }
+  return a;
+}, un = function(e) {
+  for (var t = 0, r = 0, n = 0, i = 0; i < e.children.length; i++) {
+    var s = e.children[i];
+    s.height > t && (t = s.height), s.depth > r && (r = s.depth), s.maxFontSize > n && (n = s.maxFontSize);
+  }
+  e.height = t, e.depth = r, e.maxFontSize = n;
+}, Ze = function(e, t, r, n) {
+  var i = new ar(e, t, r, n);
+  return un(i), i;
+}, ol = (a, e, t, r) => new ar(a, e, t, r), h1 = function(e, t, r) {
+  var n = Ze([e], [], t);
+  return n.height = Math.max(r || t.fontMetrics().defaultRuleThickness, t.minRuleThickness), n.style.borderBottomWidth = H(n.height), n.maxFontSize = 1, n;
+}, m1 = function(e, t, r, n) {
+  var i = new on(e, t, r, n);
+  return un(i), i;
+}, ul = function(e) {
+  var t = new rr(e);
+  return un(t), t;
+}, f1 = function(e, t) {
+  return e instanceof rr ? Ze([], [e], t) : e;
+}, d1 = function(e) {
+  if (e.positionType === "individualShift") {
+    for (var t = e.children, r = [t[0]], n = -t[0].shift - t[0].elem.depth, i = n, s = 1; s < t.length; s++) {
+      var l = -t[s].shift - i - t[s].elem.depth, o = l - (t[s - 1].elem.height + t[s - 1].elem.depth);
+      i = i + l, r.push({
+        type: "kern",
+        size: o
+      }), r.push(t[s]);
+    }
+    return {
+      children: r,
+      depth: n
+    };
+  }
+  var h;
+  if (e.positionType === "top") {
+    for (var m = e.positionData, d = 0; d < e.children.length; d++) {
+      var v = e.children[d];
+      m -= v.type === "kern" ? v.size : v.elem.height + v.elem.depth;
+    }
+    h = m;
+  } else if (e.positionType === "bottom")
+    h = -e.positionData;
+  else {
+    var g = e.children[0];
+    if (g.type !== "elem")
+      throw new Error('First child must have type "elem".');
+    if (e.positionType === "shift")
+      h = -g.elem.depth - e.positionData;
+    else if (e.positionType === "firstBaseline")
+      h = -g.elem.depth;
+    else
+      throw new Error("Invalid positionType " + e.positionType + ".");
+  }
+  return {
+    children: e.children,
+    depth: h
+  };
+}, p1 = function(e, t) {
+  for (var {
+    children: r,
+    depth: n
+  } = d1(e), i = 0, s = 0; s < r.length; s++) {
+    var l = r[s];
+    if (l.type === "elem") {
+      var o = l.elem;
+      i = Math.max(i, o.maxFontSize, o.height);
+    }
+  }
+  i += 2;
+  var h = Ze(["pstrut"], []);
+  h.style.height = H(i);
+  for (var m = [], d = n, v = n, g = n, D = 0; D < r.length; D++) {
+    var S = r[D];
+    if (S.type === "kern")
+      g += S.size;
+    else {
+      var F = S.elem, T = S.wrapperClasses || [], x = S.wrapperStyle || {}, b = Ze(T, [h, F], void 0, x);
+      b.style.top = H(-i - g - F.depth), S.marginLeft && (b.style.marginLeft = S.marginLeft), S.marginRight && (b.style.marginRight = S.marginRight), m.push(b), g += F.height + F.depth;
+    }
+    d = Math.min(d, g), v = Math.max(v, g);
+  }
+  var A = Ze(["vlist"], m);
+  A.style.height = H(v);
+  var C;
+  if (d < 0) {
+    var z = Ze([], []), B = Ze(["vlist"], [z]);
+    B.style.height = H(-d);
+    var P = Ze(["vlist-s"], [new ft("​")]);
+    C = [Ze(["vlist-r"], [A, P]), Ze(["vlist-r"], [B])];
+  } else
+    C = [Ze(["vlist-r"], [A])];
+  var M = Ze(["vlist-t"], C);
+  return C.length === 2 && M.classes.push("vlist-t2"), M.height = v, M.depth = -d, M;
+}, g1 = (a, e) => {
+  var t = Ze(["mspace"], [], e), r = xe(a, e);
+  return t.style.marginRight = H(r), t;
+}, vr = function(e, t, r) {
+  var n = "";
+  switch (e) {
+    case "amsrm":
+      n = "AMS";
+      break;
+    case "textrm":
+      n = "Main";
+      break;
+    case "textsf":
+      n = "SansSerif";
+      break;
+    case "texttt":
+      n = "Typewriter";
+      break;
+    default:
+      n = e;
+  }
+  var i;
+  return t === "textbf" && r === "textit" ? i = "BoldItalic" : t === "textbf" ? i = "Bold" : t === "textit" ? i = "Italic" : i = "Regular", n + "-" + i;
+}, cl = {
+  // 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"
+  }
+}, hl = {
+  //   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]
+}, v1 = function(e, t) {
+  var [r, n, i] = hl[e], s = new c0(r), l = new Jt([s], {
+    width: H(n),
+    height: H(i),
+    // Override CSS rule `.katex svg { width: 100% }`
+    style: "width:" + H(n),
+    viewBox: "0 0 " + 1e3 * n + " " + 1e3 * i,
+    preserveAspectRatio: "xMinYMin"
+  }), o = ol(["overlay"], [l], t);
+  return o.height = i, o.style.height = H(i), o.style.width = H(n), o;
+}, E = {
+  fontMap: cl,
+  makeSymbol: At,
+  mathsym: s1,
+  makeSpan: Ze,
+  makeSvgSpan: ol,
+  makeLineSpan: h1,
+  makeAnchor: m1,
+  makeFragment: ul,
+  wrapFragment: f1,
+  makeVList: p1,
+  makeOrd: o1,
+  makeGlue: g1,
+  staticSvg: v1,
+  svgData: hl,
+  tryCombineChars: c1
+}, we = {
+  number: 3,
+  unit: "mu"
+}, d0 = {
+  number: 4,
+  unit: "mu"
+}, jt = {
+  number: 5,
+  unit: "mu"
+}, b1 = {
+  mord: {
+    mop: we,
+    mbin: d0,
+    mrel: jt,
+    minner: we
+  },
+  mop: {
+    mord: we,
+    mop: we,
+    mrel: jt,
+    minner: we
+  },
+  mbin: {
+    mord: d0,
+    mop: d0,
+    mopen: d0,
+    minner: d0
+  },
+  mrel: {
+    mord: jt,
+    mop: jt,
+    mopen: jt,
+    minner: jt
+  },
+  mopen: {},
+  mclose: {
+    mop: we,
+    mbin: d0,
+    mrel: jt,
+    minner: we
+  },
+  mpunct: {
+    mord: we,
+    mop: we,
+    mrel: jt,
+    mopen: we,
+    mclose: we,
+    mpunct: we,
+    minner: we
+  },
+  minner: {
+    mord: we,
+    mop: we,
+    mbin: d0,
+    mrel: jt,
+    mopen: we,
+    mpunct: we,
+    minner: we
+  }
+}, y1 = {
+  mord: {
+    mop: we
+  },
+  mop: {
+    mord: we,
+    mop: we
+  },
+  mbin: {},
+  mrel: {},
+  mopen: {},
+  mclose: {
+    mop: we
+  },
+  mpunct: {},
+  minner: {
+    mop: we
+  }
+}, ml = {}, Ur = {}, Gr = {};
+function U(a) {
+  for (var {
+    type: e,
+    names: t,
+    props: r,
+    handler: n,
+    htmlBuilder: i,
+    mathmlBuilder: s
+  } = a, l = {
+    type: e,
+    numArgs: r.numArgs,
+    argTypes: r.argTypes,
+    allowedInArgument: !!r.allowedInArgument,
+    allowedInText: !!r.allowedInText,
+    allowedInMath: r.allowedInMath === void 0 ? !0 : r.allowedInMath,
+    numOptionalArgs: r.numOptionalArgs || 0,
+    infix: !!r.infix,
+    primitive: !!r.primitive,
+    handler: n
+  }, o = 0; o < t.length; ++o)
+    ml[t[o]] = l;
+  e && (i && (Ur[e] = i), s && (Gr[e] = s));
+}
+function w0(a) {
+  var {
+    type: e,
+    htmlBuilder: t,
+    mathmlBuilder: r
+  } = a;
+  U({
+    type: e,
+    names: [],
+    props: {
+      numArgs: 0
+    },
+    handler() {
+      throw new Error("Should never be called.");
+    },
+    htmlBuilder: t,
+    mathmlBuilder: r
+  });
+}
+var Vr = function(e) {
+  return e.type === "ordgroup" && e.body.length === 1 ? e.body[0] : e;
+}, _e = function(e) {
+  return e.type === "ordgroup" ? e.body : [e];
+}, e0 = E.makeSpan, w1 = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"], x1 = ["rightmost", "mrel", "mclose", "mpunct"], k1 = {
+  display: $.DISPLAY,
+  text: $.TEXT,
+  script: $.SCRIPT,
+  scriptscript: $.SCRIPTSCRIPT
+}, D1 = {
+  mord: "mord",
+  mop: "mop",
+  mbin: "mbin",
+  mrel: "mrel",
+  mopen: "mopen",
+  mclose: "mclose",
+  mpunct: "mpunct",
+  minner: "minner"
+}, Fe = function(e, t, r, n) {
+  n === void 0 && (n = [null, null]);
+  for (var i = [], s = 0; s < e.length; s++) {
+    var l = ie(e[s], t);
+    if (l instanceof rr) {
+      var o = l.children;
+      i.push(...o);
+    } else
+      i.push(l);
+  }
+  if (E.tryCombineChars(i), !r)
+    return i;
+  var h = t;
+  if (e.length === 1) {
+    var m = e[0];
+    m.type === "sizing" ? h = t.havingSize(m.size) : m.type === "styling" && (h = t.havingStyle(k1[m.style]));
+  }
+  var d = e0([n[0] || "leftmost"], [], t), v = e0([n[1] || "rightmost"], [], t), g = r === "root";
+  return vi(i, (D, S) => {
+    var F = S.classes[0], T = D.classes[0];
+    F === "mbin" && Z.contains(x1, T) ? S.classes[0] = "mord" : T === "mbin" && Z.contains(w1, F) && (D.classes[0] = "mord");
+  }, {
+    node: d
+  }, v, g), vi(i, (D, S) => {
+    var F = Ha(S), T = Ha(D), x = F && T ? D.hasClass("mtight") ? y1[F][T] : b1[F][T] : null;
+    if (x)
+      return E.makeGlue(x, h);
+  }, {
+    node: d
+  }, v, g), i;
+}, vi = function a(e, t, r, n, i) {
+  n && e.push(n);
+  for (var s = 0; s < e.length; s++) {
+    var l = e[s], o = fl(l);
+    if (o) {
+      a(o.children, t, r, null, i);
+      continue;
+    }
+    var h = !l.hasClass("mspace");
+    if (h) {
+      var m = t(l, r.node);
+      m && (r.insertAfter ? r.insertAfter(m) : (e.unshift(m), s++));
+    }
+    h ? r.node = l : i && l.hasClass("newline") && (r.node = e0(["leftmost"])), r.insertAfter = /* @__PURE__ */ ((d) => (v) => {
+      e.splice(d + 1, 0, v), s++;
+    })(s);
+  }
+  n && e.pop();
+}, fl = function(e) {
+  return e instanceof rr || e instanceof on || e instanceof ar && e.hasClass("enclosing") ? e : null;
+}, A1 = function a(e, t) {
+  var r = fl(e);
+  if (r) {
+    var n = r.children;
+    if (n.length) {
+      if (t === "right")
+        return a(n[n.length - 1], "right");
+      if (t === "left")
+        return a(n[0], "left");
+    }
+  }
+  return e;
+}, Ha = function(e, t) {
+  return e ? (t && (e = A1(e, t)), D1[e.classes[0]] || null) : null;
+}, er = function(e, t) {
+  var r = ["nulldelimiter"].concat(e.baseSizingClasses());
+  return e0(t.concat(r));
+}, ie = function(e, t, r) {
+  if (!e)
+    return e0();
+  if (Ur[e.type]) {
+    var n = Ur[e.type](e, t);
+    if (r && t.size !== r.size) {
+      n = e0(t.sizingClasses(r), [n], t);
+      var i = t.sizeMultiplier / r.sizeMultiplier;
+      n.height *= i, n.depth *= i;
+    }
+    return n;
+  } else
+    throw new I("Got group of unknown type: '" + e.type + "'");
+};
+function br(a, e) {
+  var t = e0(["base"], a, e), r = e0(["strut"]);
+  return r.style.height = H(t.height + t.depth), t.depth && (r.style.verticalAlign = H(-t.depth)), t.children.unshift(r), t;
+}
+function Ua(a, e) {
+  var t = null;
+  a.length === 1 && a[0].type === "tag" && (t = a[0].tag, a = a[0].body);
+  var r = Fe(a, e, "root"), n;
+  r.length === 2 && r[1].hasClass("tag") && (n = r.pop());
+  for (var i = [], s = [], l = 0; l < r.length; l++)
+    if (s.push(r[l]), r[l].hasClass("mbin") || r[l].hasClass("mrel") || r[l].hasClass("allowbreak")) {
+      for (var o = !1; l < r.length - 1 && r[l + 1].hasClass("mspace") && !r[l + 1].hasClass("newline"); )
+        l++, s.push(r[l]), r[l].hasClass("nobreak") && (o = !0);
+      o || (i.push(br(s, e)), s = []);
+    } else r[l].hasClass("newline") && (s.pop(), s.length > 0 && (i.push(br(s, e)), s = []), i.push(r[l]));
+  s.length > 0 && i.push(br(s, e));
+  var h;
+  t ? (h = br(Fe(t, e, !0)), h.classes = ["tag"], i.push(h)) : n && i.push(n);
+  var m = e0(["katex-html"], i);
+  if (m.setAttribute("aria-hidden", "true"), h) {
+    var d = h.children[0];
+    d.style.height = H(m.height + m.depth), m.depth && (d.style.verticalAlign = H(-m.depth));
+  }
+  return m;
+}
+function dl(a) {
+  return new rr(a);
+}
+class ot {
+  constructor(e, t, r) {
+    this.type = void 0, this.attributes = void 0, this.children = void 0, this.classes = void 0, this.type = e, this.attributes = {}, this.children = t || [], this.classes = r || [];
+  }
+  /**
+   * Sets an attribute on a MathML node. MathML depends on attributes to convey a
+   * semantic content, so this is used heavily.
+   */
+  setAttribute(e, t) {
+    this.attributes[e] = t;
+  }
+  /**
+   * Gets an attribute on a MathML node.
+   */
+  getAttribute(e) {
+    return this.attributes[e];
+  }
+  /**
+   * Converts the math node into a MathML-namespaced DOM element.
+   */
+  toNode() {
+    var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type);
+    for (var t in this.attributes)
+      Object.prototype.hasOwnProperty.call(this.attributes, t) && e.setAttribute(t, this.attributes[t]);
+    this.classes.length > 0 && (e.className = u0(this.classes));
+    for (var r = 0; r < this.children.length; r++)
+      e.appendChild(this.children[r].toNode());
+    return e;
+  }
+  /**
+   * Converts the math node into an HTML markup string.
+   */
+  toMarkup() {
+    var e = "<" + this.type;
+    for (var t in this.attributes)
+      Object.prototype.hasOwnProperty.call(this.attributes, t) && (e += " " + t + '="', e += Z.escape(this.attributes[t]), e += '"');
+    this.classes.length > 0 && (e += ' class ="' + Z.escape(u0(this.classes)) + '"'), e += ">";
+    for (var r = 0; r < this.children.length; r++)
+      e += this.children[r].toMarkup();
+    return e += "</" + this.type + ">", e;
+  }
+  /**
+   * Converts the math node into a string, similar to innerText, but escaped.
+   */
+  toText() {
+    return this.children.map((e) => e.toText()).join("");
+  }
+}
+class j0 {
+  constructor(e) {
+    this.text = void 0, this.text = e;
+  }
+  /**
+   * Converts the text node into a DOM text node.
+   */
+  toNode() {
+    return document.createTextNode(this.text);
+  }
+  /**
+   * Converts the text node into escaped HTML markup
+   * (representing the text itself).
+   */
+  toMarkup() {
+    return Z.escape(this.toText());
+  }
+  /**
+   * Converts the text node into a string
+   * (representing the text itself).
+   */
+  toText() {
+    return this.text;
+  }
+}
+class _1 {
+  /**
+   * Create a Space node with width given in CSS ems.
+   */
+  constructor(e) {
+    this.width = void 0, this.character = void 0, this.width = e, e >= 0.05555 && e <= 0.05556 ? this.character = " " : e >= 0.1666 && e <= 0.1667 ? this.character = " " : e >= 0.2222 && e <= 0.2223 ? this.character = " " : e >= 0.2777 && e <= 0.2778 ? this.character = "  " : e >= -0.05556 && e <= -0.05555 ? this.character = " ⁣" : e >= -0.1667 && e <= -0.1666 ? this.character = " ⁣" : e >= -0.2223 && e <= -0.2222 ? this.character = " ⁣" : e >= -0.2778 && e <= -0.2777 ? this.character = " ⁣" : this.character = null;
+  }
+  /**
+   * Converts the math node into a MathML-namespaced DOM element.
+   */
+  toNode() {
+    if (this.character)
+      return document.createTextNode(this.character);
+    var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace");
+    return e.setAttribute("width", H(this.width)), e;
+  }
+  /**
+   * Converts the math node into an HTML markup string.
+   */
+  toMarkup() {
+    return this.character ? "<mtext>" + this.character + "</mtext>" : '<mspace width="' + H(this.width) + '"/>';
+  }
+  /**
+   * Converts the math node into a string, similar to innerText.
+   */
+  toText() {
+    return this.character ? this.character : " ";
+  }
+}
+var L = {
+  MathNode: ot,
+  TextNode: j0,
+  SpaceNode: _1,
+  newDocumentFragment: dl
+}, dt = function(e, t, r) {
+  return pe[t][e] && pe[t][e].replace && e.charCodeAt(0) !== 55349 && !(ll.hasOwnProperty(e) && r && (r.fontFamily && r.fontFamily.slice(4, 6) === "tt" || r.font && r.font.slice(4, 6) === "tt")) && (e = pe[t][e].replace), new L.TextNode(e);
+}, cn = function(e) {
+  return e.length === 1 ? e[0] : new L.MathNode("mrow", e);
+}, hn = function(e, t) {
+  if (t.fontFamily === "texttt")
+    return "monospace";
+  if (t.fontFamily === "textsf")
+    return t.fontShape === "textit" && t.fontWeight === "textbf" ? "sans-serif-bold-italic" : t.fontShape === "textit" ? "sans-serif-italic" : t.fontWeight === "textbf" ? "bold-sans-serif" : "sans-serif";
+  if (t.fontShape === "textit" && t.fontWeight === "textbf")
+    return "bold-italic";
+  if (t.fontShape === "textit")
+    return "italic";
+  if (t.fontWeight === "textbf")
+    return "bold";
+  var r = t.font;
+  if (!r || r === "mathnormal")
+    return null;
+  var n = e.mode;
+  if (r === "mathit")
+    return "italic";
+  if (r === "boldsymbol")
+    return e.type === "textord" ? "bold" : "bold-italic";
+  if (r === "mathbf")
+    return "bold";
+  if (r === "mathbb")
+    return "double-struck";
+  if (r === "mathfrak")
+    return "fraktur";
+  if (r === "mathscr" || r === "mathcal")
+    return "script";
+  if (r === "mathsf")
+    return "sans-serif";
+  if (r === "mathtt")
+    return "monospace";
+  var i = e.text;
+  if (Z.contains(["\\imath", "\\jmath"], i))
+    return null;
+  pe[n][i] && pe[n][i].replace && (i = pe[n][i].replace);
+  var s = E.fontMap[r].fontName;
+  return ln(i, s, n) ? E.fontMap[r].variant : null;
+}, Ke = function(e, t, r) {
+  if (e.length === 1) {
+    var n = me(e[0], t);
+    return r && n instanceof ot && n.type === "mo" && (n.setAttribute("lspace", "0em"), n.setAttribute("rspace", "0em")), [n];
+  }
+  for (var i = [], s, l = 0; l < e.length; l++) {
+    var o = me(e[l], t);
+    if (o instanceof ot && s instanceof ot) {
+      if (o.type === "mtext" && s.type === "mtext" && o.getAttribute("mathvariant") === s.getAttribute("mathvariant")) {
+        s.children.push(...o.children);
+        continue;
+      } else if (o.type === "mn" && s.type === "mn") {
+        s.children.push(...o.children);
+        continue;
+      } else if (o.type === "mi" && o.children.length === 1 && s.type === "mn") {
+        var h = o.children[0];
+        if (h instanceof j0 && h.text === ".") {
+          s.children.push(...o.children);
+          continue;
+        }
+      } else if (s.type === "mi" && s.children.length === 1) {
+        var m = s.children[0];
+        if (m instanceof j0 && m.text === "̸" && (o.type === "mo" || o.type === "mi" || o.type === "mn")) {
+          var d = o.children[0];
+          d instanceof j0 && d.text.length > 0 && (d.text = d.text.slice(0, 1) + "̸" + d.text.slice(1), i.pop());
+        }
+      }
+    }
+    i.push(o), s = o;
+  }
+  return i;
+}, h0 = function(e, t, r) {
+  return cn(Ke(e, t, r));
+}, me = function(e, t) {
+  if (!e)
+    return new L.MathNode("mrow");
+  if (Gr[e.type]) {
+    var r = Gr[e.type](e, t);
+    return r;
+  } else
+    throw new I("Got group of unknown type: '" + e.type + "'");
+};
+function bi(a, e, t, r, n) {
+  var i = Ke(a, t), s;
+  i.length === 1 && i[0] instanceof ot && Z.contains(["mrow", "mtable"], i[0].type) ? s = i[0] : s = new L.MathNode("mrow", i);
+  var l = new L.MathNode("annotation", [new L.TextNode(e)]);
+  l.setAttribute("encoding", "application/x-tex");
+  var o = new L.MathNode("semantics", [s, l]), h = new L.MathNode("math", [o]);
+  h.setAttribute("xmlns", "http://www.w3.org/1998/Math/MathML"), r && h.setAttribute("display", "block");
+  var m = n ? "katex" : "katex-mathml";
+  return E.makeSpan([m], [h]);
+}
+var pl = function(e) {
+  return new Kt({
+    style: e.displayMode ? $.DISPLAY : $.TEXT,
+    maxSize: e.maxSize,
+    minRuleThickness: e.minRuleThickness
+  });
+}, gl = function(e, t) {
+  if (t.displayMode) {
+    var r = ["katex-display"];
+    t.leqno && r.push("leqno"), t.fleqn && r.push("fleqn"), e = E.makeSpan(r, [e]);
+  }
+  return e;
+}, S1 = function(e, t, r) {
+  var n = pl(r), i;
+  if (r.output === "mathml")
+    return bi(e, t, n, r.displayMode, !0);
+  if (r.output === "html") {
+    var s = Ua(e, n);
+    i = E.makeSpan(["katex"], [s]);
+  } else {
+    var l = bi(e, t, n, r.displayMode, !1), o = Ua(e, n);
+    i = E.makeSpan(["katex"], [l, o]);
+  }
+  return gl(i, r);
+}, E1 = function(e, t, r) {
+  var n = pl(r), i = Ua(e, n), s = E.makeSpan(["katex"], [i]);
+  return gl(s, r);
+}, F1 = {
+  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": "="
+}, T1 = function(e) {
+  var t = new L.MathNode("mo", [new L.TextNode(F1[e.replace(/^\\/, "")])]);
+  return t.setAttribute("stretchy", "true"), t;
+}, C1 = {
+  //   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]
+}, M1 = function(e) {
+  return e.type === "ordgroup" ? e.body.length : 1;
+}, z1 = function(e, t) {
+  function r() {
+    var l = 4e5, o = e.label.slice(1);
+    if (Z.contains(["widehat", "widecheck", "widetilde", "utilde"], o)) {
+      var h = e, m = M1(h.base), d, v, g;
+      if (m > 5)
+        o === "widehat" || o === "widecheck" ? (d = 420, l = 2364, g = 0.42, v = o + "4") : (d = 312, l = 2340, g = 0.34, v = "tilde4");
+      else {
+        var D = [1, 1, 2, 2, 3, 3][m];
+        o === "widehat" || o === "widecheck" ? (l = [0, 1062, 2364, 2364, 2364][D], d = [0, 239, 300, 360, 420][D], g = [0, 0.24, 0.3, 0.3, 0.36, 0.42][D], v = o + D) : (l = [0, 600, 1033, 2339, 2340][D], d = [0, 260, 286, 306, 312][D], g = [0, 0.26, 0.286, 0.3, 0.306, 0.34][D], v = "tilde" + D);
+      }
+      var S = new c0(v), F = new Jt([S], {
+        width: "100%",
+        height: H(g),
+        viewBox: "0 0 " + l + " " + d,
+        preserveAspectRatio: "none"
+      });
+      return {
+        span: E.makeSvgSpan([], [F], t),
+        minWidth: 0,
+        height: g
+      };
+    } else {
+      var T = [], x = C1[o], [b, A, C] = x, z = C / 1e3, B = b.length, P, M;
+      if (B === 1) {
+        var R = x[3];
+        P = ["hide-tail"], M = [R];
+      } else if (B === 2)
+        P = ["halfarrow-left", "halfarrow-right"], M = ["xMinYMin", "xMaxYMin"];
+      else if (B === 3)
+        P = ["brace-left", "brace-center", "brace-right"], M = ["xMinYMin", "xMidYMin", "xMaxYMin"];
+      else
+        throw new Error(`Correct katexImagesData or update code here to support
+                    ` + B + " children.");
+      for (var V = 0; V < B; V++) {
+        var X = new c0(b[V]), be = new Jt([X], {
+          width: "400em",
+          height: H(z),
+          viewBox: "0 0 " + l + " " + C,
+          preserveAspectRatio: M[V] + " slice"
+        }), ae = E.makeSvgSpan([P[V]], [be], t);
+        if (B === 1)
+          return {
+            span: ae,
+            minWidth: A,
+            height: z
+          };
+        ae.style.height = H(z), T.push(ae);
+      }
+      return {
+        span: E.makeSpan(["stretchy"], T, t),
+        minWidth: A,
+        height: z
+      };
+    }
+  }
+  var {
+    span: n,
+    minWidth: i,
+    height: s
+  } = r();
+  return n.height = s, n.style.height = H(s), i > 0 && (n.style.minWidth = H(i)), n;
+}, B1 = function(e, t, r, n, i) {
+  var s, l = e.height + e.depth + r + n;
+  if (/fbox|color|angl/.test(t)) {
+    if (s = E.makeSpan(["stretchy", t], [], i), t === "fbox") {
+      var o = i.color && i.getColor();
+      o && (s.style.borderColor = o);
+    }
+  } else {
+    var h = [];
+    /^[bx]cancel$/.test(t) && h.push(new qa({
+      x1: "0",
+      y1: "0",
+      x2: "100%",
+      y2: "100%",
+      "stroke-width": "0.046em"
+    })), /^x?cancel$/.test(t) && h.push(new qa({
+      x1: "0",
+      y1: "100%",
+      x2: "100%",
+      y2: "0",
+      "stroke-width": "0.046em"
+    }));
+    var m = new Jt(h, {
+      width: "100%",
+      height: H(l)
+    });
+    s = E.makeSvgSpan([], [m], i);
+  }
+  return s.height = l, s.style.height = H(l), s;
+}, t0 = {
+  encloseSpan: B1,
+  mathMLnode: T1,
+  svgSpan: z1
+};
+function ee(a, e) {
+  if (!a || a.type !== e)
+    throw new Error("Expected node of type " + e + ", but got " + (a ? "node of type " + a.type : String(a)));
+  return a;
+}
+function mn(a) {
+  var e = $r(a);
+  if (!e)
+    throw new Error("Expected node of symbol group type, but got " + (a ? "node of type " + a.type : String(a)));
+  return e;
+}
+function $r(a) {
+  return a && (a.type === "atom" || n1.hasOwnProperty(a.type)) ? a : null;
+}
+var fn = (a, e) => {
+  var t, r, n;
+  a && a.type === "supsub" ? (r = ee(a.base, "accent"), t = r.base, a.base = t, n = r1(ie(a, e)), a.base = r) : (r = ee(a, "accent"), t = r.base);
+  var i = ie(t, e.havingCrampedStyle()), s = r.isShifty && Z.isCharacterBox(t), l = 0;
+  if (s) {
+    var o = Z.getBaseElem(t), h = ie(o, e.havingCrampedStyle());
+    l = hi(h).skew;
+  }
+  var m = r.label === "\\c", d = m ? i.height + i.depth : Math.min(i.height, e.fontMetrics().xHeight), v;
+  if (r.isStretchy)
+    v = t0.svgSpan(r, e), v = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: i
+      }, {
+        type: "elem",
+        elem: v,
+        wrapperClasses: ["svg-align"],
+        wrapperStyle: l > 0 ? {
+          width: "calc(100% - " + H(2 * l) + ")",
+          marginLeft: H(2 * l)
+        } : void 0
+      }]
+    }, e);
+  else {
+    var g, D;
+    r.label === "\\vec" ? (g = E.staticSvg("vec", e), D = E.svgData.vec[1]) : (g = E.makeOrd({
+      mode: r.mode,
+      text: r.label
+    }, e, "textord"), g = hi(g), g.italic = 0, D = g.width, m && (d += g.depth)), v = E.makeSpan(["accent-body"], [g]);
+    var S = r.label === "\\textcircled";
+    S && (v.classes.push("accent-full"), d = i.height);
+    var F = l;
+    S || (F -= D / 2), v.style.left = H(F), r.label === "\\textcircled" && (v.style.top = ".2em"), v = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: i
+      }, {
+        type: "kern",
+        size: -d
+      }, {
+        type: "elem",
+        elem: v
+      }]
+    }, e);
+  }
+  var T = E.makeSpan(["mord", "accent"], [v], e);
+  return n ? (n.children[0] = T, n.height = Math.max(T.height, n.height), n.classes[0] = "mord", n) : T;
+}, vl = (a, e) => {
+  var t = a.isStretchy ? t0.mathMLnode(a.label) : new L.MathNode("mo", [dt(a.label, a.mode)]), r = new L.MathNode("mover", [me(a.base, e), t]);
+  return r.setAttribute("accent", "true"), r;
+}, R1 = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map((a) => "\\" + a).join("|"));
+U({
+  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: (a, e) => {
+    var t = Vr(e[0]), r = !R1.test(a.funcName), n = !r || a.funcName === "\\widehat" || a.funcName === "\\widetilde" || a.funcName === "\\widecheck";
+    return {
+      type: "accent",
+      mode: a.parser.mode,
+      label: a.funcName,
+      isStretchy: r,
+      isShifty: n,
+      base: t
+    };
+  },
+  htmlBuilder: fn,
+  mathmlBuilder: vl
+});
+U({
+  type: "accent",
+  names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0,
+    allowedInMath: !0,
+    // unless in strict mode
+    argTypes: ["primitive"]
+  },
+  handler: (a, e) => {
+    var t = e[0], r = a.parser.mode;
+    return r === "math" && (a.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + a.funcName + " works only in text mode"), r = "text"), {
+      type: "accent",
+      mode: r,
+      label: a.funcName,
+      isStretchy: !1,
+      isShifty: !0,
+      base: t
+    };
+  },
+  htmlBuilder: fn,
+  mathmlBuilder: vl
+});
+U({
+  type: "accentUnder",
+  names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"],
+  props: {
+    numArgs: 1
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    return {
+      type: "accentUnder",
+      mode: t.mode,
+      label: r,
+      base: n
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = ie(a.base, e), r = t0.svgSpan(a, e), n = a.label === "\\utilde" ? 0.12 : 0, i = E.makeVList({
+      positionType: "top",
+      positionData: t.height,
+      children: [{
+        type: "elem",
+        elem: r,
+        wrapperClasses: ["svg-align"]
+      }, {
+        type: "kern",
+        size: n
+      }, {
+        type: "elem",
+        elem: t
+      }]
+    }, e);
+    return E.makeSpan(["mord", "accentunder"], [i], e);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = t0.mathMLnode(a.label), r = new L.MathNode("munder", [me(a.base, e), t]);
+    return r.setAttribute("accentunder", "true"), r;
+  }
+});
+var yr = (a) => {
+  var e = new L.MathNode("mpadded", a ? [a] : []);
+  return e.setAttribute("width", "+0.6em"), e.setAttribute("lspace", "0.3em"), e;
+};
+U({
+  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(a, e, t) {
+    var {
+      parser: r,
+      funcName: n
+    } = a;
+    return {
+      type: "xArrow",
+      mode: r.mode,
+      label: n,
+      body: e[0],
+      below: t[0]
+    };
+  },
+  // Flow is unable to correctly infer the type of `group`, even though it's
+  // unambiguously determined from the passed-in `type` above.
+  htmlBuilder(a, e) {
+    var t = e.style, r = e.havingStyle(t.sup()), n = E.wrapFragment(ie(a.body, r, e), e), i = a.label.slice(0, 2) === "\\x" ? "x" : "cd";
+    n.classes.push(i + "-arrow-pad");
+    var s;
+    a.below && (r = e.havingStyle(t.sub()), s = E.wrapFragment(ie(a.below, r, e), e), s.classes.push(i + "-arrow-pad"));
+    var l = t0.svgSpan(a, e), o = -e.fontMetrics().axisHeight + 0.5 * l.height, h = -e.fontMetrics().axisHeight - 0.5 * l.height - 0.111;
+    (n.depth > 0.25 || a.label === "\\xleftequilibrium") && (h -= n.depth);
+    var m;
+    if (s) {
+      var d = -e.fontMetrics().axisHeight + s.height + 0.5 * l.height + 0.111;
+      m = E.makeVList({
+        positionType: "individualShift",
+        children: [{
+          type: "elem",
+          elem: n,
+          shift: h
+        }, {
+          type: "elem",
+          elem: l,
+          shift: o
+        }, {
+          type: "elem",
+          elem: s,
+          shift: d
+        }]
+      }, e);
+    } else
+      m = E.makeVList({
+        positionType: "individualShift",
+        children: [{
+          type: "elem",
+          elem: n,
+          shift: h
+        }, {
+          type: "elem",
+          elem: l,
+          shift: o
+        }]
+      }, e);
+    return m.children[0].children[0].children[1].classes.push("svg-align"), E.makeSpan(["mrel", "x-arrow"], [m], e);
+  },
+  mathmlBuilder(a, e) {
+    var t = t0.mathMLnode(a.label);
+    t.setAttribute("minsize", a.label.charAt(0) === "x" ? "1.75em" : "3.0em");
+    var r;
+    if (a.body) {
+      var n = yr(me(a.body, e));
+      if (a.below) {
+        var i = yr(me(a.below, e));
+        r = new L.MathNode("munderover", [t, i, n]);
+      } else
+        r = new L.MathNode("mover", [t, n]);
+    } else if (a.below) {
+      var s = yr(me(a.below, e));
+      r = new L.MathNode("munder", [t, s]);
+    } else
+      r = yr(), r = new L.MathNode("mover", [t, r]);
+    return r;
+  }
+});
+var N1 = E.makeSpan;
+function bl(a, e) {
+  var t = Fe(a.body, e, !0);
+  return N1([a.mclass], t, e);
+}
+function yl(a, e) {
+  var t, r = Ke(a.body, e);
+  return a.mclass === "minner" ? t = new L.MathNode("mpadded", r) : a.mclass === "mord" ? a.isCharacterBox ? (t = r[0], t.type = "mi") : t = new L.MathNode("mi", r) : (a.isCharacterBox ? (t = r[0], t.type = "mo") : t = new L.MathNode("mo", r), a.mclass === "mbin" ? (t.attributes.lspace = "0.22em", t.attributes.rspace = "0.22em") : a.mclass === "mpunct" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0.17em") : a.mclass === "mopen" || a.mclass === "mclose" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0em") : a.mclass === "minner" && (t.attributes.lspace = "0.0556em", t.attributes.width = "+0.1111em")), t;
+}
+U({
+  type: "mclass",
+  names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"],
+  props: {
+    numArgs: 1,
+    primitive: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    return {
+      type: "mclass",
+      mode: t.mode,
+      mclass: "m" + r.slice(5),
+      // TODO(kevinb): don't prefix with 'm'
+      body: _e(n),
+      isCharacterBox: Z.isCharacterBox(n)
+    };
+  },
+  htmlBuilder: bl,
+  mathmlBuilder: yl
+});
+var Qr = (a) => {
+  var e = a.type === "ordgroup" && a.body.length ? a.body[0] : a;
+  return e.type === "atom" && (e.family === "bin" || e.family === "rel") ? "m" + e.family : "mord";
+};
+U({
+  type: "mclass",
+  names: ["\\@binrel"],
+  props: {
+    numArgs: 2
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "mclass",
+      mode: t.mode,
+      mclass: Qr(e[0]),
+      body: _e(e[1]),
+      isCharacterBox: Z.isCharacterBox(e[1])
+    };
+  }
+});
+U({
+  type: "mclass",
+  names: ["\\stackrel", "\\overset", "\\underset"],
+  props: {
+    numArgs: 2
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[1], i = e[0], s;
+    r !== "\\stackrel" ? s = Qr(n) : s = "mrel";
+    var l = {
+      type: "op",
+      mode: n.mode,
+      limits: !0,
+      alwaysHandleSupSub: !0,
+      parentIsSupSub: !1,
+      symbol: !1,
+      suppressBaseShift: r !== "\\stackrel",
+      body: _e(n)
+    }, o = {
+      type: "supsub",
+      mode: i.mode,
+      base: l,
+      sup: r === "\\underset" ? null : i,
+      sub: r === "\\underset" ? i : null
+    };
+    return {
+      type: "mclass",
+      mode: t.mode,
+      mclass: s,
+      body: [o],
+      isCharacterBox: Z.isCharacterBox(o)
+    };
+  },
+  htmlBuilder: bl,
+  mathmlBuilder: yl
+});
+U({
+  type: "pmb",
+  names: ["\\pmb"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "pmb",
+      mode: t.mode,
+      mclass: Qr(e[0]),
+      body: _e(e[0])
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = Fe(a.body, e, !0), r = E.makeSpan([a.mclass], t, e);
+    return r.style.textShadow = "0.02em 0.01em 0.04px", r;
+  },
+  mathmlBuilder(a, e) {
+    var t = Ke(a.body, e), r = new L.MathNode("mstyle", t);
+    return r.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px"), r;
+  }
+});
+var L1 = {
+  ">": "\\\\cdrightarrow",
+  "<": "\\\\cdleftarrow",
+  "=": "\\\\cdlongequal",
+  A: "\\uparrow",
+  V: "\\downarrow",
+  "|": "\\Vert",
+  ".": "no arrow"
+}, yi = () => ({
+  type: "styling",
+  body: [],
+  mode: "math",
+  style: "display"
+}), wi = (a) => a.type === "textord" && a.text === "@", I1 = (a, e) => (a.type === "mathord" || a.type === "atom") && a.text === e;
+function O1(a, e, t) {
+  var r = L1[a];
+  switch (r) {
+    case "\\\\cdrightarrow":
+    case "\\\\cdleftarrow":
+      return t.callFunction(r, [e[0]], [e[1]]);
+    case "\\uparrow":
+    case "\\downarrow": {
+      var n = t.callFunction("\\\\cdleft", [e[0]], []), i = {
+        type: "atom",
+        text: r,
+        mode: "math",
+        family: "rel"
+      }, s = t.callFunction("\\Big", [i], []), l = t.callFunction("\\\\cdright", [e[1]], []), o = {
+        type: "ordgroup",
+        mode: "math",
+        body: [n, s, l]
+      };
+      return t.callFunction("\\\\cdparent", [o], []);
+    }
+    case "\\\\cdlongequal":
+      return t.callFunction("\\\\cdlongequal", [], []);
+    case "\\Vert": {
+      var h = {
+        type: "textord",
+        text: "\\Vert",
+        mode: "math"
+      };
+      return t.callFunction("\\Big", [h], []);
+    }
+    default:
+      return {
+        type: "textord",
+        text: " ",
+        mode: "math"
+      };
+  }
+}
+function q1(a) {
+  var e = [];
+  for (a.gullet.beginGroup(), a.gullet.macros.set("\\cr", "\\\\\\relax"), a.gullet.beginGroup(); ; ) {
+    e.push(a.parseExpression(!1, "\\\\")), a.gullet.endGroup(), a.gullet.beginGroup();
+    var t = a.fetch().text;
+    if (t === "&" || t === "\\\\")
+      a.consume();
+    else if (t === "\\end") {
+      e[e.length - 1].length === 0 && e.pop();
+      break;
+    } else
+      throw new I("Expected \\\\ or \\cr or \\end", a.nextToken);
+  }
+  for (var r = [], n = [r], i = 0; i < e.length; i++) {
+    for (var s = e[i], l = yi(), o = 0; o < s.length; o++)
+      if (!wi(s[o]))
+        l.body.push(s[o]);
+      else {
+        r.push(l), o += 1;
+        var h = mn(s[o]).text, m = new Array(2);
+        if (m[0] = {
+          type: "ordgroup",
+          mode: "math",
+          body: []
+        }, m[1] = {
+          type: "ordgroup",
+          mode: "math",
+          body: []
+        }, !("=|.".indexOf(h) > -1)) if ("<>AV".indexOf(h) > -1)
+          for (var d = 0; d < 2; d++) {
+            for (var v = !0, g = o + 1; g < s.length; g++) {
+              if (I1(s[g], h)) {
+                v = !1, o = g;
+                break;
+              }
+              if (wi(s[g]))
+                throw new I("Missing a " + h + " character to complete a CD arrow.", s[g]);
+              m[d].body.push(s[g]);
+            }
+            if (v)
+              throw new I("Missing a " + h + " character to complete a CD arrow.", s[o]);
+          }
+        else
+          throw new I('Expected one of "<>AV=|." after @', s[o]);
+        var D = O1(h, m, a), S = {
+          type: "styling",
+          body: [D],
+          mode: "math",
+          style: "display"
+          // CD is always displaystyle.
+        };
+        r.push(S), l = yi();
+      }
+    i % 2 === 0 ? r.push(l) : r.shift(), r = [], n.push(r);
+  }
+  a.gullet.endGroup(), a.gullet.endGroup();
+  var F = new Array(n[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: n,
+    arraystretch: 1,
+    addJot: !0,
+    rowGaps: [null],
+    cols: F,
+    colSeparationType: "CD",
+    hLinesBeforeRow: new Array(n.length + 1).fill([])
+  };
+}
+U({
+  type: "cdlabel",
+  names: ["\\\\cdleft", "\\\\cdright"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a;
+    return {
+      type: "cdlabel",
+      mode: t.mode,
+      side: r.slice(4),
+      label: e[0]
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = e.havingStyle(e.style.sup()), r = E.wrapFragment(ie(a.label, t, e), e);
+    return r.classes.push("cd-label-" + a.side), r.style.bottom = H(0.8 - r.depth), r.height = 0, r.depth = 0, r;
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mrow", [me(a.label, e)]);
+    return t = new L.MathNode("mpadded", [t]), t.setAttribute("width", "0"), a.side === "left" && t.setAttribute("lspace", "-1width"), t.setAttribute("voffset", "0.7em"), t = new L.MathNode("mstyle", [t]), t.setAttribute("displaystyle", "false"), t.setAttribute("scriptlevel", "1"), t;
+  }
+});
+U({
+  type: "cdlabelparent",
+  names: ["\\\\cdparent"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "cdlabelparent",
+      mode: t.mode,
+      fragment: e[0]
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = E.wrapFragment(ie(a.fragment, e), e);
+    return t.classes.push("cd-vert-arrow"), t;
+  },
+  mathmlBuilder(a, e) {
+    return new L.MathNode("mrow", [me(a.fragment, e)]);
+  }
+});
+U({
+  type: "textord",
+  names: ["\\@char"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler(a, e) {
+    for (var {
+      parser: t
+    } = a, r = ee(e[0], "ordgroup"), n = r.body, i = "", s = 0; s < n.length; s++) {
+      var l = ee(n[s], "textord");
+      i += l.text;
+    }
+    var o = parseInt(i), h;
+    if (isNaN(o))
+      throw new I("\\@char has non-numeric argument " + i);
+    if (o < 0 || o >= 1114111)
+      throw new I("\\@char with invalid code point " + i);
+    return o <= 65535 ? h = String.fromCharCode(o) : (o -= 65536, h = String.fromCharCode((o >> 10) + 55296, (o & 1023) + 56320)), {
+      type: "textord",
+      mode: t.mode,
+      text: h
+    };
+  }
+});
+var wl = (a, e) => {
+  var t = Fe(a.body, e.withColor(a.color), !1);
+  return E.makeFragment(t);
+}, xl = (a, e) => {
+  var t = Ke(a.body, e.withColor(a.color)), r = new L.MathNode("mstyle", t);
+  return r.setAttribute("mathcolor", a.color), r;
+};
+U({
+  type: "color",
+  names: ["\\textcolor"],
+  props: {
+    numArgs: 2,
+    allowedInText: !0,
+    argTypes: ["color", "original"]
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a, r = ee(e[0], "color-token").color, n = e[1];
+    return {
+      type: "color",
+      mode: t.mode,
+      color: r,
+      body: _e(n)
+    };
+  },
+  htmlBuilder: wl,
+  mathmlBuilder: xl
+});
+U({
+  type: "color",
+  names: ["\\color"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0,
+    argTypes: ["color"]
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      breakOnTokenText: r
+    } = a, n = ee(e[0], "color-token").color;
+    t.gullet.macros.set("\\current@color", n);
+    var i = t.parseExpression(!0, r);
+    return {
+      type: "color",
+      mode: t.mode,
+      color: n,
+      body: i
+    };
+  },
+  htmlBuilder: wl,
+  mathmlBuilder: xl
+});
+U({
+  type: "cr",
+  names: ["\\\\"],
+  props: {
+    numArgs: 0,
+    numOptionalArgs: 0,
+    allowedInText: !0
+  },
+  handler(a, e, t) {
+    var {
+      parser: r
+    } = a, n = r.gullet.future().text === "[" ? r.parseSizeGroup(!0) : null, i = !r.settings.displayMode || !r.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode");
+    return {
+      type: "cr",
+      mode: r.mode,
+      newLine: i,
+      size: n && ee(n, "size").value
+    };
+  },
+  // The following builders are called only at the top level,
+  // not within tabular/array environments.
+  htmlBuilder(a, e) {
+    var t = E.makeSpan(["mspace"], [], e);
+    return a.newLine && (t.classes.push("newline"), a.size && (t.style.marginTop = H(xe(a.size, e)))), t;
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mspace");
+    return a.newLine && (t.setAttribute("linebreak", "newline"), a.size && t.setAttribute("height", H(xe(a.size, e)))), t;
+  }
+});
+var Ga = {
+  "\\global": "\\global",
+  "\\long": "\\\\globallong",
+  "\\\\globallong": "\\\\globallong",
+  "\\def": "\\gdef",
+  "\\gdef": "\\gdef",
+  "\\edef": "\\xdef",
+  "\\xdef": "\\xdef",
+  "\\let": "\\\\globallet",
+  "\\futurelet": "\\\\globalfuture"
+}, kl = (a) => {
+  var e = a.text;
+  if (/^(?:[\\{}$&#^_]|EOF)$/.test(e))
+    throw new I("Expected a control sequence", a);
+  return e;
+}, P1 = (a) => {
+  var e = a.gullet.popToken();
+  return e.text === "=" && (e = a.gullet.popToken(), e.text === " " && (e = a.gullet.popToken())), e;
+}, Dl = (a, e, t, r) => {
+  var n = a.gullet.macros.get(t.text);
+  n == null && (t.noexpand = !0, n = {
+    tokens: [t],
+    numArgs: 0,
+    // reproduce the same behavior in expansion
+    unexpandable: !a.gullet.isExpandable(t.text)
+  }), a.gullet.macros.set(e, n, r);
+};
+U({
+  type: "internal",
+  names: [
+    "\\global",
+    "\\long",
+    "\\\\globallong"
+    // can’t be entered directly
+  ],
+  props: {
+    numArgs: 0,
+    allowedInText: !0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a;
+    e.consumeSpaces();
+    var r = e.fetch();
+    if (Ga[r.text])
+      return (t === "\\global" || t === "\\\\globallong") && (r.text = Ga[r.text]), ee(e.parseFunction(), "internal");
+    throw new I("Invalid token after macro prefix", r);
+  }
+});
+U({
+  type: "internal",
+  names: ["\\def", "\\gdef", "\\edef", "\\xdef"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    primitive: !0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a, r = e.gullet.popToken(), n = r.text;
+    if (/^(?:[\\{}$&#^_]|EOF)$/.test(n))
+      throw new I("Expected a control sequence", r);
+    for (var i = 0, s, l = [[]]; e.gullet.future().text !== "{"; )
+      if (r = e.gullet.popToken(), r.text === "#") {
+        if (e.gullet.future().text === "{") {
+          s = e.gullet.future(), l[i].push("{");
+          break;
+        }
+        if (r = e.gullet.popToken(), !/^[1-9]$/.test(r.text))
+          throw new I('Invalid argument number "' + r.text + '"');
+        if (parseInt(r.text) !== i + 1)
+          throw new I('Argument number "' + r.text + '" out of order');
+        i++, l.push([]);
+      } else {
+        if (r.text === "EOF")
+          throw new I("Expected a macro definition");
+        l[i].push(r.text);
+      }
+    var {
+      tokens: o
+    } = e.gullet.consumeArg();
+    return s && o.unshift(s), (t === "\\edef" || t === "\\xdef") && (o = e.gullet.expandTokens(o), o.reverse()), e.gullet.macros.set(n, {
+      tokens: o,
+      numArgs: i,
+      delimiters: l
+    }, t === Ga[t]), {
+      type: "internal",
+      mode: e.mode
+    };
+  }
+});
+U({
+  type: "internal",
+  names: [
+    "\\let",
+    "\\\\globallet"
+    // can’t be entered directly
+  ],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    primitive: !0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a, r = kl(e.gullet.popToken());
+    e.gullet.consumeSpaces();
+    var n = P1(e);
+    return Dl(e, r, n, t === "\\\\globallet"), {
+      type: "internal",
+      mode: e.mode
+    };
+  }
+});
+U({
+  type: "internal",
+  names: [
+    "\\futurelet",
+    "\\\\globalfuture"
+    // can’t be entered directly
+  ],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    primitive: !0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a, r = kl(e.gullet.popToken()), n = e.gullet.popToken(), i = e.gullet.popToken();
+    return Dl(e, r, i, t === "\\\\globalfuture"), e.gullet.pushToken(i), e.gullet.pushToken(n), {
+      type: "internal",
+      mode: e.mode
+    };
+  }
+});
+var X0 = function(e, t, r) {
+  var n = pe.math[e] && pe.math[e].replace, i = ln(n || e, t, r);
+  if (!i)
+    throw new Error("Unsupported symbol " + e + " and font size " + t + ".");
+  return i;
+}, dn = function(e, t, r, n) {
+  var i = r.havingBaseStyle(t), s = E.makeSpan(n.concat(i.sizingClasses(r)), [e], r), l = i.sizeMultiplier / r.sizeMultiplier;
+  return s.height *= l, s.depth *= l, s.maxFontSize = i.sizeMultiplier, s;
+}, Al = function(e, t, r) {
+  var n = t.havingBaseStyle(r), i = (1 - t.sizeMultiplier / n.sizeMultiplier) * t.fontMetrics().axisHeight;
+  e.classes.push("delimcenter"), e.style.top = H(i), e.height -= i, e.depth += i;
+}, H1 = function(e, t, r, n, i, s) {
+  var l = E.makeSymbol(e, "Main-Regular", i, n), o = dn(l, t, n, s);
+  return r && Al(o, n, t), o;
+}, U1 = function(e, t, r, n) {
+  return E.makeSymbol(e, "Size" + t + "-Regular", r, n);
+}, _l = function(e, t, r, n, i, s) {
+  var l = U1(e, t, i, n), o = dn(E.makeSpan(["delimsizing", "size" + t], [l], n), $.TEXT, n, s);
+  return r && Al(o, n, $.TEXT), o;
+}, pa = function(e, t, r) {
+  var n;
+  t === "Size1-Regular" ? n = "delim-size1" : n = "delim-size4";
+  var i = E.makeSpan(["delimsizinginner", n], [E.makeSpan([], [E.makeSymbol(e, t, r)])]);
+  return {
+    type: "elem",
+    elem: i
+  };
+}, ga = function(e, t, r) {
+  var n = Rt["Size4-Regular"][e.charCodeAt(0)] ? Rt["Size4-Regular"][e.charCodeAt(0)][4] : Rt["Size1-Regular"][e.charCodeAt(0)][4], i = new c0("inner", ju(e, Math.round(1e3 * t))), s = new Jt([i], {
+    width: H(n),
+    height: H(t),
+    // Override CSS rule `.katex svg { width: 100% }`
+    style: "width:" + H(n),
+    viewBox: "0 0 " + 1e3 * n + " " + Math.round(1e3 * t),
+    preserveAspectRatio: "xMinYMin"
+  }), l = E.makeSvgSpan([], [s], r);
+  return l.height = t, l.style.height = H(t), l.style.width = H(n), {
+    type: "elem",
+    elem: l
+  };
+}, Va = 8e-3, wr = {
+  type: "kern",
+  size: -1 * Va
+}, G1 = ["|", "\\lvert", "\\rvert", "\\vert"], V1 = ["\\|", "\\lVert", "\\rVert", "\\Vert"], Sl = function(e, t, r, n, i, s) {
+  var l, o, h, m, d = "", v = 0;
+  l = h = m = e, o = null;
+  var g = "Size1-Regular";
+  e === "\\uparrow" ? h = m = "⏐" : e === "\\Uparrow" ? h = m = "‖" : e === "\\downarrow" ? l = h = "⏐" : e === "\\Downarrow" ? l = h = "‖" : e === "\\updownarrow" ? (l = "\\uparrow", h = "⏐", m = "\\downarrow") : e === "\\Updownarrow" ? (l = "\\Uparrow", h = "‖", m = "\\Downarrow") : Z.contains(G1, e) ? (h = "∣", d = "vert", v = 333) : Z.contains(V1, e) ? (h = "∥", d = "doublevert", v = 556) : e === "[" || e === "\\lbrack" ? (l = "⎡", h = "⎢", m = "⎣", g = "Size4-Regular", d = "lbrack", v = 667) : e === "]" || e === "\\rbrack" ? (l = "⎤", h = "⎥", m = "⎦", g = "Size4-Regular", d = "rbrack", v = 667) : e === "\\lfloor" || e === "⌊" ? (h = l = "⎢", m = "⎣", g = "Size4-Regular", d = "lfloor", v = 667) : e === "\\lceil" || e === "⌈" ? (l = "⎡", h = m = "⎢", g = "Size4-Regular", d = "lceil", v = 667) : e === "\\rfloor" || e === "⌋" ? (h = l = "⎥", m = "⎦", g = "Size4-Regular", d = "rfloor", v = 667) : e === "\\rceil" || e === "⌉" ? (l = "⎤", h = m = "⎥", g = "Size4-Regular", d = "rceil", v = 667) : e === "(" || e === "\\lparen" ? (l = "⎛", h = "⎜", m = "⎝", g = "Size4-Regular", d = "lparen", v = 875) : e === ")" || e === "\\rparen" ? (l = "⎞", h = "⎟", m = "⎠", g = "Size4-Regular", d = "rparen", v = 875) : e === "\\{" || e === "\\lbrace" ? (l = "⎧", o = "⎨", m = "⎩", h = "⎪", g = "Size4-Regular") : e === "\\}" || e === "\\rbrace" ? (l = "⎫", o = "⎬", m = "⎭", h = "⎪", g = "Size4-Regular") : e === "\\lgroup" || e === "⟮" ? (l = "⎧", m = "⎩", h = "⎪", g = "Size4-Regular") : e === "\\rgroup" || e === "⟯" ? (l = "⎫", m = "⎭", h = "⎪", g = "Size4-Regular") : e === "\\lmoustache" || e === "⎰" ? (l = "⎧", m = "⎭", h = "⎪", g = "Size4-Regular") : (e === "\\rmoustache" || e === "⎱") && (l = "⎫", m = "⎩", h = "⎪", g = "Size4-Regular");
+  var D = X0(l, g, i), S = D.height + D.depth, F = X0(h, g, i), T = F.height + F.depth, x = X0(m, g, i), b = x.height + x.depth, A = 0, C = 1;
+  if (o !== null) {
+    var z = X0(o, g, i);
+    A = z.height + z.depth, C = 2;
+  }
+  var B = S + b + A, P = Math.max(0, Math.ceil((t - B) / (C * T))), M = B + P * C * T, R = n.fontMetrics().axisHeight;
+  r && (R *= n.sizeMultiplier);
+  var V = M / 2 - R, X = [];
+  if (d.length > 0) {
+    var be = M - S - b, ae = Math.round(M * 1e3), fe = Zu(d, Math.round(be * 1e3)), ye = new c0(d, fe), Ne = (v / 1e3).toFixed(3) + "em", se = (ae / 1e3).toFixed(3) + "em", he = new Jt([ye], {
+      width: Ne,
+      height: se,
+      viewBox: "0 0 " + v + " " + ae
+    }), ge = E.makeSvgSpan([], [he], n);
+    ge.height = ae / 1e3, ge.style.width = Ne, ge.style.height = se, X.push({
+      type: "elem",
+      elem: ge
+    });
+  } else {
+    if (X.push(pa(m, g, i)), X.push(wr), o === null) {
+      var te = M - S - b + 2 * Va;
+      X.push(ga(h, te, n));
+    } else {
+      var le = (M - S - b - A) / 2 + 2 * Va;
+      X.push(ga(h, le, n)), X.push(wr), X.push(pa(o, g, i)), X.push(wr), X.push(ga(h, le, n));
+    }
+    X.push(wr), X.push(pa(l, g, i));
+  }
+  var oe = n.havingBaseStyle($.TEXT), Me = E.makeVList({
+    positionType: "bottom",
+    positionData: V,
+    children: X
+  }, oe);
+  return dn(E.makeSpan(["delimsizing", "mult"], [Me], oe), $.TEXT, n, s);
+}, va = 80, ba = 0.08, ya = function(e, t, r, n, i) {
+  var s = Yu(e, n, r), l = new c0(e, s), o = new Jt([l], {
+    // Note: 1000:1 ratio of viewBox to document em width.
+    width: "400em",
+    height: H(t),
+    viewBox: "0 0 400000 " + r,
+    preserveAspectRatio: "xMinYMin slice"
+  });
+  return E.makeSvgSpan(["hide-tail"], [o], i);
+}, W1 = function(e, t) {
+  var r = t.havingBaseSizing(), n = Cl("\\surd", e * r.sizeMultiplier, Tl, r), i = r.sizeMultiplier, s = Math.max(0, t.minRuleThickness - t.fontMetrics().sqrtRuleThickness), l, o = 0, h = 0, m = 0, d;
+  return n.type === "small" ? (m = 1e3 + 1e3 * s + va, e < 1 ? i = 1 : e < 1.4 && (i = 0.7), o = (1 + s + ba) / i, h = (1 + s) / i, l = ya("sqrtMain", o, m, s, t), l.style.minWidth = "0.853em", d = 0.833 / i) : n.type === "large" ? (m = (1e3 + va) * Z0[n.size], h = (Z0[n.size] + s) / i, o = (Z0[n.size] + s + ba) / i, l = ya("sqrtSize" + n.size, o, m, s, t), l.style.minWidth = "1.02em", d = 1 / i) : (o = e + s + ba, h = e + s, m = Math.floor(1e3 * e + s) + va, l = ya("sqrtTall", o, m, s, t), l.style.minWidth = "0.742em", d = 1.056), l.height = h, l.style.height = H(o), {
+    span: l,
+    advanceWidth: d,
+    // 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: (t.fontMetrics().sqrtRuleThickness + s) * i
+  };
+}, El = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "\\surd"], X1 = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱"], Fl = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"], Z0 = [0, 1.2, 1.8, 2.4, 3], Y1 = function(e, t, r, n, i) {
+  if (e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle"), Z.contains(El, e) || Z.contains(Fl, e))
+    return _l(e, t, !1, r, n, i);
+  if (Z.contains(X1, e))
+    return Sl(e, Z0[t], !1, r, n, i);
+  throw new I("Illegal delimiter: '" + e + "'");
+}, j1 = [{
+  type: "small",
+  style: $.SCRIPTSCRIPT
+}, {
+  type: "small",
+  style: $.SCRIPT
+}, {
+  type: "small",
+  style: $.TEXT
+}, {
+  type: "large",
+  size: 1
+}, {
+  type: "large",
+  size: 2
+}, {
+  type: "large",
+  size: 3
+}, {
+  type: "large",
+  size: 4
+}], Z1 = [{
+  type: "small",
+  style: $.SCRIPTSCRIPT
+}, {
+  type: "small",
+  style: $.SCRIPT
+}, {
+  type: "small",
+  style: $.TEXT
+}, {
+  type: "stack"
+}], Tl = [{
+  type: "small",
+  style: $.SCRIPTSCRIPT
+}, {
+  type: "small",
+  style: $.SCRIPT
+}, {
+  type: "small",
+  style: $.TEXT
+}, {
+  type: "large",
+  size: 1
+}, {
+  type: "large",
+  size: 2
+}, {
+  type: "large",
+  size: 3
+}, {
+  type: "large",
+  size: 4
+}, {
+  type: "stack"
+}], K1 = function(e) {
+  if (e.type === "small")
+    return "Main-Regular";
+  if (e.type === "large")
+    return "Size" + e.size + "-Regular";
+  if (e.type === "stack")
+    return "Size4-Regular";
+  throw new Error("Add support for delim type '" + e.type + "' here.");
+}, Cl = function(e, t, r, n) {
+  for (var i = Math.min(2, 3 - n.style.size), s = i; s < r.length && r[s].type !== "stack"; s++) {
+    var l = X0(e, K1(r[s]), "math"), o = l.height + l.depth;
+    if (r[s].type === "small") {
+      var h = n.havingBaseStyle(r[s].style);
+      o *= h.sizeMultiplier;
+    }
+    if (o > t)
+      return r[s];
+  }
+  return r[r.length - 1];
+}, Ml = function(e, t, r, n, i, s) {
+  e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle");
+  var l;
+  Z.contains(Fl, e) ? l = j1 : Z.contains(El, e) ? l = Tl : l = Z1;
+  var o = Cl(e, t, l, n);
+  return o.type === "small" ? H1(e, o.style, r, n, i, s) : o.type === "large" ? _l(e, o.size, r, n, i, s) : Sl(e, t, r, n, i, s);
+}, $1 = function(e, t, r, n, i, s) {
+  var l = n.fontMetrics().axisHeight * n.sizeMultiplier, o = 901, h = 5 / n.fontMetrics().ptPerEm, m = Math.max(t - l, r + l), d = 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)
+    m / 500 * o,
+    2 * m - h
+  );
+  return Ml(e, d, !0, n, i, s);
+}, Qt = {
+  sqrtImage: W1,
+  sizedDelim: Y1,
+  sizeToMaxHeight: Z0,
+  customSizedDelim: Ml,
+  leftRightDelim: $1
+}, xi = {
+  "\\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
+  }
+}, Q1 = ["(", "\\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 Jr(a, e) {
+  var t = $r(a);
+  if (t && Z.contains(Q1, t.text))
+    return t;
+  throw t ? new I("Invalid delimiter '" + t.text + "' after '" + e.funcName + "'", a) : new I("Invalid delimiter type '" + a.type + "'", a);
+}
+U({
+  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: (a, e) => {
+    var t = Jr(e[0], a);
+    return {
+      type: "delimsizing",
+      mode: a.parser.mode,
+      size: xi[a.funcName].size,
+      mclass: xi[a.funcName].mclass,
+      delim: t.text
+    };
+  },
+  htmlBuilder: (a, e) => a.delim === "." ? E.makeSpan([a.mclass]) : Qt.sizedDelim(a.delim, a.size, e, a.mode, [a.mclass]),
+  mathmlBuilder: (a) => {
+    var e = [];
+    a.delim !== "." && e.push(dt(a.delim, a.mode));
+    var t = new L.MathNode("mo", e);
+    a.mclass === "mopen" || a.mclass === "mclose" ? t.setAttribute("fence", "true") : t.setAttribute("fence", "false"), t.setAttribute("stretchy", "true");
+    var r = H(Qt.sizeToMaxHeight[a.size]);
+    return t.setAttribute("minsize", r), t.setAttribute("maxsize", r), t;
+  }
+});
+function ki(a) {
+  if (!a.body)
+    throw new Error("Bug: The leftright ParseNode wasn't fully parsed.");
+}
+U({
+  type: "leftright-right",
+  names: ["\\right"],
+  props: {
+    numArgs: 1,
+    primitive: !0
+  },
+  handler: (a, e) => {
+    var t = a.parser.gullet.macros.get("\\current@color");
+    if (t && typeof t != "string")
+      throw new I("\\current@color set to non-string in \\right");
+    return {
+      type: "leftright-right",
+      mode: a.parser.mode,
+      delim: Jr(e[0], a).text,
+      color: t
+      // undefined if not set via \color
+    };
+  }
+});
+U({
+  type: "leftright",
+  names: ["\\left"],
+  props: {
+    numArgs: 1,
+    primitive: !0
+  },
+  handler: (a, e) => {
+    var t = Jr(e[0], a), r = a.parser;
+    ++r.leftrightDepth;
+    var n = r.parseExpression(!1);
+    --r.leftrightDepth, r.expect("\\right", !1);
+    var i = ee(r.parseFunction(), "leftright-right");
+    return {
+      type: "leftright",
+      mode: r.mode,
+      body: n,
+      left: t.text,
+      right: i.delim,
+      rightColor: i.color
+    };
+  },
+  htmlBuilder: (a, e) => {
+    ki(a);
+    for (var t = Fe(a.body, e, !0, ["mopen", "mclose"]), r = 0, n = 0, i = !1, s = 0; s < t.length; s++)
+      t[s].isMiddle ? i = !0 : (r = Math.max(t[s].height, r), n = Math.max(t[s].depth, n));
+    r *= e.sizeMultiplier, n *= e.sizeMultiplier;
+    var l;
+    if (a.left === "." ? l = er(e, ["mopen"]) : l = Qt.leftRightDelim(a.left, r, n, e, a.mode, ["mopen"]), t.unshift(l), i)
+      for (var o = 1; o < t.length; o++) {
+        var h = t[o], m = h.isMiddle;
+        m && (t[o] = Qt.leftRightDelim(m.delim, r, n, m.options, a.mode, []));
+      }
+    var d;
+    if (a.right === ".")
+      d = er(e, ["mclose"]);
+    else {
+      var v = a.rightColor ? e.withColor(a.rightColor) : e;
+      d = Qt.leftRightDelim(a.right, r, n, v, a.mode, ["mclose"]);
+    }
+    return t.push(d), E.makeSpan(["minner"], t, e);
+  },
+  mathmlBuilder: (a, e) => {
+    ki(a);
+    var t = Ke(a.body, e);
+    if (a.left !== ".") {
+      var r = new L.MathNode("mo", [dt(a.left, a.mode)]);
+      r.setAttribute("fence", "true"), t.unshift(r);
+    }
+    if (a.right !== ".") {
+      var n = new L.MathNode("mo", [dt(a.right, a.mode)]);
+      n.setAttribute("fence", "true"), a.rightColor && n.setAttribute("mathcolor", a.rightColor), t.push(n);
+    }
+    return cn(t);
+  }
+});
+U({
+  type: "middle",
+  names: ["\\middle"],
+  props: {
+    numArgs: 1,
+    primitive: !0
+  },
+  handler: (a, e) => {
+    var t = Jr(e[0], a);
+    if (!a.parser.leftrightDepth)
+      throw new I("\\middle without preceding \\left", t);
+    return {
+      type: "middle",
+      mode: a.parser.mode,
+      delim: t.text
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t;
+    if (a.delim === ".")
+      t = er(e, []);
+    else {
+      t = Qt.sizedDelim(a.delim, 1, e, a.mode, []);
+      var r = {
+        delim: a.delim,
+        options: e
+      };
+      t.isMiddle = r;
+    }
+    return t;
+  },
+  mathmlBuilder: (a, e) => {
+    var t = a.delim === "\\vert" || a.delim === "|" ? dt("|", "text") : dt(a.delim, a.mode), r = new L.MathNode("mo", [t]);
+    return r.setAttribute("fence", "true"), r.setAttribute("lspace", "0.05em"), r.setAttribute("rspace", "0.05em"), r;
+  }
+});
+var pn = (a, e) => {
+  var t = E.wrapFragment(ie(a.body, e), e), r = a.label.slice(1), n = e.sizeMultiplier, i, s = 0, l = Z.isCharacterBox(a.body);
+  if (r === "sout")
+    i = E.makeSpan(["stretchy", "sout"]), i.height = e.fontMetrics().defaultRuleThickness / n, s = -0.5 * e.fontMetrics().xHeight;
+  else if (r === "phase") {
+    var o = xe({
+      number: 0.6,
+      unit: "pt"
+    }, e), h = xe({
+      number: 0.35,
+      unit: "ex"
+    }, e), m = e.havingBaseSizing();
+    n = n / m.sizeMultiplier;
+    var d = t.height + t.depth + o + h;
+    t.style.paddingLeft = H(d / 2 + o);
+    var v = Math.floor(1e3 * d * n), g = Wu(v), D = new Jt([new c0("phase", g)], {
+      width: "400em",
+      height: H(v / 1e3),
+      viewBox: "0 0 400000 " + v,
+      preserveAspectRatio: "xMinYMin slice"
+    });
+    i = E.makeSvgSpan(["hide-tail"], [D], e), i.style.height = H(d), s = t.depth + o + h;
+  } else {
+    /cancel/.test(r) ? l || t.classes.push("cancel-pad") : r === "angl" ? t.classes.push("anglpad") : t.classes.push("boxpad");
+    var S = 0, F = 0, T = 0;
+    /box/.test(r) ? (T = Math.max(
+      e.fontMetrics().fboxrule,
+      // default
+      e.minRuleThickness
+      // User override.
+    ), S = e.fontMetrics().fboxsep + (r === "colorbox" ? 0 : T), F = S) : r === "angl" ? (T = Math.max(e.fontMetrics().defaultRuleThickness, e.minRuleThickness), S = 4 * T, F = Math.max(0, 0.25 - t.depth)) : (S = l ? 0.2 : 0, F = S), i = t0.encloseSpan(t, r, S, F, e), /fbox|boxed|fcolorbox/.test(r) ? (i.style.borderStyle = "solid", i.style.borderWidth = H(T)) : r === "angl" && T !== 0.049 && (i.style.borderTopWidth = H(T), i.style.borderRightWidth = H(T)), s = t.depth + F, a.backgroundColor && (i.style.backgroundColor = a.backgroundColor, a.borderColor && (i.style.borderColor = a.borderColor));
+  }
+  var x;
+  if (a.backgroundColor)
+    x = E.makeVList({
+      positionType: "individualShift",
+      children: [
+        // Put the color background behind inner;
+        {
+          type: "elem",
+          elem: i,
+          shift: s
+        },
+        {
+          type: "elem",
+          elem: t,
+          shift: 0
+        }
+      ]
+    }, e);
+  else {
+    var b = /cancel|phase/.test(r) ? ["svg-align"] : [];
+    x = E.makeVList({
+      positionType: "individualShift",
+      children: [
+        // Write the \cancel stroke on top of inner.
+        {
+          type: "elem",
+          elem: t,
+          shift: 0
+        },
+        {
+          type: "elem",
+          elem: i,
+          shift: s,
+          wrapperClasses: b
+        }
+      ]
+    }, e);
+  }
+  return /cancel/.test(r) && (x.height = t.height, x.depth = t.depth), /cancel/.test(r) && !l ? E.makeSpan(["mord", "cancel-lap"], [x], e) : E.makeSpan(["mord"], [x], e);
+}, gn = (a, e) => {
+  var t = 0, r = new L.MathNode(a.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [me(a.body, e)]);
+  switch (a.label) {
+    case "\\cancel":
+      r.setAttribute("notation", "updiagonalstrike");
+      break;
+    case "\\bcancel":
+      r.setAttribute("notation", "downdiagonalstrike");
+      break;
+    case "\\phase":
+      r.setAttribute("notation", "phasorangle");
+      break;
+    case "\\sout":
+      r.setAttribute("notation", "horizontalstrike");
+      break;
+    case "\\fbox":
+      r.setAttribute("notation", "box");
+      break;
+    case "\\angl":
+      r.setAttribute("notation", "actuarial");
+      break;
+    case "\\fcolorbox":
+    case "\\colorbox":
+      if (t = e.fontMetrics().fboxsep * e.fontMetrics().ptPerEm, r.setAttribute("width", "+" + 2 * t + "pt"), r.setAttribute("height", "+" + 2 * t + "pt"), r.setAttribute("lspace", t + "pt"), r.setAttribute("voffset", t + "pt"), a.label === "\\fcolorbox") {
+        var n = Math.max(
+          e.fontMetrics().fboxrule,
+          // default
+          e.minRuleThickness
+          // user override
+        );
+        r.setAttribute("style", "border: " + n + "em solid " + String(a.borderColor));
+      }
+      break;
+    case "\\xcancel":
+      r.setAttribute("notation", "updiagonalstrike downdiagonalstrike");
+      break;
+  }
+  return a.backgroundColor && r.setAttribute("mathbackground", a.backgroundColor), r;
+};
+U({
+  type: "enclose",
+  names: ["\\colorbox"],
+  props: {
+    numArgs: 2,
+    allowedInText: !0,
+    argTypes: ["color", "text"]
+  },
+  handler(a, e, t) {
+    var {
+      parser: r,
+      funcName: n
+    } = a, i = ee(e[0], "color-token").color, s = e[1];
+    return {
+      type: "enclose",
+      mode: r.mode,
+      label: n,
+      backgroundColor: i,
+      body: s
+    };
+  },
+  htmlBuilder: pn,
+  mathmlBuilder: gn
+});
+U({
+  type: "enclose",
+  names: ["\\fcolorbox"],
+  props: {
+    numArgs: 3,
+    allowedInText: !0,
+    argTypes: ["color", "color", "text"]
+  },
+  handler(a, e, t) {
+    var {
+      parser: r,
+      funcName: n
+    } = a, i = ee(e[0], "color-token").color, s = ee(e[1], "color-token").color, l = e[2];
+    return {
+      type: "enclose",
+      mode: r.mode,
+      label: n,
+      backgroundColor: s,
+      borderColor: i,
+      body: l
+    };
+  },
+  htmlBuilder: pn,
+  mathmlBuilder: gn
+});
+U({
+  type: "enclose",
+  names: ["\\fbox"],
+  props: {
+    numArgs: 1,
+    argTypes: ["hbox"],
+    allowedInText: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "enclose",
+      mode: t.mode,
+      label: "\\fbox",
+      body: e[0]
+    };
+  }
+});
+U({
+  type: "enclose",
+  names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    return {
+      type: "enclose",
+      mode: t.mode,
+      label: r,
+      body: n
+    };
+  },
+  htmlBuilder: pn,
+  mathmlBuilder: gn
+});
+U({
+  type: "enclose",
+  names: ["\\angl"],
+  props: {
+    numArgs: 1,
+    argTypes: ["hbox"],
+    allowedInText: !1
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "enclose",
+      mode: t.mode,
+      label: "\\angl",
+      body: e[0]
+    };
+  }
+});
+var zl = {};
+function Ht(a) {
+  for (var {
+    type: e,
+    names: t,
+    props: r,
+    handler: n,
+    htmlBuilder: i,
+    mathmlBuilder: s
+  } = a, l = {
+    type: e,
+    numArgs: r.numArgs || 0,
+    allowedInText: !1,
+    numOptionalArgs: 0,
+    handler: n
+  }, o = 0; o < t.length; ++o)
+    zl[t[o]] = l;
+  i && (Ur[e] = i), s && (Gr[e] = s);
+}
+var Bl = {};
+function p(a, e) {
+  Bl[a] = e;
+}
+function Di(a) {
+  var e = [];
+  a.consumeSpaces();
+  var t = a.fetch().text;
+  for (t === "\\relax" && (a.consume(), a.consumeSpaces(), t = a.fetch().text); t === "\\hline" || t === "\\hdashline"; )
+    a.consume(), e.push(t === "\\hdashline"), a.consumeSpaces(), t = a.fetch().text;
+  return e;
+}
+var ea = (a) => {
+  var e = a.parser.settings;
+  if (!e.displayMode)
+    throw new I("{" + a.envName + "} can be used only in display mode.");
+};
+function vn(a) {
+  if (a.indexOf("ed") === -1)
+    return a.indexOf("*") === -1;
+}
+function m0(a, e, t) {
+  var {
+    hskipBeforeAndAfter: r,
+    addJot: n,
+    cols: i,
+    arraystretch: s,
+    colSeparationType: l,
+    autoTag: o,
+    singleRow: h,
+    emptySingleRow: m,
+    maxNumCols: d,
+    leqno: v
+  } = e;
+  if (a.gullet.beginGroup(), h || a.gullet.macros.set("\\cr", "\\\\\\relax"), !s) {
+    var g = a.gullet.expandMacroAsText("\\arraystretch");
+    if (g == null)
+      s = 1;
+    else if (s = parseFloat(g), !s || s < 0)
+      throw new I("Invalid \\arraystretch: " + g);
+  }
+  a.gullet.beginGroup();
+  var D = [], S = [D], F = [], T = [], x = o != null ? [] : void 0;
+  function b() {
+    o && a.gullet.macros.set("\\@eqnsw", "1", !0);
+  }
+  function A() {
+    x && (a.gullet.macros.get("\\df@tag") ? (x.push(a.subparse([new mt("\\df@tag")])), a.gullet.macros.set("\\df@tag", void 0, !0)) : x.push(!!o && a.gullet.macros.get("\\@eqnsw") === "1"));
+  }
+  for (b(), T.push(Di(a)); ; ) {
+    var C = a.parseExpression(!1, h ? "\\end" : "\\\\");
+    a.gullet.endGroup(), a.gullet.beginGroup(), C = {
+      type: "ordgroup",
+      mode: a.mode,
+      body: C
+    }, t && (C = {
+      type: "styling",
+      mode: a.mode,
+      style: t,
+      body: [C]
+    }), D.push(C);
+    var z = a.fetch().text;
+    if (z === "&") {
+      if (d && D.length === d) {
+        if (h || l)
+          throw new I("Too many tab characters: &", a.nextToken);
+        a.settings.reportNonstrict("textEnv", "Too few columns specified in the {array} column argument.");
+      }
+      a.consume();
+    } else if (z === "\\end") {
+      A(), D.length === 1 && C.type === "styling" && C.body[0].body.length === 0 && (S.length > 1 || !m) && S.pop(), T.length < S.length + 1 && T.push([]);
+      break;
+    } else if (z === "\\\\") {
+      a.consume();
+      var B = void 0;
+      a.gullet.future().text !== " " && (B = a.parseSizeGroup(!0)), F.push(B ? B.value : null), A(), T.push(Di(a)), D = [], S.push(D), b();
+    } else
+      throw new I("Expected & or \\\\ or \\cr or \\end", a.nextToken);
+  }
+  return a.gullet.endGroup(), a.gullet.endGroup(), {
+    type: "array",
+    mode: a.mode,
+    addJot: n,
+    arraystretch: s,
+    body: S,
+    cols: i,
+    rowGaps: F,
+    hskipBeforeAndAfter: r,
+    hLinesBeforeRow: T,
+    colSeparationType: l,
+    tags: x,
+    leqno: v
+  };
+}
+function bn(a) {
+  return a.slice(0, 1) === "d" ? "display" : "text";
+}
+var Ut = function(e, t) {
+  var r, n, i = e.body.length, s = e.hLinesBeforeRow, l = 0, o = new Array(i), h = [], m = Math.max(
+    // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em.
+    t.fontMetrics().arrayRuleWidth,
+    t.minRuleThickness
+    // User override.
+  ), d = 1 / t.fontMetrics().ptPerEm, v = 5 * d;
+  if (e.colSeparationType && e.colSeparationType === "small") {
+    var g = t.havingStyle($.SCRIPT).sizeMultiplier;
+    v = 0.2778 * (g / t.sizeMultiplier);
+  }
+  var D = e.colSeparationType === "CD" ? xe({
+    number: 3,
+    unit: "ex"
+  }, t) : 12 * d, S = 3 * d, F = e.arraystretch * D, T = 0.7 * F, x = 0.3 * F, b = 0;
+  function A(Vt) {
+    for (var Wt = 0; Wt < Vt.length; ++Wt)
+      Wt > 0 && (b += 0.25), h.push({
+        pos: b,
+        isDashed: Vt[Wt]
+      });
+  }
+  for (A(s[0]), r = 0; r < e.body.length; ++r) {
+    var C = e.body[r], z = T, B = x;
+    l < C.length && (l = C.length);
+    var P = new Array(C.length);
+    for (n = 0; n < C.length; ++n) {
+      var M = ie(C[n], t);
+      B < M.depth && (B = M.depth), z < M.height && (z = M.height), P[n] = M;
+    }
+    var R = e.rowGaps[r], V = 0;
+    R && (V = xe(R, t), V > 0 && (V += x, B < V && (B = V), V = 0)), e.addJot && (B += S), P.height = z, P.depth = B, b += z, P.pos = b, b += B + V, o[r] = P, A(s[r + 1]);
+  }
+  var X = b / 2 + t.fontMetrics().axisHeight, be = e.cols || [], ae = [], fe, ye, Ne = [];
+  if (e.tags && e.tags.some((Vt) => Vt))
+    for (r = 0; r < i; ++r) {
+      var se = o[r], he = se.pos - X, ge = e.tags[r], te = void 0;
+      ge === !0 ? te = E.makeSpan(["eqn-num"], [], t) : ge === !1 ? te = E.makeSpan([], [], t) : te = E.makeSpan([], Fe(ge, t, !0), t), te.depth = se.depth, te.height = se.height, Ne.push({
+        type: "elem",
+        elem: te,
+        shift: he
+      });
+    }
+  for (
+    n = 0, ye = 0;
+    // Continue while either there are more columns or more column
+    // descriptions, so trailing separators don't get lost.
+    n < l || ye < be.length;
+    ++n, ++ye
+  ) {
+    for (var le = be[ye] || {}, oe = !0; le.type === "separator"; ) {
+      if (oe || (fe = E.makeSpan(["arraycolsep"], []), fe.style.width = H(t.fontMetrics().doubleRuleSep), ae.push(fe)), le.separator === "|" || le.separator === ":") {
+        var Me = le.separator === "|" ? "solid" : "dashed", q = E.makeSpan(["vertical-separator"], [], t);
+        q.style.height = H(b), q.style.borderRightWidth = H(m), q.style.borderRightStyle = Me, q.style.margin = "0 " + H(-m / 2);
+        var Ie = b - X;
+        Ie && (q.style.verticalAlign = H(-Ie)), ae.push(q);
+      } else
+        throw new I("Invalid separator type: " + le.separator);
+      ye++, le = be[ye] || {}, oe = !1;
+    }
+    if (!(n >= l)) {
+      var Se = void 0;
+      (n > 0 || e.hskipBeforeAndAfter) && (Se = Z.deflt(le.pregap, v), Se !== 0 && (fe = E.makeSpan(["arraycolsep"], []), fe.style.width = H(Se), ae.push(fe)));
+      var Te = [];
+      for (r = 0; r < i; ++r) {
+        var $e = o[r], ze = $e[n];
+        if (ze) {
+          var We = $e.pos - X;
+          ze.depth = $e.depth, ze.height = $e.height, Te.push({
+            type: "elem",
+            elem: ze,
+            shift: We
+          });
+        }
+      }
+      Te = E.makeVList({
+        positionType: "individualShift",
+        children: Te
+      }, t), Te = E.makeSpan(["col-align-" + (le.align || "c")], [Te]), ae.push(Te), (n < l - 1 || e.hskipBeforeAndAfter) && (Se = Z.deflt(le.postgap, v), Se !== 0 && (fe = E.makeSpan(["arraycolsep"], []), fe.style.width = H(Se), ae.push(fe)));
+    }
+  }
+  if (o = E.makeSpan(["mtable"], ae), h.length > 0) {
+    for (var nt = E.makeLineSpan("hline", t, m), bt = E.makeLineSpan("hdashline", t, m), Oe = [{
+      type: "elem",
+      elem: o,
+      shift: 0
+    }]; h.length > 0; ) {
+      var Xe = h.pop(), Ft = Xe.pos - X;
+      Xe.isDashed ? Oe.push({
+        type: "elem",
+        elem: bt,
+        shift: Ft
+      }) : Oe.push({
+        type: "elem",
+        elem: nt,
+        shift: Ft
+      });
+    }
+    o = E.makeVList({
+      positionType: "individualShift",
+      children: Oe
+    }, t);
+  }
+  if (Ne.length === 0)
+    return E.makeSpan(["mord"], [o], t);
+  var Tt = E.makeVList({
+    positionType: "individualShift",
+    children: Ne
+  }, t);
+  return Tt = E.makeSpan(["tag"], [Tt], t), E.makeFragment([o, Tt]);
+}, J1 = {
+  c: "center ",
+  l: "left ",
+  r: "right "
+}, Gt = function(e, t) {
+  for (var r = [], n = new L.MathNode("mtd", [], ["mtr-glue"]), i = new L.MathNode("mtd", [], ["mml-eqn-num"]), s = 0; s < e.body.length; s++) {
+    for (var l = e.body[s], o = [], h = 0; h < l.length; h++)
+      o.push(new L.MathNode("mtd", [me(l[h], t)]));
+    e.tags && e.tags[s] && (o.unshift(n), o.push(n), e.leqno ? o.unshift(i) : o.push(i)), r.push(new L.MathNode("mtr", o));
+  }
+  var m = new L.MathNode("mtable", r), d = e.arraystretch === 0.5 ? 0.1 : 0.16 + e.arraystretch - 1 + (e.addJot ? 0.09 : 0);
+  m.setAttribute("rowspacing", H(d));
+  var v = "", g = "";
+  if (e.cols && e.cols.length > 0) {
+    var D = e.cols, S = "", F = !1, T = 0, x = D.length;
+    D[0].type === "separator" && (v += "top ", T = 1), D[D.length - 1].type === "separator" && (v += "bottom ", x -= 1);
+    for (var b = T; b < x; b++)
+      D[b].type === "align" ? (g += J1[D[b].align], F && (S += "none "), F = !0) : D[b].type === "separator" && F && (S += D[b].separator === "|" ? "solid " : "dashed ", F = !1);
+    m.setAttribute("columnalign", g.trim()), /[sd]/.test(S) && m.setAttribute("columnlines", S.trim());
+  }
+  if (e.colSeparationType === "align") {
+    for (var A = e.cols || [], C = "", z = 1; z < A.length; z++)
+      C += z % 2 ? "0em " : "1em ";
+    m.setAttribute("columnspacing", C.trim());
+  } else e.colSeparationType === "alignat" || e.colSeparationType === "gather" ? m.setAttribute("columnspacing", "0em") : e.colSeparationType === "small" ? m.setAttribute("columnspacing", "0.2778em") : e.colSeparationType === "CD" ? m.setAttribute("columnspacing", "0.5em") : m.setAttribute("columnspacing", "1em");
+  var B = "", P = e.hLinesBeforeRow;
+  v += P[0].length > 0 ? "left " : "", v += P[P.length - 1].length > 0 ? "right " : "";
+  for (var M = 1; M < P.length - 1; M++)
+    B += P[M].length === 0 ? "none " : P[M][0] ? "dashed " : "solid ";
+  return /[sd]/.test(B) && m.setAttribute("rowlines", B.trim()), v !== "" && (m = new L.MathNode("menclose", [m]), m.setAttribute("notation", v.trim())), e.arraystretch && e.arraystretch < 1 && (m = new L.MathNode("mstyle", [m]), m.setAttribute("scriptlevel", "1")), m;
+}, Rl = function(e, t) {
+  e.envName.indexOf("ed") === -1 && ea(e);
+  var r = [], n = e.envName.indexOf("at") > -1 ? "alignat" : "align", i = e.envName === "split", s = m0(e.parser, {
+    cols: r,
+    addJot: !0,
+    autoTag: i ? void 0 : vn(e.envName),
+    emptySingleRow: !0,
+    colSeparationType: n,
+    maxNumCols: i ? 2 : void 0,
+    leqno: e.parser.settings.leqno
+  }, "display"), l, o = 0, h = {
+    type: "ordgroup",
+    mode: e.mode,
+    body: []
+  };
+  if (t[0] && t[0].type === "ordgroup") {
+    for (var m = "", d = 0; d < t[0].body.length; d++) {
+      var v = ee(t[0].body[d], "textord");
+      m += v.text;
+    }
+    l = Number(m), o = l * 2;
+  }
+  var g = !o;
+  s.body.forEach(function(T) {
+    for (var x = 1; x < T.length; x += 2) {
+      var b = ee(T[x], "styling"), A = ee(b.body[0], "ordgroup");
+      A.body.unshift(h);
+    }
+    if (g)
+      o < T.length && (o = T.length);
+    else {
+      var C = T.length / 2;
+      if (l < C)
+        throw new I("Too many math in a row: " + ("expected " + l + ", but got " + C), T[0]);
+    }
+  });
+  for (var D = 0; D < o; ++D) {
+    var S = "r", F = 0;
+    D % 2 === 1 ? S = "l" : D > 0 && g && (F = 1), r[D] = {
+      type: "align",
+      align: S,
+      pregap: F,
+      postgap: 0
+    };
+  }
+  return s.colSeparationType = g ? "align" : "alignat", s;
+};
+Ht({
+  type: "array",
+  names: ["array", "darray"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var t = $r(e[0]), r = t ? [e[0]] : ee(e[0], "ordgroup").body, n = r.map(function(s) {
+      var l = mn(s), o = l.text;
+      if ("lcr".indexOf(o) !== -1)
+        return {
+          type: "align",
+          align: o
+        };
+      if (o === "|")
+        return {
+          type: "separator",
+          separator: "|"
+        };
+      if (o === ":")
+        return {
+          type: "separator",
+          separator: ":"
+        };
+      throw new I("Unknown column alignment: " + o, s);
+    }), i = {
+      cols: n,
+      hskipBeforeAndAfter: !0,
+      // \@preamble in lttab.dtx
+      maxNumCols: n.length
+    };
+    return m0(a.parser, i, bn(a.envName));
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    var e = {
+      matrix: null,
+      pmatrix: ["(", ")"],
+      bmatrix: ["[", "]"],
+      Bmatrix: ["\\{", "\\}"],
+      vmatrix: ["|", "|"],
+      Vmatrix: ["\\Vert", "\\Vert"]
+    }[a.envName.replace("*", "")], t = "c", r = {
+      hskipBeforeAndAfter: !1,
+      cols: [{
+        type: "align",
+        align: t
+      }]
+    };
+    if (a.envName.charAt(a.envName.length - 1) === "*") {
+      var n = a.parser;
+      if (n.consumeSpaces(), n.fetch().text === "[") {
+        if (n.consume(), n.consumeSpaces(), t = n.fetch().text, "lcr".indexOf(t) === -1)
+          throw new I("Expected l or c or r", n.nextToken);
+        n.consume(), n.consumeSpaces(), n.expect("]"), n.consume(), r.cols = [{
+          type: "align",
+          align: t
+        }];
+      }
+    }
+    var i = m0(a.parser, r, bn(a.envName)), s = Math.max(0, ...i.body.map((l) => l.length));
+    return i.cols = new Array(s).fill({
+      type: "align",
+      align: t
+    }), e ? {
+      type: "leftright",
+      mode: a.mode,
+      body: [i],
+      left: e[0],
+      right: e[1],
+      rightColor: void 0
+      // \right uninfluenced by \color in array
+    } : i;
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["smallmatrix"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    var e = {
+      arraystretch: 0.5
+    }, t = m0(a.parser, e, "script");
+    return t.colSeparationType = "small", t;
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["subarray"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var t = $r(e[0]), r = t ? [e[0]] : ee(e[0], "ordgroup").body, n = r.map(function(s) {
+      var l = mn(s), o = l.text;
+      if ("lc".indexOf(o) !== -1)
+        return {
+          type: "align",
+          align: o
+        };
+      throw new I("Unknown column alignment: " + o, s);
+    });
+    if (n.length > 1)
+      throw new I("{subarray} can contain only one column");
+    var i = {
+      cols: n,
+      hskipBeforeAndAfter: !1,
+      arraystretch: 0.5
+    };
+    if (i = m0(a.parser, i, "script"), i.body.length > 0 && i.body[0].length > 1)
+      throw new I("{subarray} can contain only one column");
+    return i;
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["cases", "dcases", "rcases", "drcases"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    var e = {
+      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
+      }]
+    }, t = m0(a.parser, e, bn(a.envName));
+    return {
+      type: "leftright",
+      mode: a.mode,
+      body: [t],
+      left: a.envName.indexOf("r") > -1 ? "." : "\\{",
+      right: a.envName.indexOf("r") > -1 ? "\\}" : ".",
+      rightColor: void 0
+    };
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["align", "align*", "aligned", "split"],
+  props: {
+    numArgs: 0
+  },
+  handler: Rl,
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["gathered", "gather", "gather*"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    Z.contains(["gather", "gather*"], a.envName) && ea(a);
+    var e = {
+      cols: [{
+        type: "align",
+        align: "c"
+      }],
+      addJot: !0,
+      colSeparationType: "gather",
+      autoTag: vn(a.envName),
+      emptySingleRow: !0,
+      leqno: a.parser.settings.leqno
+    };
+    return m0(a.parser, e, "display");
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["alignat", "alignat*", "alignedat"],
+  props: {
+    numArgs: 1
+  },
+  handler: Rl,
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["equation", "equation*"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    ea(a);
+    var e = {
+      autoTag: vn(a.envName),
+      emptySingleRow: !0,
+      singleRow: !0,
+      maxNumCols: 1,
+      leqno: a.parser.settings.leqno
+    };
+    return m0(a.parser, e, "display");
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+Ht({
+  type: "array",
+  names: ["CD"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    return ea(a), q1(a.parser);
+  },
+  htmlBuilder: Ut,
+  mathmlBuilder: Gt
+});
+p("\\nonumber", "\\gdef\\@eqnsw{0}");
+p("\\notag", "\\nonumber");
+U({
+  type: "text",
+  // Doesn't matter what this is.
+  names: ["\\hline", "\\hdashline"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    allowedInMath: !0
+  },
+  handler(a, e) {
+    throw new I(a.funcName + " valid only within array environment");
+  }
+});
+var Ai = zl;
+U({
+  type: "environment",
+  names: ["\\begin", "\\end"],
+  props: {
+    numArgs: 1,
+    argTypes: ["text"]
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    if (n.type !== "ordgroup")
+      throw new I("Invalid environment name", n);
+    for (var i = "", s = 0; s < n.body.length; ++s)
+      i += ee(n.body[s], "textord").text;
+    if (r === "\\begin") {
+      if (!Ai.hasOwnProperty(i))
+        throw new I("No such environment: " + i, n);
+      var l = Ai[i], {
+        args: o,
+        optArgs: h
+      } = t.parseArguments("\\begin{" + i + "}", l), m = {
+        mode: t.mode,
+        envName: i,
+        parser: t
+      }, d = l.handler(m, o, h);
+      t.expect("\\end", !1);
+      var v = t.nextToken, g = ee(t.parseFunction(), "environment");
+      if (g.name !== i)
+        throw new I("Mismatch: \\begin{" + i + "} matched by \\end{" + g.name + "}", v);
+      return d;
+    }
+    return {
+      type: "environment",
+      mode: t.mode,
+      name: i,
+      nameGroup: n
+    };
+  }
+});
+var Nl = (a, e) => {
+  var t = a.font, r = e.withFont(t);
+  return ie(a.body, r);
+}, Ll = (a, e) => {
+  var t = a.font, r = e.withFont(t);
+  return me(a.body, r);
+}, _i = {
+  "\\Bbb": "\\mathbb",
+  "\\bold": "\\mathbf",
+  "\\frak": "\\mathfrak",
+  "\\bm": "\\boldsymbol"
+};
+U({
+  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: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = Vr(e[0]), i = r;
+    return i in _i && (i = _i[i]), {
+      type: "font",
+      mode: t.mode,
+      font: i.slice(1),
+      body: n
+    };
+  },
+  htmlBuilder: Nl,
+  mathmlBuilder: Ll
+});
+U({
+  type: "mclass",
+  names: ["\\boldsymbol", "\\bm"],
+  props: {
+    numArgs: 1
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = e[0], n = Z.isCharacterBox(r);
+    return {
+      type: "mclass",
+      mode: t.mode,
+      mclass: Qr(r),
+      body: [{
+        type: "font",
+        mode: t.mode,
+        font: "boldsymbol",
+        body: r
+      }],
+      isCharacterBox: n
+    };
+  }
+});
+U({
+  type: "font",
+  names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r,
+      breakOnTokenText: n
+    } = a, {
+      mode: i
+    } = t, s = t.parseExpression(!0, n), l = "math" + r.slice(1);
+    return {
+      type: "font",
+      mode: i,
+      font: l,
+      body: {
+        type: "ordgroup",
+        mode: t.mode,
+        body: s
+      }
+    };
+  },
+  htmlBuilder: Nl,
+  mathmlBuilder: Ll
+});
+var Il = (a, e) => {
+  var t = e;
+  return a === "display" ? t = t.id >= $.SCRIPT.id ? t.text() : $.DISPLAY : a === "text" && t.size === $.DISPLAY.size ? t = $.TEXT : a === "script" ? t = $.SCRIPT : a === "scriptscript" && (t = $.SCRIPTSCRIPT), t;
+}, yn = (a, e) => {
+  var t = Il(a.size, e.style), r = t.fracNum(), n = t.fracDen(), i;
+  i = e.havingStyle(r);
+  var s = ie(a.numer, i, e);
+  if (a.continued) {
+    var l = 8.5 / e.fontMetrics().ptPerEm, o = 3.5 / e.fontMetrics().ptPerEm;
+    s.height = s.height < l ? l : s.height, s.depth = s.depth < o ? o : s.depth;
+  }
+  i = e.havingStyle(n);
+  var h = ie(a.denom, i, e), m, d, v;
+  a.hasBarLine ? (a.barSize ? (d = xe(a.barSize, e), m = E.makeLineSpan("frac-line", e, d)) : m = E.makeLineSpan("frac-line", e), d = m.height, v = m.height) : (m = null, d = 0, v = e.fontMetrics().defaultRuleThickness);
+  var g, D, S;
+  t.size === $.DISPLAY.size || a.size === "display" ? (g = e.fontMetrics().num1, d > 0 ? D = 3 * v : D = 7 * v, S = e.fontMetrics().denom1) : (d > 0 ? (g = e.fontMetrics().num2, D = v) : (g = e.fontMetrics().num3, D = 3 * v), S = e.fontMetrics().denom2);
+  var F;
+  if (m) {
+    var x = e.fontMetrics().axisHeight;
+    g - s.depth - (x + 0.5 * d) < D && (g += D - (g - s.depth - (x + 0.5 * d))), x - 0.5 * d - (h.height - S) < D && (S += D - (x - 0.5 * d - (h.height - S)));
+    var b = -(x - 0.5 * d);
+    F = E.makeVList({
+      positionType: "individualShift",
+      children: [{
+        type: "elem",
+        elem: h,
+        shift: S
+      }, {
+        type: "elem",
+        elem: m,
+        shift: b
+      }, {
+        type: "elem",
+        elem: s,
+        shift: -g
+      }]
+    }, e);
+  } else {
+    var T = g - s.depth - (h.height - S);
+    T < D && (g += 0.5 * (D - T), S += 0.5 * (D - T)), F = E.makeVList({
+      positionType: "individualShift",
+      children: [{
+        type: "elem",
+        elem: h,
+        shift: S
+      }, {
+        type: "elem",
+        elem: s,
+        shift: -g
+      }]
+    }, e);
+  }
+  i = e.havingStyle(t), F.height *= i.sizeMultiplier / e.sizeMultiplier, F.depth *= i.sizeMultiplier / e.sizeMultiplier;
+  var A;
+  t.size === $.DISPLAY.size ? A = e.fontMetrics().delim1 : t.size === $.SCRIPTSCRIPT.size ? A = e.havingStyle($.SCRIPT).fontMetrics().delim2 : A = e.fontMetrics().delim2;
+  var C, z;
+  return a.leftDelim == null ? C = er(e, ["mopen"]) : C = Qt.customSizedDelim(a.leftDelim, A, !0, e.havingStyle(t), a.mode, ["mopen"]), a.continued ? z = E.makeSpan([]) : a.rightDelim == null ? z = er(e, ["mclose"]) : z = Qt.customSizedDelim(a.rightDelim, A, !0, e.havingStyle(t), a.mode, ["mclose"]), E.makeSpan(["mord"].concat(i.sizingClasses(e)), [C, E.makeSpan(["mfrac"], [F]), z], e);
+}, wn = (a, e) => {
+  var t = new L.MathNode("mfrac", [me(a.numer, e), me(a.denom, e)]);
+  if (!a.hasBarLine)
+    t.setAttribute("linethickness", "0px");
+  else if (a.barSize) {
+    var r = xe(a.barSize, e);
+    t.setAttribute("linethickness", H(r));
+  }
+  var n = Il(a.size, e.style);
+  if (n.size !== e.style.size) {
+    t = new L.MathNode("mstyle", [t]);
+    var i = n.size === $.DISPLAY.size ? "true" : "false";
+    t.setAttribute("displaystyle", i), t.setAttribute("scriptlevel", "0");
+  }
+  if (a.leftDelim != null || a.rightDelim != null) {
+    var s = [];
+    if (a.leftDelim != null) {
+      var l = new L.MathNode("mo", [new L.TextNode(a.leftDelim.replace("\\", ""))]);
+      l.setAttribute("fence", "true"), s.push(l);
+    }
+    if (s.push(t), a.rightDelim != null) {
+      var o = new L.MathNode("mo", [new L.TextNode(a.rightDelim.replace("\\", ""))]);
+      o.setAttribute("fence", "true"), s.push(o);
+    }
+    return cn(s);
+  }
+  return t;
+};
+U({
+  type: "genfrac",
+  names: [
+    "\\dfrac",
+    "\\frac",
+    "\\tfrac",
+    "\\dbinom",
+    "\\binom",
+    "\\tbinom",
+    "\\\\atopfrac",
+    // can’t be entered directly
+    "\\\\bracefrac",
+    "\\\\brackfrac"
+    // ditto
+  ],
+  props: {
+    numArgs: 2,
+    allowedInArgument: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0], i = e[1], s, l = null, o = null, h = "auto";
+    switch (r) {
+      case "\\dfrac":
+      case "\\frac":
+      case "\\tfrac":
+        s = !0;
+        break;
+      case "\\\\atopfrac":
+        s = !1;
+        break;
+      case "\\dbinom":
+      case "\\binom":
+      case "\\tbinom":
+        s = !1, l = "(", o = ")";
+        break;
+      case "\\\\bracefrac":
+        s = !1, l = "\\{", o = "\\}";
+        break;
+      case "\\\\brackfrac":
+        s = !1, l = "[", o = "]";
+        break;
+      default:
+        throw new Error("Unrecognized genfrac command");
+    }
+    switch (r) {
+      case "\\dfrac":
+      case "\\dbinom":
+        h = "display";
+        break;
+      case "\\tfrac":
+      case "\\tbinom":
+        h = "text";
+        break;
+    }
+    return {
+      type: "genfrac",
+      mode: t.mode,
+      continued: !1,
+      numer: n,
+      denom: i,
+      hasBarLine: s,
+      leftDelim: l,
+      rightDelim: o,
+      size: h,
+      barSize: null
+    };
+  },
+  htmlBuilder: yn,
+  mathmlBuilder: wn
+});
+U({
+  type: "genfrac",
+  names: ["\\cfrac"],
+  props: {
+    numArgs: 2
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0], i = e[1];
+    return {
+      type: "genfrac",
+      mode: t.mode,
+      continued: !0,
+      numer: n,
+      denom: i,
+      hasBarLine: !0,
+      leftDelim: null,
+      rightDelim: null,
+      size: "display",
+      barSize: null
+    };
+  }
+});
+U({
+  type: "infix",
+  names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"],
+  props: {
+    numArgs: 0,
+    infix: !0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t,
+      token: r
+    } = a, n;
+    switch (t) {
+      case "\\over":
+        n = "\\frac";
+        break;
+      case "\\choose":
+        n = "\\binom";
+        break;
+      case "\\atop":
+        n = "\\\\atopfrac";
+        break;
+      case "\\brace":
+        n = "\\\\bracefrac";
+        break;
+      case "\\brack":
+        n = "\\\\brackfrac";
+        break;
+      default:
+        throw new Error("Unrecognized infix genfrac command");
+    }
+    return {
+      type: "infix",
+      mode: e.mode,
+      replaceWith: n,
+      token: r
+    };
+  }
+});
+var Si = ["display", "text", "script", "scriptscript"], Ei = function(e) {
+  var t = null;
+  return e.length > 0 && (t = e, t = t === "." ? null : t), t;
+};
+U({
+  type: "genfrac",
+  names: ["\\genfrac"],
+  props: {
+    numArgs: 6,
+    allowedInArgument: !0,
+    argTypes: ["math", "math", "size", "text", "math", "math"]
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a, r = e[4], n = e[5], i = Vr(e[0]), s = i.type === "atom" && i.family === "open" ? Ei(i.text) : null, l = Vr(e[1]), o = l.type === "atom" && l.family === "close" ? Ei(l.text) : null, h = ee(e[2], "size"), m, d = null;
+    h.isBlank ? m = !0 : (d = h.value, m = d.number > 0);
+    var v = "auto", g = e[3];
+    if (g.type === "ordgroup") {
+      if (g.body.length > 0) {
+        var D = ee(g.body[0], "textord");
+        v = Si[Number(D.text)];
+      }
+    } else
+      g = ee(g, "textord"), v = Si[Number(g.text)];
+    return {
+      type: "genfrac",
+      mode: t.mode,
+      numer: r,
+      denom: n,
+      continued: !1,
+      hasBarLine: m,
+      barSize: d,
+      leftDelim: s,
+      rightDelim: o,
+      size: v
+    };
+  },
+  htmlBuilder: yn,
+  mathmlBuilder: wn
+});
+U({
+  type: "infix",
+  names: ["\\above"],
+  props: {
+    numArgs: 1,
+    argTypes: ["size"],
+    infix: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r,
+      token: n
+    } = a;
+    return {
+      type: "infix",
+      mode: t.mode,
+      replaceWith: "\\\\abovefrac",
+      size: ee(e[0], "size").value,
+      token: n
+    };
+  }
+});
+U({
+  type: "genfrac",
+  names: ["\\\\abovefrac"],
+  props: {
+    numArgs: 3,
+    argTypes: ["math", "size", "math"]
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0], i = Cu(ee(e[1], "infix").size), s = e[2], l = i.number > 0;
+    return {
+      type: "genfrac",
+      mode: t.mode,
+      numer: n,
+      denom: s,
+      continued: !1,
+      hasBarLine: l,
+      barSize: i,
+      leftDelim: null,
+      rightDelim: null,
+      size: "auto"
+    };
+  },
+  htmlBuilder: yn,
+  mathmlBuilder: wn
+});
+var Ol = (a, e) => {
+  var t = e.style, r, n;
+  a.type === "supsub" ? (r = a.sup ? ie(a.sup, e.havingStyle(t.sup()), e) : ie(a.sub, e.havingStyle(t.sub()), e), n = ee(a.base, "horizBrace")) : n = ee(a, "horizBrace");
+  var i = ie(n.base, e.havingBaseStyle($.DISPLAY)), s = t0.svgSpan(n, e), l;
+  if (n.isOver ? (l = E.makeVList({
+    positionType: "firstBaseline",
+    children: [{
+      type: "elem",
+      elem: i
+    }, {
+      type: "kern",
+      size: 0.1
+    }, {
+      type: "elem",
+      elem: s
+    }]
+  }, e), l.children[0].children[0].children[1].classes.push("svg-align")) : (l = E.makeVList({
+    positionType: "bottom",
+    positionData: i.depth + 0.1 + s.height,
+    children: [{
+      type: "elem",
+      elem: s
+    }, {
+      type: "kern",
+      size: 0.1
+    }, {
+      type: "elem",
+      elem: i
+    }]
+  }, e), l.children[0].children[0].children[0].classes.push("svg-align")), r) {
+    var o = E.makeSpan(["mord", n.isOver ? "mover" : "munder"], [l], e);
+    n.isOver ? l = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: o
+      }, {
+        type: "kern",
+        size: 0.2
+      }, {
+        type: "elem",
+        elem: r
+      }]
+    }, e) : l = E.makeVList({
+      positionType: "bottom",
+      positionData: o.depth + 0.2 + r.height + r.depth,
+      children: [{
+        type: "elem",
+        elem: r
+      }, {
+        type: "kern",
+        size: 0.2
+      }, {
+        type: "elem",
+        elem: o
+      }]
+    }, e);
+  }
+  return E.makeSpan(["mord", n.isOver ? "mover" : "munder"], [l], e);
+}, ec = (a, e) => {
+  var t = t0.mathMLnode(a.label);
+  return new L.MathNode(a.isOver ? "mover" : "munder", [me(a.base, e), t]);
+};
+U({
+  type: "horizBrace",
+  names: ["\\overbrace", "\\underbrace"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a;
+    return {
+      type: "horizBrace",
+      mode: t.mode,
+      label: r,
+      isOver: /^\\over/.test(r),
+      base: e[0]
+    };
+  },
+  htmlBuilder: Ol,
+  mathmlBuilder: ec
+});
+U({
+  type: "href",
+  names: ["\\href"],
+  props: {
+    numArgs: 2,
+    argTypes: ["url", "original"],
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = e[1], n = ee(e[0], "url").url;
+    return t.settings.isTrusted({
+      command: "\\href",
+      url: n
+    }) ? {
+      type: "href",
+      mode: t.mode,
+      href: n,
+      body: _e(r)
+    } : t.formatUnsupportedCmd("\\href");
+  },
+  htmlBuilder: (a, e) => {
+    var t = Fe(a.body, e, !1);
+    return E.makeAnchor(a.href, [], t, e);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = h0(a.body, e);
+    return t instanceof ot || (t = new ot("mrow", [t])), t.setAttribute("href", a.href), t;
+  }
+});
+U({
+  type: "href",
+  names: ["\\url"],
+  props: {
+    numArgs: 1,
+    argTypes: ["url"],
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = ee(e[0], "url").url;
+    if (!t.settings.isTrusted({
+      command: "\\url",
+      url: r
+    }))
+      return t.formatUnsupportedCmd("\\url");
+    for (var n = [], i = 0; i < r.length; i++) {
+      var s = r[i];
+      s === "~" && (s = "\\textasciitilde"), n.push({
+        type: "textord",
+        mode: "text",
+        text: s
+      });
+    }
+    var l = {
+      type: "text",
+      mode: t.mode,
+      font: "\\texttt",
+      body: n
+    };
+    return {
+      type: "href",
+      mode: t.mode,
+      href: r,
+      body: _e(l)
+    };
+  }
+});
+U({
+  type: "hbox",
+  names: ["\\hbox"],
+  props: {
+    numArgs: 1,
+    argTypes: ["text"],
+    allowedInText: !0,
+    primitive: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "hbox",
+      mode: t.mode,
+      body: _e(e[0])
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = Fe(a.body, e, !1);
+    return E.makeFragment(t);
+  },
+  mathmlBuilder(a, e) {
+    return new L.MathNode("mrow", Ke(a.body, e));
+  }
+});
+U({
+  type: "html",
+  names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"],
+  props: {
+    numArgs: 2,
+    argTypes: ["raw", "original"],
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r,
+      token: n
+    } = a, i = ee(e[0], "raw").string, s = e[1];
+    t.settings.strict && t.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode");
+    var l, o = {};
+    switch (r) {
+      case "\\htmlClass":
+        o.class = i, l = {
+          command: "\\htmlClass",
+          class: i
+        };
+        break;
+      case "\\htmlId":
+        o.id = i, l = {
+          command: "\\htmlId",
+          id: i
+        };
+        break;
+      case "\\htmlStyle":
+        o.style = i, l = {
+          command: "\\htmlStyle",
+          style: i
+        };
+        break;
+      case "\\htmlData": {
+        for (var h = i.split(","), m = 0; m < h.length; m++) {
+          var d = h[m].split("=");
+          if (d.length !== 2)
+            throw new I("Error parsing key-value for \\htmlData");
+          o["data-" + d[0].trim()] = d[1].trim();
+        }
+        l = {
+          command: "\\htmlData",
+          attributes: o
+        };
+        break;
+      }
+      default:
+        throw new Error("Unrecognized html command");
+    }
+    return t.settings.isTrusted(l) ? {
+      type: "html",
+      mode: t.mode,
+      attributes: o,
+      body: _e(s)
+    } : t.formatUnsupportedCmd(r);
+  },
+  htmlBuilder: (a, e) => {
+    var t = Fe(a.body, e, !1), r = ["enclosing"];
+    a.attributes.class && r.push(...a.attributes.class.trim().split(/\s+/));
+    var n = E.makeSpan(r, t, e);
+    for (var i in a.attributes)
+      i !== "class" && a.attributes.hasOwnProperty(i) && n.setAttribute(i, a.attributes[i]);
+    return n;
+  },
+  mathmlBuilder: (a, e) => h0(a.body, e)
+});
+U({
+  type: "htmlmathml",
+  names: ["\\html@mathml"],
+  props: {
+    numArgs: 2,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "htmlmathml",
+      mode: t.mode,
+      html: _e(e[0]),
+      mathml: _e(e[1])
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = Fe(a.html, e, !1);
+    return E.makeFragment(t);
+  },
+  mathmlBuilder: (a, e) => h0(a.mathml, e)
+});
+var wa = function(e) {
+  if (/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))
+    return {
+      number: +e,
+      unit: "bp"
+    };
+  var t = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);
+  if (!t)
+    throw new I("Invalid size: '" + e + "' in \\includegraphics");
+  var r = {
+    number: +(t[1] + t[2]),
+    // sign + magnitude, cast to number
+    unit: t[3]
+  };
+  if (!al(r))
+    throw new I("Invalid unit: '" + r.unit + "' in \\includegraphics.");
+  return r;
+};
+U({
+  type: "includegraphics",
+  names: ["\\includegraphics"],
+  props: {
+    numArgs: 1,
+    numOptionalArgs: 1,
+    argTypes: ["raw", "url"],
+    allowedInText: !1
+  },
+  handler: (a, e, t) => {
+    var {
+      parser: r
+    } = a, n = {
+      number: 0,
+      unit: "em"
+    }, i = {
+      number: 0.9,
+      unit: "em"
+    }, s = {
+      number: 0,
+      unit: "em"
+    }, l = "";
+    if (t[0])
+      for (var o = ee(t[0], "raw").string, h = o.split(","), m = 0; m < h.length; m++) {
+        var d = h[m].split("=");
+        if (d.length === 2) {
+          var v = d[1].trim();
+          switch (d[0].trim()) {
+            case "alt":
+              l = v;
+              break;
+            case "width":
+              n = wa(v);
+              break;
+            case "height":
+              i = wa(v);
+              break;
+            case "totalheight":
+              s = wa(v);
+              break;
+            default:
+              throw new I("Invalid key: '" + d[0] + "' in \\includegraphics.");
+          }
+        }
+      }
+    var g = ee(e[0], "url").url;
+    return l === "" && (l = g, l = l.replace(/^.*[\\/]/, ""), l = l.substring(0, l.lastIndexOf("."))), r.settings.isTrusted({
+      command: "\\includegraphics",
+      url: g
+    }) ? {
+      type: "includegraphics",
+      mode: r.mode,
+      alt: l,
+      width: n,
+      height: i,
+      totalheight: s,
+      src: g
+    } : r.formatUnsupportedCmd("\\includegraphics");
+  },
+  htmlBuilder: (a, e) => {
+    var t = xe(a.height, e), r = 0;
+    a.totalheight.number > 0 && (r = xe(a.totalheight, e) - t);
+    var n = 0;
+    a.width.number > 0 && (n = xe(a.width, e));
+    var i = {
+      height: H(t + r)
+    };
+    n > 0 && (i.width = H(n)), r > 0 && (i.verticalAlign = H(-r));
+    var s = new e1(a.src, a.alt, i);
+    return s.height = t, s.depth = r, s;
+  },
+  mathmlBuilder: (a, e) => {
+    var t = new L.MathNode("mglyph", []);
+    t.setAttribute("alt", a.alt);
+    var r = xe(a.height, e), n = 0;
+    if (a.totalheight.number > 0 && (n = xe(a.totalheight, e) - r, t.setAttribute("valign", H(-n))), t.setAttribute("height", H(r + n)), a.width.number > 0) {
+      var i = xe(a.width, e);
+      t.setAttribute("width", H(i));
+    }
+    return t.setAttribute("src", a.src), t;
+  }
+});
+U({
+  type: "kern",
+  names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"],
+  props: {
+    numArgs: 1,
+    argTypes: ["size"],
+    primitive: !0,
+    allowedInText: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = ee(e[0], "size");
+    if (t.settings.strict) {
+      var i = r[1] === "m", s = n.value.unit === "mu";
+      i ? (s || t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " supports only mu units, " + ("not " + n.value.unit + " units")), t.mode !== "math" && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " works only in math mode")) : s && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " doesn't support mu units");
+    }
+    return {
+      type: "kern",
+      mode: t.mode,
+      dimension: n.value
+    };
+  },
+  htmlBuilder(a, e) {
+    return E.makeGlue(a.dimension, e);
+  },
+  mathmlBuilder(a, e) {
+    var t = xe(a.dimension, e);
+    return new L.SpaceNode(t);
+  }
+});
+U({
+  type: "lap",
+  names: ["\\mathllap", "\\mathrlap", "\\mathclap"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    return {
+      type: "lap",
+      mode: t.mode,
+      alignment: r.slice(5),
+      body: n
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t;
+    a.alignment === "clap" ? (t = E.makeSpan([], [ie(a.body, e)]), t = E.makeSpan(["inner"], [t], e)) : t = E.makeSpan(["inner"], [ie(a.body, e)]);
+    var r = E.makeSpan(["fix"], []), n = E.makeSpan([a.alignment], [t, r], e), i = E.makeSpan(["strut"]);
+    return i.style.height = H(n.height + n.depth), n.depth && (i.style.verticalAlign = H(-n.depth)), n.children.unshift(i), n = E.makeSpan(["thinbox"], [n], e), E.makeSpan(["mord", "vbox"], [n], e);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = new L.MathNode("mpadded", [me(a.body, e)]);
+    if (a.alignment !== "rlap") {
+      var r = a.alignment === "llap" ? "-1" : "-0.5";
+      t.setAttribute("lspace", r + "width");
+    }
+    return t.setAttribute("width", "0px"), t;
+  }
+});
+U({
+  type: "styling",
+  names: ["\\(", "$"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    allowedInMath: !1
+  },
+  handler(a, e) {
+    var {
+      funcName: t,
+      parser: r
+    } = a, n = r.mode;
+    r.switchMode("math");
+    var i = t === "\\(" ? "\\)" : "$", s = r.parseExpression(!1, i);
+    return r.expect(i), r.switchMode(n), {
+      type: "styling",
+      mode: r.mode,
+      style: "text",
+      body: s
+    };
+  }
+});
+U({
+  type: "text",
+  // Doesn't matter what this is.
+  names: ["\\)", "\\]"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    allowedInMath: !1
+  },
+  handler(a, e) {
+    throw new I("Mismatched " + a.funcName);
+  }
+});
+var Fi = (a, e) => {
+  switch (e.style.size) {
+    case $.DISPLAY.size:
+      return a.display;
+    case $.TEXT.size:
+      return a.text;
+    case $.SCRIPT.size:
+      return a.script;
+    case $.SCRIPTSCRIPT.size:
+      return a.scriptscript;
+    default:
+      return a.text;
+  }
+};
+U({
+  type: "mathchoice",
+  names: ["\\mathchoice"],
+  props: {
+    numArgs: 4,
+    primitive: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "mathchoice",
+      mode: t.mode,
+      display: _e(e[0]),
+      text: _e(e[1]),
+      script: _e(e[2]),
+      scriptscript: _e(e[3])
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = Fi(a, e), r = Fe(t, e, !1);
+    return E.makeFragment(r);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = Fi(a, e);
+    return h0(t, e);
+  }
+});
+var ql = (a, e, t, r, n, i, s) => {
+  a = E.makeSpan([], [a]);
+  var l = t && Z.isCharacterBox(t), o, h;
+  if (e) {
+    var m = ie(e, r.havingStyle(n.sup()), r);
+    h = {
+      elem: m,
+      kern: Math.max(r.fontMetrics().bigOpSpacing1, r.fontMetrics().bigOpSpacing3 - m.depth)
+    };
+  }
+  if (t) {
+    var d = ie(t, r.havingStyle(n.sub()), r);
+    o = {
+      elem: d,
+      kern: Math.max(r.fontMetrics().bigOpSpacing2, r.fontMetrics().bigOpSpacing4 - d.height)
+    };
+  }
+  var v;
+  if (h && o) {
+    var g = r.fontMetrics().bigOpSpacing5 + o.elem.height + o.elem.depth + o.kern + a.depth + s;
+    v = E.makeVList({
+      positionType: "bottom",
+      positionData: g,
+      children: [{
+        type: "kern",
+        size: r.fontMetrics().bigOpSpacing5
+      }, {
+        type: "elem",
+        elem: o.elem,
+        marginLeft: H(-i)
+      }, {
+        type: "kern",
+        size: o.kern
+      }, {
+        type: "elem",
+        elem: a
+      }, {
+        type: "kern",
+        size: h.kern
+      }, {
+        type: "elem",
+        elem: h.elem,
+        marginLeft: H(i)
+      }, {
+        type: "kern",
+        size: r.fontMetrics().bigOpSpacing5
+      }]
+    }, r);
+  } else if (o) {
+    var D = a.height - s;
+    v = E.makeVList({
+      positionType: "top",
+      positionData: D,
+      children: [{
+        type: "kern",
+        size: r.fontMetrics().bigOpSpacing5
+      }, {
+        type: "elem",
+        elem: o.elem,
+        marginLeft: H(-i)
+      }, {
+        type: "kern",
+        size: o.kern
+      }, {
+        type: "elem",
+        elem: a
+      }]
+    }, r);
+  } else if (h) {
+    var S = a.depth + s;
+    v = E.makeVList({
+      positionType: "bottom",
+      positionData: S,
+      children: [{
+        type: "elem",
+        elem: a
+      }, {
+        type: "kern",
+        size: h.kern
+      }, {
+        type: "elem",
+        elem: h.elem,
+        marginLeft: H(i)
+      }, {
+        type: "kern",
+        size: r.fontMetrics().bigOpSpacing5
+      }]
+    }, r);
+  } else
+    return a;
+  var F = [v];
+  if (o && i !== 0 && !l) {
+    var T = E.makeSpan(["mspace"], [], r);
+    T.style.marginRight = H(i), F.unshift(T);
+  }
+  return E.makeSpan(["mop", "op-limits"], F, r);
+}, Pl = ["\\smallint"], N0 = (a, e) => {
+  var t, r, n = !1, i;
+  a.type === "supsub" ? (t = a.sup, r = a.sub, i = ee(a.base, "op"), n = !0) : i = ee(a, "op");
+  var s = e.style, l = !1;
+  s.size === $.DISPLAY.size && i.symbol && !Z.contains(Pl, i.name) && (l = !0);
+  var o;
+  if (i.symbol) {
+    var h = l ? "Size2-Regular" : "Size1-Regular", m = "";
+    if ((i.name === "\\oiint" || i.name === "\\oiiint") && (m = i.name.slice(1), i.name = m === "oiint" ? "\\iint" : "\\iiint"), o = E.makeSymbol(i.name, h, "math", e, ["mop", "op-symbol", l ? "large-op" : "small-op"]), m.length > 0) {
+      var d = o.italic, v = E.staticSvg(m + "Size" + (l ? "2" : "1"), e);
+      o = E.makeVList({
+        positionType: "individualShift",
+        children: [{
+          type: "elem",
+          elem: o,
+          shift: 0
+        }, {
+          type: "elem",
+          elem: v,
+          shift: l ? 0.08 : 0
+        }]
+      }, e), i.name = "\\" + m, o.classes.unshift("mop"), o.italic = d;
+    }
+  } else if (i.body) {
+    var g = Fe(i.body, e, !0);
+    g.length === 1 && g[0] instanceof ft ? (o = g[0], o.classes[0] = "mop") : o = E.makeSpan(["mop"], g, e);
+  } else {
+    for (var D = [], S = 1; S < i.name.length; S++)
+      D.push(E.mathsym(i.name[S], i.mode, e));
+    o = E.makeSpan(["mop"], D, e);
+  }
+  var F = 0, T = 0;
+  return (o instanceof ft || i.name === "\\oiint" || i.name === "\\oiiint") && !i.suppressBaseShift && (F = (o.height - o.depth) / 2 - e.fontMetrics().axisHeight, T = o.italic), n ? ql(o, t, r, e, s, T, F) : (F && (o.style.position = "relative", o.style.top = H(F)), o);
+}, nr = (a, e) => {
+  var t;
+  if (a.symbol)
+    t = new ot("mo", [dt(a.name, a.mode)]), Z.contains(Pl, a.name) && t.setAttribute("largeop", "false");
+  else if (a.body)
+    t = new ot("mo", Ke(a.body, e));
+  else {
+    t = new ot("mi", [new j0(a.name.slice(1))]);
+    var r = new ot("mo", [dt("⁡", "text")]);
+    a.parentIsSupSub ? t = new ot("mrow", [t, r]) : t = dl([t, r]);
+  }
+  return t;
+}, tc = {
+  "∏": "\\prod",
+  "∐": "\\coprod",
+  "∑": "\\sum",
+  "⋀": "\\bigwedge",
+  "⋁": "\\bigvee",
+  "⋂": "\\bigcap",
+  "⋃": "\\bigcup",
+  "⨀": "\\bigodot",
+  "⨁": "\\bigoplus",
+  "⨂": "\\bigotimes",
+  "⨄": "\\biguplus",
+  "⨆": "\\bigsqcup"
+};
+U({
+  type: "op",
+  names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨄", "⨆"],
+  props: {
+    numArgs: 0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = r;
+    return n.length === 1 && (n = tc[n]), {
+      type: "op",
+      mode: t.mode,
+      limits: !0,
+      parentIsSupSub: !1,
+      symbol: !0,
+      name: n
+    };
+  },
+  htmlBuilder: N0,
+  mathmlBuilder: nr
+});
+U({
+  type: "op",
+  names: ["\\mathop"],
+  props: {
+    numArgs: 1,
+    primitive: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = e[0];
+    return {
+      type: "op",
+      mode: t.mode,
+      limits: !1,
+      parentIsSupSub: !1,
+      symbol: !1,
+      body: _e(r)
+    };
+  },
+  htmlBuilder: N0,
+  mathmlBuilder: nr
+});
+var rc = {
+  "∫": "\\int",
+  "∬": "\\iint",
+  "∭": "\\iiint",
+  "∮": "\\oint",
+  "∯": "\\oiint",
+  "∰": "\\oiiint"
+};
+U({
+  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(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a;
+    return {
+      type: "op",
+      mode: e.mode,
+      limits: !1,
+      parentIsSupSub: !1,
+      symbol: !1,
+      name: t
+    };
+  },
+  htmlBuilder: N0,
+  mathmlBuilder: nr
+});
+U({
+  type: "op",
+  names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a;
+    return {
+      type: "op",
+      mode: e.mode,
+      limits: !0,
+      parentIsSupSub: !1,
+      symbol: !1,
+      name: t
+    };
+  },
+  htmlBuilder: N0,
+  mathmlBuilder: nr
+});
+U({
+  type: "op",
+  names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "∫", "∬", "∭", "∮", "∯", "∰"],
+  props: {
+    numArgs: 0
+  },
+  handler(a) {
+    var {
+      parser: e,
+      funcName: t
+    } = a, r = t;
+    return r.length === 1 && (r = rc[r]), {
+      type: "op",
+      mode: e.mode,
+      limits: !1,
+      parentIsSupSub: !1,
+      symbol: !0,
+      name: r
+    };
+  },
+  htmlBuilder: N0,
+  mathmlBuilder: nr
+});
+var Hl = (a, e) => {
+  var t, r, n = !1, i;
+  a.type === "supsub" ? (t = a.sup, r = a.sub, i = ee(a.base, "operatorname"), n = !0) : i = ee(a, "operatorname");
+  var s;
+  if (i.body.length > 0) {
+    for (var l = i.body.map((d) => {
+      var v = d.text;
+      return typeof v == "string" ? {
+        type: "textord",
+        mode: d.mode,
+        text: v
+      } : d;
+    }), o = Fe(l, e.withFont("mathrm"), !0), h = 0; h < o.length; h++) {
+      var m = o[h];
+      m instanceof ft && (m.text = m.text.replace(/\u2212/, "-").replace(/\u2217/, "*"));
+    }
+    s = E.makeSpan(["mop"], o, e);
+  } else
+    s = E.makeSpan(["mop"], [], e);
+  return n ? ql(s, t, r, e, e.style, 0, 0) : s;
+}, ac = (a, e) => {
+  for (var t = Ke(a.body, e.withFont("mathrm")), r = !0, n = 0; n < t.length; n++) {
+    var i = t[n];
+    if (!(i instanceof L.SpaceNode)) if (i instanceof L.MathNode)
+      switch (i.type) {
+        case "mi":
+        case "mn":
+        case "ms":
+        case "mspace":
+        case "mtext":
+          break;
+        case "mo": {
+          var s = i.children[0];
+          i.children.length === 1 && s instanceof L.TextNode ? s.text = s.text.replace(/\u2212/, "-").replace(/\u2217/, "*") : r = !1;
+          break;
+        }
+        default:
+          r = !1;
+      }
+    else
+      r = !1;
+  }
+  if (r) {
+    var l = t.map((m) => m.toText()).join("");
+    t = [new L.TextNode(l)];
+  }
+  var o = new L.MathNode("mi", t);
+  o.setAttribute("mathvariant", "normal");
+  var h = new L.MathNode("mo", [dt("⁡", "text")]);
+  return a.parentIsSupSub ? new L.MathNode("mrow", [o, h]) : L.newDocumentFragment([o, h]);
+};
+U({
+  type: "operatorname",
+  names: ["\\operatorname@", "\\operatornamewithlimits"],
+  props: {
+    numArgs: 1
+  },
+  handler: (a, e) => {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    return {
+      type: "operatorname",
+      mode: t.mode,
+      body: _e(n),
+      alwaysHandleSupSub: r === "\\operatornamewithlimits",
+      limits: !1,
+      parentIsSupSub: !1
+    };
+  },
+  htmlBuilder: Hl,
+  mathmlBuilder: ac
+});
+p("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@");
+w0({
+  type: "ordgroup",
+  htmlBuilder(a, e) {
+    return a.semisimple ? E.makeFragment(Fe(a.body, e, !1)) : E.makeSpan(["mord"], Fe(a.body, e, !0), e);
+  },
+  mathmlBuilder(a, e) {
+    return h0(a.body, e, !0);
+  }
+});
+U({
+  type: "overline",
+  names: ["\\overline"],
+  props: {
+    numArgs: 1
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a, r = e[0];
+    return {
+      type: "overline",
+      mode: t.mode,
+      body: r
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = ie(a.body, e.havingCrampedStyle()), r = E.makeLineSpan("overline-line", e), n = e.fontMetrics().defaultRuleThickness, i = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: t
+      }, {
+        type: "kern",
+        size: 3 * n
+      }, {
+        type: "elem",
+        elem: r
+      }, {
+        type: "kern",
+        size: n
+      }]
+    }, e);
+    return E.makeSpan(["mord", "overline"], [i], e);
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mo", [new L.TextNode("‾")]);
+    t.setAttribute("stretchy", "true");
+    var r = new L.MathNode("mover", [me(a.body, e), t]);
+    return r.setAttribute("accent", "true"), r;
+  }
+});
+U({
+  type: "phantom",
+  names: ["\\phantom"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = e[0];
+    return {
+      type: "phantom",
+      mode: t.mode,
+      body: _e(r)
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = Fe(a.body, e.withPhantom(), !1);
+    return E.makeFragment(t);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = Ke(a.body, e);
+    return new L.MathNode("mphantom", t);
+  }
+});
+U({
+  type: "hphantom",
+  names: ["\\hphantom"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = e[0];
+    return {
+      type: "hphantom",
+      mode: t.mode,
+      body: r
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = E.makeSpan([], [ie(a.body, e.withPhantom())]);
+    if (t.height = 0, t.depth = 0, t.children)
+      for (var r = 0; r < t.children.length; r++)
+        t.children[r].height = 0, t.children[r].depth = 0;
+    return t = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: t
+      }]
+    }, e), E.makeSpan(["mord"], [t], e);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = Ke(_e(a.body), e), r = new L.MathNode("mphantom", t), n = new L.MathNode("mpadded", [r]);
+    return n.setAttribute("height", "0px"), n.setAttribute("depth", "0px"), n;
+  }
+});
+U({
+  type: "vphantom",
+  names: ["\\vphantom"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      parser: t
+    } = a, r = e[0];
+    return {
+      type: "vphantom",
+      mode: t.mode,
+      body: r
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = E.makeSpan(["inner"], [ie(a.body, e.withPhantom())]), r = E.makeSpan(["fix"], []);
+    return E.makeSpan(["mord", "rlap"], [t, r], e);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = Ke(_e(a.body), e), r = new L.MathNode("mphantom", t), n = new L.MathNode("mpadded", [r]);
+    return n.setAttribute("width", "0px"), n;
+  }
+});
+U({
+  type: "raisebox",
+  names: ["\\raisebox"],
+  props: {
+    numArgs: 2,
+    argTypes: ["size", "hbox"],
+    allowedInText: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a, r = ee(e[0], "size").value, n = e[1];
+    return {
+      type: "raisebox",
+      mode: t.mode,
+      dy: r,
+      body: n
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = ie(a.body, e), r = xe(a.dy, e);
+    return E.makeVList({
+      positionType: "shift",
+      positionData: -r,
+      children: [{
+        type: "elem",
+        elem: t
+      }]
+    }, e);
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mpadded", [me(a.body, e)]), r = a.dy.number + a.dy.unit;
+    return t.setAttribute("voffset", r), t;
+  }
+});
+U({
+  type: "internal",
+  names: ["\\relax"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0
+  },
+  handler(a) {
+    var {
+      parser: e
+    } = a;
+    return {
+      type: "internal",
+      mode: e.mode
+    };
+  }
+});
+U({
+  type: "rule",
+  names: ["\\rule"],
+  props: {
+    numArgs: 2,
+    numOptionalArgs: 1,
+    argTypes: ["size", "size", "size"]
+  },
+  handler(a, e, t) {
+    var {
+      parser: r
+    } = a, n = t[0], i = ee(e[0], "size"), s = ee(e[1], "size");
+    return {
+      type: "rule",
+      mode: r.mode,
+      shift: n && ee(n, "size").value,
+      width: i.value,
+      height: s.value
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = E.makeSpan(["mord", "rule"], [], e), r = xe(a.width, e), n = xe(a.height, e), i = a.shift ? xe(a.shift, e) : 0;
+    return t.style.borderRightWidth = H(r), t.style.borderTopWidth = H(n), t.style.bottom = H(i), t.width = r, t.height = n + i, t.depth = -i, t.maxFontSize = n * 1.125 * e.sizeMultiplier, t;
+  },
+  mathmlBuilder(a, e) {
+    var t = xe(a.width, e), r = xe(a.height, e), n = a.shift ? xe(a.shift, e) : 0, i = e.color && e.getColor() || "black", s = new L.MathNode("mspace");
+    s.setAttribute("mathbackground", i), s.setAttribute("width", H(t)), s.setAttribute("height", H(r));
+    var l = new L.MathNode("mpadded", [s]);
+    return n >= 0 ? l.setAttribute("height", H(n)) : (l.setAttribute("height", H(n)), l.setAttribute("depth", H(-n))), l.setAttribute("voffset", H(n)), l;
+  }
+});
+function Ul(a, e, t) {
+  for (var r = Fe(a, e, !1), n = e.sizeMultiplier / t.sizeMultiplier, i = 0; i < r.length; i++) {
+    var s = r[i].classes.indexOf("sizing");
+    s < 0 ? Array.prototype.push.apply(r[i].classes, e.sizingClasses(t)) : r[i].classes[s + 1] === "reset-size" + e.size && (r[i].classes[s + 1] = "reset-size" + t.size), r[i].height *= n, r[i].depth *= n;
+  }
+  return E.makeFragment(r);
+}
+var Ti = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], nc = (a, e) => {
+  var t = e.havingSize(a.size);
+  return Ul(a.body, t, e);
+};
+U({
+  type: "sizing",
+  names: Ti,
+  props: {
+    numArgs: 0,
+    allowedInText: !0
+  },
+  handler: (a, e) => {
+    var {
+      breakOnTokenText: t,
+      funcName: r,
+      parser: n
+    } = a, i = n.parseExpression(!1, t);
+    return {
+      type: "sizing",
+      mode: n.mode,
+      // Figure out what size to use based on the list of functions above
+      size: Ti.indexOf(r) + 1,
+      body: i
+    };
+  },
+  htmlBuilder: nc,
+  mathmlBuilder: (a, e) => {
+    var t = e.havingSize(a.size), r = Ke(a.body, t), n = new L.MathNode("mstyle", r);
+    return n.setAttribute("mathsize", H(t.sizeMultiplier)), n;
+  }
+});
+U({
+  type: "smash",
+  names: ["\\smash"],
+  props: {
+    numArgs: 1,
+    numOptionalArgs: 1,
+    allowedInText: !0
+  },
+  handler: (a, e, t) => {
+    var {
+      parser: r
+    } = a, n = !1, i = !1, s = t[0] && ee(t[0], "ordgroup");
+    if (s)
+      for (var l = "", o = 0; o < s.body.length; ++o) {
+        var h = s.body[o];
+        if (l = h.text, l === "t")
+          n = !0;
+        else if (l === "b")
+          i = !0;
+        else {
+          n = !1, i = !1;
+          break;
+        }
+      }
+    else
+      n = !0, i = !0;
+    var m = e[0];
+    return {
+      type: "smash",
+      mode: r.mode,
+      body: m,
+      smashHeight: n,
+      smashDepth: i
+    };
+  },
+  htmlBuilder: (a, e) => {
+    var t = E.makeSpan([], [ie(a.body, e)]);
+    if (!a.smashHeight && !a.smashDepth)
+      return t;
+    if (a.smashHeight && (t.height = 0, t.children))
+      for (var r = 0; r < t.children.length; r++)
+        t.children[r].height = 0;
+    if (a.smashDepth && (t.depth = 0, t.children))
+      for (var n = 0; n < t.children.length; n++)
+        t.children[n].depth = 0;
+    var i = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: t
+      }]
+    }, e);
+    return E.makeSpan(["mord"], [i], e);
+  },
+  mathmlBuilder: (a, e) => {
+    var t = new L.MathNode("mpadded", [me(a.body, e)]);
+    return a.smashHeight && t.setAttribute("height", "0px"), a.smashDepth && t.setAttribute("depth", "0px"), t;
+  }
+});
+U({
+  type: "sqrt",
+  names: ["\\sqrt"],
+  props: {
+    numArgs: 1,
+    numOptionalArgs: 1
+  },
+  handler(a, e, t) {
+    var {
+      parser: r
+    } = a, n = t[0], i = e[0];
+    return {
+      type: "sqrt",
+      mode: r.mode,
+      body: i,
+      index: n
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = ie(a.body, e.havingCrampedStyle());
+    t.height === 0 && (t.height = e.fontMetrics().xHeight), t = E.wrapFragment(t, e);
+    var r = e.fontMetrics(), n = r.defaultRuleThickness, i = n;
+    e.style.id < $.TEXT.id && (i = e.fontMetrics().xHeight);
+    var s = n + i / 4, l = t.height + t.depth + s + n, {
+      span: o,
+      ruleWidth: h,
+      advanceWidth: m
+    } = Qt.sqrtImage(l, e), d = o.height - h;
+    d > t.height + t.depth + s && (s = (s + d - t.height - t.depth) / 2);
+    var v = o.height - t.height - s - h;
+    t.style.paddingLeft = H(m);
+    var g = E.makeVList({
+      positionType: "firstBaseline",
+      children: [{
+        type: "elem",
+        elem: t,
+        wrapperClasses: ["svg-align"]
+      }, {
+        type: "kern",
+        size: -(t.height + v)
+      }, {
+        type: "elem",
+        elem: o
+      }, {
+        type: "kern",
+        size: h
+      }]
+    }, e);
+    if (a.index) {
+      var D = e.havingStyle($.SCRIPTSCRIPT), S = ie(a.index, D, e), F = 0.6 * (g.height - g.depth), T = E.makeVList({
+        positionType: "shift",
+        positionData: -F,
+        children: [{
+          type: "elem",
+          elem: S
+        }]
+      }, e), x = E.makeSpan(["root"], [T]);
+      return E.makeSpan(["mord", "sqrt"], [x, g], e);
+    } else
+      return E.makeSpan(["mord", "sqrt"], [g], e);
+  },
+  mathmlBuilder(a, e) {
+    var {
+      body: t,
+      index: r
+    } = a;
+    return r ? new L.MathNode("mroot", [me(t, e), me(r, e)]) : new L.MathNode("msqrt", [me(t, e)]);
+  }
+});
+var Ci = {
+  display: $.DISPLAY,
+  text: $.TEXT,
+  script: $.SCRIPT,
+  scriptscript: $.SCRIPTSCRIPT
+};
+U({
+  type: "styling",
+  names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0,
+    primitive: !0
+  },
+  handler(a, e) {
+    var {
+      breakOnTokenText: t,
+      funcName: r,
+      parser: n
+    } = a, i = n.parseExpression(!0, t), s = r.slice(1, r.length - 5);
+    return {
+      type: "styling",
+      mode: n.mode,
+      // Figure out what style to use by pulling out the style from
+      // the function name
+      style: s,
+      body: i
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = Ci[a.style], r = e.havingStyle(t).withFont("");
+    return Ul(a.body, r, e);
+  },
+  mathmlBuilder(a, e) {
+    var t = Ci[a.style], r = e.havingStyle(t), n = Ke(a.body, r), i = new L.MathNode("mstyle", n), s = {
+      display: ["0", "true"],
+      text: ["0", "false"],
+      script: ["1", "false"],
+      scriptscript: ["2", "false"]
+    }, l = s[a.style];
+    return i.setAttribute("scriptlevel", l[0]), i.setAttribute("displaystyle", l[1]), i;
+  }
+});
+var ic = function(e, t) {
+  var r = e.base;
+  if (r)
+    if (r.type === "op") {
+      var n = r.limits && (t.style.size === $.DISPLAY.size || r.alwaysHandleSupSub);
+      return n ? N0 : null;
+    } else if (r.type === "operatorname") {
+      var i = r.alwaysHandleSupSub && (t.style.size === $.DISPLAY.size || r.limits);
+      return i ? Hl : null;
+    } else {
+      if (r.type === "accent")
+        return Z.isCharacterBox(r.base) ? fn : null;
+      if (r.type === "horizBrace") {
+        var s = !e.sub;
+        return s === r.isOver ? Ol : null;
+      } else
+        return null;
+    }
+  else return null;
+};
+w0({
+  type: "supsub",
+  htmlBuilder(a, e) {
+    var t = ic(a, e);
+    if (t)
+      return t(a, e);
+    var {
+      base: r,
+      sup: n,
+      sub: i
+    } = a, s = ie(r, e), l, o, h = e.fontMetrics(), m = 0, d = 0, v = r && Z.isCharacterBox(r);
+    if (n) {
+      var g = e.havingStyle(e.style.sup());
+      l = ie(n, g, e), v || (m = s.height - g.fontMetrics().supDrop * g.sizeMultiplier / e.sizeMultiplier);
+    }
+    if (i) {
+      var D = e.havingStyle(e.style.sub());
+      o = ie(i, D, e), v || (d = s.depth + D.fontMetrics().subDrop * D.sizeMultiplier / e.sizeMultiplier);
+    }
+    var S;
+    e.style === $.DISPLAY ? S = h.sup1 : e.style.cramped ? S = h.sup3 : S = h.sup2;
+    var F = e.sizeMultiplier, T = H(0.5 / h.ptPerEm / F), x = null;
+    if (o) {
+      var b = a.base && a.base.type === "op" && a.base.name && (a.base.name === "\\oiint" || a.base.name === "\\oiiint");
+      (s instanceof ft || b) && (x = H(-s.italic));
+    }
+    var A;
+    if (l && o) {
+      m = Math.max(m, S, l.depth + 0.25 * h.xHeight), d = Math.max(d, h.sub2);
+      var C = h.defaultRuleThickness, z = 4 * C;
+      if (m - l.depth - (o.height - d) < z) {
+        d = z - (m - l.depth) + o.height;
+        var B = 0.8 * h.xHeight - (m - l.depth);
+        B > 0 && (m += B, d -= B);
+      }
+      var P = [{
+        type: "elem",
+        elem: o,
+        shift: d,
+        marginRight: T,
+        marginLeft: x
+      }, {
+        type: "elem",
+        elem: l,
+        shift: -m,
+        marginRight: T
+      }];
+      A = E.makeVList({
+        positionType: "individualShift",
+        children: P
+      }, e);
+    } else if (o) {
+      d = Math.max(d, h.sub1, o.height - 0.8 * h.xHeight);
+      var M = [{
+        type: "elem",
+        elem: o,
+        marginLeft: x,
+        marginRight: T
+      }];
+      A = E.makeVList({
+        positionType: "shift",
+        positionData: d,
+        children: M
+      }, e);
+    } else if (l)
+      m = Math.max(m, S, l.depth + 0.25 * h.xHeight), A = E.makeVList({
+        positionType: "shift",
+        positionData: -m,
+        children: [{
+          type: "elem",
+          elem: l,
+          marginRight: T
+        }]
+      }, e);
+    else
+      throw new Error("supsub must have either sup or sub.");
+    var R = Ha(s, "right") || "mord";
+    return E.makeSpan([R], [s, E.makeSpan(["msupsub"], [A])], e);
+  },
+  mathmlBuilder(a, e) {
+    var t = !1, r, n;
+    a.base && a.base.type === "horizBrace" && (n = !!a.sup, n === a.base.isOver && (t = !0, r = a.base.isOver)), a.base && (a.base.type === "op" || a.base.type === "operatorname") && (a.base.parentIsSupSub = !0);
+    var i = [me(a.base, e)];
+    a.sub && i.push(me(a.sub, e)), a.sup && i.push(me(a.sup, e));
+    var s;
+    if (t)
+      s = r ? "mover" : "munder";
+    else if (a.sub)
+      if (a.sup) {
+        var h = a.base;
+        h && h.type === "op" && h.limits && e.style === $.DISPLAY || h && h.type === "operatorname" && h.alwaysHandleSupSub && (e.style === $.DISPLAY || h.limits) ? s = "munderover" : s = "msubsup";
+      } else {
+        var o = a.base;
+        o && o.type === "op" && o.limits && (e.style === $.DISPLAY || o.alwaysHandleSupSub) || o && o.type === "operatorname" && o.alwaysHandleSupSub && (o.limits || e.style === $.DISPLAY) ? s = "munder" : s = "msub";
+      }
+    else {
+      var l = a.base;
+      l && l.type === "op" && l.limits && (e.style === $.DISPLAY || l.alwaysHandleSupSub) || l && l.type === "operatorname" && l.alwaysHandleSupSub && (l.limits || e.style === $.DISPLAY) ? s = "mover" : s = "msup";
+    }
+    return new L.MathNode(s, i);
+  }
+});
+w0({
+  type: "atom",
+  htmlBuilder(a, e) {
+    return E.mathsym(a.text, a.mode, e, ["m" + a.family]);
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mo", [dt(a.text, a.mode)]);
+    if (a.family === "bin") {
+      var r = hn(a, e);
+      r === "bold-italic" && t.setAttribute("mathvariant", r);
+    } else a.family === "punct" ? t.setAttribute("separator", "true") : (a.family === "open" || a.family === "close") && t.setAttribute("stretchy", "false");
+    return t;
+  }
+});
+var Gl = {
+  mi: "italic",
+  mn: "normal",
+  mtext: "normal"
+};
+w0({
+  type: "mathord",
+  htmlBuilder(a, e) {
+    return E.makeOrd(a, e, "mathord");
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mi", [dt(a.text, a.mode, e)]), r = hn(a, e) || "italic";
+    return r !== Gl[t.type] && t.setAttribute("mathvariant", r), t;
+  }
+});
+w0({
+  type: "textord",
+  htmlBuilder(a, e) {
+    return E.makeOrd(a, e, "textord");
+  },
+  mathmlBuilder(a, e) {
+    var t = dt(a.text, a.mode, e), r = hn(a, e) || "normal", n;
+    return a.mode === "text" ? n = new L.MathNode("mtext", [t]) : /[0-9]/.test(a.text) ? n = new L.MathNode("mn", [t]) : a.text === "\\prime" ? n = new L.MathNode("mo", [t]) : n = new L.MathNode("mi", [t]), r !== Gl[n.type] && n.setAttribute("mathvariant", r), n;
+  }
+});
+var xa = {
+  "\\nobreak": "nobreak",
+  "\\allowbreak": "allowbreak"
+}, ka = {
+  " ": {},
+  "\\ ": {},
+  "~": {
+    className: "nobreak"
+  },
+  "\\space": {},
+  "\\nobreakspace": {
+    className: "nobreak"
+  }
+};
+w0({
+  type: "spacing",
+  htmlBuilder(a, e) {
+    if (ka.hasOwnProperty(a.text)) {
+      var t = ka[a.text].className || "";
+      if (a.mode === "text") {
+        var r = E.makeOrd(a, e, "textord");
+        return r.classes.push(t), r;
+      } else
+        return E.makeSpan(["mspace", t], [E.mathsym(a.text, a.mode, e)], e);
+    } else {
+      if (xa.hasOwnProperty(a.text))
+        return E.makeSpan(["mspace", xa[a.text]], [], e);
+      throw new I('Unknown type of space "' + a.text + '"');
+    }
+  },
+  mathmlBuilder(a, e) {
+    var t;
+    if (ka.hasOwnProperty(a.text))
+      t = new L.MathNode("mtext", [new L.TextNode(" ")]);
+    else {
+      if (xa.hasOwnProperty(a.text))
+        return new L.MathNode("mspace");
+      throw new I('Unknown type of space "' + a.text + '"');
+    }
+    return t;
+  }
+});
+var Mi = () => {
+  var a = new L.MathNode("mtd", []);
+  return a.setAttribute("width", "50%"), a;
+};
+w0({
+  type: "tag",
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mtable", [new L.MathNode("mtr", [Mi(), new L.MathNode("mtd", [h0(a.body, e)]), Mi(), new L.MathNode("mtd", [h0(a.tag, e)])])]);
+    return t.setAttribute("width", "100%"), t;
+  }
+});
+var zi = {
+  "\\text": void 0,
+  "\\textrm": "textrm",
+  "\\textsf": "textsf",
+  "\\texttt": "texttt",
+  "\\textnormal": "textrm"
+}, Bi = {
+  "\\textbf": "textbf",
+  "\\textmd": "textmd"
+}, sc = {
+  "\\textit": "textit",
+  "\\textup": "textup"
+}, Ri = (a, e) => {
+  var t = a.font;
+  if (t) {
+    if (zi[t])
+      return e.withTextFontFamily(zi[t]);
+    if (Bi[t])
+      return e.withTextFontWeight(Bi[t]);
+    if (t === "\\emph")
+      return e.fontShape === "textit" ? e.withTextFontShape("textup") : e.withTextFontShape("textit");
+  } else return e;
+  return e.withTextFontShape(sc[t]);
+};
+U({
+  type: "text",
+  names: [
+    // Font families
+    "\\text",
+    "\\textrm",
+    "\\textsf",
+    "\\texttt",
+    "\\textnormal",
+    // Font weights
+    "\\textbf",
+    "\\textmd",
+    // Font Shapes
+    "\\textit",
+    "\\textup",
+    "\\emph"
+  ],
+  props: {
+    numArgs: 1,
+    argTypes: ["text"],
+    allowedInArgument: !0,
+    allowedInText: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t,
+      funcName: r
+    } = a, n = e[0];
+    return {
+      type: "text",
+      mode: t.mode,
+      body: _e(n),
+      font: r
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = Ri(a, e), r = Fe(a.body, t, !0);
+    return E.makeSpan(["mord", "text"], r, t);
+  },
+  mathmlBuilder(a, e) {
+    var t = Ri(a, e);
+    return h0(a.body, t);
+  }
+});
+U({
+  type: "underline",
+  names: ["\\underline"],
+  props: {
+    numArgs: 1,
+    allowedInText: !0
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "underline",
+      mode: t.mode,
+      body: e[0]
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = ie(a.body, e), r = E.makeLineSpan("underline-line", e), n = e.fontMetrics().defaultRuleThickness, i = E.makeVList({
+      positionType: "top",
+      positionData: t.height,
+      children: [{
+        type: "kern",
+        size: n
+      }, {
+        type: "elem",
+        elem: r
+      }, {
+        type: "kern",
+        size: 3 * n
+      }, {
+        type: "elem",
+        elem: t
+      }]
+    }, e);
+    return E.makeSpan(["mord", "underline"], [i], e);
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.MathNode("mo", [new L.TextNode("‾")]);
+    t.setAttribute("stretchy", "true");
+    var r = new L.MathNode("munder", [me(a.body, e), t]);
+    return r.setAttribute("accentunder", "true"), r;
+  }
+});
+U({
+  type: "vcenter",
+  names: ["\\vcenter"],
+  props: {
+    numArgs: 1,
+    argTypes: ["original"],
+    // In LaTeX, \vcenter can act only on a box.
+    allowedInText: !1
+  },
+  handler(a, e) {
+    var {
+      parser: t
+    } = a;
+    return {
+      type: "vcenter",
+      mode: t.mode,
+      body: e[0]
+    };
+  },
+  htmlBuilder(a, e) {
+    var t = ie(a.body, e), r = e.fontMetrics().axisHeight, n = 0.5 * (t.height - r - (t.depth + r));
+    return E.makeVList({
+      positionType: "shift",
+      positionData: n,
+      children: [{
+        type: "elem",
+        elem: t
+      }]
+    }, e);
+  },
+  mathmlBuilder(a, e) {
+    return new L.MathNode("mpadded", [me(a.body, e)], ["vcenter"]);
+  }
+});
+U({
+  type: "verb",
+  names: ["\\verb"],
+  props: {
+    numArgs: 0,
+    allowedInText: !0
+  },
+  handler(a, e, t) {
+    throw new I("\\verb ended by end of line instead of matching delimiter");
+  },
+  htmlBuilder(a, e) {
+    for (var t = Ni(a), r = [], n = e.havingStyle(e.style.text()), i = 0; i < t.length; i++) {
+      var s = t[i];
+      s === "~" && (s = "\\textasciitilde"), r.push(E.makeSymbol(s, "Typewriter-Regular", a.mode, n, ["mord", "texttt"]));
+    }
+    return E.makeSpan(["mord", "text"].concat(n.sizingClasses(e)), E.tryCombineChars(r), n);
+  },
+  mathmlBuilder(a, e) {
+    var t = new L.TextNode(Ni(a)), r = new L.MathNode("mtext", [t]);
+    return r.setAttribute("mathvariant", "monospace"), r;
+  }
+});
+var Ni = (a) => a.body.replace(/ /g, a.star ? "␣" : " "), l0 = ml, Vl = `[ \r
+	]`, lc = "\\\\[a-zA-Z@]+", oc = "\\\\[^\uD800-\uDFFF]", uc = "(" + lc + ")" + Vl + "*", cc = `\\\\(
+|[ \r	]+
+?)[ \r	]*`, Wa = "[̀-ͯ]", hc = new RegExp(Wa + "+$"), mc = "(" + Vl + "+)|" + // whitespace
+(cc + "|") + // \whitespace
+"([!-\\[\\]-‧‪-퟿豈-￿]" + // single codepoint
+(Wa + "*") + // ...plus accents
+"|[\uD800-\uDBFF][\uDC00-\uDFFF]" + // surrogate pair
+(Wa + "*") + // ...plus accents
+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5" + // \verb unstarred
+("|" + uc) + // \macroName + spaces
+("|" + oc + ")");
+class Li {
+  // Category codes. The lexer only supports comment characters (14) for now.
+  // MacroExpander additionally distinguishes active (13).
+  constructor(e, t) {
+    this.input = void 0, this.settings = void 0, this.tokenRegex = void 0, this.catcodes = void 0, this.input = e, this.settings = t, this.tokenRegex = new RegExp(mc, "g"), this.catcodes = {
+      "%": 14,
+      // comment character
+      "~": 13
+      // active character
+    };
+  }
+  setCatcode(e, t) {
+    this.catcodes[e] = t;
+  }
+  /**
+   * This function lexes a single token.
+   */
+  lex() {
+    var e = this.input, t = this.tokenRegex.lastIndex;
+    if (t === e.length)
+      return new mt("EOF", new et(this, t, t));
+    var r = this.tokenRegex.exec(e);
+    if (r === null || r.index !== t)
+      throw new I("Unexpected character: '" + e[t] + "'", new mt(e[t], new et(this, t, t + 1)));
+    var n = r[6] || r[3] || (r[2] ? "\\ " : " ");
+    if (this.catcodes[n] === 14) {
+      var i = e.indexOf(`
+`, this.tokenRegex.lastIndex);
+      return i === -1 ? (this.tokenRegex.lastIndex = e.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 = i + 1, this.lex();
+    }
+    return new mt(n, new et(this, t, this.tokenRegex.lastIndex));
+  }
+}
+class fc {
+  /**
+   * Both arguments are optional.  The first argument is an object of
+   * built-in mappings which never change.  The second argument is an object
+   * of initial (global-level) mappings, which will constantly change
+   * according to any global/top-level `set`s done.
+   */
+  constructor(e, t) {
+    e === void 0 && (e = {}), t === void 0 && (t = {}), this.current = void 0, this.builtins = void 0, this.undefStack = void 0, this.current = t, this.builtins = e, this.undefStack = [];
+  }
+  /**
+   * Start a new nested group, affecting future local `set`s.
+   */
+  beginGroup() {
+    this.undefStack.push({});
+  }
+  /**
+   * End current nested group, restoring values before the group began.
+   */
+  endGroup() {
+    if (this.undefStack.length === 0)
+      throw new I("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");
+    var e = this.undefStack.pop();
+    for (var t in e)
+      e.hasOwnProperty(t) && (e[t] == null ? delete this.current[t] : this.current[t] = e[t]);
+  }
+  /**
+   * Ends all currently nested groups (if any), restoring values before the
+   * groups began.  Useful in case of an error in the middle of parsing.
+   */
+  endGroups() {
+    for (; this.undefStack.length > 0; )
+      this.endGroup();
+  }
+  /**
+   * Detect whether `name` has a definition.  Equivalent to
+   * `get(name) != null`.
+   */
+  has(e) {
+    return this.current.hasOwnProperty(e) || this.builtins.hasOwnProperty(e);
+  }
+  /**
+   * Get the current value of a name, or `undefined` if there is no value.
+   *
+   * Note: Do not use `if (namespace.get(...))` to detect whether a macro
+   * is defined, as the definition may be the empty string which evaluates
+   * to `false` in JavaScript.  Use `if (namespace.get(...) != null)` or
+   * `if (namespace.has(...))`.
+   */
+  get(e) {
+    return this.current.hasOwnProperty(e) ? this.current[e] : this.builtins[e];
+  }
+  /**
+   * Set the current value of a name, and optionally set it globally too.
+   * Local set() sets the current value and (when appropriate) adds an undo
+   * operation to the undo stack.  Global set() may change the undo
+   * operation at every level, so takes time linear in their number.
+   * A value of undefined means to delete existing definitions.
+   */
+  set(e, t, r) {
+    if (r === void 0 && (r = !1), r) {
+      for (var n = 0; n < this.undefStack.length; n++)
+        delete this.undefStack[n][e];
+      this.undefStack.length > 0 && (this.undefStack[this.undefStack.length - 1][e] = t);
+    } else {
+      var i = this.undefStack[this.undefStack.length - 1];
+      i && !i.hasOwnProperty(e) && (i[e] = this.current[e]);
+    }
+    t == null ? delete this.current[e] : this.current[e] = t;
+  }
+}
+var dc = Bl;
+p("\\noexpand", function(a) {
+  var e = a.popToken();
+  return a.isExpandable(e.text) && (e.noexpand = !0, e.treatAsRelax = !0), {
+    tokens: [e],
+    numArgs: 0
+  };
+});
+p("\\expandafter", function(a) {
+  var e = a.popToken();
+  return a.expandOnce(!0), {
+    tokens: [e],
+    numArgs: 0
+  };
+});
+p("\\@firstoftwo", function(a) {
+  var e = a.consumeArgs(2);
+  return {
+    tokens: e[0],
+    numArgs: 0
+  };
+});
+p("\\@secondoftwo", function(a) {
+  var e = a.consumeArgs(2);
+  return {
+    tokens: e[1],
+    numArgs: 0
+  };
+});
+p("\\@ifnextchar", function(a) {
+  var e = a.consumeArgs(3);
+  a.consumeSpaces();
+  var t = a.future();
+  return e[0].length === 1 && e[0][0].text === t.text ? {
+    tokens: e[1],
+    numArgs: 0
+  } : {
+    tokens: e[2],
+    numArgs: 0
+  };
+});
+p("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}");
+p("\\TextOrMath", function(a) {
+  var e = a.consumeArgs(2);
+  return a.mode === "text" ? {
+    tokens: e[0],
+    numArgs: 0
+  } : {
+    tokens: e[1],
+    numArgs: 0
+  };
+});
+var Ii = {
+  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
+};
+p("\\char", function(a) {
+  var e = a.popToken(), t, r = "";
+  if (e.text === "'")
+    t = 8, e = a.popToken();
+  else if (e.text === '"')
+    t = 16, e = a.popToken();
+  else if (e.text === "`")
+    if (e = a.popToken(), e.text[0] === "\\")
+      r = e.text.charCodeAt(1);
+    else {
+      if (e.text === "EOF")
+        throw new I("\\char` missing argument");
+      r = e.text.charCodeAt(0);
+    }
+  else
+    t = 10;
+  if (t) {
+    if (r = Ii[e.text], r == null || r >= t)
+      throw new I("Invalid base-" + t + " digit " + e.text);
+    for (var n; (n = Ii[a.future().text]) != null && n < t; )
+      r *= t, r += n, a.popToken();
+  }
+  return "\\@char{" + r + "}";
+});
+var xn = (a, e, t) => {
+  var r = a.consumeArg().tokens;
+  if (r.length !== 1)
+    throw new I("\\newcommand's first argument must be a macro name");
+  var n = r[0].text, i = a.isDefined(n);
+  if (i && !e)
+    throw new I("\\newcommand{" + n + "} attempting to redefine " + (n + "; use \\renewcommand"));
+  if (!i && !t)
+    throw new I("\\renewcommand{" + n + "} when command " + n + " does not yet exist; use \\newcommand");
+  var s = 0;
+  if (r = a.consumeArg().tokens, r.length === 1 && r[0].text === "[") {
+    for (var l = "", o = a.expandNextToken(); o.text !== "]" && o.text !== "EOF"; )
+      l += o.text, o = a.expandNextToken();
+    if (!l.match(/^\s*[0-9]+\s*$/))
+      throw new I("Invalid number of arguments: " + l);
+    s = parseInt(l), r = a.consumeArg().tokens;
+  }
+  return a.macros.set(n, {
+    tokens: r,
+    numArgs: s
+  }), "";
+};
+p("\\newcommand", (a) => xn(a, !1, !0));
+p("\\renewcommand", (a) => xn(a, !0, !1));
+p("\\providecommand", (a) => xn(a, !0, !0));
+p("\\message", (a) => {
+  var e = a.consumeArgs(1)[0];
+  return console.log(e.reverse().map((t) => t.text).join("")), "";
+});
+p("\\errmessage", (a) => {
+  var e = a.consumeArgs(1)[0];
+  return console.error(e.reverse().map((t) => t.text).join("")), "";
+});
+p("\\show", (a) => {
+  var e = a.popToken(), t = e.text;
+  return console.log(e, a.macros.get(t), l0[t], pe.math[t], pe.text[t]), "";
+});
+p("\\bgroup", "{");
+p("\\egroup", "}");
+p("~", "\\nobreakspace");
+p("\\lq", "`");
+p("\\rq", "'");
+p("\\aa", "\\r a");
+p("\\AA", "\\r A");
+p("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}");
+p("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");
+p("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");
+p("ℬ", "\\mathscr{B}");
+p("ℰ", "\\mathscr{E}");
+p("ℱ", "\\mathscr{F}");
+p("ℋ", "\\mathscr{H}");
+p("ℐ", "\\mathscr{I}");
+p("ℒ", "\\mathscr{L}");
+p("ℳ", "\\mathscr{M}");
+p("ℛ", "\\mathscr{R}");
+p("ℭ", "\\mathfrak{C}");
+p("ℌ", "\\mathfrak{H}");
+p("ℨ", "\\mathfrak{Z}");
+p("\\Bbbk", "\\Bbb{k}");
+p("·", "\\cdotp");
+p("\\llap", "\\mathllap{\\textrm{#1}}");
+p("\\rlap", "\\mathrlap{\\textrm{#1}}");
+p("\\clap", "\\mathclap{\\textrm{#1}}");
+p("\\mathstrut", "\\vphantom{(}");
+p("\\underbar", "\\underline{\\text{#1}}");
+p("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');
+p("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");
+p("\\ne", "\\neq");
+p("≠", "\\neq");
+p("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");
+p("∉", "\\notin");
+p("≘", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");
+p("≙", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");
+p("≚", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");
+p("≛", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");
+p("≝", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");
+p("≞", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");
+p("≟", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");
+p("⟂", "\\perp");
+p("‼", "\\mathclose{!\\mkern-0.8mu!}");
+p("∌", "\\notni");
+p("⌜", "\\ulcorner");
+p("⌝", "\\urcorner");
+p("⌞", "\\llcorner");
+p("⌟", "\\lrcorner");
+p("©", "\\copyright");
+p("®", "\\textregistered");
+p("️", "\\textregistered");
+p("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');
+p("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');
+p("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');
+p("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');
+p("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}");
+p("⋮", "\\vdots");
+p("\\varGamma", "\\mathit{\\Gamma}");
+p("\\varDelta", "\\mathit{\\Delta}");
+p("\\varTheta", "\\mathit{\\Theta}");
+p("\\varLambda", "\\mathit{\\Lambda}");
+p("\\varXi", "\\mathit{\\Xi}");
+p("\\varPi", "\\mathit{\\Pi}");
+p("\\varSigma", "\\mathit{\\Sigma}");
+p("\\varUpsilon", "\\mathit{\\Upsilon}");
+p("\\varPhi", "\\mathit{\\Phi}");
+p("\\varPsi", "\\mathit{\\Psi}");
+p("\\varOmega", "\\mathit{\\Omega}");
+p("\\substack", "\\begin{subarray}{c}#1\\end{subarray}");
+p("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");
+p("\\boxed", "\\fbox{$\\displaystyle{#1}$}");
+p("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;");
+p("\\implies", "\\DOTSB\\;\\Longrightarrow\\;");
+p("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;");
+var Oi = {
+  ",": "\\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"
+};
+p("\\dots", function(a) {
+  var e = "\\dotso", t = a.expandAfterFuture().text;
+  return t in Oi ? e = Oi[t] : (t.slice(0, 4) === "\\not" || t in pe.math && Z.contains(["bin", "rel"], pe.math[t].group)) && (e = "\\dotsb"), e;
+});
+var kn = {
+  // \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
+};
+p("\\dotso", function(a) {
+  var e = a.future().text;
+  return e in kn ? "\\ldots\\," : "\\ldots";
+});
+p("\\dotsc", function(a) {
+  var e = a.future().text;
+  return e in kn && e !== "," ? "\\ldots\\," : "\\ldots";
+});
+p("\\cdots", function(a) {
+  var e = a.future().text;
+  return e in kn ? "\\@cdots\\," : "\\@cdots";
+});
+p("\\dotsb", "\\cdots");
+p("\\dotsm", "\\cdots");
+p("\\dotsi", "\\!\\cdots");
+p("\\dotsx", "\\ldots\\,");
+p("\\DOTSI", "\\relax");
+p("\\DOTSB", "\\relax");
+p("\\DOTSX", "\\relax");
+p("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");
+p("\\,", "\\tmspace+{3mu}{.1667em}");
+p("\\thinspace", "\\,");
+p("\\>", "\\mskip{4mu}");
+p("\\:", "\\tmspace+{4mu}{.2222em}");
+p("\\medspace", "\\:");
+p("\\;", "\\tmspace+{5mu}{.2777em}");
+p("\\thickspace", "\\;");
+p("\\!", "\\tmspace-{3mu}{.1667em}");
+p("\\negthinspace", "\\!");
+p("\\negmedspace", "\\tmspace-{4mu}{.2222em}");
+p("\\negthickspace", "\\tmspace-{5mu}{.277em}");
+p("\\enspace", "\\kern.5em ");
+p("\\enskip", "\\hskip.5em\\relax");
+p("\\quad", "\\hskip1em\\relax");
+p("\\qquad", "\\hskip2em\\relax");
+p("\\tag", "\\@ifstar\\tag@literal\\tag@paren");
+p("\\tag@paren", "\\tag@literal{({#1})}");
+p("\\tag@literal", (a) => {
+  if (a.macros.get("\\df@tag"))
+    throw new I("Multiple \\tag");
+  return "\\gdef\\df@tag{\\text{#1}}";
+});
+p("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");
+p("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");
+p("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}");
+p("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");
+p("\\newline", "\\\\\\relax");
+p("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");
+var Wl = H(Rt["Main-Regular"][84][1] - 0.7 * Rt["Main-Regular"][65][1]);
+p("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + Wl + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}");
+p("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + Wl + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}");
+p("\\hspace", "\\@ifstar\\@hspacer\\@hspace");
+p("\\@hspace", "\\hskip #1\\relax");
+p("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax");
+p("\\ordinarycolon", ":");
+p("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}");
+p("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');
+p("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');
+p("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');
+p("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');
+p("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');
+p("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');
+p("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');
+p("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');
+p("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');
+p("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');
+p("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');
+p("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');
+p("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');
+p("∷", "\\dblcolon");
+p("∹", "\\eqcolon");
+p("≔", "\\coloneqq");
+p("≕", "\\eqqcolon");
+p("⩴", "\\Coloneqq");
+p("\\ratio", "\\vcentcolon");
+p("\\coloncolon", "\\dblcolon");
+p("\\colonequals", "\\coloneqq");
+p("\\coloncolonequals", "\\Coloneqq");
+p("\\equalscolon", "\\eqqcolon");
+p("\\equalscoloncolon", "\\Eqqcolon");
+p("\\colonminus", "\\coloneq");
+p("\\coloncolonminus", "\\Coloneq");
+p("\\minuscolon", "\\eqcolon");
+p("\\minuscoloncolon", "\\Eqcolon");
+p("\\coloncolonapprox", "\\Colonapprox");
+p("\\coloncolonsim", "\\Colonsim");
+p("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
+p("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");
+p("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
+p("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");
+p("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");
+p("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}");
+p("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}");
+p("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}");
+p("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}");
+p("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}");
+p("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}");
+p("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}");
+p("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}");
+p("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{≩}");
+p("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{≨}");
+p("\\ngeqq", "\\html@mathml{\\@ngeqq}{≱}");
+p("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{≱}");
+p("\\nleqq", "\\html@mathml{\\@nleqq}{≰}");
+p("\\nleqslant", "\\html@mathml{\\@nleqslant}{≰}");
+p("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}");
+p("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}");
+p("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{⊈}");
+p("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{⊉}");
+p("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}");
+p("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}");
+p("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}");
+p("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}");
+p("\\imath", "\\html@mathml{\\@imath}{ı}");
+p("\\jmath", "\\html@mathml{\\@jmath}{ȷ}");
+p("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");
+p("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");
+p("⟦", "\\llbracket");
+p("⟧", "\\rrbracket");
+p("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");
+p("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");
+p("⦃", "\\lBrace");
+p("⦄", "\\rBrace");
+p("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");
+p("⦵", "\\minuso");
+p("\\darr", "\\downarrow");
+p("\\dArr", "\\Downarrow");
+p("\\Darr", "\\Downarrow");
+p("\\lang", "\\langle");
+p("\\rang", "\\rangle");
+p("\\uarr", "\\uparrow");
+p("\\uArr", "\\Uparrow");
+p("\\Uarr", "\\Uparrow");
+p("\\N", "\\mathbb{N}");
+p("\\R", "\\mathbb{R}");
+p("\\Z", "\\mathbb{Z}");
+p("\\alef", "\\aleph");
+p("\\alefsym", "\\aleph");
+p("\\Alpha", "\\mathrm{A}");
+p("\\Beta", "\\mathrm{B}");
+p("\\bull", "\\bullet");
+p("\\Chi", "\\mathrm{X}");
+p("\\clubs", "\\clubsuit");
+p("\\cnums", "\\mathbb{C}");
+p("\\Complex", "\\mathbb{C}");
+p("\\Dagger", "\\ddagger");
+p("\\diamonds", "\\diamondsuit");
+p("\\empty", "\\emptyset");
+p("\\Epsilon", "\\mathrm{E}");
+p("\\Eta", "\\mathrm{H}");
+p("\\exist", "\\exists");
+p("\\harr", "\\leftrightarrow");
+p("\\hArr", "\\Leftrightarrow");
+p("\\Harr", "\\Leftrightarrow");
+p("\\hearts", "\\heartsuit");
+p("\\image", "\\Im");
+p("\\infin", "\\infty");
+p("\\Iota", "\\mathrm{I}");
+p("\\isin", "\\in");
+p("\\Kappa", "\\mathrm{K}");
+p("\\larr", "\\leftarrow");
+p("\\lArr", "\\Leftarrow");
+p("\\Larr", "\\Leftarrow");
+p("\\lrarr", "\\leftrightarrow");
+p("\\lrArr", "\\Leftrightarrow");
+p("\\Lrarr", "\\Leftrightarrow");
+p("\\Mu", "\\mathrm{M}");
+p("\\natnums", "\\mathbb{N}");
+p("\\Nu", "\\mathrm{N}");
+p("\\Omicron", "\\mathrm{O}");
+p("\\plusmn", "\\pm");
+p("\\rarr", "\\rightarrow");
+p("\\rArr", "\\Rightarrow");
+p("\\Rarr", "\\Rightarrow");
+p("\\real", "\\Re");
+p("\\reals", "\\mathbb{R}");
+p("\\Reals", "\\mathbb{R}");
+p("\\Rho", "\\mathrm{P}");
+p("\\sdot", "\\cdot");
+p("\\sect", "\\S");
+p("\\spades", "\\spadesuit");
+p("\\sub", "\\subset");
+p("\\sube", "\\subseteq");
+p("\\supe", "\\supseteq");
+p("\\Tau", "\\mathrm{T}");
+p("\\thetasym", "\\vartheta");
+p("\\weierp", "\\wp");
+p("\\Zeta", "\\mathrm{Z}");
+p("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}");
+p("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}");
+p("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits");
+p("\\bra", "\\mathinner{\\langle{#1}|}");
+p("\\ket", "\\mathinner{|{#1}\\rangle}");
+p("\\braket", "\\mathinner{\\langle{#1}\\rangle}");
+p("\\Bra", "\\left\\langle#1\\right|");
+p("\\Ket", "\\left|#1\\right\\rangle");
+var Xl = (a) => (e) => {
+  var t = e.consumeArg().tokens, r = e.consumeArg().tokens, n = e.consumeArg().tokens, i = e.consumeArg().tokens, s = e.macros.get("|"), l = e.macros.get("\\|");
+  e.macros.beginGroup();
+  var o = (d) => (v) => {
+    a && (v.macros.set("|", s), n.length && v.macros.set("\\|", l));
+    var g = d;
+    if (!d && n.length) {
+      var D = v.future();
+      D.text === "|" && (v.popToken(), g = !0);
+    }
+    return {
+      tokens: g ? n : r,
+      numArgs: 0
+    };
+  };
+  e.macros.set("|", o(!1)), n.length && e.macros.set("\\|", o(!0));
+  var h = e.consumeArg().tokens, m = e.expandTokens([
+    ...i,
+    ...h,
+    ...t
+    // reversed
+  ]);
+  return e.macros.endGroup(), {
+    tokens: m.reverse(),
+    numArgs: 0
+  };
+};
+p("\\bra@ket", Xl(!1));
+p("\\bra@set", Xl(!0));
+p("\\Braket", "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");
+p("\\Set", "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");
+p("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");
+p("\\angln", "{\\angl n}");
+p("\\blue", "\\textcolor{##6495ed}{#1}");
+p("\\orange", "\\textcolor{##ffa500}{#1}");
+p("\\pink", "\\textcolor{##ff00af}{#1}");
+p("\\red", "\\textcolor{##df0030}{#1}");
+p("\\green", "\\textcolor{##28ae7b}{#1}");
+p("\\gray", "\\textcolor{gray}{#1}");
+p("\\purple", "\\textcolor{##9d38bd}{#1}");
+p("\\blueA", "\\textcolor{##ccfaff}{#1}");
+p("\\blueB", "\\textcolor{##80f6ff}{#1}");
+p("\\blueC", "\\textcolor{##63d9ea}{#1}");
+p("\\blueD", "\\textcolor{##11accd}{#1}");
+p("\\blueE", "\\textcolor{##0c7f99}{#1}");
+p("\\tealA", "\\textcolor{##94fff5}{#1}");
+p("\\tealB", "\\textcolor{##26edd5}{#1}");
+p("\\tealC", "\\textcolor{##01d1c1}{#1}");
+p("\\tealD", "\\textcolor{##01a995}{#1}");
+p("\\tealE", "\\textcolor{##208170}{#1}");
+p("\\greenA", "\\textcolor{##b6ffb0}{#1}");
+p("\\greenB", "\\textcolor{##8af281}{#1}");
+p("\\greenC", "\\textcolor{##74cf70}{#1}");
+p("\\greenD", "\\textcolor{##1fab54}{#1}");
+p("\\greenE", "\\textcolor{##0d923f}{#1}");
+p("\\goldA", "\\textcolor{##ffd0a9}{#1}");
+p("\\goldB", "\\textcolor{##ffbb71}{#1}");
+p("\\goldC", "\\textcolor{##ff9c39}{#1}");
+p("\\goldD", "\\textcolor{##e07d10}{#1}");
+p("\\goldE", "\\textcolor{##a75a05}{#1}");
+p("\\redA", "\\textcolor{##fca9a9}{#1}");
+p("\\redB", "\\textcolor{##ff8482}{#1}");
+p("\\redC", "\\textcolor{##f9685d}{#1}");
+p("\\redD", "\\textcolor{##e84d39}{#1}");
+p("\\redE", "\\textcolor{##bc2612}{#1}");
+p("\\maroonA", "\\textcolor{##ffbde0}{#1}");
+p("\\maroonB", "\\textcolor{##ff92c6}{#1}");
+p("\\maroonC", "\\textcolor{##ed5fa6}{#1}");
+p("\\maroonD", "\\textcolor{##ca337c}{#1}");
+p("\\maroonE", "\\textcolor{##9e034e}{#1}");
+p("\\purpleA", "\\textcolor{##ddd7ff}{#1}");
+p("\\purpleB", "\\textcolor{##c6b9fc}{#1}");
+p("\\purpleC", "\\textcolor{##aa87ff}{#1}");
+p("\\purpleD", "\\textcolor{##7854ab}{#1}");
+p("\\purpleE", "\\textcolor{##543b78}{#1}");
+p("\\mintA", "\\textcolor{##f5f9e8}{#1}");
+p("\\mintB", "\\textcolor{##edf2df}{#1}");
+p("\\mintC", "\\textcolor{##e0e5cc}{#1}");
+p("\\grayA", "\\textcolor{##f6f7f7}{#1}");
+p("\\grayB", "\\textcolor{##f0f1f2}{#1}");
+p("\\grayC", "\\textcolor{##e3e5e6}{#1}");
+p("\\grayD", "\\textcolor{##d6d8da}{#1}");
+p("\\grayE", "\\textcolor{##babec2}{#1}");
+p("\\grayF", "\\textcolor{##888d93}{#1}");
+p("\\grayG", "\\textcolor{##626569}{#1}");
+p("\\grayH", "\\textcolor{##3b3e40}{#1}");
+p("\\grayI", "\\textcolor{##21242c}{#1}");
+p("\\kaBlue", "\\textcolor{##314453}{#1}");
+p("\\kaGreen", "\\textcolor{##71B307}{#1}");
+var Yl = {
+  "^": !0,
+  // Parser.js
+  _: !0,
+  // Parser.js
+  "\\limits": !0,
+  // Parser.js
+  "\\nolimits": !0
+  // Parser.js
+};
+class pc {
+  constructor(e, t, r) {
+    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 = t, this.expansionCount = 0, this.feed(e), this.macros = new fc(dc, t.macros), this.mode = r, this.stack = [];
+  }
+  /**
+   * Feed a new input string to the same MacroExpander
+   * (with existing macros etc.).
+   */
+  feed(e) {
+    this.lexer = new Li(e, this.settings);
+  }
+  /**
+   * Switches between "text" and "math" modes.
+   */
+  switchMode(e) {
+    this.mode = e;
+  }
+  /**
+   * Start a new group nesting within all namespaces.
+   */
+  beginGroup() {
+    this.macros.beginGroup();
+  }
+  /**
+   * End current group nesting within all namespaces.
+   */
+  endGroup() {
+    this.macros.endGroup();
+  }
+  /**
+   * Ends all currently nested groups (if any), restoring values before the
+   * groups began.  Useful in case of an error in the middle of parsing.
+   */
+  endGroups() {
+    this.macros.endGroups();
+  }
+  /**
+   * Returns the topmost token on the stack, without expanding it.
+   * Similar in behavior to TeX's `\futurelet`.
+   */
+  future() {
+    return this.stack.length === 0 && this.pushToken(this.lexer.lex()), this.stack[this.stack.length - 1];
+  }
+  /**
+   * Remove and return the next unexpanded token.
+   */
+  popToken() {
+    return this.future(), this.stack.pop();
+  }
+  /**
+   * Add a given token to the token stack.  In particular, this get be used
+   * to put back a token returned from one of the other methods.
+   */
+  pushToken(e) {
+    this.stack.push(e);
+  }
+  /**
+   * Append an array of tokens to the token stack.
+   */
+  pushTokens(e) {
+    this.stack.push(...e);
+  }
+  /**
+   * Find an macro argument without expanding tokens and append the array of
+   * tokens to the token stack. Uses Token as a container for the result.
+   */
+  scanArgument(e) {
+    var t, r, n;
+    if (e) {
+      if (this.consumeSpaces(), this.future().text !== "[")
+        return null;
+      t = this.popToken(), {
+        tokens: n,
+        end: r
+      } = this.consumeArg(["]"]);
+    } else
+      ({
+        tokens: n,
+        start: t,
+        end: r
+      } = this.consumeArg());
+    return this.pushToken(new mt("EOF", r.loc)), this.pushTokens(n), t.range(r, "");
+  }
+  /**
+   * Consume all following space tokens, without expansion.
+   */
+  consumeSpaces() {
+    for (; ; ) {
+      var e = this.future();
+      if (e.text === " ")
+        this.stack.pop();
+      else
+        break;
+    }
+  }
+  /**
+   * Consume an argument from the token stream, and return the resulting array
+   * of tokens and start/end token.
+   */
+  consumeArg(e) {
+    var t = [], r = e && e.length > 0;
+    r || this.consumeSpaces();
+    var n = this.future(), i, s = 0, l = 0;
+    do {
+      if (i = this.popToken(), t.push(i), i.text === "{")
+        ++s;
+      else if (i.text === "}") {
+        if (--s, s === -1)
+          throw new I("Extra }", i);
+      } else if (i.text === "EOF")
+        throw new I("Unexpected end of input in a macro argument, expected '" + (e && r ? e[l] : "}") + "'", i);
+      if (e && r)
+        if ((s === 0 || s === 1 && e[l] === "{") && i.text === e[l]) {
+          if (++l, l === e.length) {
+            t.splice(-l, l);
+            break;
+          }
+        } else
+          l = 0;
+    } while (s !== 0 || r);
+    return n.text === "{" && t[t.length - 1].text === "}" && (t.pop(), t.shift()), t.reverse(), {
+      tokens: t,
+      start: n,
+      end: i
+    };
+  }
+  /**
+   * Consume the specified number of (delimited) arguments from the token
+   * stream and return the resulting array of arguments.
+   */
+  consumeArgs(e, t) {
+    if (t) {
+      if (t.length !== e + 1)
+        throw new I("The length of delimiters doesn't match the number of args!");
+      for (var r = t[0], n = 0; n < r.length; n++) {
+        var i = this.popToken();
+        if (r[n] !== i.text)
+          throw new I("Use of the macro doesn't match its definition", i);
+      }
+    }
+    for (var s = [], l = 0; l < e; l++)
+      s.push(this.consumeArg(t && t[l + 1]).tokens);
+    return s;
+  }
+  /**
+   * Increment `expansionCount` by the specified amount.
+   * Throw an error if it exceeds `maxExpand`.
+   */
+  countExpansion(e) {
+    if (this.expansionCount += e, this.expansionCount > this.settings.maxExpand)
+      throw new I("Too many expansions: infinite loop or need to increase maxExpand setting");
+  }
+  /**
+   * Expand the next token only once if possible.
+   *
+   * If the token is expanded, the resulting tokens will be pushed onto
+   * the stack in reverse order, and the number of such tokens will be
+   * returned.  This number might be zero or positive.
+   *
+   * If not, the return value is `false`, and the next token remains at the
+   * top of the stack.
+   *
+   * In either case, the next token will be on the top of the stack,
+   * or the stack will be empty (in case of empty expansion
+   * and no other tokens).
+   *
+   * Used to implement `expandAfterFuture` and `expandNextToken`.
+   *
+   * If expandableOnly, only expandable tokens are expanded and
+   * an undefined control sequence results in an error.
+   */
+  expandOnce(e) {
+    var t = this.popToken(), r = t.text, n = t.noexpand ? null : this._getExpansion(r);
+    if (n == null || e && n.unexpandable) {
+      if (e && n == null && r[0] === "\\" && !this.isDefined(r))
+        throw new I("Undefined control sequence: " + r);
+      return this.pushToken(t), !1;
+    }
+    this.countExpansion(1);
+    var i = n.tokens, s = this.consumeArgs(n.numArgs, n.delimiters);
+    if (n.numArgs) {
+      i = i.slice();
+      for (var l = i.length - 1; l >= 0; --l) {
+        var o = i[l];
+        if (o.text === "#") {
+          if (l === 0)
+            throw new I("Incomplete placeholder at end of macro body", o);
+          if (o = i[--l], o.text === "#")
+            i.splice(l + 1, 1);
+          else if (/^[1-9]$/.test(o.text))
+            i.splice(l, 2, ...s[+o.text - 1]);
+          else
+            throw new I("Not a valid argument number", o);
+        }
+      }
+    }
+    return this.pushTokens(i), i.length;
+  }
+  /**
+   * Expand the next token only once (if possible), and return the resulting
+   * top token on the stack (without removing anything from the stack).
+   * Similar in behavior to TeX's `\expandafter\futurelet`.
+   * Equivalent to expandOnce() followed by future().
+   */
+  expandAfterFuture() {
+    return this.expandOnce(), this.future();
+  }
+  /**
+   * Recursively expand first token, then return first non-expandable token.
+   */
+  expandNextToken() {
+    for (; ; )
+      if (this.expandOnce() === !1) {
+        var e = this.stack.pop();
+        return e.treatAsRelax && (e.text = "\\relax"), e;
+      }
+    throw new Error();
+  }
+  /**
+   * Fully expand the given macro name and return the resulting list of
+   * tokens, or return `undefined` if no such macro is defined.
+   */
+  expandMacro(e) {
+    return this.macros.has(e) ? this.expandTokens([new mt(e)]) : void 0;
+  }
+  /**
+   * Fully expand the given token stream and return the resulting list of
+   * tokens.  Note that the input tokens are in reverse order, but the
+   * output tokens are in forward order.
+   */
+  expandTokens(e) {
+    var t = [], r = this.stack.length;
+    for (this.pushTokens(e); this.stack.length > r; )
+      if (this.expandOnce(!0) === !1) {
+        var n = this.stack.pop();
+        n.treatAsRelax && (n.noexpand = !1, n.treatAsRelax = !1), t.push(n);
+      }
+    return this.countExpansion(t.length), t;
+  }
+  /**
+   * Fully expand the given macro name and return the result as a string,
+   * or return `undefined` if no such macro is defined.
+   */
+  expandMacroAsText(e) {
+    var t = this.expandMacro(e);
+    return t && t.map((r) => r.text).join("");
+  }
+  /**
+   * Returns the expanded macro as a reversed array of tokens and a macro
+   * argument count.  Or returns `null` if no such macro.
+   */
+  _getExpansion(e) {
+    var t = this.macros.get(e);
+    if (t == null)
+      return t;
+    if (e.length === 1) {
+      var r = this.lexer.catcodes[e];
+      if (r != null && r !== 13)
+        return;
+    }
+    var n = typeof t == "function" ? t(this) : t;
+    if (typeof n == "string") {
+      var i = 0;
+      if (n.indexOf("#") !== -1)
+        for (var s = n.replace(/##/g, ""); s.indexOf("#" + (i + 1)) !== -1; )
+          ++i;
+      for (var l = new Li(n, this.settings), o = [], h = l.lex(); h.text !== "EOF"; )
+        o.push(h), h = l.lex();
+      o.reverse();
+      var m = {
+        tokens: o,
+        numArgs: i
+      };
+      return m;
+    }
+    return n;
+  }
+  /**
+   * Determine whether a command is currently "defined" (has some
+   * functionality), meaning that it's a macro (in the current group),
+   * a function, a symbol, or one of the special commands listed in
+   * `implicitCommands`.
+   */
+  isDefined(e) {
+    return this.macros.has(e) || l0.hasOwnProperty(e) || pe.math.hasOwnProperty(e) || pe.text.hasOwnProperty(e) || Yl.hasOwnProperty(e);
+  }
+  /**
+   * Determine whether a command is expandable.
+   */
+  isExpandable(e) {
+    var t = this.macros.get(e);
+    return t != null ? typeof t == "string" || typeof t == "function" || !t.unexpandable : l0.hasOwnProperty(e) && !l0[e].primitive;
+  }
+}
+var qi = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/, xr = 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",
+  "ᵝ": "β",
+  "ᵞ": "γ",
+  "ᵟ": "δ",
+  "ᵠ": "ϕ",
+  "ᵡ": "χ",
+  "ᶿ": "θ"
+}), Da = {
+  "́": {
+    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"
+  }
+}, Pi = {
+  á: "á",
+  à: "à",
+  ä: "ä",
+  ǟ: "ǟ",
+  ã: "ã",
+  ā: "ā",
+  ă: "ă",
+  ắ: "ắ",
+  ằ: "ằ",
+  ẵ: "ẵ",
+  ǎ: "ǎ",
+  â: "â",
+  ấ: "ấ",
+  ầ: "ầ",
+  ẫ: "ẫ",
+  ȧ: "ȧ",
+  ǡ: "ǡ",
+  å: "å",
+  ǻ: "ǻ",
+  ḃ: "ḃ",
+  ć: "ć",
+  ḉ: "ḉ",
+  č: "č",
+  ĉ: "ĉ",
+  ċ: "ċ",
+  ç: "ç",
+  ď: "ď",
+  ḋ: "ḋ",
+  ḑ: "ḑ",
+  é: "é",
+  è: "è",
+  ë: "ë",
+  ẽ: "ẽ",
+  ē: "ē",
+  ḗ: "ḗ",
+  ḕ: "ḕ",
+  ĕ: "ĕ",
+  ḝ: "ḝ",
+  ě: "ě",
+  ê: "ê",
+  ế: "ế",
+  ề: "ề",
+  ễ: "ễ",
+  ė: "ė",
+  ȩ: "ȩ",
+  ḟ: "ḟ",
+  ǵ: "ǵ",
+  ḡ: "ḡ",
+  ğ: "ğ",
+  ǧ: "ǧ",
+  ĝ: "ĝ",
+  ġ: "ġ",
+  ģ: "ģ",
+  ḧ: "ḧ",
+  ȟ: "ȟ",
+  ĥ: "ĥ",
+  ḣ: "ḣ",
+  ḩ: "ḩ",
+  í: "í",
+  ì: "ì",
+  ï: "ï",
+  ḯ: "ḯ",
+  ĩ: "ĩ",
+  ī: "ī",
+  ĭ: "ĭ",
+  ǐ: "ǐ",
+  î: "î",
+  ǰ: "ǰ",
+  ĵ: "ĵ",
+  ḱ: "ḱ",
+  ǩ: "ǩ",
+  ķ: "ķ",
+  ĺ: "ĺ",
+  ľ: "ľ",
+  ļ: "ļ",
+  ḿ: "ḿ",
+  ṁ: "ṁ",
+  ń: "ń",
+  ǹ: "ǹ",
+  ñ: "ñ",
+  ň: "ň",
+  ṅ: "ṅ",
+  ņ: "ņ",
+  ó: "ó",
+  ò: "ò",
+  ö: "ö",
+  ȫ: "ȫ",
+  õ: "õ",
+  ṍ: "ṍ",
+  ṏ: "ṏ",
+  ȭ: "ȭ",
+  ō: "ō",
+  ṓ: "ṓ",
+  ṑ: "ṑ",
+  ŏ: "ŏ",
+  ǒ: "ǒ",
+  ô: "ô",
+  ố: "ố",
+  ồ: "ồ",
+  ỗ: "ỗ",
+  ȯ: "ȯ",
+  ȱ: "ȱ",
+  ő: "ő",
+  ṕ: "ṕ",
+  ṗ: "ṗ",
+  ŕ: "ŕ",
+  ř: "ř",
+  ṙ: "ṙ",
+  ŗ: "ŗ",
+  ś: "ś",
+  ṥ: "ṥ",
+  š: "š",
+  ṧ: "ṧ",
+  ŝ: "ŝ",
+  ṡ: "ṡ",
+  ş: "ş",
+  ẗ: "ẗ",
+  ť: "ť",
+  ṫ: "ṫ",
+  ţ: "ţ",
+  ú: "ú",
+  ù: "ù",
+  ü: "ü",
+  ǘ: "ǘ",
+  ǜ: "ǜ",
+  ǖ: "ǖ",
+  ǚ: "ǚ",
+  ũ: "ũ",
+  ṹ: "ṹ",
+  ū: "ū",
+  ṻ: "ṻ",
+  ŭ: "ŭ",
+  ǔ: "ǔ",
+  û: "û",
+  ů: "ů",
+  ű: "ű",
+  ṽ: "ṽ",
+  ẃ: "ẃ",
+  ẁ: "ẁ",
+  ẅ: "ẅ",
+  ŵ: "ŵ",
+  ẇ: "ẇ",
+  ẘ: "ẘ",
+  ẍ: "ẍ",
+  ẋ: "ẋ",
+  ý: "ý",
+  ỳ: "ỳ",
+  ÿ: "ÿ",
+  ỹ: "ỹ",
+  ȳ: "ȳ",
+  ŷ: "ŷ",
+  ẏ: "ẏ",
+  ẙ: "ẙ",
+  ź: "ź",
+  ž: "ž",
+  ẑ: "ẑ",
+  ż: "ż",
+  Á: "Á",
+  À: "À",
+  Ä: "Ä",
+  Ǟ: "Ǟ",
+  Ã: "Ã",
+  Ā: "Ā",
+  Ă: "Ă",
+  Ắ: "Ắ",
+  Ằ: "Ằ",
+  Ẵ: "Ẵ",
+  Ǎ: "Ǎ",
+  Â: "Â",
+  Ấ: "Ấ",
+  Ầ: "Ầ",
+  Ẫ: "Ẫ",
+  Ȧ: "Ȧ",
+  Ǡ: "Ǡ",
+  Å: "Å",
+  Ǻ: "Ǻ",
+  Ḃ: "Ḃ",
+  Ć: "Ć",
+  Ḉ: "Ḉ",
+  Č: "Č",
+  Ĉ: "Ĉ",
+  Ċ: "Ċ",
+  Ç: "Ç",
+  Ď: "Ď",
+  Ḋ: "Ḋ",
+  Ḑ: "Ḑ",
+  É: "É",
+  È: "È",
+  Ë: "Ë",
+  Ẽ: "Ẽ",
+  Ē: "Ē",
+  Ḗ: "Ḗ",
+  Ḕ: "Ḕ",
+  Ĕ: "Ĕ",
+  Ḝ: "Ḝ",
+  Ě: "Ě",
+  Ê: "Ê",
+  Ế: "Ế",
+  Ề: "Ề",
+  Ễ: "Ễ",
+  Ė: "Ė",
+  Ȩ: "Ȩ",
+  Ḟ: "Ḟ",
+  Ǵ: "Ǵ",
+  Ḡ: "Ḡ",
+  Ğ: "Ğ",
+  Ǧ: "Ǧ",
+  Ĝ: "Ĝ",
+  Ġ: "Ġ",
+  Ģ: "Ģ",
+  Ḧ: "Ḧ",
+  Ȟ: "Ȟ",
+  Ĥ: "Ĥ",
+  Ḣ: "Ḣ",
+  Ḩ: "Ḩ",
+  Í: "Í",
+  Ì: "Ì",
+  Ï: "Ï",
+  Ḯ: "Ḯ",
+  Ĩ: "Ĩ",
+  Ī: "Ī",
+  Ĭ: "Ĭ",
+  Ǐ: "Ǐ",
+  Î: "Î",
+  İ: "İ",
+  Ĵ: "Ĵ",
+  Ḱ: "Ḱ",
+  Ǩ: "Ǩ",
+  Ķ: "Ķ",
+  Ĺ: "Ĺ",
+  Ľ: "Ľ",
+  Ļ: "Ļ",
+  Ḿ: "Ḿ",
+  Ṁ: "Ṁ",
+  Ń: "Ń",
+  Ǹ: "Ǹ",
+  Ñ: "Ñ",
+  Ň: "Ň",
+  Ṅ: "Ṅ",
+  Ņ: "Ņ",
+  Ó: "Ó",
+  Ò: "Ò",
+  Ö: "Ö",
+  Ȫ: "Ȫ",
+  Õ: "Õ",
+  Ṍ: "Ṍ",
+  Ṏ: "Ṏ",
+  Ȭ: "Ȭ",
+  Ō: "Ō",
+  Ṓ: "Ṓ",
+  Ṑ: "Ṑ",
+  Ŏ: "Ŏ",
+  Ǒ: "Ǒ",
+  Ô: "Ô",
+  Ố: "Ố",
+  Ồ: "Ồ",
+  Ỗ: "Ỗ",
+  Ȯ: "Ȯ",
+  Ȱ: "Ȱ",
+  Ő: "Ő",
+  Ṕ: "Ṕ",
+  Ṗ: "Ṗ",
+  Ŕ: "Ŕ",
+  Ř: "Ř",
+  Ṙ: "Ṙ",
+  Ŗ: "Ŗ",
+  Ś: "Ś",
+  Ṥ: "Ṥ",
+  Š: "Š",
+  Ṧ: "Ṧ",
+  Ŝ: "Ŝ",
+  Ṡ: "Ṡ",
+  Ş: "Ş",
+  Ť: "Ť",
+  Ṫ: "Ṫ",
+  Ţ: "Ţ",
+  Ú: "Ú",
+  Ù: "Ù",
+  Ü: "Ü",
+  Ǘ: "Ǘ",
+  Ǜ: "Ǜ",
+  Ǖ: "Ǖ",
+  Ǚ: "Ǚ",
+  Ũ: "Ũ",
+  Ṹ: "Ṹ",
+  Ū: "Ū",
+  Ṻ: "Ṻ",
+  Ŭ: "Ŭ",
+  Ǔ: "Ǔ",
+  Û: "Û",
+  Ů: "Ů",
+  Ű: "Ű",
+  Ṽ: "Ṽ",
+  Ẃ: "Ẃ",
+  Ẁ: "Ẁ",
+  Ẅ: "Ẅ",
+  Ŵ: "Ŵ",
+  Ẇ: "Ẇ",
+  Ẍ: "Ẍ",
+  Ẋ: "Ẋ",
+  Ý: "Ý",
+  Ỳ: "Ỳ",
+  Ÿ: "Ÿ",
+  Ỹ: "Ỹ",
+  Ȳ: "Ȳ",
+  Ŷ: "Ŷ",
+  Ẏ: "Ẏ",
+  Ź: "Ź",
+  Ž: "Ž",
+  Ẑ: "Ẑ",
+  Ż: "Ż",
+  ά: "ά",
+  ὰ: "ὰ",
+  ᾱ: "ᾱ",
+  ᾰ: "ᾰ",
+  έ: "έ",
+  ὲ: "ὲ",
+  ή: "ή",
+  ὴ: "ὴ",
+  ί: "ί",
+  ὶ: "ὶ",
+  ϊ: "ϊ",
+  ΐ: "ΐ",
+  ῒ: "ῒ",
+  ῑ: "ῑ",
+  ῐ: "ῐ",
+  ό: "ό",
+  ὸ: "ὸ",
+  ύ: "ύ",
+  ὺ: "ὺ",
+  ϋ: "ϋ",
+  ΰ: "ΰ",
+  ῢ: "ῢ",
+  ῡ: "ῡ",
+  ῠ: "ῠ",
+  ώ: "ώ",
+  ὼ: "ὼ",
+  Ύ: "Ύ",
+  Ὺ: "Ὺ",
+  Ϋ: "Ϋ",
+  Ῡ: "Ῡ",
+  Ῠ: "Ῠ",
+  Ώ: "Ώ",
+  Ὼ: "Ὼ"
+};
+class ta {
+  constructor(e, t) {
+    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 pc(e, t, this.mode), this.settings = t, this.leftrightDepth = 0;
+  }
+  /**
+   * Checks a result to make sure it has the right type, and throws an
+   * appropriate error otherwise.
+   */
+  expect(e, t) {
+    if (t === void 0 && (t = !0), this.fetch().text !== e)
+      throw new I("Expected '" + e + "', got '" + this.fetch().text + "'", this.fetch());
+    t && this.consume();
+  }
+  /**
+   * Discards the current lookahead token, considering it consumed.
+   */
+  consume() {
+    this.nextToken = null;
+  }
+  /**
+   * Return the current lookahead token, or if there isn't one (at the
+   * beginning, or if the previous lookahead token was consume()d),
+   * fetch the next token as the new lookahead token and return it.
+   */
+  fetch() {
+    return this.nextToken == null && (this.nextToken = this.gullet.expandNextToken()), this.nextToken;
+  }
+  /**
+   * Switches between "text" and "math" modes.
+   */
+  switchMode(e) {
+    this.mode = e, this.gullet.switchMode(e);
+  }
+  /**
+   * Main parsing function, which parses an entire input.
+   */
+  parse() {
+    this.settings.globalGroup || this.gullet.beginGroup(), this.settings.colorIsTextColor && this.gullet.macros.set("\\color", "\\textcolor");
+    try {
+      var e = this.parseExpression(!1);
+      return this.expect("EOF"), this.settings.globalGroup || this.gullet.endGroup(), e;
+    } finally {
+      this.gullet.endGroups();
+    }
+  }
+  /**
+   * Fully parse a separate sequence of tokens as a separate job.
+   * Tokens should be specified in reverse order, as in a MacroDefinition.
+   */
+  subparse(e) {
+    var t = this.nextToken;
+    this.consume(), this.gullet.pushToken(new mt("}")), this.gullet.pushTokens(e);
+    var r = this.parseExpression(!1);
+    return this.expect("}"), this.nextToken = t, r;
+  }
+  /**
+   * Parses an "expression", which is a list of atoms.
+   *
+   * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This
+   *                 happens when functions have higher precedence han infix
+   *                 nodes in implicit parses.
+   *
+   * `breakOnTokenText`: The text of the token that the expression should end
+   *                     with, or `null` if something else should end the
+   *                     expression.
+   */
+  parseExpression(e, t) {
+    for (var r = []; ; ) {
+      this.mode === "math" && this.consumeSpaces();
+      var n = this.fetch();
+      if (ta.endOfExpression.indexOf(n.text) !== -1 || t && n.text === t || e && l0[n.text] && l0[n.text].infix)
+        break;
+      var i = this.parseAtom(t);
+      if (i) {
+        if (i.type === "internal")
+          continue;
+      } else break;
+      r.push(i);
+    }
+    return this.mode === "text" && this.formLigatures(r), this.handleInfixNodes(r);
+  }
+  /**
+   * Rewrites infix operators such as \over with corresponding commands such
+   * as \frac.
+   *
+   * There can only be one infix operator per group.  If there's more than one
+   * then the expression is ambiguous.  This can be resolved by adding {}.
+   */
+  handleInfixNodes(e) {
+    for (var t = -1, r, n = 0; n < e.length; n++)
+      if (e[n].type === "infix") {
+        if (t !== -1)
+          throw new I("only one infix operator per group", e[n].token);
+        t = n, r = e[n].replaceWith;
+      }
+    if (t !== -1 && r) {
+      var i, s, l = e.slice(0, t), o = e.slice(t + 1);
+      l.length === 1 && l[0].type === "ordgroup" ? i = l[0] : i = {
+        type: "ordgroup",
+        mode: this.mode,
+        body: l
+      }, o.length === 1 && o[0].type === "ordgroup" ? s = o[0] : s = {
+        type: "ordgroup",
+        mode: this.mode,
+        body: o
+      };
+      var h;
+      return r === "\\\\abovefrac" ? h = this.callFunction(r, [i, e[t], s], []) : h = this.callFunction(r, [i, s], []), [h];
+    } else
+      return e;
+  }
+  /**
+   * Handle a subscript or superscript with nice errors.
+   */
+  handleSupSubscript(e) {
+    var t = this.fetch(), r = t.text;
+    this.consume(), this.consumeSpaces();
+    var n = this.parseGroup(e);
+    if (!n)
+      throw new I("Expected group after '" + r + "'", t);
+    return n;
+  }
+  /**
+   * Converts the textual input of an unsupported command into a text node
+   * contained within a color node whose color is determined by errorColor
+   */
+  formatUnsupportedCmd(e) {
+    for (var t = [], r = 0; r < e.length; r++)
+      t.push({
+        type: "textord",
+        mode: "text",
+        text: e[r]
+      });
+    var n = {
+      type: "text",
+      mode: this.mode,
+      body: t
+    }, i = {
+      type: "color",
+      mode: this.mode,
+      color: this.settings.errorColor,
+      body: [n]
+    };
+    return i;
+  }
+  /**
+   * Parses a group with optional super/subscripts.
+   */
+  parseAtom(e) {
+    var t = this.parseGroup("atom", e);
+    if (this.mode === "text")
+      return t;
+    for (var r, n; ; ) {
+      this.consumeSpaces();
+      var i = this.fetch();
+      if (i.text === "\\limits" || i.text === "\\nolimits") {
+        if (t && t.type === "op") {
+          var s = i.text === "\\limits";
+          t.limits = s, t.alwaysHandleSupSub = !0;
+        } else if (t && t.type === "operatorname")
+          t.alwaysHandleSupSub && (t.limits = i.text === "\\limits");
+        else
+          throw new I("Limit controls must follow a math operator", i);
+        this.consume();
+      } else if (i.text === "^") {
+        if (r)
+          throw new I("Double superscript", i);
+        r = this.handleSupSubscript("superscript");
+      } else if (i.text === "_") {
+        if (n)
+          throw new I("Double subscript", i);
+        n = this.handleSupSubscript("subscript");
+      } else if (i.text === "'") {
+        if (r)
+          throw new I("Double superscript", i);
+        var l = {
+          type: "textord",
+          mode: this.mode,
+          text: "\\prime"
+        }, o = [l];
+        for (this.consume(); this.fetch().text === "'"; )
+          o.push(l), this.consume();
+        this.fetch().text === "^" && o.push(this.handleSupSubscript("superscript")), r = {
+          type: "ordgroup",
+          mode: this.mode,
+          body: o
+        };
+      } else if (xr[i.text]) {
+        var h = qi.test(i.text), m = [];
+        for (m.push(new mt(xr[i.text])), this.consume(); ; ) {
+          var d = this.fetch().text;
+          if (!xr[d] || qi.test(d) !== h)
+            break;
+          m.unshift(new mt(xr[d])), this.consume();
+        }
+        var v = this.subparse(m);
+        h ? n = {
+          type: "ordgroup",
+          mode: "math",
+          body: v
+        } : r = {
+          type: "ordgroup",
+          mode: "math",
+          body: v
+        };
+      } else
+        break;
+    }
+    return r || n ? {
+      type: "supsub",
+      mode: this.mode,
+      base: t,
+      sup: r,
+      sub: n
+    } : t;
+  }
+  /**
+   * Parses an entire function, including its base and all of its arguments.
+   */
+  parseFunction(e, t) {
+    var r = this.fetch(), n = r.text, i = l0[n];
+    if (!i)
+      return null;
+    if (this.consume(), t && t !== "atom" && !i.allowedInArgument)
+      throw new I("Got function '" + n + "' with no arguments" + (t ? " as " + t : ""), r);
+    if (this.mode === "text" && !i.allowedInText)
+      throw new I("Can't use function '" + n + "' in text mode", r);
+    if (this.mode === "math" && i.allowedInMath === !1)
+      throw new I("Can't use function '" + n + "' in math mode", r);
+    var {
+      args: s,
+      optArgs: l
+    } = this.parseArguments(n, i);
+    return this.callFunction(n, s, l, r, e);
+  }
+  /**
+   * Call a function handler with a suitable context and arguments.
+   */
+  callFunction(e, t, r, n, i) {
+    var s = {
+      funcName: e,
+      parser: this,
+      token: n,
+      breakOnTokenText: i
+    }, l = l0[e];
+    if (l && l.handler)
+      return l.handler(s, t, r);
+    throw new I("No function handler for " + e);
+  }
+  /**
+   * Parses the arguments of a function or environment
+   */
+  parseArguments(e, t) {
+    var r = t.numArgs + t.numOptionalArgs;
+    if (r === 0)
+      return {
+        args: [],
+        optArgs: []
+      };
+    for (var n = [], i = [], s = 0; s < r; s++) {
+      var l = t.argTypes && t.argTypes[s], o = s < t.numOptionalArgs;
+      (t.primitive && l == null || // \sqrt expands into primitive if optional argument doesn't exist
+      t.type === "sqrt" && s === 1 && i[0] == null) && (l = "primitive");
+      var h = this.parseGroupOfType("argument to '" + e + "'", l, o);
+      if (o)
+        i.push(h);
+      else if (h != null)
+        n.push(h);
+      else
+        throw new I("Null argument, please report this as a bug");
+    }
+    return {
+      args: n,
+      optArgs: i
+    };
+  }
+  /**
+   * Parses a group when the mode is changing.
+   */
+  parseGroupOfType(e, t, r) {
+    switch (t) {
+      case "color":
+        return this.parseColorGroup(r);
+      case "size":
+        return this.parseSizeGroup(r);
+      case "url":
+        return this.parseUrlGroup(r);
+      case "math":
+      case "text":
+        return this.parseArgumentGroup(r, t);
+      case "hbox": {
+        var n = this.parseArgumentGroup(r, "text");
+        return n != null ? {
+          type: "styling",
+          mode: n.mode,
+          body: [n],
+          style: "text"
+          // simulate \textstyle
+        } : null;
+      }
+      case "raw": {
+        var i = this.parseStringGroup("raw", r);
+        return i != null ? {
+          type: "raw",
+          mode: "text",
+          string: i.text
+        } : null;
+      }
+      case "primitive": {
+        if (r)
+          throw new I("A primitive argument cannot be optional");
+        var s = this.parseGroup(e);
+        if (s == null)
+          throw new I("Expected group as " + e, this.fetch());
+        return s;
+      }
+      case "original":
+      case null:
+      case void 0:
+        return this.parseArgumentGroup(r);
+      default:
+        throw new I("Unknown group type as " + e, this.fetch());
+    }
+  }
+  /**
+   * Discard any space tokens, fetching the next non-space token.
+   */
+  consumeSpaces() {
+    for (; this.fetch().text === " "; )
+      this.consume();
+  }
+  /**
+   * Parses a group, essentially returning the string formed by the
+   * brace-enclosed tokens plus some position information.
+   */
+  parseStringGroup(e, t) {
+    var r = this.gullet.scanArgument(t);
+    if (r == null)
+      return null;
+    for (var n = "", i; (i = this.fetch()).text !== "EOF"; )
+      n += i.text, this.consume();
+    return this.consume(), r.text = n, r;
+  }
+  /**
+   * Parses a regex-delimited group: the largest sequence of tokens
+   * whose concatenated strings match `regex`. Returns the string
+   * formed by the tokens plus some position information.
+   */
+  parseRegexGroup(e, t) {
+    for (var r = this.fetch(), n = r, i = "", s; (s = this.fetch()).text !== "EOF" && e.test(i + s.text); )
+      n = s, i += n.text, this.consume();
+    if (i === "")
+      throw new I("Invalid " + t + ": '" + r.text + "'", r);
+    return r.range(n, i);
+  }
+  /**
+   * Parses a color description.
+   */
+  parseColorGroup(e) {
+    var t = this.parseStringGroup("color", e);
+    if (t == null)
+      return null;
+    var r = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(t.text);
+    if (!r)
+      throw new I("Invalid color: '" + t.text + "'", t);
+    var n = r[0];
+    return /^[0-9a-f]{6}$/i.test(n) && (n = "#" + n), {
+      type: "color-token",
+      mode: this.mode,
+      color: n
+    };
+  }
+  /**
+   * Parses a size specification, consisting of magnitude and unit.
+   */
+  parseSizeGroup(e) {
+    var t, r = !1;
+    if (this.gullet.consumeSpaces(), !e && this.gullet.future().text !== "{" ? t = this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/, "size") : t = this.parseStringGroup("size", e), !t)
+      return null;
+    !e && t.text.length === 0 && (t.text = "0pt", r = !0);
+    var n = /([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);
+    if (!n)
+      throw new I("Invalid size: '" + t.text + "'", t);
+    var i = {
+      number: +(n[1] + n[2]),
+      // sign + magnitude, cast to number
+      unit: n[3]
+    };
+    if (!al(i))
+      throw new I("Invalid unit: '" + i.unit + "'", t);
+    return {
+      type: "size",
+      mode: this.mode,
+      value: i,
+      isBlank: r
+    };
+  }
+  /**
+   * Parses an URL, checking escaped letters and allowed protocols,
+   * and setting the catcode of % as an active character (as in \hyperref).
+   */
+  parseUrlGroup(e) {
+    this.gullet.lexer.setCatcode("%", 13), this.gullet.lexer.setCatcode("~", 12);
+    var t = this.parseStringGroup("url", e);
+    if (this.gullet.lexer.setCatcode("%", 14), this.gullet.lexer.setCatcode("~", 13), t == null)
+      return null;
+    var r = t.text.replace(/\\([#$%&~_^{}])/g, "$1");
+    return {
+      type: "url",
+      mode: this.mode,
+      url: r
+    };
+  }
+  /**
+   * Parses an argument with the mode specified.
+   */
+  parseArgumentGroup(e, t) {
+    var r = this.gullet.scanArgument(e);
+    if (r == null)
+      return null;
+    var n = this.mode;
+    t && this.switchMode(t), this.gullet.beginGroup();
+    var i = this.parseExpression(!1, "EOF");
+    this.expect("EOF"), this.gullet.endGroup();
+    var s = {
+      type: "ordgroup",
+      mode: this.mode,
+      loc: r.loc,
+      body: i
+    };
+    return t && this.switchMode(n), s;
+  }
+  /**
+   * Parses an ordinary group, which is either a single nucleus (like "x")
+   * or an expression in braces (like "{x+y}") or an implicit group, a group
+   * that starts at the current position, and ends right before a higher explicit
+   * group ends, or at EOF.
+   */
+  parseGroup(e, t) {
+    var r = this.fetch(), n = r.text, i;
+    if (n === "{" || n === "\\begingroup") {
+      this.consume();
+      var s = n === "{" ? "}" : "\\endgroup";
+      this.gullet.beginGroup();
+      var l = this.parseExpression(!1, s), o = this.fetch();
+      this.expect(s), this.gullet.endGroup(), i = {
+        type: "ordgroup",
+        mode: this.mode,
+        loc: et.range(r, o),
+        body: l,
+        // 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: n === "\\begingroup" || void 0
+      };
+    } else if (i = this.parseFunction(t, e) || this.parseSymbol(), i == null && n[0] === "\\" && !Yl.hasOwnProperty(n)) {
+      if (this.settings.throwOnError)
+        throw new I("Undefined control sequence: " + n, r);
+      i = this.formatUnsupportedCmd(n), this.consume();
+    }
+    return i;
+  }
+  /**
+   * Form ligature-like combinations of characters for text mode.
+   * This includes inputs like "--", "---", "``" and "''".
+   * The result will simply replace multiple textord nodes with a single
+   * character in each value by a single textord node having multiple
+   * characters in its value.  The representation is still ASCII source.
+   * The group will be modified in place.
+   */
+  formLigatures(e) {
+    for (var t = e.length - 1, r = 0; r < t; ++r) {
+      var n = e[r], i = n.text;
+      i === "-" && e[r + 1].text === "-" && (r + 1 < t && e[r + 2].text === "-" ? (e.splice(r, 3, {
+        type: "textord",
+        mode: "text",
+        loc: et.range(n, e[r + 2]),
+        text: "---"
+      }), t -= 2) : (e.splice(r, 2, {
+        type: "textord",
+        mode: "text",
+        loc: et.range(n, e[r + 1]),
+        text: "--"
+      }), t -= 1)), (i === "'" || i === "`") && e[r + 1].text === i && (e.splice(r, 2, {
+        type: "textord",
+        mode: "text",
+        loc: et.range(n, e[r + 1]),
+        text: i + i
+      }), t -= 1);
+    }
+  }
+  /**
+   * Parse a single symbol out of the string. Here, we handle single character
+   * symbols and special functions like \verb.
+   */
+  parseSymbol() {
+    var e = this.fetch(), t = e.text;
+    if (/^\\verb[^a-zA-Z]/.test(t)) {
+      this.consume();
+      var r = t.slice(5), n = r.charAt(0) === "*";
+      if (n && (r = r.slice(1)), r.length < 2 || r.charAt(0) !== r.slice(-1))
+        throw new I(`\\verb assertion failed --
+                    please report what input caused this bug`);
+      return r = r.slice(1, -1), {
+        type: "verb",
+        mode: "text",
+        body: r,
+        star: n
+      };
+    }
+    Pi.hasOwnProperty(t[0]) && !pe[this.mode][t[0]] && (this.settings.strict && this.mode === "math" && this.settings.reportNonstrict("unicodeTextInMathMode", 'Accented Unicode text character "' + t[0] + '" used in math mode', e), t = Pi[t[0]] + t.slice(1));
+    var i = hc.exec(t);
+    i && (t = t.substring(0, i.index), t === "i" ? t = "ı" : t === "j" && (t = "ȷ"));
+    var s;
+    if (pe[this.mode][t]) {
+      this.settings.strict && this.mode === "math" && Pa.indexOf(t) >= 0 && this.settings.reportNonstrict("unicodeTextInMathMode", 'Latin-1/Unicode text character "' + t[0] + '" used in math mode', e);
+      var l = pe[this.mode][t].group, o = et.range(e), h;
+      if (a1.hasOwnProperty(l)) {
+        var m = l;
+        h = {
+          type: "atom",
+          mode: this.mode,
+          family: m,
+          loc: o,
+          text: t
+        };
+      } else
+        h = {
+          type: l,
+          mode: this.mode,
+          loc: o,
+          text: t
+        };
+      s = h;
+    } else if (t.charCodeAt(0) >= 128)
+      this.settings.strict && (rl(t.charCodeAt(0)) ? this.mode === "math" && this.settings.reportNonstrict("unicodeTextInMathMode", 'Unicode text character "' + t[0] + '" used in math mode', e) : this.settings.reportNonstrict("unknownSymbol", 'Unrecognized Unicode character "' + t[0] + '"' + (" (" + t.charCodeAt(0) + ")"), e)), s = {
+        type: "textord",
+        mode: "text",
+        loc: et.range(e),
+        text: t
+      };
+    else
+      return null;
+    if (this.consume(), i)
+      for (var d = 0; d < i[0].length; d++) {
+        var v = i[0][d];
+        if (!Da[v])
+          throw new I("Unknown accent ' " + v + "'", e);
+        var g = Da[v][this.mode] || Da[v].text;
+        if (!g)
+          throw new I("Accent " + v + " unsupported in " + this.mode + " mode", e);
+        s = {
+          type: "accent",
+          mode: this.mode,
+          loc: et.range(e),
+          label: g,
+          isStretchy: !1,
+          isShifty: !0,
+          // $FlowFixMe
+          base: s
+        };
+      }
+    return s;
+  }
+}
+ta.endOfExpression = ["}", "\\endgroup", "\\end", "\\right", "&"];
+var Dn = function(e, t) {
+  if (!(typeof e == "string" || e instanceof String))
+    throw new TypeError("KaTeX can only parse string typed expression");
+  var r = new ta(e, t);
+  delete r.gullet.macros.current["\\df@tag"];
+  var n = r.parse();
+  if (delete r.gullet.macros.current["\\current@color"], delete r.gullet.macros.current["\\color"], r.gullet.macros.get("\\df@tag")) {
+    if (!t.displayMode)
+      throw new I("\\tag works only in display equations");
+    n = [{
+      type: "tag",
+      mode: "text",
+      body: n,
+      tag: r.subparse([new mt("\\df@tag")])
+    }];
+  }
+  return n;
+}, jl = function(e, t, r) {
+  t.textContent = "";
+  var n = An(e, r).toNode();
+  t.appendChild(n);
+};
+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."), jl = function() {
+  throw new I("KaTeX doesn't work in quirks mode.");
+});
+var gc = function(e, t) {
+  var r = An(e, t).toMarkup();
+  return r;
+}, vc = function(e, t) {
+  var r = new nn(t);
+  return Dn(e, r);
+}, Zl = function(e, t, r) {
+  if (r.throwOnError || !(e instanceof I))
+    throw e;
+  var n = E.makeSpan(["katex-error"], [new ft(t)]);
+  return n.setAttribute("title", e.toString()), n.setAttribute("style", "color:" + r.errorColor), n;
+}, An = function(e, t) {
+  var r = new nn(t);
+  try {
+    var n = Dn(e, r);
+    return S1(n, e, r);
+  } catch (i) {
+    return Zl(i, e, r);
+  }
+}, bc = function(e, t) {
+  var r = new nn(t);
+  try {
+    var n = Dn(e, r);
+    return E1(n, e, r);
+  } catch (i) {
+    return Zl(i, e, r);
+  }
+}, Hi = {
+  /**
+   * Current KaTeX version
+   */
+  version: "0.16.11",
+  /**
+   * Renders the given LaTeX into an HTML+MathML combination, and adds
+   * it as a child to the specified DOM node.
+   */
+  render: jl,
+  /**
+   * Renders the given LaTeX into an HTML+MathML combination string,
+   * for sending to the client.
+   */
+  renderToString: gc,
+  /**
+   * KaTeX error, usually during parsing.
+   */
+  ParseError: I,
+  /**
+   * The shema of Settings
+   */
+  SETTINGS_SCHEMA: zr,
+  /**
+   * 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: vc,
+  /**
+   * 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: An,
+  /**
+   * 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: bc,
+  /**
+   * extends internal font metrics object with a new object
+   * each key in the new object represents a font name
+  */
+  __setFontMetrics: Ku,
+  /**
+   * adds a new symbol to builtin symbols table
+   */
+  __defineSymbol: u,
+  /**
+   * adds a new function to builtin function list,
+   * which directly produce parse tree elements
+   * and have their own html/mathml builders
+   */
+  __defineFunction: U,
+  /**
+   * adds a new macro to builtin macro list
+   */
+  __defineMacro: p,
+  /**
+   * 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: ar,
+    Anchor: on,
+    SymbolNode: ft,
+    SvgNode: Jt,
+    PathNode: c0,
+    LineNode: qa
+  }
+}, yc = function(e, t, r) {
+  for (var n = r, i = 0, s = e.length; n < t.length; ) {
+    var l = t[n];
+    if (i <= 0 && t.slice(n, n + s) === e)
+      return n;
+    l === "\\" ? n++ : l === "{" ? i++ : l === "}" && i--, n++;
+  }
+  return -1;
+}, wc = function(e) {
+  return e.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
+}, xc = /^\\begin{/, kc = function(e, t) {
+  for (var r, n = [], i = new RegExp("(" + t.map((h) => wc(h.left)).join("|") + ")"); r = e.search(i), r !== -1; ) {
+    r > 0 && (n.push({
+      type: "text",
+      data: e.slice(0, r)
+    }), e = e.slice(r));
+    var s = t.findIndex((h) => e.startsWith(h.left));
+    if (r = yc(t[s].right, e, t[s].left.length), r === -1)
+      break;
+    var l = e.slice(0, r + t[s].right.length), o = xc.test(l) ? l : e.slice(t[s].left.length, r);
+    n.push({
+      type: "math",
+      data: o,
+      rawData: l,
+      display: t[s].display
+    }), e = e.slice(r + t[s].right.length);
+  }
+  return e !== "" && n.push({
+    type: "text",
+    data: e
+  }), n;
+}, Dc = function(e, t) {
+  var r = kc(e, t.delimiters);
+  if (r.length === 1 && r[0].type === "text")
+    return null;
+  for (var n = document.createDocumentFragment(), i = 0; i < r.length; i++)
+    if (r[i].type === "text")
+      n.appendChild(document.createTextNode(r[i].data));
+    else {
+      var s = document.createElement("span"), l = r[i].data;
+      t.displayMode = r[i].display;
+      try {
+        t.preProcess && (l = t.preProcess(l)), Hi.render(l, s, t);
+      } catch (o) {
+        if (!(o instanceof Hi.ParseError))
+          throw o;
+        t.errorCallback("KaTeX auto-render: Failed to parse `" + r[i].data + "` with ", o), n.appendChild(document.createTextNode(r[i].rawData));
+        continue;
+      }
+      n.appendChild(s);
+    }
+  return n;
+}, Ac = function a(e, t) {
+  for (var r = 0; r < e.childNodes.length; r++) {
+    var n = e.childNodes[r];
+    if (n.nodeType === 3) {
+      for (var i = n.textContent, s = n.nextSibling, l = 0; s && s.nodeType === Node.TEXT_NODE; )
+        i += s.textContent, s = s.nextSibling, l++;
+      var o = Dc(i, t);
+      if (o) {
+        for (var h = 0; h < l; h++)
+          n.nextSibling.remove();
+        r += o.childNodes.length - 1, e.replaceChild(o, n);
+      } else
+        r += l;
+    } else n.nodeType === 1 && function() {
+      var m = " " + n.className + " ", d = t.ignoredTags.indexOf(n.nodeName.toLowerCase()) === -1 && t.ignoredClasses.every((v) => m.indexOf(" " + v + " ") === -1);
+      d && a(n, t);
+    }();
+  }
+}, _c = function(e, t) {
+  if (!e)
+    throw new Error("No element provided to render");
+  var r = {};
+  for (var n in t)
+    t.hasOwnProperty(n) && (r[n] = t[n]);
+  r.delimiters = r.delimiters || [
+    {
+      left: "$$",
+      right: "$$",
+      display: !0
+    },
+    {
+      left: "\\(",
+      right: "\\)",
+      display: !1
+    },
+    // LaTeX uses $…$, but it ruins the display of normal `$` in text:
+    // {left: "$", right: "$", display: false},
+    // $ must come after $$
+    // Render AMS environments even if outside $$…$$ delimiters.
+    {
+      left: "\\begin{equation}",
+      right: "\\end{equation}",
+      display: !0
+    },
+    {
+      left: "\\begin{align}",
+      right: "\\end{align}",
+      display: !0
+    },
+    {
+      left: "\\begin{alignat}",
+      right: "\\end{alignat}",
+      display: !0
+    },
+    {
+      left: "\\begin{gather}",
+      right: "\\end{gather}",
+      display: !0
+    },
+    {
+      left: "\\begin{CD}",
+      right: "\\end{CD}",
+      display: !0
+    },
+    {
+      left: "\\[",
+      right: "\\]",
+      display: !0
+    }
+  ], r.ignoredTags = r.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code", "option"], r.ignoredClasses = r.ignoredClasses || [], r.errorCallback = r.errorCallback || console.error, r.macros = r.macros || {}, Ac(e, r);
+};
+function _n() {
+  return {
+    async: !1,
+    breaks: !1,
+    extensions: null,
+    gfm: !0,
+    hooks: null,
+    pedantic: !1,
+    renderer: null,
+    silent: !1,
+    tokenizer: null,
+    walkTokens: null
+  };
+}
+let x0 = _n();
+function Kl(a) {
+  x0 = a;
+}
+const $l = /[&<>"']/, Sc = new RegExp($l.source, "g"), Ql = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, Ec = new RegExp(Ql.source, "g"), Fc = {
+  "&": "&amp;",
+  "<": "&lt;",
+  ">": "&gt;",
+  '"': "&quot;",
+  "'": "&#39;"
+}, Ui = (a) => Fc[a];
+function tt(a, e) {
+  if (e) {
+    if ($l.test(a))
+      return a.replace(Sc, Ui);
+  } else if (Ql.test(a))
+    return a.replace(Ec, Ui);
+  return a;
+}
+const Tc = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
+function Cc(a) {
+  return a.replace(Tc, (e, t) => (t = t.toLowerCase(), t === "colon" ? ":" : t.charAt(0) === "#" ? t.charAt(1) === "x" ? String.fromCharCode(parseInt(t.substring(2), 16)) : String.fromCharCode(+t.substring(1)) : ""));
+}
+const Mc = /(^|[^\[])\^/g;
+function ce(a, e) {
+  let t = typeof a == "string" ? a : a.source;
+  e = e || "";
+  const r = {
+    replace: (n, i) => {
+      let s = typeof i == "string" ? i : i.source;
+      return s = s.replace(Mc, "$1"), t = t.replace(n, s), r;
+    },
+    getRegex: () => new RegExp(t, e)
+  };
+  return r;
+}
+function Gi(a) {
+  try {
+    a = encodeURI(a).replace(/%25/g, "%");
+  } catch {
+    return null;
+  }
+  return a;
+}
+const K0 = { exec: () => null };
+function Vi(a, e) {
+  const t = a.replace(/\|/g, (i, s, l) => {
+    let o = !1, h = s;
+    for (; --h >= 0 && l[h] === "\\"; )
+      o = !o;
+    return o ? "|" : " |";
+  }), r = t.split(/ \|/);
+  let n = 0;
+  if (r[0].trim() || r.shift(), r.length > 0 && !r[r.length - 1].trim() && r.pop(), e)
+    if (r.length > e)
+      r.splice(e);
+    else
+      for (; r.length < e; )
+        r.push("");
+  for (; n < r.length; n++)
+    r[n] = r[n].trim().replace(/\\\|/g, "|");
+  return r;
+}
+function kr(a, e, t) {
+  const r = a.length;
+  if (r === 0)
+    return "";
+  let n = 0;
+  for (; n < r; ) {
+    const i = a.charAt(r - n - 1);
+    if (i === e && !t)
+      n++;
+    else if (i !== e && t)
+      n++;
+    else
+      break;
+  }
+  return a.slice(0, r - n);
+}
+function zc(a, e) {
+  if (a.indexOf(e[1]) === -1)
+    return -1;
+  let t = 0;
+  for (let r = 0; r < a.length; r++)
+    if (a[r] === "\\")
+      r++;
+    else if (a[r] === e[0])
+      t++;
+    else if (a[r] === e[1] && (t--, t < 0))
+      return r;
+  return -1;
+}
+function Wi(a, e, t, r) {
+  const n = e.href, i = e.title ? tt(e.title) : null, s = a[1].replace(/\\([\[\]])/g, "$1");
+  if (a[0].charAt(0) !== "!") {
+    r.state.inLink = !0;
+    const l = {
+      type: "link",
+      raw: t,
+      href: n,
+      title: i,
+      text: s,
+      tokens: r.inlineTokens(s)
+    };
+    return r.state.inLink = !1, l;
+  }
+  return {
+    type: "image",
+    raw: t,
+    href: n,
+    title: i,
+    text: tt(s)
+  };
+}
+function Bc(a, e) {
+  const t = a.match(/^(\s+)(?:```)/);
+  if (t === null)
+    return e;
+  const r = t[1];
+  return e.split(`
+`).map((n) => {
+    const i = n.match(/^\s+/);
+    if (i === null)
+      return n;
+    const [s] = i;
+    return s.length >= r.length ? n.slice(r.length) : n;
+  }).join(`
+`);
+}
+class Wr {
+  options;
+  rules;
+  // set by the lexer
+  lexer;
+  // set by the lexer
+  constructor(e) {
+    this.options = e || x0;
+  }
+  space(e) {
+    const t = this.rules.block.newline.exec(e);
+    if (t && t[0].length > 0)
+      return {
+        type: "space",
+        raw: t[0]
+      };
+  }
+  code(e) {
+    const t = this.rules.block.code.exec(e);
+    if (t) {
+      const r = t[0].replace(/^ {1,4}/gm, "");
+      return {
+        type: "code",
+        raw: t[0],
+        codeBlockStyle: "indented",
+        text: this.options.pedantic ? r : kr(r, `
+`)
+      };
+    }
+  }
+  fences(e) {
+    const t = this.rules.block.fences.exec(e);
+    if (t) {
+      const r = t[0], n = Bc(r, t[3] || "");
+      return {
+        type: "code",
+        raw: r,
+        lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2],
+        text: n
+      };
+    }
+  }
+  heading(e) {
+    const t = this.rules.block.heading.exec(e);
+    if (t) {
+      let r = t[2].trim();
+      if (/#$/.test(r)) {
+        const n = kr(r, "#");
+        (this.options.pedantic || !n || / $/.test(n)) && (r = n.trim());
+      }
+      return {
+        type: "heading",
+        raw: t[0],
+        depth: t[1].length,
+        text: r,
+        tokens: this.lexer.inline(r)
+      };
+    }
+  }
+  hr(e) {
+    const t = this.rules.block.hr.exec(e);
+    if (t)
+      return {
+        type: "hr",
+        raw: t[0]
+      };
+  }
+  blockquote(e) {
+    const t = this.rules.block.blockquote.exec(e);
+    if (t) {
+      let r = t[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g, `
+    $1`);
+      r = kr(r.replace(/^ *>[ \t]?/gm, ""), `
+`);
+      const n = this.lexer.state.top;
+      this.lexer.state.top = !0;
+      const i = this.lexer.blockTokens(r);
+      return this.lexer.state.top = n, {
+        type: "blockquote",
+        raw: t[0],
+        tokens: i,
+        text: r
+      };
+    }
+  }
+  list(e) {
+    let t = this.rules.block.list.exec(e);
+    if (t) {
+      let r = t[1].trim();
+      const n = r.length > 1, i = {
+        type: "list",
+        raw: "",
+        ordered: n,
+        start: n ? +r.slice(0, -1) : "",
+        loose: !1,
+        items: []
+      };
+      r = n ? `\\d{1,9}\\${r.slice(-1)}` : `\\${r}`, this.options.pedantic && (r = n ? r : "[*+-]");
+      const s = new RegExp(`^( {0,3}${r})((?:[	 ][^\\n]*)?(?:\\n|$))`);
+      let l = "", o = "", h = !1;
+      for (; e; ) {
+        let m = !1;
+        if (!(t = s.exec(e)) || this.rules.block.hr.test(e))
+          break;
+        l = t[0], e = e.substring(l.length);
+        let d = t[2].split(`
+`, 1)[0].replace(/^\t+/, (T) => " ".repeat(3 * T.length)), v = e.split(`
+`, 1)[0], g = 0;
+        this.options.pedantic ? (g = 2, o = d.trimStart()) : (g = t[2].search(/[^ ]/), g = g > 4 ? 1 : g, o = d.slice(g), g += t[1].length);
+        let D = !1;
+        if (!d && /^ *$/.test(v) && (l += v + `
+`, e = e.substring(v.length + 1), m = !0), !m) {
+          const T = new RegExp(`^ {0,${Math.min(3, g - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`), x = new RegExp(`^ {0,${Math.min(3, g - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), b = new RegExp(`^ {0,${Math.min(3, g - 1)}}(?:\`\`\`|~~~)`), A = new RegExp(`^ {0,${Math.min(3, g - 1)}}#`);
+          for (; e; ) {
+            const C = e.split(`
+`, 1)[0];
+            if (v = C, this.options.pedantic && (v = v.replace(/^ {1,4}(?=( {4})*[^ ])/g, "  ")), b.test(v) || A.test(v) || T.test(v) || x.test(e))
+              break;
+            if (v.search(/[^ ]/) >= g || !v.trim())
+              o += `
+` + v.slice(g);
+            else {
+              if (D || d.search(/[^ ]/) >= 4 || b.test(d) || A.test(d) || x.test(d))
+                break;
+              o += `
+` + v;
+            }
+            !D && !v.trim() && (D = !0), l += C + `
+`, e = e.substring(C.length + 1), d = v.slice(g);
+          }
+        }
+        i.loose || (h ? i.loose = !0 : /\n *\n *$/.test(l) && (h = !0));
+        let S = null, F;
+        this.options.gfm && (S = /^\[[ xX]\] /.exec(o), S && (F = S[0] !== "[ ] ", o = o.replace(/^\[[ xX]\] +/, ""))), i.items.push({
+          type: "list_item",
+          raw: l,
+          task: !!S,
+          checked: F,
+          loose: !1,
+          text: o,
+          tokens: []
+        }), i.raw += l;
+      }
+      i.items[i.items.length - 1].raw = l.trimEnd(), i.items[i.items.length - 1].text = o.trimEnd(), i.raw = i.raw.trimEnd();
+      for (let m = 0; m < i.items.length; m++)
+        if (this.lexer.state.top = !1, i.items[m].tokens = this.lexer.blockTokens(i.items[m].text, []), !i.loose) {
+          const d = i.items[m].tokens.filter((g) => g.type === "space"), v = d.length > 0 && d.some((g) => /\n.*\n/.test(g.raw));
+          i.loose = v;
+        }
+      if (i.loose)
+        for (let m = 0; m < i.items.length; m++)
+          i.items[m].loose = !0;
+      return i;
+    }
+  }
+  html(e) {
+    const t = this.rules.block.html.exec(e);
+    if (t)
+      return {
+        type: "html",
+        block: !0,
+        raw: t[0],
+        pre: t[1] === "pre" || t[1] === "script" || t[1] === "style",
+        text: t[0]
+      };
+  }
+  def(e) {
+    const t = this.rules.block.def.exec(e);
+    if (t) {
+      const r = t[1].toLowerCase().replace(/\s+/g, " "), n = t[2] ? t[2].replace(/^<(.*)>$/, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", i = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3];
+      return {
+        type: "def",
+        tag: r,
+        raw: t[0],
+        href: n,
+        title: i
+      };
+    }
+  }
+  table(e) {
+    const t = this.rules.block.table.exec(e);
+    if (!t || !/[:|]/.test(t[2]))
+      return;
+    const r = Vi(t[1]), n = t[2].replace(/^\||\| *$/g, "").split("|"), i = t[3] && t[3].trim() ? t[3].replace(/\n[ \t]*$/, "").split(`
+`) : [], s = {
+      type: "table",
+      raw: t[0],
+      header: [],
+      align: [],
+      rows: []
+    };
+    if (r.length === n.length) {
+      for (const l of n)
+        /^ *-+: *$/.test(l) ? s.align.push("right") : /^ *:-+: *$/.test(l) ? s.align.push("center") : /^ *:-+ *$/.test(l) ? s.align.push("left") : s.align.push(null);
+      for (const l of r)
+        s.header.push({
+          text: l,
+          tokens: this.lexer.inline(l)
+        });
+      for (const l of i)
+        s.rows.push(Vi(l, s.header.length).map((o) => ({
+          text: o,
+          tokens: this.lexer.inline(o)
+        })));
+      return s;
+    }
+  }
+  lheading(e) {
+    const t = this.rules.block.lheading.exec(e);
+    if (t)
+      return {
+        type: "heading",
+        raw: t[0],
+        depth: t[2].charAt(0) === "=" ? 1 : 2,
+        text: t[1],
+        tokens: this.lexer.inline(t[1])
+      };
+  }
+  paragraph(e) {
+    const t = this.rules.block.paragraph.exec(e);
+    if (t) {
+      const r = t[1].charAt(t[1].length - 1) === `
+` ? t[1].slice(0, -1) : t[1];
+      return {
+        type: "paragraph",
+        raw: t[0],
+        text: r,
+        tokens: this.lexer.inline(r)
+      };
+    }
+  }
+  text(e) {
+    const t = this.rules.block.text.exec(e);
+    if (t)
+      return {
+        type: "text",
+        raw: t[0],
+        text: t[0],
+        tokens: this.lexer.inline(t[0])
+      };
+  }
+  escape(e) {
+    const t = this.rules.inline.escape.exec(e);
+    if (t)
+      return {
+        type: "escape",
+        raw: t[0],
+        text: tt(t[1])
+      };
+  }
+  tag(e) {
+    const t = this.rules.inline.tag.exec(e);
+    if (t)
+      return !this.lexer.state.inLink && /^<a /i.test(t[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && /^<\/a>/i.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0]) && (this.lexer.state.inRawBlock = !1), {
+        type: "html",
+        raw: t[0],
+        inLink: this.lexer.state.inLink,
+        inRawBlock: this.lexer.state.inRawBlock,
+        block: !1,
+        text: t[0]
+      };
+  }
+  link(e) {
+    const t = this.rules.inline.link.exec(e);
+    if (t) {
+      const r = t[2].trim();
+      if (!this.options.pedantic && /^</.test(r)) {
+        if (!/>$/.test(r))
+          return;
+        const s = kr(r.slice(0, -1), "\\");
+        if ((r.length - s.length) % 2 === 0)
+          return;
+      } else {
+        const s = zc(t[2], "()");
+        if (s > -1) {
+          const o = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + s;
+          t[2] = t[2].substring(0, s), t[0] = t[0].substring(0, o).trim(), t[3] = "";
+        }
+      }
+      let n = t[2], i = "";
+      if (this.options.pedantic) {
+        const s = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);
+        s && (n = s[1], i = s[3]);
+      } else
+        i = t[3] ? t[3].slice(1, -1) : "";
+      return n = n.trim(), /^</.test(n) && (this.options.pedantic && !/>$/.test(r) ? n = n.slice(1) : n = n.slice(1, -1)), Wi(t, {
+        href: n && n.replace(this.rules.inline.anyPunctuation, "$1"),
+        title: i && i.replace(this.rules.inline.anyPunctuation, "$1")
+      }, t[0], this.lexer);
+    }
+  }
+  reflink(e, t) {
+    let r;
+    if ((r = this.rules.inline.reflink.exec(e)) || (r = this.rules.inline.nolink.exec(e))) {
+      const n = (r[2] || r[1]).replace(/\s+/g, " "), i = t[n.toLowerCase()];
+      if (!i) {
+        const s = r[0].charAt(0);
+        return {
+          type: "text",
+          raw: s,
+          text: s
+        };
+      }
+      return Wi(r, i, r[0], this.lexer);
+    }
+  }
+  emStrong(e, t, r = "") {
+    let n = this.rules.inline.emStrongLDelim.exec(e);
+    if (!n || n[3] && r.match(/[\p{L}\p{N}]/u))
+      return;
+    if (!(n[1] || n[2] || "") || !r || this.rules.inline.punctuation.exec(r)) {
+      const s = [...n[0]].length - 1;
+      let l, o, h = s, m = 0;
+      const d = n[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
+      for (d.lastIndex = 0, t = t.slice(-1 * e.length + s); (n = d.exec(t)) != null; ) {
+        if (l = n[1] || n[2] || n[3] || n[4] || n[5] || n[6], !l)
+          continue;
+        if (o = [...l].length, n[3] || n[4]) {
+          h += o;
+          continue;
+        } else if ((n[5] || n[6]) && s % 3 && !((s + o) % 3)) {
+          m += o;
+          continue;
+        }
+        if (h -= o, h > 0)
+          continue;
+        o = Math.min(o, o + h + m);
+        const v = [...n[0]][0].length, g = e.slice(0, s + n.index + v + o);
+        if (Math.min(s, o) % 2) {
+          const S = g.slice(1, -1);
+          return {
+            type: "em",
+            raw: g,
+            text: S,
+            tokens: this.lexer.inlineTokens(S)
+          };
+        }
+        const D = g.slice(2, -2);
+        return {
+          type: "strong",
+          raw: g,
+          text: D,
+          tokens: this.lexer.inlineTokens(D)
+        };
+      }
+    }
+  }
+  codespan(e) {
+    const t = this.rules.inline.code.exec(e);
+    if (t) {
+      let r = t[2].replace(/\n/g, " ");
+      const n = /[^ ]/.test(r), i = /^ /.test(r) && / $/.test(r);
+      return n && i && (r = r.substring(1, r.length - 1)), r = tt(r, !0), {
+        type: "codespan",
+        raw: t[0],
+        text: r
+      };
+    }
+  }
+  br(e) {
+    const t = this.rules.inline.br.exec(e);
+    if (t)
+      return {
+        type: "br",
+        raw: t[0]
+      };
+  }
+  del(e) {
+    const t = this.rules.inline.del.exec(e);
+    if (t)
+      return {
+        type: "del",
+        raw: t[0],
+        text: t[2],
+        tokens: this.lexer.inlineTokens(t[2])
+      };
+  }
+  autolink(e) {
+    const t = this.rules.inline.autolink.exec(e);
+    if (t) {
+      let r, n;
+      return t[2] === "@" ? (r = tt(t[1]), n = "mailto:" + r) : (r = tt(t[1]), n = r), {
+        type: "link",
+        raw: t[0],
+        text: r,
+        href: n,
+        tokens: [
+          {
+            type: "text",
+            raw: r,
+            text: r
+          }
+        ]
+      };
+    }
+  }
+  url(e) {
+    let t;
+    if (t = this.rules.inline.url.exec(e)) {
+      let r, n;
+      if (t[2] === "@")
+        r = tt(t[0]), n = "mailto:" + r;
+      else {
+        let i;
+        do
+          i = t[0], t[0] = this.rules.inline._backpedal.exec(t[0])?.[0] ?? "";
+        while (i !== t[0]);
+        r = tt(t[0]), t[1] === "www." ? n = "http://" + t[0] : n = t[0];
+      }
+      return {
+        type: "link",
+        raw: t[0],
+        text: r,
+        href: n,
+        tokens: [
+          {
+            type: "text",
+            raw: r,
+            text: r
+          }
+        ]
+      };
+    }
+  }
+  inlineText(e) {
+    const t = this.rules.inline.text.exec(e);
+    if (t) {
+      let r;
+      return this.lexer.state.inRawBlock ? r = t[0] : r = tt(t[0]), {
+        type: "text",
+        raw: t[0],
+        text: r
+      };
+    }
+  }
+}
+const Rc = /^(?: *(?:\n|$))+/, Nc = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/, Lc = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, ir = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, Ic = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, Jl = /(?:[*+-]|\d{1,9}[.)])/, eo = ce(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g, Jl).replace(/blockCode/g, / {4}/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).getRegex(), Sn = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Oc = /^[^\n]+/, En = /(?!\s*\])(?:\\.|[^\[\]\\])+/, qc = ce(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label", En).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), Pc = ce(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, Jl).getRegex(), ra = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", Fn = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, Hc = ce("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))", "i").replace("comment", Fn).replace("tag", ra).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), to = ce(Sn).replace("hr", ir).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", ra).getRegex(), Uc = ce(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", to).getRegex(), Tn = {
+  blockquote: Uc,
+  code: Nc,
+  def: qc,
+  fences: Lc,
+  heading: Ic,
+  hr: ir,
+  html: Hc,
+  lheading: eo,
+  list: Pc,
+  newline: Rc,
+  paragraph: to,
+  table: K0,
+  text: Oc
+}, Xi = ce("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", ir).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", " {4}[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", ra).getRegex(), Gc = {
+  ...Tn,
+  table: Xi,
+  paragraph: ce(Sn).replace("hr", ir).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", Xi).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", ra).getRegex()
+}, Vc = {
+  ...Tn,
+  html: ce(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", Fn).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
+  def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
+  heading: /^(#{1,6})(.*)(?:\n+|$)/,
+  fences: K0,
+  // fences not supported
+  lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
+  paragraph: ce(Sn).replace("hr", ir).replace("heading", ` *#{1,6} *[^
+]`).replace("lheading", eo).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
+}, ro = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Wc = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, ao = /^( {2,}|\\)\n(?!\s*$)/, Xc = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, sr = "\\p{P}\\p{S}", Yc = ce(/^((?![*_])[\spunctuation])/, "u").replace(/punctuation/g, sr).getRegex(), jc = /\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g, Zc = ce(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/, "u").replace(/punct/g, sr).getRegex(), Kc = ce("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])", "gu").replace(/punct/g, sr).getRegex(), $c = ce("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])", "gu").replace(/punct/g, sr).getRegex(), Qc = ce(/\\([punct])/, "gu").replace(/punct/g, sr).getRegex(), Jc = ce(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[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])?)+(?![-_])/).getRegex(), e4 = ce(Fn).replace("(?:-->|$)", "-->").getRegex(), t4 = ce("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", e4).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), Xr = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/, r4 = ce(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label", Xr).replace("href", /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), no = ce(/^!?\[(label)\]\[(ref)\]/).replace("label", Xr).replace("ref", En).getRegex(), io = ce(/^!?\[(ref)\](?:\[\])?/).replace("ref", En).getRegex(), a4 = ce("reflink|nolink(?!\\()", "g").replace("reflink", no).replace("nolink", io).getRegex(), Cn = {
+  _backpedal: K0,
+  // only used for GFM url
+  anyPunctuation: Qc,
+  autolink: Jc,
+  blockSkip: jc,
+  br: ao,
+  code: Wc,
+  del: K0,
+  emStrongLDelim: Zc,
+  emStrongRDelimAst: Kc,
+  emStrongRDelimUnd: $c,
+  escape: ro,
+  link: r4,
+  nolink: io,
+  punctuation: Yc,
+  reflink: no,
+  reflinkSearch: a4,
+  tag: t4,
+  text: Xc,
+  url: K0
+}, n4 = {
+  ...Cn,
+  link: ce(/^!?\[(label)\]\((.*?)\)/).replace("label", Xr).getRegex(),
+  reflink: ce(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Xr).getRegex()
+}, Xa = {
+  ...Cn,
+  escape: ce(ro).replace("])", "~|])").getRegex(),
+  url: ce(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),
+  _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
+  del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
+  text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
+}, i4 = {
+  ...Xa,
+  br: ce(ao).replace("{2,}", "*").getRegex(),
+  text: ce(Xa.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
+}, Dr = {
+  normal: Tn,
+  gfm: Gc,
+  pedantic: Vc
+}, P0 = {
+  normal: Cn,
+  gfm: Xa,
+  breaks: i4,
+  pedantic: n4
+};
+class Nt {
+  tokens;
+  options;
+  state;
+  tokenizer;
+  inlineQueue;
+  constructor(e) {
+    this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = e || x0, this.options.tokenizer = this.options.tokenizer || new Wr(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
+      inLink: !1,
+      inRawBlock: !1,
+      top: !0
+    };
+    const t = {
+      block: Dr.normal,
+      inline: P0.normal
+    };
+    this.options.pedantic ? (t.block = Dr.pedantic, t.inline = P0.pedantic) : this.options.gfm && (t.block = Dr.gfm, this.options.breaks ? t.inline = P0.breaks : t.inline = P0.gfm), this.tokenizer.rules = t;
+  }
+  /**
+   * Expose Rules
+   */
+  static get rules() {
+    return {
+      block: Dr,
+      inline: P0
+    };
+  }
+  /**
+   * Static Lex Method
+   */
+  static lex(e, t) {
+    return new Nt(t).lex(e);
+  }
+  /**
+   * Static Lex Inline Method
+   */
+  static lexInline(e, t) {
+    return new Nt(t).inlineTokens(e);
+  }
+  /**
+   * Preprocessing
+   */
+  lex(e) {
+    e = e.replace(/\r\n|\r/g, `
+`), this.blockTokens(e, this.tokens);
+    for (let t = 0; t < this.inlineQueue.length; t++) {
+      const r = this.inlineQueue[t];
+      this.inlineTokens(r.src, r.tokens);
+    }
+    return this.inlineQueue = [], this.tokens;
+  }
+  blockTokens(e, t = []) {
+    this.options.pedantic ? e = e.replace(/\t/g, "    ").replace(/^ +$/gm, "") : e = e.replace(/^( *)(\t+)/gm, (l, o, h) => o + "    ".repeat(h.length));
+    let r, n, i, s;
+    for (; e; )
+      if (!(this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((l) => (r = l.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1))) {
+        if (r = this.tokenizer.space(e)) {
+          e = e.substring(r.raw.length), r.raw.length === 1 && t.length > 0 ? t[t.length - 1].raw += `
+` : t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.code(e)) {
+          e = e.substring(r.raw.length), n = t[t.length - 1], n && (n.type === "paragraph" || n.type === "text") ? (n.raw += `
+` + r.raw, n.text += `
+` + r.text, this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.fences(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.heading(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.hr(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.blockquote(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.list(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.html(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.def(e)) {
+          e = e.substring(r.raw.length), n = t[t.length - 1], n && (n.type === "paragraph" || n.type === "text") ? (n.raw += `
+` + r.raw, n.text += `
+` + r.raw, this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : this.tokens.links[r.tag] || (this.tokens.links[r.tag] = {
+            href: r.href,
+            title: r.title
+          });
+          continue;
+        }
+        if (r = this.tokenizer.table(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.lheading(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (i = e, this.options.extensions && this.options.extensions.startBlock) {
+          let l = 1 / 0;
+          const o = e.slice(1);
+          let h;
+          this.options.extensions.startBlock.forEach((m) => {
+            h = m.call({ lexer: this }, o), typeof h == "number" && h >= 0 && (l = Math.min(l, h));
+          }), l < 1 / 0 && l >= 0 && (i = e.substring(0, l + 1));
+        }
+        if (this.state.top && (r = this.tokenizer.paragraph(i))) {
+          n = t[t.length - 1], s && n.type === "paragraph" ? (n.raw += `
+` + r.raw, n.text += `
+` + r.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(r), s = i.length !== e.length, e = e.substring(r.raw.length);
+          continue;
+        }
+        if (r = this.tokenizer.text(e)) {
+          e = e.substring(r.raw.length), n = t[t.length - 1], n && n.type === "text" ? (n.raw += `
+` + r.raw, n.text += `
+` + r.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(r);
+          continue;
+        }
+        if (e) {
+          const l = "Infinite loop on byte: " + e.charCodeAt(0);
+          if (this.options.silent) {
+            console.error(l);
+            break;
+          } else
+            throw new Error(l);
+        }
+      }
+    return this.state.top = !0, t;
+  }
+  inline(e, t = []) {
+    return this.inlineQueue.push({ src: e, tokens: t }), t;
+  }
+  /**
+   * Lexing/Compiling
+   */
+  inlineTokens(e, t = []) {
+    let r, n, i, s = e, l, o, h;
+    if (this.tokens.links) {
+      const m = Object.keys(this.tokens.links);
+      if (m.length > 0)
+        for (; (l = this.tokenizer.rules.inline.reflinkSearch.exec(s)) != null; )
+          m.includes(l[0].slice(l[0].lastIndexOf("[") + 1, -1)) && (s = s.slice(0, l.index) + "[" + "a".repeat(l[0].length - 2) + "]" + s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));
+    }
+    for (; (l = this.tokenizer.rules.inline.blockSkip.exec(s)) != null; )
+      s = s.slice(0, l.index) + "[" + "a".repeat(l[0].length - 2) + "]" + s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
+    for (; (l = this.tokenizer.rules.inline.anyPunctuation.exec(s)) != null; )
+      s = s.slice(0, l.index) + "++" + s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
+    for (; e; )
+      if (o || (h = ""), o = !1, !(this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some((m) => (r = m.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1))) {
+        if (r = this.tokenizer.escape(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.tag(e)) {
+          e = e.substring(r.raw.length), n = t[t.length - 1], n && r.type === "text" && n.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.link(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.reflink(e, this.tokens.links)) {
+          e = e.substring(r.raw.length), n = t[t.length - 1], n && r.type === "text" && n.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.emStrong(e, s, h)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.codespan(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.br(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.del(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (r = this.tokenizer.autolink(e)) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (!this.state.inLink && (r = this.tokenizer.url(e))) {
+          e = e.substring(r.raw.length), t.push(r);
+          continue;
+        }
+        if (i = e, this.options.extensions && this.options.extensions.startInline) {
+          let m = 1 / 0;
+          const d = e.slice(1);
+          let v;
+          this.options.extensions.startInline.forEach((g) => {
+            v = g.call({ lexer: this }, d), typeof v == "number" && v >= 0 && (m = Math.min(m, v));
+          }), m < 1 / 0 && m >= 0 && (i = e.substring(0, m + 1));
+        }
+        if (r = this.tokenizer.inlineText(i)) {
+          e = e.substring(r.raw.length), r.raw.slice(-1) !== "_" && (h = r.raw.slice(-1)), o = !0, n = t[t.length - 1], n && n.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r);
+          continue;
+        }
+        if (e) {
+          const m = "Infinite loop on byte: " + e.charCodeAt(0);
+          if (this.options.silent) {
+            console.error(m);
+            break;
+          } else
+            throw new Error(m);
+        }
+      }
+    return t;
+  }
+}
+class Yr {
+  options;
+  constructor(e) {
+    this.options = e || x0;
+  }
+  code(e, t, r) {
+    const n = (t || "").match(/^\S*/)?.[0];
+    return e = e.replace(/\n$/, "") + `
+`, n ? '<pre><code class="language-' + tt(n) + '">' + (r ? e : tt(e, !0)) + `</code></pre>
+` : "<pre><code>" + (r ? e : tt(e, !0)) + `</code></pre>
+`;
+  }
+  blockquote(e) {
+    return `<blockquote>
+${e}</blockquote>
+`;
+  }
+  html(e, t) {
+    return e;
+  }
+  heading(e, t, r) {
+    return `<h${t}>${e}</h${t}>
+`;
+  }
+  hr() {
+    return `<hr>
+`;
+  }
+  list(e, t, r) {
+    const n = t ? "ol" : "ul", i = t && r !== 1 ? ' start="' + r + '"' : "";
+    return "<" + n + i + `>
+` + e + "</" + n + `>
+`;
+  }
+  listitem(e, t, r) {
+    return `<li>${e}</li>
+`;
+  }
+  checkbox(e) {
+    return "<input " + (e ? 'checked="" ' : "") + 'disabled="" type="checkbox">';
+  }
+  paragraph(e) {
+    return `<p>${e}</p>
+`;
+  }
+  table(e, t) {
+    return t && (t = `<tbody>${t}</tbody>`), `<table>
+<thead>
+` + e + `</thead>
+` + t + `</table>
+`;
+  }
+  tablerow(e) {
+    return `<tr>
+${e}</tr>
+`;
+  }
+  tablecell(e, t) {
+    const r = t.header ? "th" : "td";
+    return (t.align ? `<${r} align="${t.align}">` : `<${r}>`) + e + `</${r}>
+`;
+  }
+  /**
+   * span level renderer
+   */
+  strong(e) {
+    return `<strong>${e}</strong>`;
+  }
+  em(e) {
+    return `<em>${e}</em>`;
+  }
+  codespan(e) {
+    return `<code>${e}</code>`;
+  }
+  br() {
+    return "<br>";
+  }
+  del(e) {
+    return `<del>${e}</del>`;
+  }
+  link(e, t, r) {
+    const n = Gi(e);
+    if (n === null)
+      return r;
+    e = n;
+    let i = '<a href="' + e + '"';
+    return t && (i += ' title="' + t + '"'), i += ">" + r + "</a>", i;
+  }
+  image(e, t, r) {
+    const n = Gi(e);
+    if (n === null)
+      return r;
+    e = n;
+    let i = `<img src="${e}" alt="${r}"`;
+    return t && (i += ` title="${t}"`), i += ">", i;
+  }
+  text(e) {
+    return e;
+  }
+}
+class Mn {
+  // no need for block level renderers
+  strong(e) {
+    return e;
+  }
+  em(e) {
+    return e;
+  }
+  codespan(e) {
+    return e;
+  }
+  del(e) {
+    return e;
+  }
+  html(e) {
+    return e;
+  }
+  text(e) {
+    return e;
+  }
+  link(e, t, r) {
+    return "" + r;
+  }
+  image(e, t, r) {
+    return "" + r;
+  }
+  br() {
+    return "";
+  }
+}
+class Lt {
+  options;
+  renderer;
+  textRenderer;
+  constructor(e) {
+    this.options = e || x0, this.options.renderer = this.options.renderer || new Yr(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.textRenderer = new Mn();
+  }
+  /**
+   * Static Parse Method
+   */
+  static parse(e, t) {
+    return new Lt(t).parse(e);
+  }
+  /**
+   * Static Parse Inline Method
+   */
+  static parseInline(e, t) {
+    return new Lt(t).parseInline(e);
+  }
+  /**
+   * Parse Loop
+   */
+  parse(e, t = !0) {
+    let r = "";
+    for (let n = 0; n < e.length; n++) {
+      const i = e[n];
+      if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[i.type]) {
+        const s = i, l = this.options.extensions.renderers[s.type].call({ parser: this }, s);
+        if (l !== !1 || !["space", "hr", "heading", "code", "table", "blockquote", "list", "html", "paragraph", "text"].includes(s.type)) {
+          r += l || "";
+          continue;
+        }
+      }
+      switch (i.type) {
+        case "space":
+          continue;
+        case "hr": {
+          r += this.renderer.hr();
+          continue;
+        }
+        case "heading": {
+          const s = i;
+          r += this.renderer.heading(this.parseInline(s.tokens), s.depth, Cc(this.parseInline(s.tokens, this.textRenderer)));
+          continue;
+        }
+        case "code": {
+          const s = i;
+          r += this.renderer.code(s.text, s.lang, !!s.escaped);
+          continue;
+        }
+        case "table": {
+          const s = i;
+          let l = "", o = "";
+          for (let m = 0; m < s.header.length; m++)
+            o += this.renderer.tablecell(this.parseInline(s.header[m].tokens), { header: !0, align: s.align[m] });
+          l += this.renderer.tablerow(o);
+          let h = "";
+          for (let m = 0; m < s.rows.length; m++) {
+            const d = s.rows[m];
+            o = "";
+            for (let v = 0; v < d.length; v++)
+              o += this.renderer.tablecell(this.parseInline(d[v].tokens), { header: !1, align: s.align[v] });
+            h += this.renderer.tablerow(o);
+          }
+          r += this.renderer.table(l, h);
+          continue;
+        }
+        case "blockquote": {
+          const s = i, l = this.parse(s.tokens);
+          r += this.renderer.blockquote(l);
+          continue;
+        }
+        case "list": {
+          const s = i, l = s.ordered, o = s.start, h = s.loose;
+          let m = "";
+          for (let d = 0; d < s.items.length; d++) {
+            const v = s.items[d], g = v.checked, D = v.task;
+            let S = "";
+            if (v.task) {
+              const F = this.renderer.checkbox(!!g);
+              h ? v.tokens.length > 0 && v.tokens[0].type === "paragraph" ? (v.tokens[0].text = F + " " + v.tokens[0].text, v.tokens[0].tokens && v.tokens[0].tokens.length > 0 && v.tokens[0].tokens[0].type === "text" && (v.tokens[0].tokens[0].text = F + " " + v.tokens[0].tokens[0].text)) : v.tokens.unshift({
+                type: "text",
+                text: F + " "
+              }) : S += F + " ";
+            }
+            S += this.parse(v.tokens, h), m += this.renderer.listitem(S, D, !!g);
+          }
+          r += this.renderer.list(m, l, o);
+          continue;
+        }
+        case "html": {
+          const s = i;
+          r += this.renderer.html(s.text, s.block);
+          continue;
+        }
+        case "paragraph": {
+          const s = i;
+          r += this.renderer.paragraph(this.parseInline(s.tokens));
+          continue;
+        }
+        case "text": {
+          let s = i, l = s.tokens ? this.parseInline(s.tokens) : s.text;
+          for (; n + 1 < e.length && e[n + 1].type === "text"; )
+            s = e[++n], l += `
+` + (s.tokens ? this.parseInline(s.tokens) : s.text);
+          r += t ? this.renderer.paragraph(l) : l;
+          continue;
+        }
+        default: {
+          const s = 'Token with "' + i.type + '" type was not found.';
+          if (this.options.silent)
+            return console.error(s), "";
+          throw new Error(s);
+        }
+      }
+    }
+    return r;
+  }
+  /**
+   * Parse Inline Tokens
+   */
+  parseInline(e, t) {
+    t = t || this.renderer;
+    let r = "";
+    for (let n = 0; n < e.length; n++) {
+      const i = e[n];
+      if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[i.type]) {
+        const s = this.options.extensions.renderers[i.type].call({ parser: this }, i);
+        if (s !== !1 || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(i.type)) {
+          r += s || "";
+          continue;
+        }
+      }
+      switch (i.type) {
+        case "escape": {
+          const s = i;
+          r += t.text(s.text);
+          break;
+        }
+        case "html": {
+          const s = i;
+          r += t.html(s.text);
+          break;
+        }
+        case "link": {
+          const s = i;
+          r += t.link(s.href, s.title, this.parseInline(s.tokens, t));
+          break;
+        }
+        case "image": {
+          const s = i;
+          r += t.image(s.href, s.title, s.text);
+          break;
+        }
+        case "strong": {
+          const s = i;
+          r += t.strong(this.parseInline(s.tokens, t));
+          break;
+        }
+        case "em": {
+          const s = i;
+          r += t.em(this.parseInline(s.tokens, t));
+          break;
+        }
+        case "codespan": {
+          const s = i;
+          r += t.codespan(s.text);
+          break;
+        }
+        case "br": {
+          r += t.br();
+          break;
+        }
+        case "del": {
+          const s = i;
+          r += t.del(this.parseInline(s.tokens, t));
+          break;
+        }
+        case "text": {
+          const s = i;
+          r += t.text(s.text);
+          break;
+        }
+        default: {
+          const s = 'Token with "' + i.type + '" type was not found.';
+          if (this.options.silent)
+            return console.error(s), "";
+          throw new Error(s);
+        }
+      }
+    }
+    return r;
+  }
+}
+class Rr {
+  options;
+  constructor(e) {
+    this.options = e || x0;
+  }
+  static passThroughHooks = /* @__PURE__ */ new Set([
+    "preprocess",
+    "postprocess",
+    "processAllTokens"
+  ]);
+  /**
+   * Process markdown before marked
+   */
+  preprocess(e) {
+    return e;
+  }
+  /**
+   * Process HTML after marked is finished
+   */
+  postprocess(e) {
+    return e;
+  }
+  /**
+   * Process all tokens before walk tokens
+   */
+  processAllTokens(e) {
+    return e;
+  }
+}
+class so {
+  defaults = _n();
+  options = this.setOptions;
+  parse = this.#e(Nt.lex, Lt.parse);
+  parseInline = this.#e(Nt.lexInline, Lt.parseInline);
+  Parser = Lt;
+  Renderer = Yr;
+  TextRenderer = Mn;
+  Lexer = Nt;
+  Tokenizer = Wr;
+  Hooks = Rr;
+  constructor(...e) {
+    this.use(...e);
+  }
+  /**
+   * Run callback for every token
+   */
+  walkTokens(e, t) {
+    let r = [];
+    for (const n of e)
+      switch (r = r.concat(t.call(this, n)), n.type) {
+        case "table": {
+          const i = n;
+          for (const s of i.header)
+            r = r.concat(this.walkTokens(s.tokens, t));
+          for (const s of i.rows)
+            for (const l of s)
+              r = r.concat(this.walkTokens(l.tokens, t));
+          break;
+        }
+        case "list": {
+          const i = n;
+          r = r.concat(this.walkTokens(i.items, t));
+          break;
+        }
+        default: {
+          const i = n;
+          this.defaults.extensions?.childTokens?.[i.type] ? this.defaults.extensions.childTokens[i.type].forEach((s) => {
+            const l = i[s].flat(1 / 0);
+            r = r.concat(this.walkTokens(l, t));
+          }) : i.tokens && (r = r.concat(this.walkTokens(i.tokens, t)));
+        }
+      }
+    return r;
+  }
+  use(...e) {
+    const t = this.defaults.extensions || { renderers: {}, childTokens: {} };
+    return e.forEach((r) => {
+      const n = { ...r };
+      if (n.async = this.defaults.async || n.async || !1, r.extensions && (r.extensions.forEach((i) => {
+        if (!i.name)
+          throw new Error("extension name required");
+        if ("renderer" in i) {
+          const s = t.renderers[i.name];
+          s ? t.renderers[i.name] = function(...l) {
+            let o = i.renderer.apply(this, l);
+            return o === !1 && (o = s.apply(this, l)), o;
+          } : t.renderers[i.name] = i.renderer;
+        }
+        if ("tokenizer" in i) {
+          if (!i.level || i.level !== "block" && i.level !== "inline")
+            throw new Error("extension level must be 'block' or 'inline'");
+          const s = t[i.level];
+          s ? s.unshift(i.tokenizer) : t[i.level] = [i.tokenizer], i.start && (i.level === "block" ? t.startBlock ? t.startBlock.push(i.start) : t.startBlock = [i.start] : i.level === "inline" && (t.startInline ? t.startInline.push(i.start) : t.startInline = [i.start]));
+        }
+        "childTokens" in i && i.childTokens && (t.childTokens[i.name] = i.childTokens);
+      }), n.extensions = t), r.renderer) {
+        const i = this.defaults.renderer || new Yr(this.defaults);
+        for (const s in r.renderer) {
+          if (!(s in i))
+            throw new Error(`renderer '${s}' does not exist`);
+          if (s === "options")
+            continue;
+          const l = s, o = r.renderer[l], h = i[l];
+          i[l] = (...m) => {
+            let d = o.apply(i, m);
+            return d === !1 && (d = h.apply(i, m)), d || "";
+          };
+        }
+        n.renderer = i;
+      }
+      if (r.tokenizer) {
+        const i = this.defaults.tokenizer || new Wr(this.defaults);
+        for (const s in r.tokenizer) {
+          if (!(s in i))
+            throw new Error(`tokenizer '${s}' does not exist`);
+          if (["options", "rules", "lexer"].includes(s))
+            continue;
+          const l = s, o = r.tokenizer[l], h = i[l];
+          i[l] = (...m) => {
+            let d = o.apply(i, m);
+            return d === !1 && (d = h.apply(i, m)), d;
+          };
+        }
+        n.tokenizer = i;
+      }
+      if (r.hooks) {
+        const i = this.defaults.hooks || new Rr();
+        for (const s in r.hooks) {
+          if (!(s in i))
+            throw new Error(`hook '${s}' does not exist`);
+          if (s === "options")
+            continue;
+          const l = s, o = r.hooks[l], h = i[l];
+          Rr.passThroughHooks.has(s) ? i[l] = (m) => {
+            if (this.defaults.async)
+              return Promise.resolve(o.call(i, m)).then((v) => h.call(i, v));
+            const d = o.call(i, m);
+            return h.call(i, d);
+          } : i[l] = (...m) => {
+            let d = o.apply(i, m);
+            return d === !1 && (d = h.apply(i, m)), d;
+          };
+        }
+        n.hooks = i;
+      }
+      if (r.walkTokens) {
+        const i = this.defaults.walkTokens, s = r.walkTokens;
+        n.walkTokens = function(l) {
+          let o = [];
+          return o.push(s.call(this, l)), i && (o = o.concat(i.call(this, l))), o;
+        };
+      }
+      this.defaults = { ...this.defaults, ...n };
+    }), this;
+  }
+  setOptions(e) {
+    return this.defaults = { ...this.defaults, ...e }, this;
+  }
+  lexer(e, t) {
+    return Nt.lex(e, t ?? this.defaults);
+  }
+  parser(e, t) {
+    return Lt.parse(e, t ?? this.defaults);
+  }
+  #e(e, t) {
+    return (r, n) => {
+      const i = { ...n }, s = { ...this.defaults, ...i };
+      this.defaults.async === !0 && i.async === !1 && (s.silent || console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."), s.async = !0);
+      const l = this.#t(!!s.silent, !!s.async);
+      if (typeof r > "u" || r === null)
+        return l(new Error("marked(): input parameter is undefined or null"));
+      if (typeof r != "string")
+        return l(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(r) + ", string expected"));
+      if (s.hooks && (s.hooks.options = s), s.async)
+        return Promise.resolve(s.hooks ? s.hooks.preprocess(r) : r).then((o) => e(o, s)).then((o) => s.hooks ? s.hooks.processAllTokens(o) : o).then((o) => s.walkTokens ? Promise.all(this.walkTokens(o, s.walkTokens)).then(() => o) : o).then((o) => t(o, s)).then((o) => s.hooks ? s.hooks.postprocess(o) : o).catch(l);
+      try {
+        s.hooks && (r = s.hooks.preprocess(r));
+        let o = e(r, s);
+        s.hooks && (o = s.hooks.processAllTokens(o)), s.walkTokens && this.walkTokens(o, s.walkTokens);
+        let h = t(o, s);
+        return s.hooks && (h = s.hooks.postprocess(h)), h;
+      } catch (o) {
+        return l(o);
+      }
+    };
+  }
+  #t(e, t) {
+    return (r) => {
+      if (r.message += `
+Please report this to https://github.com/markedjs/marked.`, e) {
+        const n = "<p>An error occurred:</p><pre>" + tt(r.message + "", !0) + "</pre>";
+        return t ? Promise.resolve(n) : n;
+      }
+      if (t)
+        return Promise.reject(r);
+      throw r;
+    };
+  }
+}
+const y0 = new so();
+function ue(a, e) {
+  return y0.parse(a, e);
+}
+ue.options = ue.setOptions = function(a) {
+  return y0.setOptions(a), ue.defaults = y0.defaults, Kl(ue.defaults), ue;
+};
+ue.getDefaults = _n;
+ue.defaults = x0;
+ue.use = function(...a) {
+  return y0.use(...a), ue.defaults = y0.defaults, Kl(ue.defaults), ue;
+};
+ue.walkTokens = function(a, e) {
+  return y0.walkTokens(a, e);
+};
+ue.parseInline = y0.parseInline;
+ue.Parser = Lt;
+ue.parser = Lt.parse;
+ue.Renderer = Yr;
+ue.TextRenderer = Mn;
+ue.Lexer = Nt;
+ue.lexer = Nt.lex;
+ue.Tokenizer = Wr;
+ue.Hooks = Rr;
+ue.parse = ue;
+ue.options;
+ue.setOptions;
+ue.use;
+ue.walkTokens;
+ue.parseInline;
+Lt.parse;
+Nt.lex;
+function s4(a) {
+  if (typeof a == "function" && (a = {
+    highlight: a
+  }), !a || typeof a.highlight != "function")
+    throw new Error("Must provide highlight function");
+  return typeof a.langPrefix != "string" && (a.langPrefix = "language-"), typeof a.emptyLangClass != "string" && (a.emptyLangClass = ""), {
+    async: !!a.async,
+    walkTokens(e) {
+      if (e.type !== "code")
+        return;
+      const t = Yi(e.lang);
+      if (a.async)
+        return Promise.resolve(a.highlight(e.text, t, e.lang || "")).then(ji(e));
+      const r = a.highlight(e.text, t, e.lang || "");
+      if (r instanceof Promise)
+        throw new Error("markedHighlight is not set to async but the highlight function is async. Set the async option to true on markedHighlight to await the async highlight function.");
+      ji(e)(r);
+    },
+    useNewRenderer: !0,
+    renderer: {
+      code(e, t, r) {
+        typeof e == "object" && (r = e.escaped, t = e.lang, e = e.text);
+        const n = Yi(t), i = n ? a.langPrefix + Ki(n) : a.emptyLangClass, s = i ? ` class="${i}"` : "";
+        return e = e.replace(/\n$/, ""), `<pre><code${s}>${r ? e : Ki(e, !0)}
+</code></pre>`;
+      }
+    }
+  };
+}
+function Yi(a) {
+  return (a || "").match(/\S*/)[0];
+}
+function ji(a) {
+  return (e) => {
+    typeof e == "string" && e !== a.text && (a.escaped = !0, a.text = e);
+  };
+}
+const lo = /[&<>"']/, l4 = new RegExp(lo.source, "g"), oo = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, o4 = new RegExp(oo.source, "g"), u4 = {
+  "&": "&amp;",
+  "<": "&lt;",
+  ">": "&gt;",
+  '"': "&quot;",
+  "'": "&#39;"
+}, Zi = (a) => u4[a];
+function Ki(a, e) {
+  if (e) {
+    if (lo.test(a))
+      return a.replace(l4, Zi);
+  } else if (oo.test(a))
+    return a.replace(o4, Zi);
+  return a;
+}
+const c4 = /[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g, h4 = Object.hasOwnProperty;
+class zn {
+  /**
+   * Create a new slug class.
+   */
+  constructor() {
+    this.occurrences, this.reset();
+  }
+  /**
+   * Generate a unique slug.
+  *
+  * Tracks previously generated slugs: repeated calls with the same value
+  * will result in different slugs.
+  * Use the `slug` function to get same slugs.
+   *
+   * @param  {string} value
+   *   String of text to slugify
+   * @param  {boolean} [maintainCase=false]
+   *   Keep the current case, otherwise make all lowercase
+   * @return {string}
+   *   A unique slug string
+   */
+  slug(e, t) {
+    const r = this;
+    let n = m4(e, t === !0);
+    const i = n;
+    for (; h4.call(r.occurrences, n); )
+      r.occurrences[i]++, n = i + "-" + r.occurrences[i];
+    return r.occurrences[n] = 0, n;
+  }
+  /**
+   * Reset - Forget all previous slugs
+   *
+   * @return void
+   */
+  reset() {
+    this.occurrences = /* @__PURE__ */ Object.create(null);
+  }
+}
+function m4(a, e) {
+  return typeof a != "string" ? "" : (e || (a = a.toLowerCase()), a.replace(c4, "").replace(/ /g, "-"));
+}
+let uo = new zn(), co = [];
+function f4({ prefix: a = "", globalSlugs: e = !1 } = {}) {
+  return {
+    headerIds: !1,
+    // prevent deprecation warning; remove this once headerIds option is removed
+    hooks: {
+      preprocess(t) {
+        return e || d4(), t;
+      }
+    },
+    renderer: {
+      heading(t, r, n) {
+        n = n.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi, "");
+        const i = `${a}${uo.slug(n)}`, s = { level: r, text: t, id: i };
+        return co.push(s), `<h${r} id="${i}">${t}</h${r}>
+`;
+      }
+    }
+  };
+}
+function d4() {
+  co = [], uo = new zn();
+}
+var $i = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, ho = { exports: {} };
+(function(a) {
+  var e = typeof window < "u" ? window : typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? self : {};
+  /**
+   * Prism: Lightweight, robust, elegant syntax highlighting
+   *
+   * @license MIT <https://opensource.org/licenses/MIT>
+   * @author Lea Verou <https://lea.verou.me>
+   * @namespace
+   * @public
+   */
+  var t = function(r) {
+    var n = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, i = 0, s = {}, l = {
+      /**
+       * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the
+       * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load
+       * additional languages or plugins yourself.
+       *
+       * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.
+       *
+       * You obviously have to change this value before the automatic highlighting started. To do this, you can add an
+       * empty Prism object into the global scope before loading the Prism script like this:
+       *
+       * ```js
+       * window.Prism = window.Prism || {};
+       * Prism.manual = true;
+       * // add a new <script> to load Prism's script
+       * ```
+       *
+       * @default false
+       * @type {boolean}
+       * @memberof Prism
+       * @public
+       */
+      manual: r.Prism && r.Prism.manual,
+      /**
+       * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses
+       * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your
+       * own worker, you don't want it to do this.
+       *
+       * By setting this value to `true`, Prism will not add its own listeners to the worker.
+       *
+       * You obviously have to change this value before Prism executes. To do this, you can add an
+       * empty Prism object into the global scope before loading the Prism script like this:
+       *
+       * ```js
+       * window.Prism = window.Prism || {};
+       * Prism.disableWorkerMessageHandler = true;
+       * // Load Prism's script
+       * ```
+       *
+       * @default false
+       * @type {boolean}
+       * @memberof Prism
+       * @public
+       */
+      disableWorkerMessageHandler: r.Prism && r.Prism.disableWorkerMessageHandler,
+      /**
+       * A namespace for utility methods.
+       *
+       * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may
+       * change or disappear at any time.
+       *
+       * @namespace
+       * @memberof Prism
+       */
+      util: {
+        encode: function x(b) {
+          return b instanceof o ? new o(b.type, x(b.content), b.alias) : Array.isArray(b) ? b.map(x) : b.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/\u00a0/g, " ");
+        },
+        /**
+         * Returns the name of the type of the given value.
+         *
+         * @param {any} o
+         * @returns {string}
+         * @example
+         * type(null)      === 'Null'
+         * type(undefined) === 'Undefined'
+         * type(123)       === 'Number'
+         * type('foo')     === 'String'
+         * type(true)      === 'Boolean'
+         * type([1, 2])    === 'Array'
+         * type({})        === 'Object'
+         * type(String)    === 'Function'
+         * type(/abc+/)    === 'RegExp'
+         */
+        type: function(x) {
+          return Object.prototype.toString.call(x).slice(8, -1);
+        },
+        /**
+         * Returns a unique number for the given object. Later calls will still return the same number.
+         *
+         * @param {Object} obj
+         * @returns {number}
+         */
+        objId: function(x) {
+          return x.__id || Object.defineProperty(x, "__id", { value: ++i }), x.__id;
+        },
+        /**
+         * Creates a deep clone of the given object.
+         *
+         * The main intended use of this function is to clone language definitions.
+         *
+         * @param {T} o
+         * @param {Record<number, any>} [visited]
+         * @returns {T}
+         * @template T
+         */
+        clone: function x(b, A) {
+          A = A || {};
+          var C, z;
+          switch (l.util.type(b)) {
+            case "Object":
+              if (z = l.util.objId(b), A[z])
+                return A[z];
+              C = /** @type {Record<string, any>} */
+              {}, A[z] = C;
+              for (var B in b)
+                b.hasOwnProperty(B) && (C[B] = x(b[B], A));
+              return (
+                /** @type {any} */
+                C
+              );
+            case "Array":
+              return z = l.util.objId(b), A[z] ? A[z] : (C = [], A[z] = C, /** @type {Array} */
+              /** @type {any} */
+              b.forEach(function(P, M) {
+                C[M] = x(P, A);
+              }), /** @type {any} */
+              C);
+            default:
+              return b;
+          }
+        },
+        /**
+         * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.
+         *
+         * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.
+         *
+         * @param {Element} element
+         * @returns {string}
+         */
+        getLanguage: function(x) {
+          for (; x; ) {
+            var b = n.exec(x.className);
+            if (b)
+              return b[1].toLowerCase();
+            x = x.parentElement;
+          }
+          return "none";
+        },
+        /**
+         * Sets the Prism `language-xxxx` class of the given element.
+         *
+         * @param {Element} element
+         * @param {string} language
+         * @returns {void}
+         */
+        setLanguage: function(x, b) {
+          x.className = x.className.replace(RegExp(n, "gi"), ""), x.classList.add("language-" + b);
+        },
+        /**
+         * Returns the script element that is currently executing.
+         *
+         * This does __not__ work for line script element.
+         *
+         * @returns {HTMLScriptElement | null}
+         */
+        currentScript: function() {
+          if (typeof document > "u")
+            return null;
+          if ("currentScript" in document)
+            return (
+              /** @type {any} */
+              document.currentScript
+            );
+          try {
+            throw new Error();
+          } catch (C) {
+            var x = (/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(C.stack) || [])[1];
+            if (x) {
+              var b = document.getElementsByTagName("script");
+              for (var A in b)
+                if (b[A].src == x)
+                  return b[A];
+            }
+            return null;
+          }
+        },
+        /**
+         * Returns whether a given class is active for `element`.
+         *
+         * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated
+         * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the
+         * given class is just the given class with a `no-` prefix.
+         *
+         * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is
+         * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its
+         * ancestors have the given class or the negated version of it, then the default activation will be returned.
+         *
+         * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated
+         * version of it, the class is considered active.
+         *
+         * @param {Element} element
+         * @param {string} className
+         * @param {boolean} [defaultActivation=false]
+         * @returns {boolean}
+         */
+        isActive: function(x, b, A) {
+          for (var C = "no-" + b; x; ) {
+            var z = x.classList;
+            if (z.contains(b))
+              return !0;
+            if (z.contains(C))
+              return !1;
+            x = x.parentElement;
+          }
+          return !!A;
+        }
+      },
+      /**
+       * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.
+       *
+       * @namespace
+       * @memberof Prism
+       * @public
+       */
+      languages: {
+        /**
+         * The grammar for plain, unformatted text.
+         */
+        plain: s,
+        plaintext: s,
+        text: s,
+        txt: s,
+        /**
+         * Creates a deep copy of the language with the given id and appends the given tokens.
+         *
+         * If a token in `redef` also appears in the copied language, then the existing token in the copied language
+         * will be overwritten at its original position.
+         *
+         * ## Best practices
+         *
+         * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)
+         * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to
+         * understand the language definition because, normally, the order of tokens matters in Prism grammars.
+         *
+         * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.
+         * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.
+         *
+         * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.
+         * @param {Grammar} redef The new tokens to append.
+         * @returns {Grammar} The new language created.
+         * @public
+         * @example
+         * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {
+         *     // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token
+         *     // at its original position
+         *     'comment': { ... },
+         *     // CSS doesn't have a 'color' token, so this token will be appended
+         *     'color': /\b(?:red|green|blue)\b/
+         * });
+         */
+        extend: function(x, b) {
+          var A = l.util.clone(l.languages[x]);
+          for (var C in b)
+            A[C] = b[C];
+          return A;
+        },
+        /**
+         * Inserts tokens _before_ another token in a language definition or any other grammar.
+         *
+         * ## Usage
+         *
+         * This helper method makes it easy to modify existing languages. For example, the CSS language definition
+         * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded
+         * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the
+         * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do
+         * this:
+         *
+         * ```js
+         * Prism.languages.markup.style = {
+         *     // token
+         * };
+         * ```
+         *
+         * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens
+         * before existing tokens. For the CSS example above, you would use it like this:
+         *
+         * ```js
+         * Prism.languages.insertBefore('markup', 'cdata', {
+         *     'style': {
+         *         // token
+         *     }
+         * });
+         * ```
+         *
+         * ## Special cases
+         *
+         * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar
+         * will be ignored.
+         *
+         * This behavior can be used to insert tokens after `before`:
+         *
+         * ```js
+         * Prism.languages.insertBefore('markup', 'comment', {
+         *     'comment': Prism.languages.markup.comment,
+         *     // tokens after 'comment'
+         * });
+         * ```
+         *
+         * ## Limitations
+         *
+         * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object
+         * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave
+         * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily
+         * deleting properties which is necessary to insert at arbitrary positions.
+         *
+         * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.
+         * Instead, it will create a new object and replace all references to the target object with the new one. This
+         * can be done without temporarily deleting properties, so the iteration order is well-defined.
+         *
+         * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if
+         * you hold the target object in a variable, then the value of the variable will not change.
+         *
+         * ```js
+         * var oldMarkup = Prism.languages.markup;
+         * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });
+         *
+         * assert(oldMarkup !== Prism.languages.markup);
+         * assert(newMarkup === Prism.languages.markup);
+         * ```
+         *
+         * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the
+         * object to be modified.
+         * @param {string} before The key to insert before.
+         * @param {Grammar} insert An object containing the key-value pairs to be inserted.
+         * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the
+         * object to be modified.
+         *
+         * Defaults to `Prism.languages`.
+         * @returns {Grammar} The new grammar object.
+         * @public
+         */
+        insertBefore: function(x, b, A, C) {
+          C = C || /** @type {any} */
+          l.languages;
+          var z = C[x], B = {};
+          for (var P in z)
+            if (z.hasOwnProperty(P)) {
+              if (P == b)
+                for (var M in A)
+                  A.hasOwnProperty(M) && (B[M] = A[M]);
+              A.hasOwnProperty(P) || (B[P] = z[P]);
+            }
+          var R = C[x];
+          return C[x] = B, l.languages.DFS(l.languages, function(V, X) {
+            X === R && V != x && (this[V] = B);
+          }), B;
+        },
+        // Traverse a language definition with Depth First Search
+        DFS: function x(b, A, C, z) {
+          z = z || {};
+          var B = l.util.objId;
+          for (var P in b)
+            if (b.hasOwnProperty(P)) {
+              A.call(b, P, b[P], C || P);
+              var M = b[P], R = l.util.type(M);
+              R === "Object" && !z[B(M)] ? (z[B(M)] = !0, x(M, A, null, z)) : R === "Array" && !z[B(M)] && (z[B(M)] = !0, x(M, A, P, z));
+            }
+        }
+      },
+      plugins: {},
+      /**
+       * This is the most high-level function in Prism’s API.
+       * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on
+       * each one of them.
+       *
+       * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.
+       *
+       * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.
+       * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.
+       * @memberof Prism
+       * @public
+       */
+      highlightAll: function(x, b) {
+        l.highlightAllUnder(document, x, b);
+      },
+      /**
+       * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls
+       * {@link Prism.highlightElement} on each one of them.
+       *
+       * The following hooks will be run:
+       * 1. `before-highlightall`
+       * 2. `before-all-elements-highlight`
+       * 3. All hooks of {@link Prism.highlightElement} for each element.
+       *
+       * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.
+       * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.
+       * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.
+       * @memberof Prism
+       * @public
+       */
+      highlightAllUnder: function(x, b, A) {
+        var C = {
+          callback: A,
+          container: x,
+          selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
+        };
+        l.hooks.run("before-highlightall", C), C.elements = Array.prototype.slice.apply(C.container.querySelectorAll(C.selector)), l.hooks.run("before-all-elements-highlight", C);
+        for (var z = 0, B; B = C.elements[z++]; )
+          l.highlightElement(B, b === !0, C.callback);
+      },
+      /**
+       * Highlights the code inside a single element.
+       *
+       * The following hooks will be run:
+       * 1. `before-sanity-check`
+       * 2. `before-highlight`
+       * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.
+       * 4. `before-insert`
+       * 5. `after-highlight`
+       * 6. `complete`
+       *
+       * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for
+       * the element's language.
+       *
+       * @param {Element} element The element containing the code.
+       * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.
+       * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers
+       * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is
+       * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).
+       *
+       * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for
+       * asynchronous highlighting to work. You can build your own bundle on the
+       * [Download page](https://prismjs.com/download.html).
+       * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.
+       * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.
+       * @memberof Prism
+       * @public
+       */
+      highlightElement: function(x, b, A) {
+        var C = l.util.getLanguage(x), z = l.languages[C];
+        l.util.setLanguage(x, C);
+        var B = x.parentElement;
+        B && B.nodeName.toLowerCase() === "pre" && l.util.setLanguage(B, C);
+        var P = x.textContent, M = {
+          element: x,
+          language: C,
+          grammar: z,
+          code: P
+        };
+        function R(X) {
+          M.highlightedCode = X, l.hooks.run("before-insert", M), M.element.innerHTML = M.highlightedCode, l.hooks.run("after-highlight", M), l.hooks.run("complete", M), A && A.call(M.element);
+        }
+        if (l.hooks.run("before-sanity-check", M), B = M.element.parentElement, B && B.nodeName.toLowerCase() === "pre" && !B.hasAttribute("tabindex") && B.setAttribute("tabindex", "0"), !M.code) {
+          l.hooks.run("complete", M), A && A.call(M.element);
+          return;
+        }
+        if (l.hooks.run("before-highlight", M), !M.grammar) {
+          R(l.util.encode(M.code));
+          return;
+        }
+        if (b && r.Worker) {
+          var V = new Worker(l.filename);
+          V.onmessage = function(X) {
+            R(X.data);
+          }, V.postMessage(JSON.stringify({
+            language: M.language,
+            code: M.code,
+            immediateClose: !0
+          }));
+        } else
+          R(l.highlight(M.code, M.grammar, M.language));
+      },
+      /**
+       * Low-level function, only use if you know what you’re doing. It accepts a string of text as input
+       * and the language definitions to use, and returns a string with the HTML produced.
+       *
+       * The following hooks will be run:
+       * 1. `before-tokenize`
+       * 2. `after-tokenize`
+       * 3. `wrap`: On each {@link Token}.
+       *
+       * @param {string} text A string with the code to be highlighted.
+       * @param {Grammar} grammar An object containing the tokens to use.
+       *
+       * Usually a language definition like `Prism.languages.markup`.
+       * @param {string} language The name of the language definition passed to `grammar`.
+       * @returns {string} The highlighted HTML.
+       * @memberof Prism
+       * @public
+       * @example
+       * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');
+       */
+      highlight: function(x, b, A) {
+        var C = {
+          code: x,
+          grammar: b,
+          language: A
+        };
+        if (l.hooks.run("before-tokenize", C), !C.grammar)
+          throw new Error('The language "' + C.language + '" has no grammar.');
+        return C.tokens = l.tokenize(C.code, C.grammar), l.hooks.run("after-tokenize", C), o.stringify(l.util.encode(C.tokens), C.language);
+      },
+      /**
+       * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input
+       * and the language definitions to use, and returns an array with the tokenized code.
+       *
+       * When the language definition includes nested tokens, the function is called recursively on each of these tokens.
+       *
+       * This method could be useful in other contexts as well, as a very crude parser.
+       *
+       * @param {string} text A string with the code to be highlighted.
+       * @param {Grammar} grammar An object containing the tokens to use.
+       *
+       * Usually a language definition like `Prism.languages.markup`.
+       * @returns {TokenStream} An array of strings and tokens, a token stream.
+       * @memberof Prism
+       * @public
+       * @example
+       * let code = `var foo = 0;`;
+       * let tokens = Prism.tokenize(code, Prism.languages.javascript);
+       * tokens.forEach(token => {
+       *     if (token instanceof Prism.Token && token.type === 'number') {
+       *         console.log(`Found numeric literal: ${token.content}`);
+       *     }
+       * });
+       */
+      tokenize: function(x, b) {
+        var A = b.rest;
+        if (A) {
+          for (var C in A)
+            b[C] = A[C];
+          delete b.rest;
+        }
+        var z = new d();
+        return v(z, z.head, x), m(x, z, b, z.head, 0), D(z);
+      },
+      /**
+       * @namespace
+       * @memberof Prism
+       * @public
+       */
+      hooks: {
+        all: {},
+        /**
+         * Adds the given callback to the list of callbacks for the given hook.
+         *
+         * The callback will be invoked when the hook it is registered for is run.
+         * Hooks are usually directly run by a highlight function but you can also run hooks yourself.
+         *
+         * One callback function can be registered to multiple hooks and the same hook multiple times.
+         *
+         * @param {string} name The name of the hook.
+         * @param {HookCallback} callback The callback function which is given environment variables.
+         * @public
+         */
+        add: function(x, b) {
+          var A = l.hooks.all;
+          A[x] = A[x] || [], A[x].push(b);
+        },
+        /**
+         * Runs a hook invoking all registered callbacks with the given environment variables.
+         *
+         * Callbacks will be invoked synchronously and in the order in which they were registered.
+         *
+         * @param {string} name The name of the hook.
+         * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.
+         * @public
+         */
+        run: function(x, b) {
+          var A = l.hooks.all[x];
+          if (!(!A || !A.length))
+            for (var C = 0, z; z = A[C++]; )
+              z(b);
+        }
+      },
+      Token: o
+    };
+    r.Prism = l;
+    function o(x, b, A, C) {
+      this.type = x, this.content = b, this.alias = A, this.length = (C || "").length | 0;
+    }
+    o.stringify = function x(b, A) {
+      if (typeof b == "string")
+        return b;
+      if (Array.isArray(b)) {
+        var C = "";
+        return b.forEach(function(R) {
+          C += x(R, A);
+        }), C;
+      }
+      var z = {
+        type: b.type,
+        content: x(b.content, A),
+        tag: "span",
+        classes: ["token", b.type],
+        attributes: {},
+        language: A
+      }, B = b.alias;
+      B && (Array.isArray(B) ? Array.prototype.push.apply(z.classes, B) : z.classes.push(B)), l.hooks.run("wrap", z);
+      var P = "";
+      for (var M in z.attributes)
+        P += " " + M + '="' + (z.attributes[M] || "").replace(/"/g, "&quot;") + '"';
+      return "<" + z.tag + ' class="' + z.classes.join(" ") + '"' + P + ">" + z.content + "</" + z.tag + ">";
+    };
+    function h(x, b, A, C) {
+      x.lastIndex = b;
+      var z = x.exec(A);
+      if (z && C && z[1]) {
+        var B = z[1].length;
+        z.index += B, z[0] = z[0].slice(B);
+      }
+      return z;
+    }
+    function m(x, b, A, C, z, B) {
+      for (var P in A)
+        if (!(!A.hasOwnProperty(P) || !A[P])) {
+          var M = A[P];
+          M = Array.isArray(M) ? M : [M];
+          for (var R = 0; R < M.length; ++R) {
+            if (B && B.cause == P + "," + R)
+              return;
+            var V = M[R], X = V.inside, be = !!V.lookbehind, ae = !!V.greedy, fe = V.alias;
+            if (ae && !V.pattern.global) {
+              var ye = V.pattern.toString().match(/[imsuy]*$/)[0];
+              V.pattern = RegExp(V.pattern.source, ye + "g");
+            }
+            for (var Ne = V.pattern || V, se = C.next, he = z; se !== b.tail && !(B && he >= B.reach); he += se.value.length, se = se.next) {
+              var ge = se.value;
+              if (b.length > x.length)
+                return;
+              if (!(ge instanceof o)) {
+                var te = 1, le;
+                if (ae) {
+                  if (le = h(Ne, he, x, be), !le || le.index >= x.length)
+                    break;
+                  var Ie = le.index, oe = le.index + le[0].length, Me = he;
+                  for (Me += se.value.length; Ie >= Me; )
+                    se = se.next, Me += se.value.length;
+                  if (Me -= se.value.length, he = Me, se.value instanceof o)
+                    continue;
+                  for (var q = se; q !== b.tail && (Me < oe || typeof q.value == "string"); q = q.next)
+                    te++, Me += q.value.length;
+                  te--, ge = x.slice(he, Me), le.index -= he;
+                } else if (le = h(Ne, 0, ge, be), !le)
+                  continue;
+                var Ie = le.index, Se = le[0], Te = ge.slice(0, Ie), $e = ge.slice(Ie + Se.length), ze = he + ge.length;
+                B && ze > B.reach && (B.reach = ze);
+                var We = se.prev;
+                Te && (We = v(b, We, Te), he += Te.length), g(b, We, te);
+                var nt = new o(P, X ? l.tokenize(Se, X) : Se, fe, Se);
+                if (se = v(b, We, nt), $e && v(b, se, $e), te > 1) {
+                  var bt = {
+                    cause: P + "," + R,
+                    reach: ze
+                  };
+                  m(x, b, A, se.prev, he, bt), B && bt.reach > B.reach && (B.reach = bt.reach);
+                }
+              }
+            }
+          }
+        }
+    }
+    function d() {
+      var x = { value: null, prev: null, next: null }, b = { value: null, prev: x, next: null };
+      x.next = b, this.head = x, this.tail = b, this.length = 0;
+    }
+    function v(x, b, A) {
+      var C = b.next, z = { value: A, prev: b, next: C };
+      return b.next = z, C.prev = z, x.length++, z;
+    }
+    function g(x, b, A) {
+      for (var C = b.next, z = 0; z < A && C !== x.tail; z++)
+        C = C.next;
+      b.next = C, C.prev = b, x.length -= z;
+    }
+    function D(x) {
+      for (var b = [], A = x.head.next; A !== x.tail; )
+        b.push(A.value), A = A.next;
+      return b;
+    }
+    if (!r.document)
+      return r.addEventListener && (l.disableWorkerMessageHandler || r.addEventListener("message", function(x) {
+        var b = JSON.parse(x.data), A = b.language, C = b.code, z = b.immediateClose;
+        r.postMessage(l.highlight(C, l.languages[A], A)), z && r.close();
+      }, !1)), l;
+    var S = l.util.currentScript();
+    S && (l.filename = S.src, S.hasAttribute("data-manual") && (l.manual = !0));
+    function F() {
+      l.manual || l.highlightAll();
+    }
+    if (!l.manual) {
+      var T = document.readyState;
+      T === "loading" || T === "interactive" && S && S.defer ? document.addEventListener("DOMContentLoaded", F) : window.requestAnimationFrame ? window.requestAnimationFrame(F) : window.setTimeout(F, 16);
+    }
+    return l;
+  }(e);
+  a.exports && (a.exports = t), typeof $i < "u" && ($i.Prism = t), t.languages.markup = {
+    comment: {
+      pattern: /<!--(?:(?!<!--)[\s\S])*?-->/,
+      greedy: !0
+    },
+    prolog: {
+      pattern: /<\?[\s\S]+?\?>/,
+      greedy: !0
+    },
+    doctype: {
+      // https://www.w3.org/TR/xml/#NT-doctypedecl
+      pattern: /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
+      greedy: !0,
+      inside: {
+        "internal-subset": {
+          pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/,
+          lookbehind: !0,
+          greedy: !0,
+          inside: null
+          // see below
+        },
+        string: {
+          pattern: /"[^"]*"|'[^']*'/,
+          greedy: !0
+        },
+        punctuation: /^<!|>$|[[\]]/,
+        "doctype-tag": /^DOCTYPE/i,
+        name: /[^\s<>'"]+/
+      }
+    },
+    cdata: {
+      pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
+      greedy: !0
+    },
+    tag: {
+      pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
+      greedy: !0,
+      inside: {
+        tag: {
+          pattern: /^<\/?[^\s>\/]+/,
+          inside: {
+            punctuation: /^<\/?/,
+            namespace: /^[^\s>\/:]+:/
+          }
+        },
+        "special-attr": [],
+        "attr-value": {
+          pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
+          inside: {
+            punctuation: [
+              {
+                pattern: /^=/,
+                alias: "attr-equals"
+              },
+              {
+                pattern: /^(\s*)["']|["']$/,
+                lookbehind: !0
+              }
+            ]
+          }
+        },
+        punctuation: /\/?>/,
+        "attr-name": {
+          pattern: /[^\s>\/]+/,
+          inside: {
+            namespace: /^[^\s>\/:]+:/
+          }
+        }
+      }
+    },
+    entity: [
+      {
+        pattern: /&[\da-z]{1,8};/i,
+        alias: "named-entity"
+      },
+      /&#x?[\da-f]{1,8};/i
+    ]
+  }, t.languages.markup.tag.inside["attr-value"].inside.entity = t.languages.markup.entity, t.languages.markup.doctype.inside["internal-subset"].inside = t.languages.markup, t.hooks.add("wrap", function(r) {
+    r.type === "entity" && (r.attributes.title = r.content.replace(/&amp;/, "&"));
+  }), Object.defineProperty(t.languages.markup.tag, "addInlined", {
+    /**
+     * Adds an inlined language to markup.
+     *
+     * An example of an inlined language is CSS with `<style>` tags.
+     *
+     * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as
+     * case insensitive.
+     * @param {string} lang The language key.
+     * @example
+     * addInlined('style', 'css');
+     */
+    value: function(n, i) {
+      var s = {};
+      s["language-" + i] = {
+        pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
+        lookbehind: !0,
+        inside: t.languages[i]
+      }, s.cdata = /^<!\[CDATA\[|\]\]>$/i;
+      var l = {
+        "included-cdata": {
+          pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
+          inside: s
+        }
+      };
+      l["language-" + i] = {
+        pattern: /[\s\S]+/,
+        inside: t.languages[i]
+      };
+      var o = {};
+      o[n] = {
+        pattern: RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g, function() {
+          return n;
+        }), "i"),
+        lookbehind: !0,
+        greedy: !0,
+        inside: l
+      }, t.languages.insertBefore("markup", "cdata", o);
+    }
+  }), Object.defineProperty(t.languages.markup.tag, "addAttribute", {
+    /**
+     * Adds an pattern to highlight languages embedded in HTML attributes.
+     *
+     * An example of an inlined language is CSS with `style` attributes.
+     *
+     * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as
+     * case insensitive.
+     * @param {string} lang The language key.
+     * @example
+     * addAttribute('style', 'css');
+     */
+    value: function(r, n) {
+      t.languages.markup.tag.inside["special-attr"].push({
+        pattern: RegExp(
+          /(^|["'\s])/.source + "(?:" + r + ")" + /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,
+          "i"
+        ),
+        lookbehind: !0,
+        inside: {
+          "attr-name": /^[^\s=]+/,
+          "attr-value": {
+            pattern: /=[\s\S]+/,
+            inside: {
+              value: {
+                pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,
+                lookbehind: !0,
+                alias: [n, "language-" + n],
+                inside: t.languages[n]
+              },
+              punctuation: [
+                {
+                  pattern: /^=/,
+                  alias: "attr-equals"
+                },
+                /"|'/
+              ]
+            }
+          }
+        }
+      });
+    }
+  }), t.languages.html = t.languages.markup, t.languages.mathml = t.languages.markup, t.languages.svg = t.languages.markup, t.languages.xml = t.languages.extend("markup", {}), t.languages.ssml = t.languages.xml, t.languages.atom = t.languages.xml, t.languages.rss = t.languages.xml, function(r) {
+    var n = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;
+    r.languages.css = {
+      comment: /\/\*[\s\S]*?\*\//,
+      atrule: {
+        pattern: RegExp("@[\\w-](?:" + /[^;{\s"']|\s+(?!\s)/.source + "|" + n.source + ")*?" + /(?:;|(?=\s*\{))/.source),
+        inside: {
+          rule: /^@[\w-]+/,
+          "selector-function-argument": {
+            pattern: /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,
+            lookbehind: !0,
+            alias: "selector"
+          },
+          keyword: {
+            pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/,
+            lookbehind: !0
+          }
+          // See rest below
+        }
+      },
+      url: {
+        // https://drafts.csswg.org/css-values-3/#urls
+        pattern: RegExp("\\burl\\((?:" + n.source + "|" + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ")\\)", "i"),
+        greedy: !0,
+        inside: {
+          function: /^url/i,
+          punctuation: /^\(|\)$/,
+          string: {
+            pattern: RegExp("^" + n.source + "$"),
+            alias: "url"
+          }
+        }
+      },
+      selector: {
+        pattern: RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|` + n.source + ")*(?=\\s*\\{)"),
+        lookbehind: !0
+      },
+      string: {
+        pattern: n,
+        greedy: !0
+      },
+      property: {
+        pattern: /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,
+        lookbehind: !0
+      },
+      important: /!important\b/i,
+      function: {
+        pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,
+        lookbehind: !0
+      },
+      punctuation: /[(){};:,]/
+    }, r.languages.css.atrule.inside.rest = r.languages.css;
+    var i = r.languages.markup;
+    i && (i.tag.addInlined("style", "css"), i.tag.addAttribute("style", "css"));
+  }(t), t.languages.clike = {
+    comment: [
+      {
+        pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
+        lookbehind: !0,
+        greedy: !0
+      },
+      {
+        pattern: /(^|[^\\:])\/\/.*/,
+        lookbehind: !0,
+        greedy: !0
+      }
+    ],
+    string: {
+      pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+      greedy: !0
+    },
+    "class-name": {
+      pattern: /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,
+      lookbehind: !0,
+      inside: {
+        punctuation: /[.\\]/
+      }
+    },
+    keyword: /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,
+    boolean: /\b(?:false|true)\b/,
+    function: /\b\w+(?=\()/,
+    number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
+    operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
+    punctuation: /[{}[\];(),.:]/
+  }, t.languages.javascript = t.languages.extend("clike", {
+    "class-name": [
+      t.languages.clike["class-name"],
+      {
+        pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,
+        lookbehind: !0
+      }
+    ],
+    keyword: [
+      {
+        pattern: /((?:^|\})\s*)catch\b/,
+        lookbehind: !0
+      },
+      {
+        pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
+        lookbehind: !0
+      }
+    ],
+    // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
+    function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
+    number: {
+      pattern: RegExp(
+        /(^|[^\w$])/.source + "(?:" + // constant
+        (/NaN|Infinity/.source + "|" + // binary integer
+        /0[bB][01]+(?:_[01]+)*n?/.source + "|" + // octal integer
+        /0[oO][0-7]+(?:_[0-7]+)*n?/.source + "|" + // hexadecimal integer
+        /0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source + "|" + // decimal bigint
+        /\d+(?:_\d+)*n/.source + "|" + // decimal number (integer or float) but no bigint
+        /(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source) + ")" + /(?![\w$])/.source
+      ),
+      lookbehind: !0
+    },
+    operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
+  }), t.languages.javascript["class-name"][0].pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/, t.languages.insertBefore("javascript", "keyword", {
+    regex: {
+      pattern: RegExp(
+        // lookbehind
+        // eslint-disable-next-line regexp/no-dupe-characters-character-class
+        /((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source + // Regex pattern:
+        // There are 2 regex patterns here. The RegExp set notation proposal added support for nested character
+        // classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible
+        // with the only syntax, so we have to define 2 different regex patterns.
+        /\//.source + "(?:" + /(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source + "|" + // `v` flag syntax. This supports 3 levels of nested character classes.
+        /(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + ")" + // lookahead
+        /(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source
+      ),
+      lookbehind: !0,
+      greedy: !0,
+      inside: {
+        "regex-source": {
+          pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
+          lookbehind: !0,
+          alias: "language-regex",
+          inside: t.languages.regex
+        },
+        "regex-delimiter": /^\/|\/$/,
+        "regex-flags": /^[a-z]+$/
+      }
+    },
+    // This must be declared before keyword because we use "function" inside the look-forward
+    "function-variable": {
+      pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
+      alias: "function"
+    },
+    parameter: [
+      {
+        pattern: /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
+        lookbehind: !0,
+        inside: t.languages.javascript
+      },
+      {
+        pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
+        lookbehind: !0,
+        inside: t.languages.javascript
+      },
+      {
+        pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
+        lookbehind: !0,
+        inside: t.languages.javascript
+      },
+      {
+        pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
+        lookbehind: !0,
+        inside: t.languages.javascript
+      }
+    ],
+    constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/
+  }), t.languages.insertBefore("javascript", "string", {
+    hashbang: {
+      pattern: /^#!.*/,
+      greedy: !0,
+      alias: "comment"
+    },
+    "template-string": {
+      pattern: /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,
+      greedy: !0,
+      inside: {
+        "template-punctuation": {
+          pattern: /^`|`$/,
+          alias: "string"
+        },
+        interpolation: {
+          pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,
+          lookbehind: !0,
+          inside: {
+            "interpolation-punctuation": {
+              pattern: /^\$\{|\}$/,
+              alias: "punctuation"
+            },
+            rest: t.languages.javascript
+          }
+        },
+        string: /[\s\S]+/
+      }
+    },
+    "string-property": {
+      pattern: /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,
+      lookbehind: !0,
+      greedy: !0,
+      alias: "property"
+    }
+  }), t.languages.insertBefore("javascript", "operator", {
+    "literal-property": {
+      pattern: /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,
+      lookbehind: !0,
+      alias: "property"
+    }
+  }), t.languages.markup && (t.languages.markup.tag.addInlined("script", "javascript"), t.languages.markup.tag.addAttribute(
+    /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,
+    "javascript"
+  )), t.languages.js = t.languages.javascript, function() {
+    if (typeof t > "u" || typeof document > "u")
+      return;
+    Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector);
+    var r = "Loading…", n = function(S, F) {
+      return "✖ Error " + S + " while fetching file: " + F;
+    }, i = "✖ Error: File does not exist or is empty", s = {
+      js: "javascript",
+      py: "python",
+      rb: "ruby",
+      ps1: "powershell",
+      psm1: "powershell",
+      sh: "bash",
+      bat: "batch",
+      h: "c",
+      tex: "latex"
+    }, l = "data-src-status", o = "loading", h = "loaded", m = "failed", d = "pre[data-src]:not([" + l + '="' + h + '"]):not([' + l + '="' + o + '"])';
+    function v(S, F, T) {
+      var x = new XMLHttpRequest();
+      x.open("GET", S, !0), x.onreadystatechange = function() {
+        x.readyState == 4 && (x.status < 400 && x.responseText ? F(x.responseText) : x.status >= 400 ? T(n(x.status, x.statusText)) : T(i));
+      }, x.send(null);
+    }
+    function g(S) {
+      var F = /^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(S || "");
+      if (F) {
+        var T = Number(F[1]), x = F[2], b = F[3];
+        return x ? b ? [T, Number(b)] : [T, void 0] : [T, T];
+      }
+    }
+    t.hooks.add("before-highlightall", function(S) {
+      S.selector += ", " + d;
+    }), t.hooks.add("before-sanity-check", function(S) {
+      var F = (
+        /** @type {HTMLPreElement} */
+        S.element
+      );
+      if (F.matches(d)) {
+        S.code = "", F.setAttribute(l, o);
+        var T = F.appendChild(document.createElement("CODE"));
+        T.textContent = r;
+        var x = F.getAttribute("data-src"), b = S.language;
+        if (b === "none") {
+          var A = (/\.(\w+)$/.exec(x) || [, "none"])[1];
+          b = s[A] || A;
+        }
+        t.util.setLanguage(T, b), t.util.setLanguage(F, b);
+        var C = t.plugins.autoloader;
+        C && C.loadLanguages(b), v(
+          x,
+          function(z) {
+            F.setAttribute(l, h);
+            var B = g(F.getAttribute("data-range"));
+            if (B) {
+              var P = z.split(/\r\n?|\n/g), M = B[0], R = B[1] == null ? P.length : B[1];
+              M < 0 && (M += P.length), M = Math.max(0, Math.min(M - 1, P.length)), R < 0 && (R += P.length), R = Math.max(0, Math.min(R, P.length)), z = P.slice(M, R).join(`
+`), F.hasAttribute("data-start") || F.setAttribute("data-start", String(M + 1));
+            }
+            T.textContent = z, t.highlightElement(T);
+          },
+          function(z) {
+            F.setAttribute(l, m), T.textContent = z;
+          }
+        );
+      }
+    }), t.plugins.fileHighlight = {
+      /**
+       * Executes the File Highlight plugin for all matching `pre` elements under the given container.
+       *
+       * Note: Elements which are already loaded or currently loading will not be touched by this method.
+       *
+       * @param {ParentNode} [container=document]
+       */
+      highlight: function(F) {
+        for (var T = (F || document).querySelectorAll(d), x = 0, b; b = T[x++]; )
+          t.highlightElement(b);
+      }
+    };
+    var D = !1;
+    t.fileHighlight = function() {
+      D || (console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."), D = !0), t.plugins.fileHighlight.highlight.apply(this, arguments);
+    };
+  }();
+})(ho);
+var Aa = ho.exports;
+Prism.languages.python = {
+  comment: {
+    pattern: /(^|[^\\])#.*/,
+    lookbehind: !0,
+    greedy: !0
+  },
+  "string-interpolation": {
+    pattern: /(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,
+    greedy: !0,
+    inside: {
+      interpolation: {
+        // "{" <expression> <optional "!s", "!r", or "!a"> <optional ":" format specifier> "}"
+        pattern: /((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,
+        lookbehind: !0,
+        inside: {
+          "format-spec": {
+            pattern: /(:)[^:(){}]+(?=\}$)/,
+            lookbehind: !0
+          },
+          "conversion-option": {
+            pattern: /![sra](?=[:}]$)/,
+            alias: "punctuation"
+          },
+          rest: null
+        }
+      },
+      string: /[\s\S]+/
+    }
+  },
+  "triple-quoted-string": {
+    pattern: /(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,
+    greedy: !0,
+    alias: "string"
+  },
+  string: {
+    pattern: /(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,
+    greedy: !0
+  },
+  function: {
+    pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,
+    lookbehind: !0
+  },
+  "class-name": {
+    pattern: /(\bclass\s+)\w+/i,
+    lookbehind: !0
+  },
+  decorator: {
+    pattern: /(^[\t ]*)@\w+(?:\.\w+)*/m,
+    lookbehind: !0,
+    alias: ["annotation", "punctuation"],
+    inside: {
+      punctuation: /\./
+    }
+  },
+  keyword: /\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,
+  builtin: /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,
+  boolean: /\b(?:False|None|True)\b/,
+  number: /\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,
+  operator: /[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,
+  punctuation: /[{}[\];(),.:]/
+};
+Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest = Prism.languages.python;
+Prism.languages.py = Prism.languages.python;
+(function(a) {
+  var e = /\\(?:[^a-z()[\]]|[a-z*]+)/i, t = {
+    "equation-command": {
+      pattern: e,
+      alias: "regex"
+    }
+  };
+  a.languages.latex = {
+    comment: /%.*/,
+    // the verbatim environment prints whitespace to the document
+    cdata: {
+      pattern: /(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
+      lookbehind: !0
+    },
+    /*
+     * equations can be between $$ $$ or $ $ or \( \) or \[ \]
+     * (all are multiline)
+     */
+    equation: [
+      {
+        pattern: /\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,
+        inside: t,
+        alias: "string"
+      },
+      {
+        pattern: /(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
+        lookbehind: !0,
+        inside: t,
+        alias: "string"
+      }
+    ],
+    /*
+     * arguments which are keywords or references are highlighted
+     * as keywords
+     */
+    keyword: {
+      pattern: /(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
+      lookbehind: !0
+    },
+    url: {
+      pattern: /(\\url\{)[^}]+(?=\})/,
+      lookbehind: !0
+    },
+    /*
+     * section or chapter headlines are highlighted as bold so that
+     * they stand out more
+     */
+    headline: {
+      pattern: /(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
+      lookbehind: !0,
+      alias: "class-name"
+    },
+    function: {
+      pattern: e,
+      alias: "selector"
+    },
+    punctuation: /[[\]{}&]/
+  }, a.languages.tex = a.languages.latex, a.languages.context = a.languages.latex;
+})(Prism);
+(function(a) {
+  var e = "\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b", t = {
+    pattern: /(^(["']?)\w+\2)[ \t]+\S.*/,
+    lookbehind: !0,
+    alias: "punctuation",
+    // this looks reasonably well in all themes
+    inside: null
+    // see below
+  }, r = {
+    bash: t,
+    environment: {
+      pattern: RegExp("\\$" + e),
+      alias: "constant"
+    },
+    variable: [
+      // [0]: Arithmetic Environment
+      {
+        pattern: /\$?\(\([\s\S]+?\)\)/,
+        greedy: !0,
+        inside: {
+          // If there is a $ sign at the beginning highlight $(( and )) as variable
+          variable: [
+            {
+              pattern: /(^\$\(\([\s\S]+)\)\)/,
+              lookbehind: !0
+            },
+            /^\$\(\(/
+          ],
+          number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,
+          // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic
+          operator: /--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,
+          // If there is no $ sign at the beginning highlight (( and )) as punctuation
+          punctuation: /\(\(?|\)\)?|,|;/
+        }
+      },
+      // [1]: Command Substitution
+      {
+        pattern: /\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,
+        greedy: !0,
+        inside: {
+          variable: /^\$\(|^`|\)$|`$/
+        }
+      },
+      // [2]: Brace expansion
+      {
+        pattern: /\$\{[^}]+\}/,
+        greedy: !0,
+        inside: {
+          operator: /:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,
+          punctuation: /[\[\]]/,
+          environment: {
+            pattern: RegExp("(\\{)" + e),
+            lookbehind: !0,
+            alias: "constant"
+          }
+        }
+      },
+      /\$(?:\w+|[#?*!@$])/
+    ],
+    // Escape sequences from echo and printf's manuals, and escaped quotes.
+    entity: /\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/
+  };
+  a.languages.bash = {
+    shebang: {
+      pattern: /^#!\s*\/.*/,
+      alias: "important"
+    },
+    comment: {
+      pattern: /(^|[^"{\\$])#.*/,
+      lookbehind: !0
+    },
+    "function-name": [
+      // a) function foo {
+      // b) foo() {
+      // c) function foo() {
+      // but not “foo {”
+      {
+        // a) and c)
+        pattern: /(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,
+        lookbehind: !0,
+        alias: "function"
+      },
+      {
+        // b)
+        pattern: /\b[\w-]+(?=\s*\(\s*\)\s*\{)/,
+        alias: "function"
+      }
+    ],
+    // Highlight variable names as variables in for and select beginnings.
+    "for-or-select": {
+      pattern: /(\b(?:for|select)\s+)\w+(?=\s+in\s)/,
+      alias: "variable",
+      lookbehind: !0
+    },
+    // Highlight variable names as variables in the left-hand part
+    // of assignments (“=” and “+=”).
+    "assign-left": {
+      pattern: /(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,
+      inside: {
+        environment: {
+          pattern: RegExp("(^|[\\s;|&]|[<>]\\()" + e),
+          lookbehind: !0,
+          alias: "constant"
+        }
+      },
+      alias: "variable",
+      lookbehind: !0
+    },
+    // Highlight parameter names as variables
+    parameter: {
+      pattern: /(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,
+      alias: "variable",
+      lookbehind: !0
+    },
+    string: [
+      // Support for Here-documents https://en.wikipedia.org/wiki/Here_document
+      {
+        pattern: /((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,
+        lookbehind: !0,
+        greedy: !0,
+        inside: r
+      },
+      // Here-document with quotes around the tag
+      // → No expansion (so no “inside”).
+      {
+        pattern: /((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,
+        lookbehind: !0,
+        greedy: !0,
+        inside: {
+          bash: t
+        }
+      },
+      // “Normal” string
+      {
+        // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html
+        pattern: /(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,
+        lookbehind: !0,
+        greedy: !0,
+        inside: r
+      },
+      {
+        // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html
+        pattern: /(^|[^$\\])'[^']*'/,
+        lookbehind: !0,
+        greedy: !0
+      },
+      {
+        // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html
+        pattern: /\$'(?:[^'\\]|\\[\s\S])*'/,
+        greedy: !0,
+        inside: {
+          entity: r.entity
+        }
+      }
+    ],
+    environment: {
+      pattern: RegExp("\\$?" + e),
+      alias: "constant"
+    },
+    variable: r.variable,
+    function: {
+      pattern: /(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,
+      lookbehind: !0
+    },
+    keyword: {
+      pattern: /(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,
+      lookbehind: !0
+    },
+    // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
+    builtin: {
+      pattern: /(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,
+      lookbehind: !0,
+      // Alias added to make those easier to distinguish from strings.
+      alias: "class-name"
+    },
+    boolean: {
+      pattern: /(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,
+      lookbehind: !0
+    },
+    "file-descriptor": {
+      pattern: /\B&\d\b/,
+      alias: "important"
+    },
+    operator: {
+      // Lots of redirections here, but not just that.
+      pattern: /\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,
+      inside: {
+        "file-descriptor": {
+          pattern: /^\d/,
+          alias: "important"
+        }
+      }
+    },
+    punctuation: /\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,
+    number: {
+      pattern: /(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,
+      lookbehind: !0
+    }
+  }, t.inside = a.languages.bash;
+  for (var n = [
+    "comment",
+    "function-name",
+    "for-or-select",
+    "assign-left",
+    "parameter",
+    "string",
+    "environment",
+    "function",
+    "keyword",
+    "builtin",
+    "boolean",
+    "file-descriptor",
+    "operator",
+    "punctuation",
+    "number"
+  ], i = r.variable[1].inside, s = 0; s < n.length; s++)
+    i[n[s]] = a.languages.bash[n[s]];
+  a.languages.sh = a.languages.bash, a.languages.shell = a.languages.bash;
+})(Prism);
+const p4 = '<svg class="md-link-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true" fill="currentColor"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>', g4 = `
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" color="currentColor" aria-hidden="true" aria-label="Copy" stroke-width="1.3" width="15" height="15">
+  <path fill="currentColor" d="M12.728 4.545v8.182H4.545V4.545zm0 -0.909H4.545a0.909 0.909 0 0 0 -0.909 0.909v8.182a0.909 0.909 0 0 0 0.909 0.909h8.182a0.909 0.909 0 0 0 0.909 -0.909V4.545a0.909 0.909 0 0 0 -0.909 -0.909"/>
+  <path fill="currentColor" d="M1.818 8.182H0.909V1.818a0.909 0.909 0 0 1 0.909 -0.909h6.364v0.909H1.818Z"/>
+</svg>
+
+`, v4 = `<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 17 17" aria-hidden="true" aria-label="Copied" fill="none" stroke="currentColor" stroke-width="1.3">
+  <path d="m13.813 4.781 -7.438 7.438 -3.188 -3.188"/>
+</svg>
+`, Qi = `<button title="copy" class="copy_code_button">
+  <span class="copy-text">${g4}</span>
+  <span class="check">${v4}</span>
+</button>`, mo = /[&<>"']/, b4 = new RegExp(mo.source, "g"), fo = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, y4 = new RegExp(fo.source, "g"), w4 = {
+  "&": "&amp;",
+  "<": "&lt;",
+  ">": "&gt;",
+  '"': "&quot;",
+  "'": "&#39;"
+}, Ji = (a) => w4[a] || "";
+function _a(a, e) {
+  if (e) {
+    if (mo.test(a))
+      return a.replace(b4, Ji);
+  } else if (fo.test(a))
+    return a.replace(y4, Ji);
+  return a;
+}
+function x4(a) {
+  const e = a.map((t) => ({
+    start: new RegExp(t.left.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")),
+    end: new RegExp(t.right.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"))
+  }));
+  return {
+    name: "latex",
+    level: "block",
+    start(t) {
+      for (const r of e) {
+        const n = t.match(r.start);
+        if (n)
+          return n.index;
+      }
+      return -1;
+    },
+    tokenizer(t, r) {
+      for (const n of e) {
+        const i = new RegExp(
+          `${n.start.source}([\\s\\S]+?)${n.end.source}`
+        ).exec(t);
+        if (i)
+          return {
+            type: "latex",
+            raw: i[0],
+            text: i[1].trim()
+          };
+      }
+    },
+    renderer(t) {
+      return `<div class="latex-block">${t.text}</div>`;
+    }
+  };
+}
+const k4 = {
+  code(a, e, t) {
+    const r = (e ?? "").match(/\S*/)?.[0] ?? "";
+    return a = a.replace(/\n$/, "") + `
+`, r ? '<div class="code_wrap">' + Qi + '<pre><code class="language-' + _a(r) + '">' + (t ? a : _a(a, !0)) + `</code></pre></div>
+` : '<div class="code_wrap">' + Qi + "<pre><code>" + (t ? a : _a(a, !0)) + `</code></pre></div>
+`;
+  }
+}, D4 = new zn();
+function A4({
+  header_links: a,
+  line_breaks: e,
+  latex_delimiters: t
+}) {
+  const r = new so();
+  r.use(
+    {
+      gfm: !0,
+      pedantic: !1,
+      breaks: e
+    },
+    s4({
+      highlight: (i, s) => Aa.languages[s] ? Aa.highlight(i, Aa.languages[s], s) : i
+    }),
+    { renderer: k4 }
+  ), a && (r.use(f4()), r.use({
+    extensions: [
+      {
+        name: "heading",
+        level: "block",
+        renderer(i) {
+          const s = i.raw.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi, ""), l = "h" + D4.slug(s), o = i.depth, h = this.parser.parseInline(i.tokens);
+          return `<h${o} id="${l}"><a class="md-header-anchor" href="#${l}">${p4}</a>${h}</h${o}>
+`;
+        }
+      }
+    ]
+  }));
+  const n = x4(t);
+  return r.use({
+    extensions: [n]
+  }), r;
+}
+const Ya = (a) => JSON.parse(JSON.stringify(a)), _4 = (a) => a.nodeType === 1, S4 = (a) => Y4.has(a.tagName), E4 = (a) => "action" in a, F4 = (a) => a.tagName === "IFRAME", T4 = (a) => "formAction" in a, C4 = (a) => "protocol" in a, Ar = /* @__PURE__ */ (() => {
+  const a = /^(?:\w+script|data):/i;
+  return (e) => a.test(e);
+})(), M4 = /* @__PURE__ */ (() => {
+  const a = /(?:script|data):/i;
+  return (e) => a.test(e);
+})(), z4 = (a) => {
+  const e = {};
+  for (let t = 0, r = a.length; t < r; t++) {
+    const n = a[t];
+    for (const i in n)
+      e[i] ? e[i] = e[i].concat(n[i]) : e[i] = n[i];
+  }
+  return e;
+}, po = (a, e) => {
+  let t = a.firstChild;
+  for (; t; ) {
+    const r = t.nextSibling;
+    _4(t) && (e(t, a), t.parentNode && po(t, e)), t = r;
+  }
+}, B4 = (a, e) => {
+  const t = document.createNodeIterator(a, NodeFilter.SHOW_ELEMENT);
+  let r;
+  for (; r = t.nextNode(); ) {
+    const n = r.parentNode;
+    n && e(r, n);
+  }
+}, R4 = (a, e) => !!globalThis.document && !!globalThis.document.createNodeIterator ? B4(a, e) : po(a, e), go = [
+  "a",
+  "abbr",
+  "acronym",
+  "address",
+  "area",
+  "article",
+  "aside",
+  "audio",
+  "b",
+  "bdi",
+  "bdo",
+  "bgsound",
+  "big",
+  "blockquote",
+  "body",
+  "br",
+  "button",
+  "canvas",
+  "caption",
+  "center",
+  "cite",
+  "code",
+  "col",
+  "colgroup",
+  "datalist",
+  "dd",
+  "del",
+  "details",
+  "dfn",
+  "dialog",
+  "dir",
+  "div",
+  "dl",
+  "dt",
+  "em",
+  "fieldset",
+  "figcaption",
+  "figure",
+  "font",
+  "footer",
+  "form",
+  "h1",
+  "h2",
+  "h3",
+  "h4",
+  "h5",
+  "h6",
+  "head",
+  "header",
+  "hgroup",
+  "hr",
+  "html",
+  "i",
+  "img",
+  "input",
+  "ins",
+  "kbd",
+  "keygen",
+  "label",
+  "layer",
+  "legend",
+  "li",
+  "link",
+  "listing",
+  "main",
+  "map",
+  "mark",
+  "marquee",
+  "menu",
+  "meta",
+  "meter",
+  "nav",
+  "nobr",
+  "ol",
+  "optgroup",
+  "option",
+  "output",
+  "p",
+  "picture",
+  "popup",
+  "pre",
+  "progress",
+  "q",
+  "rb",
+  "rp",
+  "rt",
+  "rtc",
+  "ruby",
+  "s",
+  "samp",
+  "section",
+  "select",
+  "selectmenu",
+  "small",
+  "source",
+  "span",
+  "strike",
+  "strong",
+  "style",
+  "sub",
+  "summary",
+  "sup",
+  "table",
+  "tbody",
+  "td",
+  "tfoot",
+  "th",
+  "thead",
+  "time",
+  "tr",
+  "track",
+  "tt",
+  "u",
+  "ul",
+  "var",
+  "video",
+  "wbr"
+], N4 = [
+  "basefont",
+  "command",
+  "data",
+  "iframe",
+  "image",
+  "plaintext",
+  "portal",
+  "slot",
+  // 'template', //TODO: Not exactly correct to never allow this, too strict
+  "textarea",
+  "title",
+  "xmp"
+], L4 = /* @__PURE__ */ new Set([
+  ...go,
+  ...N4
+]), vo = [
+  "svg",
+  "a",
+  "altglyph",
+  "altglyphdef",
+  "altglyphitem",
+  "animatecolor",
+  "animatemotion",
+  "animatetransform",
+  "circle",
+  "clippath",
+  "defs",
+  "desc",
+  "ellipse",
+  "filter",
+  "font",
+  "g",
+  "glyph",
+  "glyphref",
+  "hkern",
+  "image",
+  "line",
+  "lineargradient",
+  "marker",
+  "mask",
+  "metadata",
+  "mpath",
+  "path",
+  "pattern",
+  "polygon",
+  "polyline",
+  "radialgradient",
+  "rect",
+  "stop",
+  "style",
+  "switch",
+  "symbol",
+  "text",
+  "textpath",
+  "title",
+  "tref",
+  "tspan",
+  "view",
+  "vkern",
+  /* FILTERS */
+  "feBlend",
+  "feColorMatrix",
+  "feComponentTransfer",
+  "feComposite",
+  "feConvolveMatrix",
+  "feDiffuseLighting",
+  "feDisplacementMap",
+  "feDistantLight",
+  "feFlood",
+  "feFuncA",
+  "feFuncB",
+  "feFuncG",
+  "feFuncR",
+  "feGaussianBlur",
+  "feImage",
+  "feMerge",
+  "feMergeNode",
+  "feMorphology",
+  "feOffset",
+  "fePointLight",
+  "feSpecularLighting",
+  "feSpotLight",
+  "feTile",
+  "feTurbulence"
+], I4 = [
+  "animate",
+  "color-profile",
+  "cursor",
+  "discard",
+  "fedropshadow",
+  "font-face",
+  "font-face-format",
+  "font-face-name",
+  "font-face-src",
+  "font-face-uri",
+  "foreignobject",
+  "hatch",
+  "hatchpath",
+  "mesh",
+  "meshgradient",
+  "meshpatch",
+  "meshrow",
+  "missing-glyph",
+  "script",
+  "set",
+  "solidcolor",
+  "unknown",
+  "use"
+], O4 = /* @__PURE__ */ new Set([
+  ...vo,
+  ...I4
+]), bo = [
+  "math",
+  "menclose",
+  "merror",
+  "mfenced",
+  "mfrac",
+  "mglyph",
+  "mi",
+  "mlabeledtr",
+  "mmultiscripts",
+  "mn",
+  "mo",
+  "mover",
+  "mpadded",
+  "mphantom",
+  "mroot",
+  "mrow",
+  "ms",
+  "mspace",
+  "msqrt",
+  "mstyle",
+  "msub",
+  "msup",
+  "msubsup",
+  "mtable",
+  "mtd",
+  "mtext",
+  "mtr",
+  "munder",
+  "munderover"
+], q4 = [
+  "maction",
+  "maligngroup",
+  "malignmark",
+  "mlongdiv",
+  "mscarries",
+  "mscarry",
+  "msgroup",
+  "mstack",
+  "msline",
+  "msrow",
+  "semantics",
+  "annotation",
+  "annotation-xml",
+  "mprescripts",
+  "none"
+], P4 = /* @__PURE__ */ new Set([
+  ...bo,
+  ...q4
+]), H4 = [
+  "abbr",
+  "accept",
+  "accept-charset",
+  "accesskey",
+  "action",
+  "align",
+  "alink",
+  "allow",
+  "allowfullscreen",
+  "alt",
+  "anchor",
+  "archive",
+  "as",
+  "async",
+  "autocapitalize",
+  "autocomplete",
+  "autocorrect",
+  "autofocus",
+  "autopictureinpicture",
+  "autoplay",
+  "axis",
+  "background",
+  "behavior",
+  "bgcolor",
+  "border",
+  "bordercolor",
+  "capture",
+  "cellpadding",
+  "cellspacing",
+  "challenge",
+  "char",
+  "charoff",
+  "charset",
+  "checked",
+  "cite",
+  "class",
+  "classid",
+  "clear",
+  "code",
+  "codebase",
+  "codetype",
+  "color",
+  "cols",
+  "colspan",
+  "compact",
+  "content",
+  "contenteditable",
+  "controls",
+  "controlslist",
+  "conversiondestination",
+  "coords",
+  "crossorigin",
+  "csp",
+  "data",
+  "datetime",
+  "declare",
+  "decoding",
+  "default",
+  "defer",
+  "dir",
+  "direction",
+  "dirname",
+  "disabled",
+  "disablepictureinpicture",
+  "disableremoteplayback",
+  "disallowdocumentaccess",
+  "download",
+  "draggable",
+  "elementtiming",
+  "enctype",
+  "end",
+  "enterkeyhint",
+  "event",
+  "exportparts",
+  "face",
+  "for",
+  "form",
+  "formaction",
+  "formenctype",
+  "formmethod",
+  "formnovalidate",
+  "formtarget",
+  "frame",
+  "frameborder",
+  "headers",
+  "height",
+  "hidden",
+  "high",
+  "href",
+  "hreflang",
+  "hreftranslate",
+  "hspace",
+  "http-equiv",
+  "id",
+  "imagesizes",
+  "imagesrcset",
+  "importance",
+  "impressiondata",
+  "impressionexpiry",
+  "incremental",
+  "inert",
+  "inputmode",
+  "integrity",
+  "invisible",
+  "ismap",
+  "keytype",
+  "kind",
+  "label",
+  "lang",
+  "language",
+  "latencyhint",
+  "leftmargin",
+  "link",
+  "list",
+  "loading",
+  "longdesc",
+  "loop",
+  "low",
+  "lowsrc",
+  "manifest",
+  "marginheight",
+  "marginwidth",
+  "max",
+  "maxlength",
+  "mayscript",
+  "media",
+  "method",
+  "min",
+  "minlength",
+  "multiple",
+  "muted",
+  "name",
+  "nohref",
+  "nomodule",
+  "nonce",
+  "noresize",
+  "noshade",
+  "novalidate",
+  "nowrap",
+  "object",
+  "open",
+  "optimum",
+  "part",
+  "pattern",
+  "ping",
+  "placeholder",
+  "playsinline",
+  "policy",
+  "poster",
+  "preload",
+  "pseudo",
+  "readonly",
+  "referrerpolicy",
+  "rel",
+  "reportingorigin",
+  "required",
+  "resources",
+  "rev",
+  "reversed",
+  "role",
+  "rows",
+  "rowspan",
+  "rules",
+  "sandbox",
+  "scheme",
+  "scope",
+  "scopes",
+  "scrollamount",
+  "scrolldelay",
+  "scrolling",
+  "select",
+  "selected",
+  "shadowroot",
+  "shadowrootdelegatesfocus",
+  "shape",
+  "size",
+  "sizes",
+  "slot",
+  "span",
+  "spellcheck",
+  "src",
+  "srclang",
+  "srcset",
+  "standby",
+  "start",
+  "step",
+  "style",
+  "summary",
+  "tabindex",
+  "target",
+  "text",
+  "title",
+  "topmargin",
+  "translate",
+  "truespeed",
+  "trusttoken",
+  "type",
+  "usemap",
+  "valign",
+  "value",
+  "valuetype",
+  "version",
+  "virtualkeyboardpolicy",
+  "vlink",
+  "vspace",
+  "webkitdirectory",
+  "width",
+  "wrap"
+], U4 = [
+  "accent-height",
+  "accumulate",
+  "additive",
+  "alignment-baseline",
+  "ascent",
+  "attributename",
+  "attributetype",
+  "azimuth",
+  "basefrequency",
+  "baseline-shift",
+  "begin",
+  "bias",
+  "by",
+  "class",
+  "clip",
+  "clippathunits",
+  "clip-path",
+  "clip-rule",
+  "color",
+  "color-interpolation",
+  "color-interpolation-filters",
+  "color-profile",
+  "color-rendering",
+  "cx",
+  "cy",
+  "d",
+  "dx",
+  "dy",
+  "diffuseconstant",
+  "direction",
+  "display",
+  "divisor",
+  "dominant-baseline",
+  "dur",
+  "edgemode",
+  "elevation",
+  "end",
+  "fill",
+  "fill-opacity",
+  "fill-rule",
+  "filter",
+  "filterunits",
+  "flood-color",
+  "flood-opacity",
+  "font-family",
+  "font-size",
+  "font-size-adjust",
+  "font-stretch",
+  "font-style",
+  "font-variant",
+  "font-weight",
+  "fx",
+  "fy",
+  "g1",
+  "g2",
+  "glyph-name",
+  "glyphref",
+  "gradientunits",
+  "gradienttransform",
+  "height",
+  "href",
+  "id",
+  "image-rendering",
+  "in",
+  "in2",
+  "k",
+  "k1",
+  "k2",
+  "k3",
+  "k4",
+  "kerning",
+  "keypoints",
+  "keysplines",
+  "keytimes",
+  "lang",
+  "lengthadjust",
+  "letter-spacing",
+  "kernelmatrix",
+  "kernelunitlength",
+  "lighting-color",
+  "local",
+  "marker-end",
+  "marker-mid",
+  "marker-start",
+  "markerheight",
+  "markerunits",
+  "markerwidth",
+  "maskcontentunits",
+  "maskunits",
+  "max",
+  "mask",
+  "media",
+  "method",
+  "mode",
+  "min",
+  "name",
+  "numoctaves",
+  "offset",
+  "operator",
+  "opacity",
+  "order",
+  "orient",
+  "orientation",
+  "origin",
+  "overflow",
+  "paint-order",
+  "path",
+  "pathlength",
+  "patterncontentunits",
+  "patterntransform",
+  "patternunits",
+  "points",
+  "preservealpha",
+  "preserveaspectratio",
+  "primitiveunits",
+  "r",
+  "rx",
+  "ry",
+  "radius",
+  "refx",
+  "refy",
+  "repeatcount",
+  "repeatdur",
+  "restart",
+  "result",
+  "rotate",
+  "scale",
+  "seed",
+  "shape-rendering",
+  "specularconstant",
+  "specularexponent",
+  "spreadmethod",
+  "startoffset",
+  "stddeviation",
+  "stitchtiles",
+  "stop-color",
+  "stop-opacity",
+  "stroke-dasharray",
+  "stroke-dashoffset",
+  "stroke-linecap",
+  "stroke-linejoin",
+  "stroke-miterlimit",
+  "stroke-opacity",
+  "stroke",
+  "stroke-width",
+  "style",
+  "surfacescale",
+  "systemlanguage",
+  "tabindex",
+  "targetx",
+  "targety",
+  "transform",
+  "transform-origin",
+  "text-anchor",
+  "text-decoration",
+  "text-rendering",
+  "textlength",
+  "type",
+  "u1",
+  "u2",
+  "unicode",
+  "values",
+  "viewbox",
+  "visibility",
+  "version",
+  "vert-adv-y",
+  "vert-origin-x",
+  "vert-origin-y",
+  "width",
+  "word-spacing",
+  "wrap",
+  "writing-mode",
+  "xchannelselector",
+  "ychannelselector",
+  "x",
+  "x1",
+  "x2",
+  "xmlns",
+  "y",
+  "y1",
+  "y2",
+  "z",
+  "zoomandpan"
+], G4 = [
+  "accent",
+  "accentunder",
+  "align",
+  "bevelled",
+  "close",
+  "columnsalign",
+  "columnlines",
+  "columnspan",
+  "denomalign",
+  "depth",
+  "dir",
+  "display",
+  "displaystyle",
+  "encoding",
+  "fence",
+  "frame",
+  "height",
+  "href",
+  "id",
+  "largeop",
+  "length",
+  "linethickness",
+  "lspace",
+  "lquote",
+  "mathbackground",
+  "mathcolor",
+  "mathsize",
+  "mathvariant",
+  "maxsize",
+  "minsize",
+  "movablelimits",
+  "notation",
+  "numalign",
+  "open",
+  "rowalign",
+  "rowlines",
+  "rowspacing",
+  "rowspan",
+  "rspace",
+  "rquote",
+  "scriptlevel",
+  "scriptminsize",
+  "scriptsizemultiplier",
+  "selection",
+  "separator",
+  "separators",
+  "stretchy",
+  "subscriptshift",
+  "supscriptshift",
+  "symmetric",
+  "voffset",
+  "width",
+  "xmlns"
+], Et = {
+  HTML: "http://www.w3.org/1999/xhtml",
+  SVG: "http://www.w3.org/2000/svg",
+  MATH: "http://www.w3.org/1998/Math/MathML"
+}, V4 = {
+  [Et.HTML]: L4,
+  [Et.SVG]: O4,
+  [Et.MATH]: P4
+}, W4 = {
+  [Et.HTML]: "html",
+  [Et.SVG]: "svg",
+  [Et.MATH]: "math"
+}, X4 = {
+  [Et.HTML]: "",
+  [Et.SVG]: "svg:",
+  [Et.MATH]: "math:"
+}, Y4 = /* @__PURE__ */ new Set([
+  "A",
+  "AREA",
+  "BUTTON",
+  "FORM",
+  "IFRAME",
+  "INPUT"
+]), yo = {
+  allowComments: !0,
+  allowCustomElements: !1,
+  allowUnknownMarkup: !1,
+  allowElements: [
+    ...go,
+    ...vo.map((a) => `svg:${a}`),
+    ...bo.map((a) => `math:${a}`)
+  ],
+  allowAttributes: z4([
+    Object.fromEntries(H4.map((a) => [a, ["*"]])),
+    Object.fromEntries(U4.map((a) => [a, ["svg:*"]])),
+    Object.fromEntries(G4.map((a) => [a, ["math:*"]]))
+  ])
+};
+var Sa = function(a, e, t, r, n) {
+  if (r === "m") throw new TypeError("Private method is not writable");
+  if (r === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
+  if (typeof e == "function" ? a !== e || !n : !e.has(a)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
+  return r === "a" ? n.call(a, t) : n ? n.value = t : e.set(a, t), t;
+}, p0 = function(a, e, t, r) {
+  if (t === "a" && !r) throw new TypeError("Private accessor was defined without a getter");
+  if (typeof e == "function" ? a !== e || !r : !e.has(a)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
+  return t === "m" ? r : t === "a" ? r.call(a) : r ? r.value : e.get(a);
+}, s0, Nr, Lr;
+class wo {
+  /* CONSTRUCTOR */
+  constructor(e = {}) {
+    s0.set(this, void 0), Nr.set(this, void 0), Lr.set(this, void 0), this.getConfiguration = () => Ya(p0(this, s0, "f")), this.sanitize = (m) => {
+      const d = p0(this, Nr, "f"), v = p0(this, Lr, "f");
+      return R4(m, (g, D) => {
+        const S = g.namespaceURI || Et.HTML, F = D.namespaceURI || Et.HTML, T = V4[S], x = W4[S], b = X4[S], A = g.tagName.toLowerCase(), C = `${b}${A}`, B = `${b}*`;
+        if (!T.has(A) || !d.has(C) || S !== F && A !== x)
+          D.removeChild(g);
+        else {
+          const P = g.getAttributeNames(), M = P.length;
+          if (M) {
+            for (let R = 0; R < M; R++) {
+              const V = P[R], X = v[V];
+              (!X || !X.has(B) && !X.has(C)) && g.removeAttribute(V);
+            }
+            if (S4(g))
+              if (C4(g)) {
+                const R = g.getAttribute("href");
+                R && M4(R) && Ar(g.protocol) && g.removeAttribute("href");
+              } else E4(g) ? Ar(g.action) && g.removeAttribute("action") : T4(g) ? Ar(g.formAction) && g.removeAttribute("formaction") : F4(g) && (Ar(g.src) && g.removeAttribute("formaction"), g.setAttribute("sandbox", "allow-scripts"));
+          }
+        }
+      }), m;
+    }, this.sanitizeFor = (m, d) => {
+      throw new Error('"sanitizeFor" is not implemented yet');
+    };
+    const { allowComments: t, allowCustomElements: r, allowUnknownMarkup: n, blockElements: i, dropElements: s, dropAttributes: l } = e;
+    if (t === !1)
+      throw new Error('A false "allowComments" is not supported yet');
+    if (r)
+      throw new Error('A true "allowCustomElements" is not supported yet');
+    if (n)
+      throw new Error('A true "allowUnknownMarkup" is not supported yet');
+    if (i)
+      throw new Error('"blockElements" is not supported yet, use "allowElements" instead');
+    if (s)
+      throw new Error('"dropElements" is not supported yet, use "allowElements" instead');
+    if (l)
+      throw new Error('"dropAttributes" is not supported yet, use "allowAttributes" instead');
+    Sa(this, s0, Ya(yo), "f");
+    const { allowElements: o, allowAttributes: h } = e;
+    o && (p0(this, s0, "f").allowElements = e.allowElements), h && (p0(this, s0, "f").allowAttributes = e.allowAttributes), Sa(this, Nr, new Set(p0(this, s0, "f").allowElements), "f"), Sa(this, Lr, Object.fromEntries(Object.entries(p0(this, s0, "f").allowAttributes || {}).map(([m, d]) => [m, new Set(d)])), "f");
+  }
+}
+s0 = /* @__PURE__ */ new WeakMap(), Nr = /* @__PURE__ */ new WeakMap(), Lr = /* @__PURE__ */ new WeakMap();
+wo.getDefaultConfiguration = () => Ya(yo);
+const j4 = (a, e) => {
+  try {
+    return !!a && new URL(a).origin !== new URL(e).origin;
+  } catch {
+    return !1;
+  }
+};
+function es(a, e) {
+  const t = new wo(), r = new DOMParser().parseFromString(a, "text/html");
+  return xo(r.body, "A", (n) => {
+    n instanceof HTMLElement && "target" in n && j4(n.getAttribute("href"), e) && (n.setAttribute("target", "_blank"), n.setAttribute("rel", "noopener noreferrer"));
+  }), t.sanitize(r).body.innerHTML;
+}
+function xo(a, e, t) {
+  a && (a.nodeName === e || typeof e == "function") && t(a);
+  const r = a?.childNodes || [];
+  for (let n = 0; n < r.length; n++)
+    xo(r[n], e, t);
+}
+const {
+  HtmlTagHydration: Z4,
+  SvelteComponent: K4,
+  attr: $4,
+  binding_callbacks: Q4,
+  children: J4,
+  claim_element: eh,
+  claim_html_tag: th,
+  detach: ts,
+  element: rh,
+  init: ah,
+  insert_hydration: nh,
+  noop: rs,
+  safe_not_equal: ih,
+  toggle_class: _r
+} = window.__gradio__svelte__internal, { afterUpdate: sh } = window.__gradio__svelte__internal;
+function lh(a) {
+  let e, t;
+  return {
+    c() {
+      e = rh("span"), t = new Z4(!1), this.h();
+    },
+    l(r) {
+      e = eh(r, "SPAN", { class: !0 });
+      var n = J4(e);
+      t = th(n, !1), n.forEach(ts), this.h();
+    },
+    h() {
+      t.a = null, $4(e, "class", "md svelte-1m32c2s"), _r(
+        e,
+        "chatbot",
+        /*chatbot*/
+        a[0]
+      ), _r(
+        e,
+        "prose",
+        /*render_markdown*/
+        a[1]
+      );
+    },
+    m(r, n) {
+      nh(r, e, n), t.m(
+        /*html*/
+        a[3],
+        e
+      ), a[10](e);
+    },
+    p(r, [n]) {
+      n & /*html*/
+      8 && t.p(
+        /*html*/
+        r[3]
+      ), n & /*chatbot*/
+      1 && _r(
+        e,
+        "chatbot",
+        /*chatbot*/
+        r[0]
+      ), n & /*render_markdown*/
+      2 && _r(
+        e,
+        "prose",
+        /*render_markdown*/
+        r[1]
+      );
+    },
+    i: rs,
+    o: rs,
+    d(r) {
+      r && ts(e), a[10](null);
+    }
+  };
+}
+function as(a) {
+  return a.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+}
+function oh(a, e, t) {
+  var r = this && this.__awaiter || function(x, b, A, C) {
+    function z(B) {
+      return B instanceof A ? B : new A(function(P) {
+        P(B);
+      });
+    }
+    return new (A || (A = Promise))(function(B, P) {
+      function M(X) {
+        try {
+          V(C.next(X));
+        } catch (be) {
+          P(be);
+        }
+      }
+      function R(X) {
+        try {
+          V(C.throw(X));
+        } catch (be) {
+          P(be);
+        }
+      }
+      function V(X) {
+        X.done ? B(X.value) : z(X.value).then(M, R);
+      }
+      V((C = C.apply(x, b || [])).next());
+    });
+  };
+  let { chatbot: n = !0 } = e, { message: i } = e, { sanitize_html: s = !0 } = e, { latex_delimiters: l = [] } = e, { render_markdown: o = !0 } = e, { line_breaks: h = !0 } = e, { header_links: m = !1 } = e, { root: d } = e, v, g;
+  const D = A4({
+    header_links: m,
+    line_breaks: h,
+    latex_delimiters: l
+  });
+  function S(x) {
+    let b = x;
+    if (o) {
+      const A = [];
+      l.forEach((C, z) => {
+        const B = as(C.left), P = as(C.right), M = new RegExp(`${B}([\\s\\S]+?)${P}`, "g");
+        b = b.replace(M, (R, V) => (A.push(R), `%%%LATEX_BLOCK_${A.length - 1}%%%`));
+      }), b = D.parse(b), b = b.replace(/%%%LATEX_BLOCK_(\d+)%%%/g, (C, z) => A[parseInt(z, 10)]);
+    }
+    return s && es && (b = es(b, d)), b;
+  }
+  function F(x) {
+    return r(this, void 0, void 0, function* () {
+      l.length > 0 && x && l.some((A) => x.includes(A.left) && x.includes(A.right)) && _c(v, {
+        delimiters: l,
+        throwOnError: !1
+      });
+    });
+  }
+  sh(() => r(void 0, void 0, void 0, function* () {
+    v && document.body.contains(v) ? yield F(i) : console.error("Element is not in the DOM");
+  }));
+  function T(x) {
+    Q4[x ? "unshift" : "push"](() => {
+      v = x, t(2, v);
+    });
+  }
+  return a.$$set = (x) => {
+    "chatbot" in x && t(0, n = x.chatbot), "message" in x && t(4, i = x.message), "sanitize_html" in x && t(5, s = x.sanitize_html), "latex_delimiters" in x && t(6, l = x.latex_delimiters), "render_markdown" in x && t(1, o = x.render_markdown), "line_breaks" in x && t(7, h = x.line_breaks), "header_links" in x && t(8, m = x.header_links), "root" in x && t(9, d = x.root);
+  }, a.$$.update = () => {
+    a.$$.dirty & /*message*/
+    16 && (i && i.trim() ? t(3, g = S(i)) : t(3, g = ""));
+  }, [
+    n,
+    o,
+    v,
+    g,
+    i,
+    s,
+    l,
+    h,
+    m,
+    d,
+    T
+  ];
+}
+class uh extends K4 {
+  constructor(e) {
+    super(), ah(this, e, oh, lh, ih, {
+      chatbot: 0,
+      message: 4,
+      sanitize_html: 5,
+      latex_delimiters: 6,
+      render_markdown: 1,
+      line_breaks: 7,
+      header_links: 8,
+      root: 9
+    });
+  }
+}
+function T0(a) {
+  let e = ["", "k", "M", "G", "T", "P", "E", "Z"], t = 0;
+  for (; a > 1e3 && t < e.length - 1; )
+    a /= 1e3, t++;
+  let r = e[t];
+  return (Number.isInteger(a) ? a : a.toFixed(1)) + r;
+}
+function Ir() {
+}
+function ch(a, e) {
+  return a != a ? e == e : a !== e || a && typeof a == "object" || typeof a == "function";
+}
+const ko = typeof window < "u";
+let ns = ko ? () => window.performance.now() : () => Date.now(), Do = ko ? (a) => requestAnimationFrame(a) : Ir;
+const z0 = /* @__PURE__ */ new Set();
+function Ao(a) {
+  z0.forEach((e) => {
+    e.c(a) || (z0.delete(e), e.f());
+  }), z0.size !== 0 && Do(Ao);
+}
+function hh(a) {
+  let e;
+  return z0.size === 0 && Do(Ao), {
+    promise: new Promise((t) => {
+      z0.add(e = { c: a, f: t });
+    }),
+    abort() {
+      z0.delete(e);
+    }
+  };
+}
+const E0 = [];
+function mh(a, e = Ir) {
+  let t;
+  const r = /* @__PURE__ */ new Set();
+  function n(l) {
+    if (ch(a, l) && (a = l, t)) {
+      const o = !E0.length;
+      for (const h of r)
+        h[1](), E0.push(h, a);
+      if (o) {
+        for (let h = 0; h < E0.length; h += 2)
+          E0[h][0](E0[h + 1]);
+        E0.length = 0;
+      }
+    }
+  }
+  function i(l) {
+    n(l(a));
+  }
+  function s(l, o = Ir) {
+    const h = [l, o];
+    return r.add(h), r.size === 1 && (t = e(n, i) || Ir), l(a), () => {
+      r.delete(h), r.size === 0 && t && (t(), t = null);
+    };
+  }
+  return { set: n, update: i, subscribe: s };
+}
+function is(a) {
+  return Object.prototype.toString.call(a) === "[object Date]";
+}
+function ja(a, e, t, r) {
+  if (typeof t == "number" || is(t)) {
+    const n = r - t, i = (t - e) / (a.dt || 1 / 60), s = a.opts.stiffness * n, l = a.opts.damping * i, o = (s - l) * a.inv_mass, h = (i + o) * a.dt;
+    return Math.abs(h) < a.opts.precision && Math.abs(n) < a.opts.precision ? r : (a.settled = !1, is(t) ? new Date(t.getTime() + h) : t + h);
+  } else {
+    if (Array.isArray(t))
+      return t.map(
+        (n, i) => ja(a, e[i], t[i], r[i])
+      );
+    if (typeof t == "object") {
+      const n = {};
+      for (const i in t)
+        n[i] = ja(a, e[i], t[i], r[i]);
+      return n;
+    } else
+      throw new Error(`Cannot spring ${typeof t} values`);
+  }
+}
+function ss(a, e = {}) {
+  const t = mh(a), { stiffness: r = 0.15, damping: n = 0.8, precision: i = 0.01 } = e;
+  let s, l, o, h = a, m = a, d = 1, v = 0, g = !1;
+  function D(F, T = {}) {
+    m = F;
+    const x = o = {};
+    return a == null || T.hard || S.stiffness >= 1 && S.damping >= 1 ? (g = !0, s = ns(), h = F, t.set(a = m), Promise.resolve()) : (T.soft && (v = 1 / ((T.soft === !0 ? 0.5 : +T.soft) * 60), d = 0), l || (s = ns(), g = !1, l = hh((b) => {
+      if (g)
+        return g = !1, l = null, !1;
+      d = Math.min(d + v, 1);
+      const A = {
+        inv_mass: d,
+        opts: S,
+        settled: !0,
+        dt: (b - s) * 60 / 1e3
+      }, C = ja(A, h, a, m);
+      return s = b, h = a, t.set(a = C), A.settled && (l = null), !A.settled;
+    })), new Promise((b) => {
+      l.promise.then(() => {
+        x === o && b();
+      });
+    }));
+  }
+  const S = {
+    set: D,
+    update: (F, T) => D(F(m, a), T),
+    subscribe: t.subscribe,
+    stiffness: r,
+    damping: n,
+    precision: i
+  };
+  return S;
+}
+const {
+  SvelteComponent: fh,
+  append_hydration: wt,
+  attr: ne,
+  children: st,
+  claim_element: dh,
+  claim_svg_element: xt,
+  component_subscribe: ls,
+  detach: Qe,
+  element: ph,
+  init: gh,
+  insert_hydration: vh,
+  noop: os,
+  safe_not_equal: bh,
+  set_style: Sr,
+  svg_element: kt,
+  toggle_class: us
+} = window.__gradio__svelte__internal, { onMount: yh } = window.__gradio__svelte__internal;
+function wh(a) {
+  let e, t, r, n, i, s, l, o, h, m, d, v;
+  return {
+    c() {
+      e = ph("div"), t = kt("svg"), r = kt("g"), n = kt("path"), i = kt("path"), s = kt("path"), l = kt("path"), o = kt("g"), h = kt("path"), m = kt("path"), d = kt("path"), v = kt("path"), this.h();
+    },
+    l(g) {
+      e = dh(g, "DIV", { class: !0 });
+      var D = st(e);
+      t = xt(D, "svg", {
+        viewBox: !0,
+        fill: !0,
+        xmlns: !0,
+        class: !0
+      });
+      var S = st(t);
+      r = xt(S, "g", { style: !0 });
+      var F = st(r);
+      n = xt(F, "path", {
+        d: !0,
+        fill: !0,
+        "fill-opacity": !0,
+        class: !0
+      }), st(n).forEach(Qe), i = xt(F, "path", { d: !0, fill: !0, class: !0 }), st(i).forEach(Qe), s = xt(F, "path", {
+        d: !0,
+        fill: !0,
+        "fill-opacity": !0,
+        class: !0
+      }), st(s).forEach(Qe), l = xt(F, "path", { d: !0, fill: !0, class: !0 }), st(l).forEach(Qe), F.forEach(Qe), o = xt(S, "g", { style: !0 });
+      var T = st(o);
+      h = xt(T, "path", {
+        d: !0,
+        fill: !0,
+        "fill-opacity": !0,
+        class: !0
+      }), st(h).forEach(Qe), m = xt(T, "path", { d: !0, fill: !0, class: !0 }), st(m).forEach(Qe), d = xt(T, "path", {
+        d: !0,
+        fill: !0,
+        "fill-opacity": !0,
+        class: !0
+      }), st(d).forEach(Qe), v = xt(T, "path", { d: !0, fill: !0, class: !0 }), st(v).forEach(Qe), T.forEach(Qe), S.forEach(Qe), D.forEach(Qe), this.h();
+    },
+    h() {
+      ne(n, "d", "M255.926 0.754768L509.702 139.936V221.027L255.926 81.8465V0.754768Z"), ne(n, "fill", "#FF7C00"), ne(n, "fill-opacity", "0.4"), ne(n, "class", "svelte-43sxxs"), ne(i, "d", "M509.69 139.936L254.981 279.641V361.255L509.69 221.55V139.936Z"), ne(i, "fill", "#FF7C00"), ne(i, "class", "svelte-43sxxs"), ne(s, "d", "M0.250138 139.937L254.981 279.641V361.255L0.250138 221.55V139.937Z"), ne(s, "fill", "#FF7C00"), ne(s, "fill-opacity", "0.4"), ne(s, "class", "svelte-43sxxs"), ne(l, "d", "M255.923 0.232622L0.236328 139.936V221.55L255.923 81.8469V0.232622Z"), ne(l, "fill", "#FF7C00"), ne(l, "class", "svelte-43sxxs"), Sr(r, "transform", "translate(" + /*$top*/
+      a[1][0] + "px, " + /*$top*/
+      a[1][1] + "px)"), ne(h, "d", "M255.926 141.5L509.702 280.681V361.773L255.926 222.592V141.5Z"), ne(h, "fill", "#FF7C00"), ne(h, "fill-opacity", "0.4"), ne(h, "class", "svelte-43sxxs"), ne(m, "d", "M509.69 280.679L254.981 420.384V501.998L509.69 362.293V280.679Z"), ne(m, "fill", "#FF7C00"), ne(m, "class", "svelte-43sxxs"), ne(d, "d", "M0.250138 280.681L254.981 420.386V502L0.250138 362.295V280.681Z"), ne(d, "fill", "#FF7C00"), ne(d, "fill-opacity", "0.4"), ne(d, "class", "svelte-43sxxs"), ne(v, "d", "M255.923 140.977L0.236328 280.68V362.294L255.923 222.591V140.977Z"), ne(v, "fill", "#FF7C00"), ne(v, "class", "svelte-43sxxs"), Sr(o, "transform", "translate(" + /*$bottom*/
+      a[2][0] + "px, " + /*$bottom*/
+      a[2][1] + "px)"), ne(t, "viewBox", "-1200 -1200 3000 3000"), ne(t, "fill", "none"), ne(t, "xmlns", "http://www.w3.org/2000/svg"), ne(t, "class", "svelte-43sxxs"), ne(e, "class", "svelte-43sxxs"), us(
+        e,
+        "margin",
+        /*margin*/
+        a[0]
+      );
+    },
+    m(g, D) {
+      vh(g, e, D), wt(e, t), wt(t, r), wt(r, n), wt(r, i), wt(r, s), wt(r, l), wt(t, o), wt(o, h), wt(o, m), wt(o, d), wt(o, v);
+    },
+    p(g, [D]) {
+      D & /*$top*/
+      2 && Sr(r, "transform", "translate(" + /*$top*/
+      g[1][0] + "px, " + /*$top*/
+      g[1][1] + "px)"), D & /*$bottom*/
+      4 && Sr(o, "transform", "translate(" + /*$bottom*/
+      g[2][0] + "px, " + /*$bottom*/
+      g[2][1] + "px)"), D & /*margin*/
+      1 && us(
+        e,
+        "margin",
+        /*margin*/
+        g[0]
+      );
+    },
+    i: os,
+    o: os,
+    d(g) {
+      g && Qe(e);
+    }
+  };
+}
+function xh(a, e, t) {
+  let r, n;
+  var i = this && this.__awaiter || function(g, D, S, F) {
+    function T(x) {
+      return x instanceof S ? x : new S(function(b) {
+        b(x);
+      });
+    }
+    return new (S || (S = Promise))(function(x, b) {
+      function A(B) {
+        try {
+          z(F.next(B));
+        } catch (P) {
+          b(P);
+        }
+      }
+      function C(B) {
+        try {
+          z(F.throw(B));
+        } catch (P) {
+          b(P);
+        }
+      }
+      function z(B) {
+        B.done ? x(B.value) : T(B.value).then(A, C);
+      }
+      z((F = F.apply(g, D || [])).next());
+    });
+  };
+  let { margin: s = !0 } = e;
+  const l = ss([0, 0]);
+  ls(a, l, (g) => t(1, r = g));
+  const o = ss([0, 0]);
+  ls(a, o, (g) => t(2, n = g));
+  let h;
+  function m() {
+    return i(this, void 0, void 0, function* () {
+      yield Promise.all([l.set([125, 140]), o.set([-125, -140])]), yield Promise.all([l.set([-125, 140]), o.set([125, -140])]), yield Promise.all([l.set([-125, 0]), o.set([125, -0])]), yield Promise.all([l.set([125, 0]), o.set([-125, 0])]);
+    });
+  }
+  function d() {
+    return i(this, void 0, void 0, function* () {
+      yield m(), h || d();
+    });
+  }
+  function v() {
+    return i(this, void 0, void 0, function* () {
+      yield Promise.all([l.set([125, 0]), o.set([-125, 0])]), d();
+    });
+  }
+  return yh(() => (v(), () => h = !0)), a.$$set = (g) => {
+    "margin" in g && t(0, s = g.margin);
+  }, [s, r, n, l, o];
+}
+class kh extends fh {
+  constructor(e) {
+    super(), gh(this, e, xh, wh, bh, { margin: 0 });
+  }
+}
+const {
+  SvelteComponent: Dh,
+  append_hydration: v0,
+  attr: St,
+  binding_callbacks: cs,
+  check_outros: Za,
+  children: It,
+  claim_component: _o,
+  claim_element: Ot,
+  claim_space: ct,
+  claim_text: ke,
+  create_component: So,
+  create_slot: Eo,
+  destroy_component: Fo,
+  destroy_each: To,
+  detach: j,
+  element: qt,
+  empty: pt,
+  ensure_array_like: jr,
+  get_all_dirty_from_scope: Co,
+  get_slot_changes: Mo,
+  group_outros: Ka,
+  init: Ah,
+  insert_hydration: J,
+  mount_component: zo,
+  noop: $a,
+  safe_not_equal: _h,
+  set_data: gt,
+  set_style: o0,
+  space: ht,
+  text: De,
+  toggle_class: lt,
+  transition_in: _t,
+  transition_out: Pt,
+  update_slot_base: Bo
+} = window.__gradio__svelte__internal, { tick: Sh } = window.__gradio__svelte__internal, { onDestroy: Eh } = window.__gradio__svelte__internal, { createEventDispatcher: Fh } = window.__gradio__svelte__internal, Th = (a) => ({}), hs = (a) => ({}), Ch = (a) => ({}), ms = (a) => ({});
+function fs(a, e, t) {
+  const r = a.slice();
+  return r[41] = e[t], r[43] = t, r;
+}
+function ds(a, e, t) {
+  const r = a.slice();
+  return r[41] = e[t], r;
+}
+function Mh(a) {
+  let e, t, r, n, i = (
     /*i18n*/
-    n[1]("common.error") + ""
-  ), l, s, i;
-  const o = (
+    a[1]("common.error") + ""
+  ), s, l, o;
+  t = new hm({
+    props: {
+      Icon: xu,
+      label: (
+        /*i18n*/
+        a[1]("common.clear")
+      ),
+      disabled: !1
+    }
+  }), t.$on(
+    "click",
+    /*click_handler*/
+    a[32]
+  );
+  const h = (
     /*#slots*/
-    n[29].error
-  ), f = Al(
-    o,
-    n,
+    a[30].error
+  ), m = Eo(
+    h,
+    a,
     /*$$scope*/
-    n[28],
-    Oe
+    a[29],
+    hs
   );
   return {
     c() {
-      e = X("span"), l = C(t), s = V(), f && f.c(), S(e, "class", "error svelte-14miwb5");
+      e = qt("div"), So(t.$$.fragment), r = ht(), n = qt("span"), s = De(i), l = ht(), m && m.c(), this.h();
     },
-    m(a, r) {
-      p(a, e, r), H(e, l), p(a, s, r), f && f.m(a, r), i = !0;
+    l(d) {
+      e = Ot(d, "DIV", { class: !0 });
+      var v = It(e);
+      _o(t.$$.fragment, v), v.forEach(j), r = ct(d), n = Ot(d, "SPAN", { class: !0 });
+      var g = It(n);
+      s = ke(g, i), g.forEach(j), l = ct(d), m && m.l(d), this.h();
     },
-    p(a, r) {
-      (!i || r[0] & /*i18n*/
-      2) && t !== (t = /*i18n*/
-      a[1]("common.error") + "") && A(l, t), f && f.p && (!i || r[0] & /*$$scope*/
-      268435456) && Zl(
-        f,
-        o,
-        a,
+    h() {
+      St(e, "class", "clear-status svelte-17v219f"), St(n, "class", "error svelte-17v219f");
+    },
+    m(d, v) {
+      J(d, e, v), zo(t, e, null), J(d, r, v), J(d, n, v), v0(n, s), J(d, l, v), m && m.m(d, v), o = !0;
+    },
+    p(d, v) {
+      const g = {};
+      v[0] & /*i18n*/
+      2 && (g.label = /*i18n*/
+      d[1]("common.clear")), t.$set(g), (!o || v[0] & /*i18n*/
+      2) && i !== (i = /*i18n*/
+      d[1]("common.error") + "") && gt(s, i), m && m.p && (!o || v[0] & /*$$scope*/
+      536870912) && Bo(
+        m,
+        h,
+        d,
         /*$$scope*/
-        a[28],
-        i ? Sl(
-          o,
+        d[29],
+        o ? Mo(
+          h,
           /*$$scope*/
-          a[28],
-          r,
-          Rl
-        ) : Nl(
+          d[29],
+          v,
+          Th
+        ) : Co(
           /*$$scope*/
-          a[28]
+          d[29]
         ),
-        Oe
+        hs
       );
     },
-    i(a) {
-      i || (Q(f, a), i = !0);
+    i(d) {
+      o || (_t(t.$$.fragment, d), _t(m, d), o = !0);
     },
-    o(a) {
-      W(f, a), i = !1;
+    o(d) {
+      Pt(t.$$.fragment, d), Pt(m, d), o = !1;
     },
-    d(a) {
-      a && (w(e), w(s)), f && f.d(a);
+    d(d) {
+      d && (j(e), j(r), j(n), j(l)), Fo(t), m && m.d(d);
     }
   };
 }
-function Dl(n) {
-  let e, t, l, s, i, o, f, a, r, _ = (
+function zh(a) {
+  let e, t, r, n, i, s, l, o, h, m = (
     /*variant*/
-    n[8] === "default" && /*show_eta_bar*/
-    n[18] && /*show_progress*/
-    n[6] === "full" && je(n)
+    a[8] === "default" && /*show_eta_bar*/
+    a[18] && /*show_progress*/
+    a[6] === "full" && ps(a)
   );
-  function u(m, z) {
+  function d(b, A) {
     if (
       /*progress*/
-      m[7]
-    )
-      return Yl;
+      b[7]
+    ) return Nh;
     if (
       /*queue_position*/
-      m[2] !== null && /*queue_size*/
-      m[3] !== void 0 && /*queue_position*/
-      m[2] >= 0
-    )
-      return Ul;
+      b[2] !== null && /*queue_size*/
+      b[3] !== void 0 && /*queue_position*/
+      b[2] >= 0
+    ) return Rh;
     if (
       /*queue_position*/
-      m[2] === 0
-    )
-      return Hl;
+      b[2] === 0
+    ) return Bh;
   }
-  let b = u(n), c = b && b(n), d = (
+  let v = d(a), g = v && v(a), D = (
     /*timer*/
-    n[5] && Ue(n)
+    a[5] && bs(a)
   );
-  const y = [Ql, Jl], v = [];
-  function F(m, z) {
+  const S = [qh, Oh], F = [];
+  function T(b, A) {
     return (
       /*last_progress_level*/
-      m[15] != null ? 0 : (
+      b[15] != null ? 0 : (
         /*show_progress*/
-        m[6] === "full" ? 1 : -1
+        b[6] === "full" ? 1 : -1
       )
     );
   }
-  ~(i = F(n)) && (o = v[i] = y[i](n));
-  let q = !/*timer*/
-  n[5] && xe(n);
+  ~(i = T(a)) && (s = F[i] = S[i](a));
+  let x = !/*timer*/
+  a[5] && _s(a);
   return {
     c() {
-      _ && _.c(), e = V(), t = X("div"), c && c.c(), l = V(), d && d.c(), s = V(), o && o.c(), f = V(), q && q.c(), a = x(), S(t, "class", "progress-text svelte-14miwb5"), B(
+      m && m.c(), e = ht(), t = qt("div"), g && g.c(), r = ht(), D && D.c(), n = ht(), s && s.c(), l = ht(), x && x.c(), o = pt(), this.h();
+    },
+    l(b) {
+      m && m.l(b), e = ct(b), t = Ot(b, "DIV", { class: !0 });
+      var A = It(t);
+      g && g.l(A), r = ct(A), D && D.l(A), A.forEach(j), n = ct(b), s && s.l(b), l = ct(b), x && x.l(b), o = pt(), this.h();
+    },
+    h() {
+      St(t, "class", "progress-text svelte-17v219f"), lt(
         t,
         "meta-text-center",
         /*variant*/
-        n[8] === "center"
-      ), B(
+        a[8] === "center"
+      ), lt(
         t,
         "meta-text",
         /*variant*/
-        n[8] === "default"
+        a[8] === "default"
       );
     },
-    m(m, z) {
-      _ && _.m(m, z), p(m, e, z), p(m, t, z), c && c.m(t, null), H(t, l), d && d.m(t, null), p(m, s, z), ~i && v[i].m(m, z), p(m, f, z), q && q.m(m, z), p(m, a, z), r = !0;
+    m(b, A) {
+      m && m.m(b, A), J(b, e, A), J(b, t, A), g && g.m(t, null), v0(t, r), D && D.m(t, null), J(b, n, A), ~i && F[i].m(b, A), J(b, l, A), x && x.m(b, A), J(b, o, A), h = !0;
     },
-    p(m, z) {
+    p(b, A) {
       /*variant*/
-      m[8] === "default" && /*show_eta_bar*/
-      m[18] && /*show_progress*/
-      m[6] === "full" ? _ ? _.p(m, z) : (_ = je(m), _.c(), _.m(e.parentNode, e)) : _ && (_.d(1), _ = null), b === (b = u(m)) && c ? c.p(m, z) : (c && c.d(1), c = b && b(m), c && (c.c(), c.m(t, l))), /*timer*/
-      m[5] ? d ? d.p(m, z) : (d = Ue(m), d.c(), d.m(t, null)) : d && (d.d(1), d = null), (!r || z[0] & /*variant*/
-      256) && B(
+      b[8] === "default" && /*show_eta_bar*/
+      b[18] && /*show_progress*/
+      b[6] === "full" ? m ? m.p(b, A) : (m = ps(b), m.c(), m.m(e.parentNode, e)) : m && (m.d(1), m = null), v === (v = d(b)) && g ? g.p(b, A) : (g && g.d(1), g = v && v(b), g && (g.c(), g.m(t, r))), /*timer*/
+      b[5] ? D ? D.p(b, A) : (D = bs(b), D.c(), D.m(t, null)) : D && (D.d(1), D = null), (!h || A[0] & /*variant*/
+      256) && lt(
         t,
         "meta-text-center",
         /*variant*/
-        m[8] === "center"
-      ), (!r || z[0] & /*variant*/
-      256) && B(
+        b[8] === "center"
+      ), (!h || A[0] & /*variant*/
+      256) && lt(
         t,
         "meta-text",
         /*variant*/
-        m[8] === "default"
+        b[8] === "default"
       );
-      let h = i;
-      i = F(m), i === h ? ~i && v[i].p(m, z) : (o && (_t(), W(v[h], 1, 1, () => {
-        v[h] = null;
-      }), at()), ~i ? (o = v[i], o ? o.p(m, z) : (o = v[i] = y[i](m), o.c()), Q(o, 1), o.m(f.parentNode, f)) : o = null), /*timer*/
-      m[5] ? q && (q.d(1), q = null) : q ? q.p(m, z) : (q = xe(m), q.c(), q.m(a.parentNode, a));
+      let C = i;
+      i = T(b), i === C ? ~i && F[i].p(b, A) : (s && (Ka(), Pt(F[C], 1, 1, () => {
+        F[C] = null;
+      }), Za()), ~i ? (s = F[i], s ? s.p(b, A) : (s = F[i] = S[i](b), s.c()), _t(s, 1), s.m(l.parentNode, l)) : s = null), /*timer*/
+      b[5] ? x && (Ka(), Pt(x, 1, 1, () => {
+        x = null;
+      }), Za()) : x ? (x.p(b, A), A[0] & /*timer*/
+      32 && _t(x, 1)) : (x = _s(b), x.c(), _t(x, 1), x.m(o.parentNode, o));
     },
-    i(m) {
-      r || (Q(o), r = !0);
+    i(b) {
+      h || (_t(s), _t(x), h = !0);
     },
-    o(m) {
-      W(o), r = !1;
+    o(b) {
+      Pt(s), Pt(x), h = !1;
     },
-    d(m) {
-      m && (w(e), w(t), w(s), w(f), w(a)), _ && _.d(m), c && c.d(), d && d.d(), ~i && v[i].d(m), q && q.d(m);
+    d(b) {
+      b && (j(e), j(t), j(n), j(l), j(o)), m && m.d(b), g && g.d(), D && D.d(), ~i && F[i].d(b), x && x.d(b);
     }
   };
 }
-function je(n) {
+function ps(a) {
   let e, t = `translateX(${/*eta_level*/
-  (n[17] || 0) * 100 - 100}%)`;
+  (a[17] || 0) * 100 - 100}%)`;
   return {
     c() {
-      e = X("div"), S(e, "class", "eta-bar svelte-14miwb5"), P(e, "transform", t);
+      e = qt("div"), this.h();
+    },
+    l(r) {
+      e = Ot(r, "DIV", { class: !0 }), It(e).forEach(j), this.h();
+    },
+    h() {
+      St(e, "class", "eta-bar svelte-17v219f"), o0(e, "transform", t);
     },
-    m(l, s) {
-      p(l, e, s);
+    m(r, n) {
+      J(r, e, n);
     },
-    p(l, s) {
-      s[0] & /*eta_level*/
+    p(r, n) {
+      n[0] & /*eta_level*/
       131072 && t !== (t = `translateX(${/*eta_level*/
-      (l[17] || 0) * 100 - 100}%)`) && P(e, "transform", t);
+      (r[17] || 0) * 100 - 100}%)`) && o0(e, "transform", t);
     },
-    d(l) {
-      l && w(e);
+    d(r) {
+      r && j(e);
     }
   };
 }
-function Hl(n) {
+function Bh(a) {
   let e;
   return {
     c() {
-      e = C("processing |");
+      e = De("processing |");
     },
-    m(t, l) {
-      p(t, e, l);
+    l(t) {
+      e = ke(t, "processing |");
     },
-    p: pe,
+    m(t, r) {
+      J(t, e, r);
+    },
+    p: $a,
     d(t) {
-      t && w(e);
+      t && j(e);
     }
   };
 }
-function Ul(n) {
+function Rh(a) {
   let e, t = (
     /*queue_position*/
-    n[2] + 1 + ""
-  ), l, s, i, o;
+    a[2] + 1 + ""
+  ), r, n, i, s;
   return {
     c() {
-      e = C("queue: "), l = C(t), s = C("/"), i = C(
+      e = De("queue: "), r = De(t), n = De("/"), i = De(
+        /*queue_size*/
+        a[3]
+      ), s = De(" |");
+    },
+    l(l) {
+      e = ke(l, "queue: "), r = ke(l, t), n = ke(l, "/"), i = ke(
+        l,
         /*queue_size*/
-        n[3]
-      ), o = C(" |");
+        a[3]
+      ), s = ke(l, " |");
     },
-    m(f, a) {
-      p(f, e, a), p(f, l, a), p(f, s, a), p(f, i, a), p(f, o, a);
+    m(l, o) {
+      J(l, e, o), J(l, r, o), J(l, n, o), J(l, i, o), J(l, s, o);
     },
-    p(f, a) {
-      a[0] & /*queue_position*/
+    p(l, o) {
+      o[0] & /*queue_position*/
       4 && t !== (t = /*queue_position*/
-      f[2] + 1 + "") && A(l, t), a[0] & /*queue_size*/
-      8 && A(
+      l[2] + 1 + "") && gt(r, t), o[0] & /*queue_size*/
+      8 && gt(
         i,
         /*queue_size*/
-        f[3]
+        l[3]
       );
     },
-    d(f) {
-      f && (w(e), w(l), w(s), w(i), w(o));
+    d(l) {
+      l && (j(e), j(r), j(n), j(i), j(s));
     }
   };
 }
-function Yl(n) {
-  let e, t = ce(
+function Nh(a) {
+  let e, t = jr(
     /*progress*/
-    n[7]
-  ), l = [];
-  for (let s = 0; s < t.length; s += 1)
-    l[s] = He(Re(n, t, s));
+    a[7]
+  ), r = [];
+  for (let n = 0; n < t.length; n += 1)
+    r[n] = vs(ds(a, t, n));
   return {
     c() {
-      for (let s = 0; s < l.length; s += 1)
-        l[s].c();
-      e = x();
+      for (let n = 0; n < r.length; n += 1)
+        r[n].c();
+      e = pt();
+    },
+    l(n) {
+      for (let i = 0; i < r.length; i += 1)
+        r[i].l(n);
+      e = pt();
     },
-    m(s, i) {
-      for (let o = 0; o < l.length; o += 1)
-        l[o] && l[o].m(s, i);
-      p(s, e, i);
+    m(n, i) {
+      for (let s = 0; s < r.length; s += 1)
+        r[s] && r[s].m(n, i);
+      J(n, e, i);
     },
-    p(s, i) {
+    p(n, i) {
       if (i[0] & /*progress*/
       128) {
-        t = ce(
+        t = jr(
           /*progress*/
-          s[7]
+          n[7]
         );
-        let o;
-        for (o = 0; o < t.length; o += 1) {
-          const f = Re(s, t, o);
-          l[o] ? l[o].p(f, i) : (l[o] = He(f), l[o].c(), l[o].m(e.parentNode, e));
+        let s;
+        for (s = 0; s < t.length; s += 1) {
+          const l = ds(n, t, s);
+          r[s] ? r[s].p(l, i) : (r[s] = vs(l), r[s].c(), r[s].m(e.parentNode, e));
         }
-        for (; o < l.length; o += 1)
-          l[o].d(1);
-        l.length = t.length;
+        for (; s < r.length; s += 1)
+          r[s].d(1);
+        r.length = t.length;
       }
     },
-    d(s) {
-      s && w(e), rt(l, s);
+    d(n) {
+      n && j(e), To(r, n);
     }
   };
 }
-function De(n) {
+function gs(a) {
   let e, t = (
     /*p*/
-    n[38].unit + ""
-  ), l, s, i = " ", o;
-  function f(_, u) {
+    a[41].unit + ""
+  ), r, n, i = " ", s;
+  function l(m, d) {
     return (
       /*p*/
-      _[38].length != null ? Kl : Gl
+      m[41].length != null ? Ih : Lh
     );
   }
-  let a = f(n), r = a(n);
+  let o = l(a), h = o(a);
   return {
     c() {
-      r.c(), e = V(), l = C(t), s = C(" | "), o = C(i);
+      h.c(), e = ht(), r = De(t), n = De(" | "), s = De(i);
+    },
+    l(m) {
+      h.l(m), e = ct(m), r = ke(m, t), n = ke(m, " | "), s = ke(m, i);
     },
-    m(_, u) {
-      r.m(_, u), p(_, e, u), p(_, l, u), p(_, s, u), p(_, o, u);
+    m(m, d) {
+      h.m(m, d), J(m, e, d), J(m, r, d), J(m, n, d), J(m, s, d);
     },
-    p(_, u) {
-      a === (a = f(_)) && r ? r.p(_, u) : (r.d(1), r = a(_), r && (r.c(), r.m(e.parentNode, e))), u[0] & /*progress*/
+    p(m, d) {
+      o === (o = l(m)) && h ? h.p(m, d) : (h.d(1), h = o(m), h && (h.c(), h.m(e.parentNode, e))), d[0] & /*progress*/
       128 && t !== (t = /*p*/
-      _[38].unit + "") && A(l, t);
+      m[41].unit + "") && gt(r, t);
     },
-    d(_) {
-      _ && (w(e), w(l), w(s), w(o)), r.d(_);
+    d(m) {
+      m && (j(e), j(r), j(n), j(s)), h.d(m);
     }
   };
 }
-function Gl(n) {
-  let e = G(
+function Lh(a) {
+  let e = T0(
     /*p*/
-    n[38].index || 0
+    a[41].index || 0
   ) + "", t;
   return {
     c() {
-      t = C(e);
+      t = De(e);
+    },
+    l(r) {
+      t = ke(r, e);
     },
-    m(l, s) {
-      p(l, t, s);
+    m(r, n) {
+      J(r, t, n);
     },
-    p(l, s) {
-      s[0] & /*progress*/
-      128 && e !== (e = G(
+    p(r, n) {
+      n[0] & /*progress*/
+      128 && e !== (e = T0(
         /*p*/
-        l[38].index || 0
-      ) + "") && A(t, e);
+        r[41].index || 0
+      ) + "") && gt(t, e);
     },
-    d(l) {
-      l && w(t);
+    d(r) {
+      r && j(t);
     }
   };
 }
-function Kl(n) {
-  let e = G(
+function Ih(a) {
+  let e = T0(
     /*p*/
-    n[38].index || 0
-  ) + "", t, l, s = G(
+    a[41].index || 0
+  ) + "", t, r, n = T0(
     /*p*/
-    n[38].length
+    a[41].length
   ) + "", i;
   return {
     c() {
-      t = C(e), l = C("/"), i = C(s);
+      t = De(e), r = De("/"), i = De(n);
     },
-    m(o, f) {
-      p(o, t, f), p(o, l, f), p(o, i, f);
+    l(s) {
+      t = ke(s, e), r = ke(s, "/"), i = ke(s, n);
     },
-    p(o, f) {
-      f[0] & /*progress*/
-      128 && e !== (e = G(
+    m(s, l) {
+      J(s, t, l), J(s, r, l), J(s, i, l);
+    },
+    p(s, l) {
+      l[0] & /*progress*/
+      128 && e !== (e = T0(
         /*p*/
-        o[38].index || 0
-      ) + "") && A(t, e), f[0] & /*progress*/
-      128 && s !== (s = G(
+        s[41].index || 0
+      ) + "") && gt(t, e), l[0] & /*progress*/
+      128 && n !== (n = T0(
         /*p*/
-        o[38].length
-      ) + "") && A(i, s);
+        s[41].length
+      ) + "") && gt(i, n);
     },
-    d(o) {
-      o && (w(t), w(l), w(i));
+    d(s) {
+      s && (j(t), j(r), j(i));
     }
   };
 }
-function He(n) {
+function vs(a) {
   let e, t = (
     /*p*/
-    n[38].index != null && De(n)
+    a[41].index != null && gs(a)
   );
   return {
     c() {
-      t && t.c(), e = x();
+      t && t.c(), e = pt();
+    },
+    l(r) {
+      t && t.l(r), e = pt();
     },
-    m(l, s) {
-      t && t.m(l, s), p(l, e, s);
+    m(r, n) {
+      t && t.m(r, n), J(r, e, n);
     },
-    p(l, s) {
+    p(r, n) {
       /*p*/
-      l[38].index != null ? t ? t.p(l, s) : (t = De(l), t.c(), t.m(e.parentNode, e)) : t && (t.d(1), t = null);
+      r[41].index != null ? t ? t.p(r, n) : (t = gs(r), t.c(), t.m(e.parentNode, e)) : t && (t.d(1), t = null);
     },
-    d(l) {
-      l && w(e), t && t.d(l);
+    d(r) {
+      r && j(e), t && t.d(r);
     }
   };
 }
-function Ue(n) {
+function bs(a) {
   let e, t = (
     /*eta*/
-    n[0] ? `/${/*formatted_eta*/
-    n[19]}` : ""
-  ), l, s;
+    a[0] ? `/${/*formatted_eta*/
+    a[19]}` : ""
+  ), r, n;
   return {
     c() {
-      e = C(
+      e = De(
         /*formatted_timer*/
-        n[20]
-      ), l = C(t), s = C("s");
+        a[20]
+      ), r = De(t), n = De("s");
     },
-    m(i, o) {
-      p(i, e, o), p(i, l, o), p(i, s, o);
+    l(i) {
+      e = ke(
+        i,
+        /*formatted_timer*/
+        a[20]
+      ), r = ke(i, t), n = ke(i, "s");
     },
-    p(i, o) {
-      o[0] & /*formatted_timer*/
-      1048576 && A(
+    m(i, s) {
+      J(i, e, s), J(i, r, s), J(i, n, s);
+    },
+    p(i, s) {
+      s[0] & /*formatted_timer*/
+      1048576 && gt(
         e,
         /*formatted_timer*/
         i[20]
-      ), o[0] & /*eta, formatted_eta*/
+      ), s[0] & /*eta, formatted_eta*/
       524289 && t !== (t = /*eta*/
       i[0] ? `/${/*formatted_eta*/
-      i[19]}` : "") && A(l, t);
+      i[19]}` : "") && gt(r, t);
     },
     d(i) {
-      i && (w(e), w(l), w(s));
+      i && (j(e), j(r), j(n));
     }
   };
 }
-function Jl(n) {
+function Oh(a) {
   let e, t;
-  return e = new Ll({
+  return e = new kh({
     props: { margin: (
       /*variant*/
-      n[8] === "default"
+      a[8] === "default"
     ) }
   }), {
     c() {
-      Bl(e.$$.fragment);
+      So(e.$$.fragment);
+    },
+    l(r) {
+      _o(e.$$.fragment, r);
+    },
+    m(r, n) {
+      zo(e, r, n), t = !0;
+    },
+    p(r, n) {
+      const i = {};
+      n[0] & /*variant*/
+      256 && (i.margin = /*variant*/
+      r[8] === "default"), e.$set(i);
+    },
+    i(r) {
+      t || (_t(e.$$.fragment, r), t = !0);
+    },
+    o(r) {
+      Pt(e.$$.fragment, r), t = !1;
+    },
+    d(r) {
+      Fo(e, r);
+    }
+  };
+}
+function qh(a) {
+  let e, t, r, n, i, s = `${/*last_progress_level*/
+  a[15] * 100}%`, l = (
+    /*progress*/
+    a[7] != null && ys(a)
+  );
+  return {
+    c() {
+      e = qt("div"), t = qt("div"), l && l.c(), r = ht(), n = qt("div"), i = qt("div"), this.h();
+    },
+    l(o) {
+      e = Ot(o, "DIV", { class: !0 });
+      var h = It(e);
+      t = Ot(h, "DIV", { class: !0 });
+      var m = It(t);
+      l && l.l(m), m.forEach(j), r = ct(h), n = Ot(h, "DIV", { class: !0 });
+      var d = It(n);
+      i = Ot(d, "DIV", { class: !0 }), It(i).forEach(j), d.forEach(j), h.forEach(j), this.h();
+    },
+    h() {
+      St(t, "class", "progress-level-inner svelte-17v219f"), St(i, "class", "progress-bar svelte-17v219f"), o0(i, "width", s), St(n, "class", "progress-bar-wrap svelte-17v219f"), St(e, "class", "progress-level svelte-17v219f");
+    },
+    m(o, h) {
+      J(o, e, h), v0(e, t), l && l.m(t, null), v0(e, r), v0(e, n), v0(n, i), a[31](i);
+    },
+    p(o, h) {
+      /*progress*/
+      o[7] != null ? l ? l.p(o, h) : (l = ys(o), l.c(), l.m(t, null)) : l && (l.d(1), l = null), h[0] & /*last_progress_level*/
+      32768 && s !== (s = `${/*last_progress_level*/
+      o[15] * 100}%`) && o0(i, "width", s);
+    },
+    i: $a,
+    o: $a,
+    d(o) {
+      o && j(e), l && l.d(), a[31](null);
+    }
+  };
+}
+function ys(a) {
+  let e, t = jr(
+    /*progress*/
+    a[7]
+  ), r = [];
+  for (let n = 0; n < t.length; n += 1)
+    r[n] = As(fs(a, t, n));
+  return {
+    c() {
+      for (let n = 0; n < r.length; n += 1)
+        r[n].c();
+      e = pt();
+    },
+    l(n) {
+      for (let i = 0; i < r.length; i += 1)
+        r[i].l(n);
+      e = pt();
+    },
+    m(n, i) {
+      for (let s = 0; s < r.length; s += 1)
+        r[s] && r[s].m(n, i);
+      J(n, e, i);
+    },
+    p(n, i) {
+      if (i[0] & /*progress_level, progress*/
+      16512) {
+        t = jr(
+          /*progress*/
+          n[7]
+        );
+        let s;
+        for (s = 0; s < t.length; s += 1) {
+          const l = fs(n, t, s);
+          r[s] ? r[s].p(l, i) : (r[s] = As(l), r[s].c(), r[s].m(e.parentNode, e));
+        }
+        for (; s < r.length; s += 1)
+          r[s].d(1);
+        r.length = t.length;
+      }
+    },
+    d(n) {
+      n && j(e), To(r, n);
+    }
+  };
+}
+function ws(a) {
+  let e, t, r, n, i = (
+    /*i*/
+    a[43] !== 0 && Ph()
+  ), s = (
+    /*p*/
+    a[41].desc != null && xs(a)
+  ), l = (
+    /*p*/
+    a[41].desc != null && /*progress_level*/
+    a[14] && /*progress_level*/
+    a[14][
+      /*i*/
+      a[43]
+    ] != null && ks()
+  ), o = (
+    /*progress_level*/
+    a[14] != null && Ds(a)
+  );
+  return {
+    c() {
+      i && i.c(), e = ht(), s && s.c(), t = ht(), l && l.c(), r = ht(), o && o.c(), n = pt();
+    },
+    l(h) {
+      i && i.l(h), e = ct(h), s && s.l(h), t = ct(h), l && l.l(h), r = ct(h), o && o.l(h), n = pt();
+    },
+    m(h, m) {
+      i && i.m(h, m), J(h, e, m), s && s.m(h, m), J(h, t, m), l && l.m(h, m), J(h, r, m), o && o.m(h, m), J(h, n, m);
+    },
+    p(h, m) {
+      /*p*/
+      h[41].desc != null ? s ? s.p(h, m) : (s = xs(h), s.c(), s.m(t.parentNode, t)) : s && (s.d(1), s = null), /*p*/
+      h[41].desc != null && /*progress_level*/
+      h[14] && /*progress_level*/
+      h[14][
+        /*i*/
+        h[43]
+      ] != null ? l || (l = ks(), l.c(), l.m(r.parentNode, r)) : l && (l.d(1), l = null), /*progress_level*/
+      h[14] != null ? o ? o.p(h, m) : (o = Ds(h), o.c(), o.m(n.parentNode, n)) : o && (o.d(1), o = null);
+    },
+    d(h) {
+      h && (j(e), j(t), j(r), j(n)), i && i.d(h), s && s.d(h), l && l.d(h), o && o.d(h);
+    }
+  };
+}
+function Ph(a) {
+  let e;
+  return {
+    c() {
+      e = De(" /");
+    },
+    l(t) {
+      e = ke(t, " /");
+    },
+    m(t, r) {
+      J(t, e, r);
+    },
+    d(t) {
+      t && j(e);
+    }
+  };
+}
+function xs(a) {
+  let e = (
+    /*p*/
+    a[41].desc + ""
+  ), t;
+  return {
+    c() {
+      t = De(e);
     },
-    m(l, s) {
-      Xl(e, l, s), t = !0;
+    l(r) {
+      t = ke(r, e);
     },
-    p(l, s) {
-      const i = {};
-      s[0] & /*variant*/
-      256 && (i.margin = /*variant*/
-      l[8] === "default"), e.$set(i);
-    },
-    i(l) {
-      t || (Q(e.$$.fragment, l), t = !0);
+    m(r, n) {
+      J(r, t, n);
     },
-    o(l) {
-      W(e.$$.fragment, l), t = !1;
+    p(r, n) {
+      n[0] & /*progress*/
+      128 && e !== (e = /*p*/
+      r[41].desc + "") && gt(t, e);
     },
-    d(l) {
-      Ml(e, l);
+    d(r) {
+      r && j(t);
     }
   };
 }
-function Ql(n) {
-  let e, t, l, s, i, o = `${/*last_progress_level*/
-  n[15] * 100}%`, f = (
-    /*progress*/
-    n[7] != null && Ye(n)
-  );
+function ks(a) {
+  let e;
   return {
     c() {
-      e = X("div"), t = X("div"), f && f.c(), l = V(), s = X("div"), i = X("div"), S(t, "class", "progress-level-inner svelte-14miwb5"), S(i, "class", "progress-bar svelte-14miwb5"), P(i, "width", o), S(s, "class", "progress-bar-wrap svelte-14miwb5"), S(e, "class", "progress-level svelte-14miwb5");
+      e = De("-");
     },
-    m(a, r) {
-      p(a, e, r), H(e, t), f && f.m(t, null), H(e, l), H(e, s), H(s, i), n[30](i);
+    l(t) {
+      e = ke(t, "-");
     },
-    p(a, r) {
-      /*progress*/
-      a[7] != null ? f ? f.p(a, r) : (f = Ye(a), f.c(), f.m(t, null)) : f && (f.d(1), f = null), r[0] & /*last_progress_level*/
-      32768 && o !== (o = `${/*last_progress_level*/
-      a[15] * 100}%`) && P(i, "width", o);
+    m(t, r) {
+      J(t, e, r);
     },
-    i: pe,
-    o: pe,
-    d(a) {
-      a && w(e), f && f.d(), n[30](null);
+    d(t) {
+      t && j(e);
     }
   };
 }
-function Ye(n) {
-  let e, t = ce(
-    /*progress*/
-    n[7]
-  ), l = [];
-  for (let s = 0; s < t.length; s += 1)
-    l[s] = We(Pe(n, t, s));
+function Ds(a) {
+  let e = (100 * /*progress_level*/
+  (a[14][
+    /*i*/
+    a[43]
+  ] || 0)).toFixed(1) + "", t, r;
   return {
     c() {
-      for (let s = 0; s < l.length; s += 1)
-        l[s].c();
-      e = x();
+      t = De(e), r = De("%");
     },
-    m(s, i) {
-      for (let o = 0; o < l.length; o += 1)
-        l[o] && l[o].m(s, i);
-      p(s, e, i);
+    l(n) {
+      t = ke(n, e), r = ke(n, "%");
     },
-    p(s, i) {
-      if (i[0] & /*progress_level, progress*/
-      16512) {
-        t = ce(
-          /*progress*/
-          s[7]
-        );
-        let o;
-        for (o = 0; o < t.length; o += 1) {
-          const f = Pe(s, t, o);
-          l[o] ? l[o].p(f, i) : (l[o] = We(f), l[o].c(), l[o].m(e.parentNode, e));
-        }
-        for (; o < l.length; o += 1)
-          l[o].d(1);
-        l.length = t.length;
-      }
+    m(n, i) {
+      J(n, t, i), J(n, r, i);
     },
-    d(s) {
-      s && w(e), rt(l, s);
+    p(n, i) {
+      i[0] & /*progress_level*/
+      16384 && e !== (e = (100 * /*progress_level*/
+      (n[14][
+        /*i*/
+        n[43]
+      ] || 0)).toFixed(1) + "") && gt(t, e);
+    },
+    d(n) {
+      n && (j(t), j(r));
     }
   };
 }
-function Ge(n) {
-  let e, t, l, s, i = (
-    /*i*/
-    n[40] !== 0 && Wl()
-  ), o = (
-    /*p*/
-    n[38].desc != null && Ke(n)
-  ), f = (
+function As(a) {
+  let e, t = (
     /*p*/
-    n[38].desc != null && /*progress_level*/
-    n[14] && /*progress_level*/
-    n[14][
+    (a[41].desc != null || /*progress_level*/
+    a[14] && /*progress_level*/
+    a[14][
       /*i*/
-      n[40]
-    ] != null && Je()
-  ), a = (
-    /*progress_level*/
-    n[14] != null && Qe(n)
+      a[43]
+    ] != null) && ws(a)
   );
   return {
     c() {
-      i && i.c(), e = V(), o && o.c(), t = V(), f && f.c(), l = V(), a && a.c(), s = x();
+      t && t.c(), e = pt();
     },
-    m(r, _) {
-      i && i.m(r, _), p(r, e, _), o && o.m(r, _), p(r, t, _), f && f.m(r, _), p(r, l, _), a && a.m(r, _), p(r, s, _);
+    l(r) {
+      t && t.l(r), e = pt();
     },
-    p(r, _) {
+    m(r, n) {
+      t && t.m(r, n), J(r, e, n);
+    },
+    p(r, n) {
       /*p*/
-      r[38].desc != null ? o ? o.p(r, _) : (o = Ke(r), o.c(), o.m(t.parentNode, t)) : o && (o.d(1), o = null), /*p*/
-      r[38].desc != null && /*progress_level*/
+      r[41].desc != null || /*progress_level*/
       r[14] && /*progress_level*/
       r[14][
         /*i*/
-        r[40]
-      ] != null ? f || (f = Je(), f.c(), f.m(l.parentNode, l)) : f && (f.d(1), f = null), /*progress_level*/
-      r[14] != null ? a ? a.p(r, _) : (a = Qe(r), a.c(), a.m(s.parentNode, s)) : a && (a.d(1), a = null);
+        r[43]
+      ] != null ? t ? t.p(r, n) : (t = ws(r), t.c(), t.m(e.parentNode, e)) : t && (t.d(1), t = null);
     },
     d(r) {
-      r && (w(e), w(t), w(l), w(s)), i && i.d(r), o && o.d(r), f && f.d(r), a && a.d(r);
+      r && j(e), t && t.d(r);
     }
   };
 }
-function Wl(n) {
-  let e;
+function _s(a) {
+  let e, t, r, n;
+  const i = (
+    /*#slots*/
+    a[30]["additional-loading-text"]
+  ), s = Eo(
+    i,
+    a,
+    /*$$scope*/
+    a[29],
+    ms
+  );
   return {
     c() {
-      e = C(" /");
+      e = qt("p"), t = De(
+        /*loading_text*/
+        a[9]
+      ), r = ht(), s && s.c(), this.h();
     },
-    m(t, l) {
-      p(t, e, l);
+    l(l) {
+      e = Ot(l, "P", { class: !0 });
+      var o = It(e);
+      t = ke(
+        o,
+        /*loading_text*/
+        a[9]
+      ), o.forEach(j), r = ct(l), s && s.l(l), this.h();
     },
-    d(t) {
-      t && w(e);
+    h() {
+      St(e, "class", "loading svelte-17v219f");
+    },
+    m(l, o) {
+      J(l, e, o), v0(e, t), J(l, r, o), s && s.m(l, o), n = !0;
+    },
+    p(l, o) {
+      (!n || o[0] & /*loading_text*/
+      512) && gt(
+        t,
+        /*loading_text*/
+        l[9]
+      ), s && s.p && (!n || o[0] & /*$$scope*/
+      536870912) && Bo(
+        s,
+        i,
+        l,
+        /*$$scope*/
+        l[29],
+        n ? Mo(
+          i,
+          /*$$scope*/
+          l[29],
+          o,
+          Ch
+        ) : Co(
+          /*$$scope*/
+          l[29]
+        ),
+        ms
+      );
+    },
+    i(l) {
+      n || (_t(s, l), n = !0);
+    },
+    o(l) {
+      Pt(s, l), n = !1;
+    },
+    d(l) {
+      l && (j(e), j(r)), s && s.d(l);
     }
   };
 }
-function Ke(n) {
-  let e = (
-    /*p*/
-    n[38].desc + ""
-  ), t;
-  return {
+function Hh(a) {
+  let e, t, r, n, i;
+  const s = [zh, Mh], l = [];
+  function o(h, m) {
+    return (
+      /*status*/
+      h[4] === "pending" ? 0 : (
+        /*status*/
+        h[4] === "error" ? 1 : -1
+      )
+    );
+  }
+  return ~(t = o(a)) && (r = l[t] = s[t](a)), {
     c() {
-      t = C(e);
+      e = qt("div"), r && r.c(), this.h();
     },
-    m(l, s) {
-      p(l, t, s);
+    l(h) {
+      e = Ot(h, "DIV", { class: !0 });
+      var m = It(e);
+      r && r.l(m), m.forEach(j), this.h();
     },
-    p(l, s) {
-      s[0] & /*progress*/
-      128 && e !== (e = /*p*/
-      l[38].desc + "") && A(t, e);
+    h() {
+      St(e, "class", n = "wrap " + /*variant*/
+      a[8] + " " + /*show_progress*/
+      a[6] + " svelte-17v219f"), lt(e, "hide", !/*status*/
+      a[4] || /*status*/
+      a[4] === "complete" || /*show_progress*/
+      a[6] === "hidden" || /*status*/
+      a[4] == "streaming"), lt(
+        e,
+        "translucent",
+        /*variant*/
+        a[8] === "center" && /*status*/
+        (a[4] === "pending" || /*status*/
+        a[4] === "error") || /*translucent*/
+        a[11] || /*show_progress*/
+        a[6] === "minimal"
+      ), lt(
+        e,
+        "generating",
+        /*status*/
+        a[4] === "generating" && /*show_progress*/
+        a[6] === "full"
+      ), lt(
+        e,
+        "border",
+        /*border*/
+        a[12]
+      ), o0(
+        e,
+        "position",
+        /*absolute*/
+        a[10] ? "absolute" : "static"
+      ), o0(
+        e,
+        "padding",
+        /*absolute*/
+        a[10] ? "0" : "var(--size-8) 0"
+      );
     },
-    d(l) {
-      l && w(t);
+    m(h, m) {
+      J(h, e, m), ~t && l[t].m(e, null), a[33](e), i = !0;
+    },
+    p(h, m) {
+      let d = t;
+      t = o(h), t === d ? ~t && l[t].p(h, m) : (r && (Ka(), Pt(l[d], 1, 1, () => {
+        l[d] = null;
+      }), Za()), ~t ? (r = l[t], r ? r.p(h, m) : (r = l[t] = s[t](h), r.c()), _t(r, 1), r.m(e, null)) : r = null), (!i || m[0] & /*variant, show_progress*/
+      320 && n !== (n = "wrap " + /*variant*/
+      h[8] + " " + /*show_progress*/
+      h[6] + " svelte-17v219f")) && St(e, "class", n), (!i || m[0] & /*variant, show_progress, status, show_progress*/
+      336) && lt(e, "hide", !/*status*/
+      h[4] || /*status*/
+      h[4] === "complete" || /*show_progress*/
+      h[6] === "hidden" || /*status*/
+      h[4] == "streaming"), (!i || m[0] & /*variant, show_progress, variant, status, translucent, show_progress*/
+      2384) && lt(
+        e,
+        "translucent",
+        /*variant*/
+        h[8] === "center" && /*status*/
+        (h[4] === "pending" || /*status*/
+        h[4] === "error") || /*translucent*/
+        h[11] || /*show_progress*/
+        h[6] === "minimal"
+      ), (!i || m[0] & /*variant, show_progress, status, show_progress*/
+      336) && lt(
+        e,
+        "generating",
+        /*status*/
+        h[4] === "generating" && /*show_progress*/
+        h[6] === "full"
+      ), (!i || m[0] & /*variant, show_progress, border*/
+      4416) && lt(
+        e,
+        "border",
+        /*border*/
+        h[12]
+      ), m[0] & /*absolute*/
+      1024 && o0(
+        e,
+        "position",
+        /*absolute*/
+        h[10] ? "absolute" : "static"
+      ), m[0] & /*absolute*/
+      1024 && o0(
+        e,
+        "padding",
+        /*absolute*/
+        h[10] ? "0" : "var(--size-8) 0"
+      );
+    },
+    i(h) {
+      i || (_t(r), i = !0);
+    },
+    o(h) {
+      Pt(r), i = !1;
+    },
+    d(h) {
+      h && j(e), ~t && l[t].d(), a[33](null);
     }
   };
 }
-function Je(n) {
-  let e;
-  return {
+var Uh = function(a, e, t, r) {
+  function n(i) {
+    return i instanceof t ? i : new t(function(s) {
+      s(i);
+    });
+  }
+  return new (t || (t = Promise))(function(i, s) {
+    function l(m) {
+      try {
+        h(r.next(m));
+      } catch (d) {
+        s(d);
+      }
+    }
+    function o(m) {
+      try {
+        h(r.throw(m));
+      } catch (d) {
+        s(d);
+      }
+    }
+    function h(m) {
+      m.done ? i(m.value) : n(m.value).then(l, o);
+    }
+    h((r = r.apply(a, e || [])).next());
+  });
+};
+let Er = [], Ea = !1;
+const Gh = typeof window < "u", Ro = Gh ? window.requestAnimationFrame : (a) => {
+};
+function Vh(a) {
+  return Uh(this, arguments, void 0, function* (e, t = !0) {
+    if (!(window.__gradio_mode__ === "website" || window.__gradio_mode__ !== "app" && t !== !0)) {
+      if (Er.push(e), !Ea) Ea = !0;
+      else return;
+      yield Sh(), Ro(() => {
+        let r = [0, 0];
+        for (let n = 0; n < Er.length; n++) {
+          const s = Er[n].getBoundingClientRect();
+          (n === 0 || s.top + window.scrollY <= r[0]) && (r[0] = s.top + window.scrollY, r[1] = n);
+        }
+        window.scrollTo({ top: r[0] - 20, behavior: "smooth" }), Ea = !1, Er = [];
+      });
+    }
+  });
+}
+function Wh(a, e, t) {
+  let r, { $$slots: n = {}, $$scope: i } = e;
+  this && this.__awaiter;
+  const s = Fh();
+  let { i18n: l } = e, { eta: o = null } = e, { queue_position: h } = e, { queue_size: m } = e, { status: d } = e, { scroll_to_output: v = !1 } = e, { timer: g = !0 } = e, { show_progress: D = "full" } = e, { message: S = null } = e, { progress: F = null } = e, { variant: T = "default" } = e, { loading_text: x = "Loading..." } = e, { absolute: b = !0 } = e, { translucent: A = !1 } = e, { border: C = !1 } = e, { autoscroll: z } = e, B, P = !1, M = 0, R = 0, V = null, X = null, be = 0, ae = null, fe, ye = null, Ne = !0;
+  const se = () => {
+    t(0, o = t(27, V = t(19, te = null))), t(25, M = performance.now()), t(26, R = 0), P = !0, he();
+  };
+  function he() {
+    Ro(() => {
+      t(26, R = (performance.now() - M) / 1e3), P && he();
+    });
+  }
+  function ge() {
+    t(26, R = 0), t(0, o = t(27, V = t(19, te = null))), P && (P = !1);
+  }
+  Eh(() => {
+    P && ge();
+  });
+  let te = null;
+  function le(q) {
+    cs[q ? "unshift" : "push"](() => {
+      ye = q, t(16, ye), t(7, F), t(14, ae), t(15, fe);
+    });
+  }
+  const oe = () => {
+    s("clear_status");
+  };
+  function Me(q) {
+    cs[q ? "unshift" : "push"](() => {
+      B = q, t(13, B);
+    });
+  }
+  return a.$$set = (q) => {
+    "i18n" in q && t(1, l = q.i18n), "eta" in q && t(0, o = q.eta), "queue_position" in q && t(2, h = q.queue_position), "queue_size" in q && t(3, m = q.queue_size), "status" in q && t(4, d = q.status), "scroll_to_output" in q && t(22, v = q.scroll_to_output), "timer" in q && t(5, g = q.timer), "show_progress" in q && t(6, D = q.show_progress), "message" in q && t(23, S = q.message), "progress" in q && t(7, F = q.progress), "variant" in q && t(8, T = q.variant), "loading_text" in q && t(9, x = q.loading_text), "absolute" in q && t(10, b = q.absolute), "translucent" in q && t(11, A = q.translucent), "border" in q && t(12, C = q.border), "autoscroll" in q && t(24, z = q.autoscroll), "$$scope" in q && t(29, i = q.$$scope);
+  }, a.$$.update = () => {
+    a.$$.dirty[0] & /*eta, old_eta, timer_start, eta_from_start*/
+    436207617 && (o === null && t(0, o = V), o != null && V !== o && (t(28, X = (performance.now() - M) / 1e3 + o), t(19, te = X.toFixed(1)), t(27, V = o))), a.$$.dirty[0] & /*eta_from_start, timer_diff*/
+    335544320 && t(17, be = X === null || X <= 0 || !R ? null : Math.min(R / X, 1)), a.$$.dirty[0] & /*progress*/
+    128 && F != null && t(18, Ne = !1), a.$$.dirty[0] & /*progress, progress_level, progress_bar, last_progress_level*/
+    114816 && (F != null ? t(14, ae = F.map((q) => {
+      if (q.index != null && q.length != null)
+        return q.index / q.length;
+      if (q.progress != null)
+        return q.progress;
+    })) : t(14, ae = null), ae ? (t(15, fe = ae[ae.length - 1]), ye && (fe === 0 ? t(16, ye.style.transition = "0", ye) : t(16, ye.style.transition = "150ms", ye))) : t(15, fe = void 0)), a.$$.dirty[0] & /*status*/
+    16 && (d === "pending" ? se() : ge()), a.$$.dirty[0] & /*el, scroll_to_output, status, autoscroll*/
+    20979728 && B && v && (d === "pending" || d === "complete") && Vh(B, z), a.$$.dirty[0] & /*status, message*/
+    8388624, a.$$.dirty[0] & /*timer_diff*/
+    67108864 && t(20, r = R.toFixed(1));
+  }, [
+    o,
+    l,
+    h,
+    m,
+    d,
+    g,
+    D,
+    F,
+    T,
+    x,
+    b,
+    A,
+    C,
+    B,
+    ae,
+    fe,
+    ye,
+    be,
+    Ne,
+    te,
+    r,
+    s,
+    v,
+    S,
+    z,
+    M,
+    R,
+    V,
+    X,
+    i,
+    n,
+    le,
+    oe,
+    Me
+  ];
+}
+class Xh extends Dh {
+  constructor(e) {
+    super(), Ah(
+      this,
+      e,
+      Wh,
+      Hh,
+      _h,
+      {
+        i18n: 1,
+        eta: 0,
+        queue_position: 2,
+        queue_size: 3,
+        status: 4,
+        scroll_to_output: 22,
+        timer: 5,
+        show_progress: 6,
+        message: 23,
+        progress: 7,
+        variant: 8,
+        loading_text: 9,
+        absolute: 10,
+        translucent: 11,
+        border: 12,
+        autoscroll: 24
+      },
+      null,
+      [-1, -1]
+    );
+  }
+}
+/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */
+const {
+  entries: No,
+  setPrototypeOf: Ss,
+  isFrozen: Yh,
+  getPrototypeOf: jh,
+  getOwnPropertyDescriptor: Zh
+} = Object;
+let {
+  freeze: Ge,
+  seal: vt,
+  create: Lo
+} = Object, {
+  apply: Qa,
+  construct: Ja
+} = typeof Reflect < "u" && Reflect;
+Ge || (Ge = function(e) {
+  return e;
+});
+vt || (vt = function(e) {
+  return e;
+});
+Qa || (Qa = function(e, t, r) {
+  return e.apply(t, r);
+});
+Ja || (Ja = function(e, t) {
+  return new e(...t);
+});
+const Fr = rt(Array.prototype.forEach), Es = rt(Array.prototype.pop), H0 = rt(Array.prototype.push), Or = rt(String.prototype.toLowerCase), Fa = rt(String.prototype.toString), Fs = rt(String.prototype.match), U0 = rt(String.prototype.replace), Kh = rt(String.prototype.indexOf), $h = rt(String.prototype.trim), Dt = rt(Object.prototype.hasOwnProperty), He = rt(RegExp.prototype.test), G0 = Qh(TypeError);
+function rt(a) {
+  return function(e) {
+    for (var t = arguments.length, r = new Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++)
+      r[n - 1] = arguments[n];
+    return Qa(a, e, r);
+  };
+}
+function Qh(a) {
+  return function() {
+    for (var e = arguments.length, t = new Array(e), r = 0; r < e; r++)
+      t[r] = arguments[r];
+    return Ja(a, t);
+  };
+}
+function re(a, e) {
+  let t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Or;
+  Ss && Ss(a, null);
+  let r = e.length;
+  for (; r--; ) {
+    let n = e[r];
+    if (typeof n == "string") {
+      const i = t(n);
+      i !== n && (Yh(e) || (e[r] = i), n = i);
+    }
+    a[n] = !0;
+  }
+  return a;
+}
+function Jh(a) {
+  for (let e = 0; e < a.length; e++)
+    Dt(a, e) || (a[e] = null);
+  return a;
+}
+function g0(a) {
+  const e = Lo(null);
+  for (const [t, r] of No(a))
+    Dt(a, t) && (Array.isArray(r) ? e[t] = Jh(r) : r && typeof r == "object" && r.constructor === Object ? e[t] = g0(r) : e[t] = r);
+  return e;
+}
+function V0(a, e) {
+  for (; a !== null; ) {
+    const r = Zh(a, e);
+    if (r) {
+      if (r.get)
+        return rt(r.get);
+      if (typeof r.value == "function")
+        return rt(r.value);
+    }
+    a = jh(a);
+  }
+  function t() {
+    return null;
+  }
+  return t;
+}
+const Ts = Ge(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), Ta = Ge(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), Ca = Ge(["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"]), e2 = Ge(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), Ma = Ge(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), t2 = Ge(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Cs = Ge(["#text"]), Ms = Ge(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]), za = Ge(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), zs = Ge(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), Tr = Ge(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), r2 = vt(/\{\{[\w\W]*|[\w\W]*\}\}/gm), a2 = vt(/<%[\w\W]*|[\w\W]*%>/gm), n2 = vt(/\${[\w\W]*}/gm), i2 = vt(/^data-[\-\w.\u00B7-\uFFFF]/), s2 = vt(/^aria-[\-\w]+$/), Io = vt(
+  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
+  // eslint-disable-line no-useless-escape
+), l2 = vt(/^(?:\w+script|data):/i), o2 = vt(
+  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
+  // eslint-disable-line no-control-regex
+), Oo = vt(/^html$/i), u2 = vt(/^[a-z][.\w]*(-[.\w]+)+$/i);
+var Bs = /* @__PURE__ */ Object.freeze({
+  __proto__: null,
+  MUSTACHE_EXPR: r2,
+  ERB_EXPR: a2,
+  TMPLIT_EXPR: n2,
+  DATA_ATTR: i2,
+  ARIA_ATTR: s2,
+  IS_ALLOWED_URI: Io,
+  IS_SCRIPT_OR_DATA: l2,
+  ATTR_WHITESPACE: o2,
+  DOCTYPE_NAME: Oo,
+  CUSTOM_ELEMENT: u2
+});
+const W0 = {
+  element: 1,
+  attribute: 2,
+  text: 3,
+  cdataSection: 4,
+  entityReference: 5,
+  // Deprecated
+  entityNode: 6,
+  // Deprecated
+  progressingInstruction: 7,
+  comment: 8,
+  document: 9,
+  documentType: 10,
+  documentFragment: 11,
+  notation: 12
+  // Deprecated
+}, c2 = function() {
+  return typeof window > "u" ? null : window;
+}, h2 = function(e, t) {
+  if (typeof e != "object" || typeof e.createPolicy != "function")
+    return null;
+  let r = null;
+  const n = "data-tt-policy-suffix";
+  t && t.hasAttribute(n) && (r = t.getAttribute(n));
+  const i = "dompurify" + (r ? "#" + r : "");
+  try {
+    return e.createPolicy(i, {
+      createHTML(s) {
+        return s;
+      },
+      createScriptURL(s) {
+        return s;
+      }
+    });
+  } catch {
+    return console.warn("TrustedTypes policy " + i + " could not be created."), null;
+  }
+};
+function qo() {
+  let a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : c2();
+  const e = (Y) => qo(Y);
+  if (e.version = "3.1.7", e.removed = [], !a || !a.document || a.document.nodeType !== W0.document)
+    return e.isSupported = !1, e;
+  let {
+    document: t
+  } = a;
+  const r = t, n = r.currentScript, {
+    DocumentFragment: i,
+    HTMLTemplateElement: s,
+    Node: l,
+    Element: o,
+    NodeFilter: h,
+    NamedNodeMap: m = a.NamedNodeMap || a.MozNamedAttrMap,
+    HTMLFormElement: d,
+    DOMParser: v,
+    trustedTypes: g
+  } = a, D = o.prototype, S = V0(D, "cloneNode"), F = V0(D, "remove"), T = V0(D, "nextSibling"), x = V0(D, "childNodes"), b = V0(D, "parentNode");
+  if (typeof s == "function") {
+    const Y = t.createElement("template");
+    Y.content && Y.content.ownerDocument && (t = Y.content.ownerDocument);
+  }
+  let A, C = "";
+  const {
+    implementation: z,
+    createNodeIterator: B,
+    createDocumentFragment: P,
+    getElementsByTagName: M
+  } = t, {
+    importNode: R
+  } = r;
+  let V = {};
+  e.isSupported = typeof No == "function" && typeof b == "function" && z && z.createHTMLDocument !== void 0;
+  const {
+    MUSTACHE_EXPR: X,
+    ERB_EXPR: be,
+    TMPLIT_EXPR: ae,
+    DATA_ATTR: fe,
+    ARIA_ATTR: ye,
+    IS_SCRIPT_OR_DATA: Ne,
+    ATTR_WHITESPACE: se,
+    CUSTOM_ELEMENT: he
+  } = Bs;
+  let {
+    IS_ALLOWED_URI: ge
+  } = Bs, te = null;
+  const le = re({}, [...Ts, ...Ta, ...Ca, ...Ma, ...Cs]);
+  let oe = null;
+  const Me = re({}, [...Ms, ...za, ...zs, ...Tr]);
+  let q = Object.seal(Lo(null, {
+    tagNameCheck: {
+      writable: !0,
+      configurable: !1,
+      enumerable: !0,
+      value: null
+    },
+    attributeNameCheck: {
+      writable: !0,
+      configurable: !1,
+      enumerable: !0,
+      value: null
+    },
+    allowCustomizedBuiltInElements: {
+      writable: !0,
+      configurable: !1,
+      enumerable: !0,
+      value: !1
+    }
+  })), Ie = null, Se = null, Te = !0, $e = !0, ze = !1, We = !0, nt = !1, bt = !0, Oe = !1, Xe = !1, Ft = !1, Tt = !1, Vt = !1, Wt = !1, In = !0, On = !1;
+  const Vo = "user-content-";
+  let aa = !0, L0 = !1, k0 = {}, D0 = null;
+  const qn = re({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
+  let Pn = null;
+  const Hn = re({}, ["audio", "video", "img", "source", "image", "track"]);
+  let na = null;
+  const Un = re({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), lr = "http://www.w3.org/1998/Math/MathML", or = "http://www.w3.org/2000/svg", Xt = "http://www.w3.org/1999/xhtml";
+  let A0 = Xt, ia = !1, sa = null;
+  const Wo = re({}, [lr, or, Xt], Fa);
+  let I0 = null;
+  const Xo = ["application/xhtml+xml", "text/html"], Yo = "text/html";
+  let Ce = null, _0 = null;
+  const jo = t.createElement("form"), Gn = function(_) {
+    return _ instanceof RegExp || _ instanceof Function;
+  }, la = function() {
+    let _ = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
+    if (!(_0 && _0 === _)) {
+      if ((!_ || typeof _ != "object") && (_ = {}), _ = g0(_), I0 = // eslint-disable-next-line unicorn/prefer-includes
+      Xo.indexOf(_.PARSER_MEDIA_TYPE) === -1 ? Yo : _.PARSER_MEDIA_TYPE, Ce = I0 === "application/xhtml+xml" ? Fa : Or, te = Dt(_, "ALLOWED_TAGS") ? re({}, _.ALLOWED_TAGS, Ce) : le, oe = Dt(_, "ALLOWED_ATTR") ? re({}, _.ALLOWED_ATTR, Ce) : Me, sa = Dt(_, "ALLOWED_NAMESPACES") ? re({}, _.ALLOWED_NAMESPACES, Fa) : Wo, na = Dt(_, "ADD_URI_SAFE_ATTR") ? re(
+        g0(Un),
+        // eslint-disable-line indent
+        _.ADD_URI_SAFE_ATTR,
+        // eslint-disable-line indent
+        Ce
+        // eslint-disable-line indent
+      ) : Un, Pn = Dt(_, "ADD_DATA_URI_TAGS") ? re(
+        g0(Hn),
+        // eslint-disable-line indent
+        _.ADD_DATA_URI_TAGS,
+        // eslint-disable-line indent
+        Ce
+        // eslint-disable-line indent
+      ) : Hn, D0 = Dt(_, "FORBID_CONTENTS") ? re({}, _.FORBID_CONTENTS, Ce) : qn, Ie = Dt(_, "FORBID_TAGS") ? re({}, _.FORBID_TAGS, Ce) : {}, Se = Dt(_, "FORBID_ATTR") ? re({}, _.FORBID_ATTR, Ce) : {}, k0 = Dt(_, "USE_PROFILES") ? _.USE_PROFILES : !1, Te = _.ALLOW_ARIA_ATTR !== !1, $e = _.ALLOW_DATA_ATTR !== !1, ze = _.ALLOW_UNKNOWN_PROTOCOLS || !1, We = _.ALLOW_SELF_CLOSE_IN_ATTR !== !1, nt = _.SAFE_FOR_TEMPLATES || !1, bt = _.SAFE_FOR_XML !== !1, Oe = _.WHOLE_DOCUMENT || !1, Tt = _.RETURN_DOM || !1, Vt = _.RETURN_DOM_FRAGMENT || !1, Wt = _.RETURN_TRUSTED_TYPE || !1, Ft = _.FORCE_BODY || !1, In = _.SANITIZE_DOM !== !1, On = _.SANITIZE_NAMED_PROPS || !1, aa = _.KEEP_CONTENT !== !1, L0 = _.IN_PLACE || !1, ge = _.ALLOWED_URI_REGEXP || Io, A0 = _.NAMESPACE || Xt, q = _.CUSTOM_ELEMENT_HANDLING || {}, _.CUSTOM_ELEMENT_HANDLING && Gn(_.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (q.tagNameCheck = _.CUSTOM_ELEMENT_HANDLING.tagNameCheck), _.CUSTOM_ELEMENT_HANDLING && Gn(_.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (q.attributeNameCheck = _.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), _.CUSTOM_ELEMENT_HANDLING && typeof _.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (q.allowCustomizedBuiltInElements = _.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), nt && ($e = !1), Vt && (Tt = !0), k0 && (te = re({}, Cs), oe = [], k0.html === !0 && (re(te, Ts), re(oe, Ms)), k0.svg === !0 && (re(te, Ta), re(oe, za), re(oe, Tr)), k0.svgFilters === !0 && (re(te, Ca), re(oe, za), re(oe, Tr)), k0.mathMl === !0 && (re(te, Ma), re(oe, zs), re(oe, Tr))), _.ADD_TAGS && (te === le && (te = g0(te)), re(te, _.ADD_TAGS, Ce)), _.ADD_ATTR && (oe === Me && (oe = g0(oe)), re(oe, _.ADD_ATTR, Ce)), _.ADD_URI_SAFE_ATTR && re(na, _.ADD_URI_SAFE_ATTR, Ce), _.FORBID_CONTENTS && (D0 === qn && (D0 = g0(D0)), re(D0, _.FORBID_CONTENTS, Ce)), aa && (te["#text"] = !0), Oe && re(te, ["html", "head", "body"]), te.table && (re(te, ["tbody"]), delete Ie.tbody), _.TRUSTED_TYPES_POLICY) {
+        if (typeof _.TRUSTED_TYPES_POLICY.createHTML != "function")
+          throw G0('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
+        if (typeof _.TRUSTED_TYPES_POLICY.createScriptURL != "function")
+          throw G0('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
+        A = _.TRUSTED_TYPES_POLICY, C = A.createHTML("");
+      } else
+        A === void 0 && (A = h2(g, n)), A !== null && typeof C == "string" && (C = A.createHTML(""));
+      Ge && Ge(_), _0 = _;
+    }
+  }, Vn = re({}, ["mi", "mo", "mn", "ms", "mtext"]), Wn = re({}, ["annotation-xml"]), Zo = re({}, ["title", "style", "font", "a", "script"]), Xn = re({}, [...Ta, ...Ca, ...e2]), Yn = re({}, [...Ma, ...t2]), Ko = function(_) {
+    let O = b(_);
+    (!O || !O.tagName) && (O = {
+      namespaceURI: A0,
+      tagName: "template"
+    });
+    const W = Or(_.tagName), de = Or(O.tagName);
+    return sa[_.namespaceURI] ? _.namespaceURI === or ? O.namespaceURI === Xt ? W === "svg" : O.namespaceURI === lr ? W === "svg" && (de === "annotation-xml" || Vn[de]) : !!Xn[W] : _.namespaceURI === lr ? O.namespaceURI === Xt ? W === "math" : O.namespaceURI === or ? W === "math" && Wn[de] : !!Yn[W] : _.namespaceURI === Xt ? O.namespaceURI === or && !Wn[de] || O.namespaceURI === lr && !Vn[de] ? !1 : !Yn[W] && (Zo[W] || !Xn[W]) : !!(I0 === "application/xhtml+xml" && sa[_.namespaceURI]) : !1;
+  }, Ct = function(_) {
+    H0(e.removed, {
+      element: _
+    });
+    try {
+      b(_).removeChild(_);
+    } catch {
+      F(_);
+    }
+  }, ur = function(_, O) {
+    try {
+      H0(e.removed, {
+        attribute: O.getAttributeNode(_),
+        from: O
+      });
+    } catch {
+      H0(e.removed, {
+        attribute: null,
+        from: O
+      });
+    }
+    if (O.removeAttribute(_), _ === "is" && !oe[_])
+      if (Tt || Vt)
+        try {
+          Ct(O);
+        } catch {
+        }
+      else
+        try {
+          O.setAttribute(_, "");
+        } catch {
+        }
+  }, jn = function(_) {
+    let O = null, W = null;
+    if (Ft)
+      _ = "<remove></remove>" + _;
+    else {
+      const Be = Fs(_, /^[\r\n\t ]+/);
+      W = Be && Be[0];
+    }
+    I0 === "application/xhtml+xml" && A0 === Xt && (_ = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + _ + "</body></html>");
+    const de = A ? A.createHTML(_) : _;
+    if (A0 === Xt)
+      try {
+        O = new v().parseFromString(de, I0);
+      } catch {
+      }
+    if (!O || !O.documentElement) {
+      O = z.createDocument(A0, "template", null);
+      try {
+        O.documentElement.innerHTML = ia ? C : de;
+      } catch {
+      }
+    }
+    const Le = O.body || O.documentElement;
+    return _ && W && Le.insertBefore(t.createTextNode(W), Le.childNodes[0] || null), A0 === Xt ? M.call(O, Oe ? "html" : "body")[0] : Oe ? O.documentElement : Le;
+  }, Zn = function(_) {
+    return B.call(
+      _.ownerDocument || _,
+      _,
+      // eslint-disable-next-line no-bitwise
+      h.SHOW_ELEMENT | h.SHOW_COMMENT | h.SHOW_TEXT | h.SHOW_PROCESSING_INSTRUCTION | h.SHOW_CDATA_SECTION,
+      null
+    );
+  }, Kn = function(_) {
+    return _ instanceof d && (typeof _.nodeName != "string" || typeof _.textContent != "string" || typeof _.removeChild != "function" || !(_.attributes instanceof m) || typeof _.removeAttribute != "function" || typeof _.setAttribute != "function" || typeof _.namespaceURI != "string" || typeof _.insertBefore != "function" || typeof _.hasChildNodes != "function");
+  }, $n = function(_) {
+    return typeof l == "function" && _ instanceof l;
+  }, Yt = function(_, O, W) {
+    V[_] && Fr(V[_], (de) => {
+      de.call(e, O, W, _0);
+    });
+  }, Qn = function(_) {
+    let O = null;
+    if (Yt("beforeSanitizeElements", _, null), Kn(_))
+      return Ct(_), !0;
+    const W = Ce(_.nodeName);
+    if (Yt("uponSanitizeElement", _, {
+      tagName: W,
+      allowedTags: te
+    }), _.hasChildNodes() && !$n(_.firstElementChild) && He(/<[/\w]/g, _.innerHTML) && He(/<[/\w]/g, _.textContent) || _.nodeType === W0.progressingInstruction || bt && _.nodeType === W0.comment && He(/<[/\w]/g, _.data))
+      return Ct(_), !0;
+    if (!te[W] || Ie[W]) {
+      if (!Ie[W] && ei(W) && (q.tagNameCheck instanceof RegExp && He(q.tagNameCheck, W) || q.tagNameCheck instanceof Function && q.tagNameCheck(W)))
+        return !1;
+      if (aa && !D0[W]) {
+        const de = b(_) || _.parentNode, Le = x(_) || _.childNodes;
+        if (Le && de) {
+          const Be = Le.length;
+          for (let Ye = Be - 1; Ye >= 0; --Ye) {
+            const Mt = S(Le[Ye], !0);
+            Mt.__removalCount = (_.__removalCount || 0) + 1, de.insertBefore(Mt, T(_));
+          }
+        }
+      }
+      return Ct(_), !0;
+    }
+    return _ instanceof o && !Ko(_) || (W === "noscript" || W === "noembed" || W === "noframes") && He(/<\/no(script|embed|frames)/i, _.innerHTML) ? (Ct(_), !0) : (nt && _.nodeType === W0.text && (O = _.textContent, Fr([X, be, ae], (de) => {
+      O = U0(O, de, " ");
+    }), _.textContent !== O && (H0(e.removed, {
+      element: _.cloneNode()
+    }), _.textContent = O)), Yt("afterSanitizeElements", _, null), !1);
+  }, Jn = function(_, O, W) {
+    if (In && (O === "id" || O === "name") && (W in t || W in jo))
+      return !1;
+    if (!($e && !Se[O] && He(fe, O))) {
+      if (!(Te && He(ye, O))) {
+        if (!oe[O] || Se[O]) {
+          if (
+            // First condition does a very basic check if a) it's basically a valid custom element tagname AND
+            // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+            // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
+            !(ei(_) && (q.tagNameCheck instanceof RegExp && He(q.tagNameCheck, _) || q.tagNameCheck instanceof Function && q.tagNameCheck(_)) && (q.attributeNameCheck instanceof RegExp && He(q.attributeNameCheck, O) || q.attributeNameCheck instanceof Function && q.attributeNameCheck(O)) || // Alternative, second condition checks if it's an `is`-attribute, AND
+            // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
+            O === "is" && q.allowCustomizedBuiltInElements && (q.tagNameCheck instanceof RegExp && He(q.tagNameCheck, W) || q.tagNameCheck instanceof Function && q.tagNameCheck(W)))
+          ) return !1;
+        } else if (!na[O]) {
+          if (!He(ge, U0(W, se, ""))) {
+            if (!((O === "src" || O === "xlink:href" || O === "href") && _ !== "script" && Kh(W, "data:") === 0 && Pn[_])) {
+              if (!(ze && !He(Ne, U0(W, se, "")))) {
+                if (W)
+                  return !1;
+              }
+            }
+          }
+        }
+      }
+    }
+    return !0;
+  }, ei = function(_) {
+    return _ !== "annotation-xml" && Fs(_, he);
+  }, ti = function(_) {
+    Yt("beforeSanitizeAttributes", _, null);
+    const {
+      attributes: O
+    } = _;
+    if (!O)
+      return;
+    const W = {
+      attrName: "",
+      attrValue: "",
+      keepAttr: !0,
+      allowedAttributes: oe
+    };
+    let de = O.length;
+    for (; de--; ) {
+      const Le = O[de], {
+        name: Be,
+        namespaceURI: Ye,
+        value: Mt
+      } = Le, O0 = Ce(Be);
+      let qe = Be === "value" ? Mt : $h(Mt);
+      if (W.attrName = O0, W.attrValue = qe, W.keepAttr = !0, W.forceKeepAttr = void 0, Yt("uponSanitizeAttribute", _, W), qe = W.attrValue, W.forceKeepAttr || (ur(Be, _), !W.keepAttr))
+        continue;
+      if (!We && He(/\/>/i, qe)) {
+        ur(Be, _);
+        continue;
+      }
+      nt && Fr([X, be, ae], (ai) => {
+        qe = U0(qe, ai, " ");
+      });
+      const ri = Ce(_.nodeName);
+      if (Jn(ri, O0, qe)) {
+        if (On && (O0 === "id" || O0 === "name") && (ur(Be, _), qe = Vo + qe), bt && He(/((--!?|])>)|<\/(style|title)/i, qe)) {
+          ur(Be, _);
+          continue;
+        }
+        if (A && typeof g == "object" && typeof g.getAttributeType == "function" && !Ye)
+          switch (g.getAttributeType(ri, O0)) {
+            case "TrustedHTML": {
+              qe = A.createHTML(qe);
+              break;
+            }
+            case "TrustedScriptURL": {
+              qe = A.createScriptURL(qe);
+              break;
+            }
+          }
+        try {
+          Ye ? _.setAttributeNS(Ye, Be, qe) : _.setAttribute(Be, qe), Kn(_) ? Ct(_) : Es(e.removed);
+        } catch {
+        }
+      }
+    }
+    Yt("afterSanitizeAttributes", _, null);
+  }, $o = function Y(_) {
+    let O = null;
+    const W = Zn(_);
+    for (Yt("beforeSanitizeShadowDOM", _, null); O = W.nextNode(); )
+      Yt("uponSanitizeShadowNode", O, null), !Qn(O) && (O.content instanceof i && Y(O.content), ti(O));
+    Yt("afterSanitizeShadowDOM", _, null);
+  };
+  return e.sanitize = function(Y) {
+    let _ = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, O = null, W = null, de = null, Le = null;
+    if (ia = !Y, ia && (Y = "<!-->"), typeof Y != "string" && !$n(Y))
+      if (typeof Y.toString == "function") {
+        if (Y = Y.toString(), typeof Y != "string")
+          throw G0("dirty is not a string, aborting");
+      } else
+        throw G0("toString is not a function");
+    if (!e.isSupported)
+      return Y;
+    if (Xe || la(_), e.removed = [], typeof Y == "string" && (L0 = !1), L0) {
+      if (Y.nodeName) {
+        const Mt = Ce(Y.nodeName);
+        if (!te[Mt] || Ie[Mt])
+          throw G0("root node is forbidden and cannot be sanitized in-place");
+      }
+    } else if (Y instanceof l)
+      O = jn("<!---->"), W = O.ownerDocument.importNode(Y, !0), W.nodeType === W0.element && W.nodeName === "BODY" || W.nodeName === "HTML" ? O = W : O.appendChild(W);
+    else {
+      if (!Tt && !nt && !Oe && // eslint-disable-next-line unicorn/prefer-includes
+      Y.indexOf("<") === -1)
+        return A && Wt ? A.createHTML(Y) : Y;
+      if (O = jn(Y), !O)
+        return Tt ? null : Wt ? C : "";
+    }
+    O && Ft && Ct(O.firstChild);
+    const Be = Zn(L0 ? Y : O);
+    for (; de = Be.nextNode(); )
+      Qn(de) || (de.content instanceof i && $o(de.content), ti(de));
+    if (L0)
+      return Y;
+    if (Tt) {
+      if (Vt)
+        for (Le = P.call(O.ownerDocument); O.firstChild; )
+          Le.appendChild(O.firstChild);
+      else
+        Le = O;
+      return (oe.shadowroot || oe.shadowrootmode) && (Le = R.call(r, Le, !0)), Le;
+    }
+    let Ye = Oe ? O.outerHTML : O.innerHTML;
+    return Oe && te["!doctype"] && O.ownerDocument && O.ownerDocument.doctype && O.ownerDocument.doctype.name && He(Oo, O.ownerDocument.doctype.name) && (Ye = "<!DOCTYPE " + O.ownerDocument.doctype.name + `>
+` + Ye), nt && Fr([X, be, ae], (Mt) => {
+      Ye = U0(Ye, Mt, " ");
+    }), A && Wt ? A.createHTML(Ye) : Ye;
+  }, e.setConfig = function() {
+    let Y = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
+    la(Y), Xe = !0;
+  }, e.clearConfig = function() {
+    _0 = null, Xe = !1;
+  }, e.isValidAttribute = function(Y, _, O) {
+    _0 || la({});
+    const W = Ce(Y), de = Ce(_);
+    return Jn(W, de, O);
+  }, e.addHook = function(Y, _) {
+    typeof _ == "function" && (V[Y] = V[Y] || [], H0(V[Y], _));
+  }, e.removeHook = function(Y) {
+    if (V[Y])
+      return Es(V[Y]);
+  }, e.removeHooks = function(Y) {
+    V[Y] && (V[Y] = []);
+  }, e.removeAllHooks = function() {
+    V = {};
+  }, e;
+}
+qo();
+const {
+  SvelteComponent: m2,
+  attr: f2,
+  children: d2,
+  claim_component: p2,
+  claim_element: g2,
+  create_component: v2,
+  destroy_component: b2,
+  detach: Rs,
+  element: y2,
+  init: w2,
+  insert_hydration: x2,
+  mount_component: k2,
+  safe_not_equal: D2,
+  transition_in: A2,
+  transition_out: _2
+} = window.__gradio__svelte__internal;
+function S2(a) {
+  let e, t, r;
+  return t = new uh({
+    props: {
+      root: (
+        /*root*/
+        a[1]
+      ),
+      message: (
+        /*info*/
+        a[0]
+      ),
+      sanitize_html: !0
+    }
+  }), {
     c() {
-      e = C("-");
+      e = y2("div"), v2(t.$$.fragment), this.h();
+    },
+    l(n) {
+      e = g2(n, "DIV", { class: !0 });
+      var i = d2(e);
+      p2(t.$$.fragment, i), i.forEach(Rs), this.h();
+    },
+    h() {
+      f2(e, "class", "svelte-1hnfib2");
+    },
+    m(n, i) {
+      x2(n, e, i), k2(t, e, null), r = !0;
+    },
+    p(n, [i]) {
+      const s = {};
+      i & /*root*/
+      2 && (s.root = /*root*/
+      n[1]), i & /*info*/
+      1 && (s.message = /*info*/
+      n[0]), t.$set(s);
+    },
+    i(n) {
+      r || (A2(t.$$.fragment, n), r = !0);
     },
-    m(t, l) {
-      p(t, e, l);
+    o(n) {
+      _2(t.$$.fragment, n), r = !1;
     },
-    d(t) {
-      t && w(e);
+    d(n) {
+      n && Rs(e), b2(t);
     }
   };
 }
-function Qe(n) {
-  let e = (100 * /*progress_level*/
-  (n[14][
-    /*i*/
-    n[40]
-  ] || 0)).toFixed(1) + "", t, l;
-  return {
+function E2(a, e, t) {
+  let { info: r } = e, { root: n } = e;
+  return a.$$set = (i) => {
+    "info" in i && t(0, r = i.info), "root" in i && t(1, n = i.root);
+  }, [r, n];
+}
+class F2 extends m2 {
+  constructor(e) {
+    super(), w2(this, e, E2, S2, D2, { info: 0, root: 1 });
+  }
+}
+const {
+  SvelteComponent: T2,
+  attr: Ns,
+  check_outros: C2,
+  children: M2,
+  claim_component: z2,
+  claim_element: B2,
+  claim_space: R2,
+  create_component: N2,
+  create_slot: L2,
+  destroy_component: I2,
+  detach: Cr,
+  element: O2,
+  empty: Ls,
+  get_all_dirty_from_scope: q2,
+  get_slot_changes: P2,
+  group_outros: H2,
+  init: U2,
+  insert_hydration: Ba,
+  mount_component: G2,
+  safe_not_equal: V2,
+  space: W2,
+  toggle_class: F0,
+  transition_in: Y0,
+  transition_out: qr,
+  update_slot_base: X2
+} = window.__gradio__svelte__internal;
+function Is(a) {
+  let e, t;
+  return e = new F2({
+    props: {
+      root: (
+        /*root*/
+        a[2]
+      ),
+      info: (
+        /*info*/
+        a[1]
+      )
+    }
+  }), {
     c() {
-      t = C(e), l = C("%");
+      N2(e.$$.fragment);
     },
-    m(s, i) {
-      p(s, t, i), p(s, l, i);
+    l(r) {
+      z2(e.$$.fragment, r);
     },
-    p(s, i) {
-      i[0] & /*progress_level*/
-      16384 && e !== (e = (100 * /*progress_level*/
-      (s[14][
-        /*i*/
-        s[40]
-      ] || 0)).toFixed(1) + "") && A(t, e);
+    m(r, n) {
+      G2(e, r, n), t = !0;
     },
-    d(s) {
-      s && (w(t), w(l));
+    p(r, n) {
+      const i = {};
+      n & /*root*/
+      4 && (i.root = /*root*/
+      r[2]), n & /*info*/
+      2 && (i.info = /*info*/
+      r[1]), e.$set(i);
+    },
+    i(r) {
+      t || (Y0(e.$$.fragment, r), t = !0);
+    },
+    o(r) {
+      qr(e.$$.fragment, r), t = !1;
+    },
+    d(r) {
+      I2(e, r);
     }
   };
 }
-function We(n) {
-  let e, t = (
-    /*p*/
-    (n[38].desc != null || /*progress_level*/
-    n[14] && /*progress_level*/
-    n[14][
-      /*i*/
-      n[40]
-    ] != null) && Ge(n)
+function Y2(a) {
+  let e, t, r, n;
+  const i = (
+    /*#slots*/
+    a[4].default
+  ), s = L2(
+    i,
+    a,
+    /*$$scope*/
+    a[3],
+    null
+  );
+  let l = (
+    /*info*/
+    a[1] && Is(a)
   );
   return {
     c() {
-      t && t.c(), e = x();
+      e = O2("span"), s && s.c(), t = W2(), l && l.c(), r = Ls(), this.h();
     },
-    m(l, s) {
-      t && t.m(l, s), p(l, e, s);
+    l(o) {
+      e = B2(o, "SPAN", { "data-testid": !0, class: !0 });
+      var h = M2(e);
+      s && s.l(h), h.forEach(Cr), t = R2(o), l && l.l(o), r = Ls(), this.h();
     },
-    p(l, s) {
-      /*p*/
-      l[38].desc != null || /*progress_level*/
-      l[14] && /*progress_level*/
-      l[14][
-        /*i*/
-        l[40]
-      ] != null ? t ? t.p(l, s) : (t = Ge(l), t.c(), t.m(e.parentNode, e)) : t && (t.d(1), t = null);
+    h() {
+      Ns(e, "data-testid", "block-info"), Ns(e, "class", "svelte-22c38v"), F0(e, "sr-only", !/*show_label*/
+      a[0]), F0(e, "hide", !/*show_label*/
+      a[0]), F0(
+        e,
+        "has-info",
+        /*info*/
+        a[1] != null
+      );
     },
-    d(l) {
-      l && w(e), t && t.d(l);
+    m(o, h) {
+      Ba(o, e, h), s && s.m(e, null), Ba(o, t, h), l && l.m(o, h), Ba(o, r, h), n = !0;
+    },
+    p(o, [h]) {
+      s && s.p && (!n || h & /*$$scope*/
+      8) && X2(
+        s,
+        i,
+        o,
+        /*$$scope*/
+        o[3],
+        n ? P2(
+          i,
+          /*$$scope*/
+          o[3],
+          h,
+          null
+        ) : q2(
+          /*$$scope*/
+          o[3]
+        ),
+        null
+      ), (!n || h & /*show_label*/
+      1) && F0(e, "sr-only", !/*show_label*/
+      o[0]), (!n || h & /*show_label*/
+      1) && F0(e, "hide", !/*show_label*/
+      o[0]), (!n || h & /*info*/
+      2) && F0(
+        e,
+        "has-info",
+        /*info*/
+        o[1] != null
+      ), /*info*/
+      o[1] ? l ? (l.p(o, h), h & /*info*/
+      2 && Y0(l, 1)) : (l = Is(o), l.c(), Y0(l, 1), l.m(r.parentNode, r)) : l && (H2(), qr(l, 1, 1, () => {
+        l = null;
+      }), C2());
+    },
+    i(o) {
+      n || (Y0(s, o), Y0(l), n = !0);
+    },
+    o(o) {
+      qr(s, o), qr(l), n = !1;
+    },
+    d(o) {
+      o && (Cr(e), Cr(t), Cr(r)), s && s.d(o), l && l.d(o);
     }
   };
 }
-function xe(n) {
+function j2(a, e, t) {
+  let { $$slots: r = {}, $$scope: n } = e, { show_label: i = !0 } = e, { info: s = void 0 } = e, { root: l } = e;
+  return a.$$set = (o) => {
+    "show_label" in o && t(0, i = o.show_label), "info" in o && t(1, s = o.info), "root" in o && t(2, l = o.root), "$$scope" in o && t(3, n = o.$$scope);
+  }, [i, s, l, n, r];
+}
+class Z2 extends T2 {
+  constructor(e) {
+    super(), U2(this, e, j2, Y2, V2, { show_label: 0, info: 1, root: 2 });
+  }
+}
+const {
+  SvelteComponent: K2,
+  append_hydration: en,
+  attr: Zt,
+  bubble: $2,
+  check_outros: Q2,
+  children: tn,
+  claim_component: J2,
+  claim_element: rn,
+  claim_space: em,
+  claim_text: tm,
+  construct_svelte_component: Os,
+  create_component: qs,
+  destroy_component: Ps,
+  detach: $0,
+  element: an,
+  group_outros: rm,
+  init: am,
+  insert_hydration: Po,
+  listen: nm,
+  mount_component: Hs,
+  safe_not_equal: im,
+  set_data: sm,
+  set_style: Mr,
+  space: lm,
+  text: om,
+  toggle_class: je,
+  transition_in: Us,
+  transition_out: Gs
+} = window.__gradio__svelte__internal;
+function Vs(a) {
   let e, t;
   return {
     c() {
-      e = X("p"), t = C(
-        /*loading_text*/
-        n[9]
-      ), S(e, "class", "loading svelte-14miwb5");
+      e = an("span"), t = om(
+        /*label*/
+        a[1]
+      ), this.h();
+    },
+    l(r) {
+      e = rn(r, "SPAN", { class: !0 });
+      var n = tn(e);
+      t = tm(
+        n,
+        /*label*/
+        a[1]
+      ), n.forEach($0), this.h();
     },
-    m(l, s) {
-      p(l, e, s), H(e, t);
+    h() {
+      Zt(e, "class", "svelte-vk34kx");
     },
-    p(l, s) {
-      s[0] & /*loading_text*/
-      512 && A(
+    m(r, n) {
+      Po(r, e, n), en(e, t);
+    },
+    p(r, n) {
+      n & /*label*/
+      2 && sm(
         t,
-        /*loading_text*/
-        l[9]
+        /*label*/
+        r[1]
       );
     },
-    d(l) {
-      l && w(e);
+    d(r) {
+      r && $0(e);
     }
   };
 }
-function xl(n) {
-  let e, t, l, s, i;
-  const o = [Dl, jl], f = [];
-  function a(r, _) {
-    return (
-      /*status*/
-      r[4] === "pending" ? 0 : (
-        /*status*/
-        r[4] === "error" ? 1 : -1
-      )
-    );
+function um(a) {
+  let e, t, r, n, i, s, l, o = (
+    /*show_label*/
+    a[2] && Vs(a)
+  );
+  var h = (
+    /*Icon*/
+    a[0]
+  );
+  function m(d, v) {
+    return {};
   }
-  return ~(t = a(n)) && (l = f[t] = o[t](n)), {
+  return h && (n = Os(h, m())), {
     c() {
-      e = X("div"), l && l.c(), S(e, "class", s = "wrap " + /*variant*/
-      n[8] + " " + /*show_progress*/
-      n[6] + " svelte-14miwb5"), B(e, "hide", !/*status*/
-      n[4] || /*status*/
-      n[4] === "complete" || /*show_progress*/
-      n[6] === "hidden"), B(
+      e = an("button"), o && o.c(), t = lm(), r = an("div"), n && qs(n.$$.fragment), this.h();
+    },
+    l(d) {
+      e = rn(d, "BUTTON", {
+        "aria-label": !0,
+        "aria-haspopup": !0,
+        title: !0,
+        class: !0
+      });
+      var v = tn(e);
+      o && o.l(v), t = em(v), r = rn(v, "DIV", { class: !0 });
+      var g = tn(r);
+      n && J2(n.$$.fragment, g), g.forEach($0), v.forEach($0), this.h();
+    },
+    h() {
+      Zt(r, "class", "svelte-vk34kx"), je(
+        r,
+        "small",
+        /*size*/
+        a[4] === "small"
+      ), je(
+        r,
+        "large",
+        /*size*/
+        a[4] === "large"
+      ), je(
+        r,
+        "medium",
+        /*size*/
+        a[4] === "medium"
+      ), e.disabled = /*disabled*/
+      a[7], Zt(
         e,
-        "translucent",
-        /*variant*/
-        n[8] === "center" && /*status*/
-        (n[4] === "pending" || /*status*/
-        n[4] === "error") || /*translucent*/
-        n[11] || /*show_progress*/
-        n[6] === "minimal"
-      ), B(
+        "aria-label",
+        /*label*/
+        a[1]
+      ), Zt(
         e,
-        "generating",
-        /*status*/
-        n[4] === "generating"
-      ), B(
+        "aria-haspopup",
+        /*hasPopup*/
+        a[8]
+      ), Zt(
         e,
-        "border",
-        /*border*/
-        n[12]
-      ), P(
+        "title",
+        /*label*/
+        a[1]
+      ), Zt(e, "class", "svelte-vk34kx"), je(
         e,
-        "position",
-        /*absolute*/
-        n[10] ? "absolute" : "static"
-      ), P(
+        "pending",
+        /*pending*/
+        a[3]
+      ), je(
         e,
-        "padding",
-        /*absolute*/
-        n[10] ? "0" : "var(--size-8) 0"
-      );
+        "padded",
+        /*padded*/
+        a[5]
+      ), je(
+        e,
+        "highlight",
+        /*highlight*/
+        a[6]
+      ), je(
+        e,
+        "transparent",
+        /*transparent*/
+        a[9]
+      ), Mr(e, "color", !/*disabled*/
+      a[7] && /*_color*/
+      a[11] ? (
+        /*_color*/
+        a[11]
+      ) : "var(--block-label-text-color)"), Mr(e, "--bg-color", /*disabled*/
+      a[7] ? "auto" : (
+        /*background*/
+        a[10]
+      ));
     },
-    m(r, _) {
-      p(r, e, _), ~t && f[t].m(e, null), n[31](e), i = !0;
-    },
-    p(r, _) {
-      let u = t;
-      t = a(r), t === u ? ~t && f[t].p(r, _) : (l && (_t(), W(f[u], 1, 1, () => {
-        f[u] = null;
-      }), at()), ~t ? (l = f[t], l ? l.p(r, _) : (l = f[t] = o[t](r), l.c()), Q(l, 1), l.m(e, null)) : l = null), (!i || _[0] & /*variant, show_progress*/
-      320 && s !== (s = "wrap " + /*variant*/
-      r[8] + " " + /*show_progress*/
-      r[6] + " svelte-14miwb5")) && S(e, "class", s), (!i || _[0] & /*variant, show_progress, status, show_progress*/
-      336) && B(e, "hide", !/*status*/
-      r[4] || /*status*/
-      r[4] === "complete" || /*show_progress*/
-      r[6] === "hidden"), (!i || _[0] & /*variant, show_progress, variant, status, translucent, show_progress*/
-      2384) && B(
+    m(d, v) {
+      Po(d, e, v), o && o.m(e, null), en(e, t), en(e, r), n && Hs(n, r, null), i = !0, s || (l = nm(
         e,
-        "translucent",
-        /*variant*/
-        r[8] === "center" && /*status*/
-        (r[4] === "pending" || /*status*/
-        r[4] === "error") || /*translucent*/
-        r[11] || /*show_progress*/
-        r[6] === "minimal"
-      ), (!i || _[0] & /*variant, show_progress, status*/
-      336) && B(
+        "click",
+        /*click_handler*/
+        a[13]
+      ), s = !0);
+    },
+    p(d, [v]) {
+      if (/*show_label*/
+      d[2] ? o ? o.p(d, v) : (o = Vs(d), o.c(), o.m(e, t)) : o && (o.d(1), o = null), v & /*Icon*/
+      1 && h !== (h = /*Icon*/
+      d[0])) {
+        if (n) {
+          rm();
+          const g = n;
+          Gs(g.$$.fragment, 1, 0, () => {
+            Ps(g, 1);
+          }), Q2();
+        }
+        h ? (n = Os(h, m()), qs(n.$$.fragment), Us(n.$$.fragment, 1), Hs(n, r, null)) : n = null;
+      }
+      (!i || v & /*size*/
+      16) && je(
+        r,
+        "small",
+        /*size*/
+        d[4] === "small"
+      ), (!i || v & /*size*/
+      16) && je(
+        r,
+        "large",
+        /*size*/
+        d[4] === "large"
+      ), (!i || v & /*size*/
+      16) && je(
+        r,
+        "medium",
+        /*size*/
+        d[4] === "medium"
+      ), (!i || v & /*disabled*/
+      128) && (e.disabled = /*disabled*/
+      d[7]), (!i || v & /*label*/
+      2) && Zt(
         e,
-        "generating",
-        /*status*/
-        r[4] === "generating"
-      ), (!i || _[0] & /*variant, show_progress, border*/
-      4416) && B(
+        "aria-label",
+        /*label*/
+        d[1]
+      ), (!i || v & /*hasPopup*/
+      256) && Zt(
         e,
-        "border",
-        /*border*/
-        r[12]
-      ), _[0] & /*absolute*/
-      1024 && P(
+        "aria-haspopup",
+        /*hasPopup*/
+        d[8]
+      ), (!i || v & /*label*/
+      2) && Zt(
         e,
-        "position",
-        /*absolute*/
-        r[10] ? "absolute" : "static"
-      ), _[0] & /*absolute*/
-      1024 && P(
+        "title",
+        /*label*/
+        d[1]
+      ), (!i || v & /*pending*/
+      8) && je(
         e,
-        "padding",
-        /*absolute*/
-        r[10] ? "0" : "var(--size-8) 0"
-      );
+        "pending",
+        /*pending*/
+        d[3]
+      ), (!i || v & /*padded*/
+      32) && je(
+        e,
+        "padded",
+        /*padded*/
+        d[5]
+      ), (!i || v & /*highlight*/
+      64) && je(
+        e,
+        "highlight",
+        /*highlight*/
+        d[6]
+      ), (!i || v & /*transparent*/
+      512) && je(
+        e,
+        "transparent",
+        /*transparent*/
+        d[9]
+      ), v & /*disabled, _color*/
+      2176 && Mr(e, "color", !/*disabled*/
+      d[7] && /*_color*/
+      d[11] ? (
+        /*_color*/
+        d[11]
+      ) : "var(--block-label-text-color)"), v & /*disabled, background*/
+      1152 && Mr(e, "--bg-color", /*disabled*/
+      d[7] ? "auto" : (
+        /*background*/
+        d[10]
+      ));
     },
-    i(r) {
-      i || (Q(l), i = !0);
+    i(d) {
+      i || (n && Us(n.$$.fragment, d), i = !0);
     },
-    o(r) {
-      W(l), i = !1;
+    o(d) {
+      n && Gs(n.$$.fragment, d), i = !1;
     },
-    d(r) {
-      r && w(e), ~t && f[t].d(), n[31](null);
+    d(d) {
+      d && $0(e), o && o.d(), n && Ps(n), s = !1, l();
     }
   };
 }
-let oe = [], me = !1;
-async function $l(n, e = !0) {
-  if (!(window.__gradio_mode__ === "website" || window.__gradio_mode__ !== "app" && e !== !0)) {
-    if (oe.push(n), !me)
-      me = !0;
-    else
-      return;
-    await Ol(), requestAnimationFrame(() => {
-      let t = [0, 0];
-      for (let l = 0; l < oe.length; l++) {
-        const i = oe[l].getBoundingClientRect();
-        (l === 0 || i.top + window.scrollY <= t[0]) && (t[0] = i.top + window.scrollY, t[1] = l);
-      }
-      window.scrollTo({ top: t[0] - 20, behavior: "smooth" }), me = !1, oe = [];
-    });
-  }
-}
-function en(n, e, t) {
-  let l, { $$slots: s = {}, $$scope: i } = e, { i18n: o } = e, { eta: f = null } = e, { queue: a = !1 } = e, { queue_position: r } = e, { queue_size: _ } = e, { status: u } = e, { scroll_to_output: b = !1 } = e, { timer: c = !0 } = e, { show_progress: d = "full" } = e, { message: y = null } = e, { progress: v = null } = e, { variant: F = "default" } = e, { loading_text: q = "Loading..." } = e, { absolute: m = !0 } = e, { translucent: z = !1 } = e, { border: h = !1 } = e, { autoscroll: $ } = e, R, k = !1, se = 0, j = 0, de = null, Te = 0, D = null, ee, I = null, ze = !0;
-  const dt = () => {
-    t(25, se = performance.now()), t(26, j = 0), k = !0, qe();
-  };
-  function qe() {
-    requestAnimationFrame(() => {
-      t(26, j = (performance.now() - se) / 1e3), k && qe();
-    });
-  }
-  function Ce() {
-    t(26, j = 0), k && (k = !1);
+function cm(a, e, t) {
+  let r, { Icon: n } = e, { label: i = "" } = e, { show_label: s = !1 } = e, { pending: l = !1 } = e, { size: o = "small" } = e, { padded: h = !0 } = e, { highlight: m = !1 } = e, { disabled: d = !1 } = e, { hasPopup: v = !1 } = e, { color: g = "var(--block-label-text-color)" } = e, { transparent: D = !1 } = e, { background: S = "var(--block-background-fill)" } = e;
+  function F(T) {
+    $2.call(this, a, T);
   }
-  Pl(() => {
-    k && Ce();
-  });
-  let Fe = null;
-  function mt(g) {
-    Ze[g ? "unshift" : "push"](() => {
-      I = g, t(16, I), t(7, v), t(14, D), t(15, ee);
-    });
-  }
-  function bt(g) {
-    Ze[g ? "unshift" : "push"](() => {
-      R = g, t(13, R);
-    });
-  }
-  return n.$$set = (g) => {
-    "i18n" in g && t(1, o = g.i18n), "eta" in g && t(0, f = g.eta), "queue" in g && t(21, a = g.queue), "queue_position" in g && t(2, r = g.queue_position), "queue_size" in g && t(3, _ = g.queue_size), "status" in g && t(4, u = g.status), "scroll_to_output" in g && t(22, b = g.scroll_to_output), "timer" in g && t(5, c = g.timer), "show_progress" in g && t(6, d = g.show_progress), "message" in g && t(23, y = g.message), "progress" in g && t(7, v = g.progress), "variant" in g && t(8, F = g.variant), "loading_text" in g && t(9, q = g.loading_text), "absolute" in g && t(10, m = g.absolute), "translucent" in g && t(11, z = g.translucent), "border" in g && t(12, h = g.border), "autoscroll" in g && t(24, $ = g.autoscroll), "$$scope" in g && t(28, i = g.$$scope);
-  }, n.$$.update = () => {
-    n.$$.dirty[0] & /*eta, old_eta, queue, timer_start*/
-    169869313 && (f === null ? t(0, f = de) : a && t(0, f = (performance.now() - se) / 1e3 + f), f != null && (t(19, Fe = f.toFixed(1)), t(27, de = f))), n.$$.dirty[0] & /*eta, timer_diff*/
-    67108865 && t(17, Te = f === null || f <= 0 || !j ? null : Math.min(j / f, 1)), n.$$.dirty[0] & /*progress*/
-    128 && v != null && t(18, ze = !1), n.$$.dirty[0] & /*progress, progress_level, progress_bar, last_progress_level*/
-    114816 && (v != null ? t(14, D = v.map((g) => {
-      if (g.index != null && g.length != null)
-        return g.index / g.length;
-      if (g.progress != null)
-        return g.progress;
-    })) : t(14, D = null), D ? (t(15, ee = D[D.length - 1]), I && (ee === 0 ? t(16, I.style.transition = "0", I) : t(16, I.style.transition = "150ms", I))) : t(15, ee = void 0)), n.$$.dirty[0] & /*status*/
-    16 && (u === "pending" ? dt() : Ce()), n.$$.dirty[0] & /*el, scroll_to_output, status, autoscroll*/
-    20979728 && R && b && (u === "pending" || u === "complete") && $l(R, $), n.$$.dirty[0] & /*status, message*/
-    8388624, n.$$.dirty[0] & /*timer_diff*/
-    67108864 && t(20, l = j.toFixed(1));
+  return a.$$set = (T) => {
+    "Icon" in T && t(0, n = T.Icon), "label" in T && t(1, i = T.label), "show_label" in T && t(2, s = T.show_label), "pending" in T && t(3, l = T.pending), "size" in T && t(4, o = T.size), "padded" in T && t(5, h = T.padded), "highlight" in T && t(6, m = T.highlight), "disabled" in T && t(7, d = T.disabled), "hasPopup" in T && t(8, v = T.hasPopup), "color" in T && t(12, g = T.color), "transparent" in T && t(9, D = T.transparent), "background" in T && t(10, S = T.background);
+  }, a.$$.update = () => {
+    a.$$.dirty & /*highlight, color*/
+    4160 && t(11, r = m ? "var(--color-accent)" : g);
   }, [
-    f,
+    n,
+    i,
+    s,
+    l,
     o,
-    r,
-    _,
-    u,
-    c,
+    h,
+    m,
     d,
     v,
-    F,
-    q,
-    m,
-    z,
-    h,
-    R,
     D,
-    ee,
-    I,
-    Te,
-    ze,
-    Fe,
-    l,
-    a,
-    b,
-    y,
-    $,
-    se,
-    j,
-    de,
-    i,
-    s,
-    mt,
-    bt
+    S,
+    r,
+    g,
+    F
   ];
 }
-class tn extends El {
+class hm extends K2 {
   constructor(e) {
-    super(), Vl(
-      this,
-      e,
-      en,
-      xl,
-      Il,
-      {
-        i18n: 1,
-        eta: 0,
-        queue: 21,
-        queue_position: 2,
-        queue_size: 3,
-        status: 4,
-        scroll_to_output: 22,
-        timer: 5,
-        show_progress: 6,
-        message: 23,
-        progress: 7,
-        variant: 8,
-        loading_text: 9,
-        absolute: 10,
-        translucent: 11,
-        border: 12,
-        autoscroll: 24
-      },
-      null,
-      [-1, -1]
-    );
+    super(), am(this, e, cm, um, im, {
+      Icon: 0,
+      label: 1,
+      show_label: 2,
+      pending: 3,
+      size: 4,
+      padded: 5,
+      highlight: 6,
+      disabled: 7,
+      hasPopup: 8,
+      color: 12,
+      transparent: 9,
+      background: 10
+    });
   }
 }
-var ln = function() {
-  var n = this, e = /{[A-Z_]+[0-9]*}/ig, t = {
+var mm = function() {
+  var a = this, e = /{[A-Z_]+[0-9]*}/ig, t = {
     URL: "((?:(?:[a-z][a-z\\d+\\-.]*:\\/{2}(?:(?:[a-z0-9\\-._~\\!$&'*+,;=:@|]+|%[\\dA-F]{2})+|[0-9.]+|\\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\\])(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~\\!$&'*+,;=:@|]+|%[\\dA-F]{2})*)*(?:\\?(?:[a-z0-9\\-._~\\!$&'*+,;=:@\\/?|]+|%[\\dA-F]{2})*)?(?:#(?:[a-z0-9\\-._~\\!$&'*+,;=:@\\/?|]+|%[\\dA-F]{2})*)?)|(?:www\\.(?:[a-z0-9\\-._~\\!$&'*+,;=:@|]+|%[\\dA-F]{2})+(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~\\!$&'*+,;=:@|]+|%[\\dA-F]{2})*)*(?:\\?(?:[a-z0-9\\-._~\\!$&'*+,;=:@\\/?|]+|%[\\dA-F]{2})*)?(?:#(?:[a-z0-9\\-._~\\!$&'*+,;=:@\\/?|]+|%[\\dA-F]{2})*)?)))",
     LINK: `([a-z0-9-./]+[^"' ]*)`,
     EMAIL: "((?:[\\w!#$%&'*+-/=?^`{|}~]+.)*(?:[\\w!#$%'*+-/=?^`{|}~]|&)+@(?:(?:(?:(?:(?:[a-z0-9]{1}[a-z0-9-]{0,62}[a-z0-9]{1})|[a-z]).)+[a-z]{2,6})|(?:\\d{1,3}.){3}\\d{1,3}(?::\\d{1,5})?))",
@@ -1967,401 +19202,483 @@ var ln = function() {
     IDENTIFIER: "([a-zA-Z0-9-_]+)",
     COLOR: "([a-z]+|#[0-9abcdef]+)",
     NUMBER: "([0-9]+)"
-  }, l = [], s = [], i = [], o = [], f = function(_) {
-    var u = _.match(e), b = u.length, c = 0, d = "";
-    if (b <= 0)
-      return new RegExp(r(_), "g");
-    for (; c < b; c += 1) {
-      var y = u[c].replace(/[{}0-9]/g, "");
-      t[y] && (d += r(_.substr(0, _.indexOf(u[c]))) + t[y], _ = _.substr(_.indexOf(u[c]) + u[c].length));
-    }
-    return d += r(_), new RegExp(d, "gi");
-  }, a = function(_) {
-    var u = _.match(e), b = u.length, c = 0, d = "", y = {}, v = 0;
-    if (b <= 0)
-      return _;
-    for (; c < b; c += 1) {
-      var F = u[c].replace(/[{}0-9]/g, ""), q;
-      y[u[c]] ? q = y[u[c]] : (v += 1, q = v, y[u[c]] = q), t[F] && (d += _.substr(0, _.indexOf(u[c])) + "$" + q, _ = _.substr(_.indexOf(u[c]) + u[c].length));
-    }
-    return d += _, d;
-  };
-  n.addBBCode = function(_, u) {
-    l.push(f(_)), s.push(a(u)), i.push(f(u)), o.push(a(_));
-  }, n.bbcodeToHtml = function(_) {
-    for (var u = l.length, b = 0; b < u; b += 1)
-      _ = _.replace(l[b], s[b]);
-    return _;
-  }, n.htmlToBBCode = function(_) {
-    for (var u = i.length, b = 0; b < u; b += 1)
-      _ = _.replace(i[b], o[b]);
-    return _;
-  };
-  function r(_, u) {
-    return (_ + "").replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\" + (u || "") + "-]", "g"), "\\$&");
-  }
-  n.addBBCode("[b]{TEXT}[/b]", "<strong>{TEXT}</strong>"), n.addBBCode("[i]{TEXT}[/i]", "<em>{TEXT}</em>"), n.addBBCode("[u]{TEXT}[/u]", '<span style="text-decoration:underline;">{TEXT}</span>'), n.addBBCode("[s]{TEXT}[/s]", '<span style="text-decoration:line-through;">{TEXT}</span>'), n.addBBCode("[color={COLOR}]{TEXT}[/color]", '<span style="color:{COLOR}">{TEXT}</span>');
-}, nn = new ln();
+  }, r = [], n = [], i = [], s = [], l = function(m) {
+    var d = m.match(e), v = d.length, g = 0, D = "";
+    if (v <= 0)
+      return new RegExp(h(m), "g");
+    for (; g < v; g += 1) {
+      var S = d[g].replace(/[{}0-9]/g, "");
+      t[S] && (D += h(m.substr(0, m.indexOf(d[g]))) + t[S], m = m.substr(m.indexOf(d[g]) + d[g].length));
+    }
+    return D += h(m), new RegExp(D, "gi");
+  }, o = function(m) {
+    var d = m.match(e), v = d.length, g = 0, D = "", S = {}, F = 0;
+    if (v <= 0)
+      return m;
+    for (; g < v; g += 1) {
+      var T = d[g].replace(/[{}0-9]/g, ""), x;
+      S[d[g]] ? x = S[d[g]] : (F += 1, x = F, S[d[g]] = x), t[T] && (D += m.substr(0, m.indexOf(d[g])) + "$" + x, m = m.substr(m.indexOf(d[g]) + d[g].length));
+    }
+    return D += m, D;
+  };
+  a.addBBCode = function(m, d) {
+    r.push(l(m)), n.push(o(d)), i.push(l(d)), s.push(o(m));
+  }, a.bbcodeToHtml = function(m) {
+    for (var d = r.length, v = 0; v < d; v += 1)
+      m = m.replace(r[v], n[v]);
+    return m;
+  }, a.htmlToBBCode = function(m) {
+    for (var d = i.length, v = 0; v < d; v += 1)
+      m = m.replace(i[v], s[v]);
+    return m;
+  };
+  function h(m, d) {
+    return (m + "").replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]", "g"), "\\$&");
+  }
+  a.addBBCode("[b]{TEXT}[/b]", "<strong>{TEXT}</strong>"), a.addBBCode("[i]{TEXT}[/i]", "<em>{TEXT}</em>"), a.addBBCode("[u]{TEXT}[/u]", '<span style="text-decoration:underline;">{TEXT}</span>'), a.addBBCode("[s]{TEXT}[/s]", '<span style="text-decoration:line-through;">{TEXT}</span>'), a.addBBCode("[color={COLOR}]{TEXT}[/color]", '<span style="color:{COLOR}">{TEXT}</span>');
+}, fm = new mm();
 const {
-  HtmlTag: sn,
-  SvelteComponent: fn,
-  append: $e,
-  assign: on,
-  attr: O,
-  binding_callbacks: an,
-  check_outros: rn,
-  create_component: ve,
-  destroy_component: ke,
-  detach: ne,
-  element: et,
-  empty: _n,
-  flush: E,
-  get_spread_object: un,
-  get_spread_update: cn,
-  group_outros: dn,
-  init: mn,
-  insert: ie,
-  listen: be,
-  mount_component: ye,
-  run_all: bn,
-  safe_not_equal: gn,
-  set_data: ut,
-  space: tt,
-  text: ct,
-  toggle_class: ge,
-  transition_in: K,
-  transition_out: le
-} = window.__gradio__svelte__internal, { tick: he } = window.__gradio__svelte__internal;
-function lt(n) {
+  HtmlTagHydration: dm,
+  SvelteComponent: pm,
+  append_hydration: Ws,
+  assign: gm,
+  attr: i0,
+  binding_callbacks: vm,
+  check_outros: bm,
+  children: Xs,
+  claim_component: Bn,
+  claim_element: Ys,
+  claim_html_tag: ym,
+  claim_space: js,
+  claim_text: Ho,
+  create_component: Rn,
+  destroy_component: Nn,
+  detach: b0,
+  element: Zs,
+  empty: Ks,
+  flush: Je,
+  get_spread_object: wm,
+  get_spread_update: xm,
+  group_outros: km,
+  init: Dm,
+  insert_hydration: tr,
+  listen: Ra,
+  mount_component: Ln,
+  run_all: Am,
+  safe_not_equal: _m,
+  set_data: Uo,
+  space: $s,
+  text: Go,
+  toggle_class: Na,
+  transition_in: C0,
+  transition_out: Q0
+} = window.__gradio__svelte__internal, { tick: La } = window.__gradio__svelte__internal;
+function Qs(a) {
   let e, t;
-  const l = [
+  const r = [
     { autoscroll: (
       /*gradio*/
-      n[1].autoscroll
+      a[1].autoscroll
     ) },
     { i18n: (
       /*gradio*/
-      n[1].i18n
+      a[1].i18n
     ) },
     /*loading_status*/
-    n[9]
+    a[9]
   ];
-  let s = {};
-  for (let i = 0; i < l.length; i += 1)
-    s = on(s, l[i]);
-  return e = new tn({ props: s }), {
+  let n = {};
+  for (let i = 0; i < r.length; i += 1)
+    n = gm(n, r[i]);
+  return e = new Xh({ props: n }), {
     c() {
-      ve(e.$$.fragment);
+      Rn(e.$$.fragment);
     },
-    m(i, o) {
-      ye(e, i, o), t = !0;
+    l(i) {
+      Bn(e.$$.fragment, i);
     },
-    p(i, o) {
-      const f = o & /*gradio, loading_status*/
-      514 ? cn(l, [
-        o & /*gradio*/
+    m(i, s) {
+      Ln(e, i, s), t = !0;
+    },
+    p(i, s) {
+      const l = s & /*gradio, loading_status*/
+      514 ? xm(r, [
+        s & /*gradio*/
         2 && { autoscroll: (
           /*gradio*/
           i[1].autoscroll
         ) },
-        o & /*gradio*/
+        s & /*gradio*/
         2 && { i18n: (
           /*gradio*/
           i[1].i18n
         ) },
-        o & /*loading_status*/
-        512 && un(
+        s & /*loading_status*/
+        512 && wm(
           /*loading_status*/
           i[9]
         )
       ]) : {};
-      e.$set(f);
+      e.$set(l);
     },
     i(i) {
-      t || (K(e.$$.fragment, i), t = !0);
+      t || (C0(e.$$.fragment, i), t = !0);
     },
     o(i) {
-      le(e.$$.fragment, i), t = !1;
+      Q0(e.$$.fragment, i), t = !1;
     },
     d(i) {
-      ke(e, i);
+      Nn(e, i);
     }
   };
 }
-function hn(n) {
+function Sm(a) {
   let e;
   return {
     c() {
-      e = ct(
+      e = Go(
+        /*label*/
+        a[2]
+      );
+    },
+    l(t) {
+      e = Ho(
+        t,
         /*label*/
-        n[2]
+        a[2]
       );
     },
-    m(t, l) {
-      ie(t, e, l);
+    m(t, r) {
+      tr(t, e, r);
     },
-    p(t, l) {
-      l & /*label*/
-      4 && ut(
+    p(t, r) {
+      r & /*label*/
+      4 && Uo(
         e,
         /*label*/
         t[2]
       );
     },
     d(t) {
-      t && ne(e);
+      t && b0(e);
     }
   };
 }
-function wn(n) {
+function Em(a) {
   let e, t;
   return {
     c() {
-      e = new sn(!1), t = _n(), e.a = t;
+      e = new dm(!1), t = Ks(), this.h();
+    },
+    l(r) {
+      e = ym(r, !1), t = Ks(), this.h();
     },
-    m(l, s) {
+    h() {
+      e.a = t;
+    },
+    m(r, n) {
       e.m(
         /*_value*/
-        n[14],
-        l,
-        s
-      ), ie(l, t, s);
+        a[14],
+        r,
+        n
+      ), tr(r, t, n);
     },
-    p(l, s) {
-      s & /*_value*/
+    p(r, n) {
+      n & /*_value*/
       16384 && e.p(
         /*_value*/
-        l[14]
+        r[14]
       );
     },
-    d(l) {
-      l && (ne(t), e.d());
+    d(r) {
+      r && (b0(t), e.d());
     }
   };
 }
-function pn(n) {
+function Fm(a) {
   let e;
   return {
     c() {
-      e = ct(
+      e = Go(
+        /*value*/
+        a[0]
+      );
+    },
+    l(t) {
+      e = Ho(
+        t,
         /*value*/
-        n[0]
+        a[0]
       );
     },
-    m(t, l) {
-      ie(t, e, l);
+    m(t, r) {
+      tr(t, e, r);
     },
-    p(t, l) {
-      l & /*value*/
-      1 && ut(
+    p(t, r) {
+      r & /*value*/
+      1 && Uo(
         e,
         /*value*/
         t[0]
       );
     },
     d(t) {
-      t && ne(e);
+      t && b0(e);
     }
   };
 }
-function vn(n) {
-  let e, t, l, s, i, o, f, a, r, _ = (
+function Tm(a) {
+  let e, t, r, n, i, s, l, o, h, m = (
     /*loading_status*/
-    n[9] && lt(n)
+    a[9] && Qs(a)
   );
-  l = new ml({
+  r = new Z2({
     props: {
       show_label: (
         /*show_label*/
-        n[6]
+        a[6]
       ),
       info: void 0,
-      $$slots: { default: [hn] },
-      $$scope: { ctx: n }
+      $$slots: { default: [Sm] },
+      $$scope: { ctx: a }
     }
   });
-  function u(d, y) {
+  function d(D, S) {
     return (
       /*is_being_edited*/
-      d[13] ? pn : wn
+      D[13] ? Fm : Em
     );
   }
-  let b = u(n), c = b(n);
+  let v = d(a), g = v(a);
   return {
     c() {
-      _ && _.c(), e = tt(), t = et("label"), ve(l.$$.fragment), s = tt(), i = et("div"), c.c(), O(i, "data-testid", "textbox"), O(i, "contenteditable", "true"), O(i, "class", "text-container svelte-15aeqxz"), O(i, "role", "textbox"), O(i, "tabindex", "0"), O(i, "dir", o = /*rtl*/
-      n[11] ? "rtl" : "ltr"), ge(i, "disabled", !/*interactive*/
-      n[10]), O(t, "class", "svelte-15aeqxz"), ge(t, "container", yn);
+      m && m.c(), e = $s(), t = Zs("label"), Rn(r.$$.fragment), n = $s(), i = Zs("div"), g.c(), this.h();
+    },
+    l(D) {
+      m && m.l(D), e = js(D), t = Ys(D, "LABEL", { class: !0 });
+      var S = Xs(t);
+      Bn(r.$$.fragment, S), n = js(S), i = Ys(S, "DIV", {
+        "data-testid": !0,
+        contenteditable: !0,
+        class: !0,
+        role: !0,
+        tabindex: !0,
+        dir: !0
+      });
+      var F = Xs(i);
+      g.l(F), F.forEach(b0), S.forEach(b0), this.h();
+    },
+    h() {
+      i0(i, "data-testid", "textbox"), i0(i, "contenteditable", "true"), i0(i, "class", "text-container svelte-15aeqxz"), i0(i, "role", "textbox"), i0(i, "tabindex", "0"), i0(i, "dir", s = /*rtl*/
+      a[11] ? "rtl" : "ltr"), Na(i, "disabled", !/*interactive*/
+      a[10]), i0(t, "class", "svelte-15aeqxz"), Na(t, "container", Mm);
     },
-    m(d, y) {
-      _ && _.m(d, y), ie(d, e, y), ie(d, t, y), ye(l, t, null), $e(t, s), $e(t, i), c.m(i, null), n[19](i), f = !0, a || (r = [
-        be(
+    m(D, S) {
+      m && m.m(D, S), tr(D, e, S), tr(D, t, S), Ln(r, t, null), Ws(t, n), Ws(t, i), g.m(i, null), a[19](i), l = !0, o || (h = [
+        Ra(
           i,
           "keypress",
           /*handle_keypress*/
-          n[15]
+          a[15]
         ),
-        be(
+        Ra(
           i,
           "blur",
           /*handle_blur*/
-          n[16]
+          a[16]
         ),
-        be(
+        Ra(
           i,
           "focus",
           /*handle_focus*/
-          n[17]
+          a[17]
         )
-      ], a = !0);
+      ], o = !0);
     },
-    p(d, y) {
+    p(D, S) {
       /*loading_status*/
-      d[9] ? _ ? (_.p(d, y), y & /*loading_status*/
-      512 && K(_, 1)) : (_ = lt(d), _.c(), K(_, 1), _.m(e.parentNode, e)) : _ && (dn(), le(_, 1, 1, () => {
-        _ = null;
-      }), rn());
-      const v = {};
-      y & /*show_label*/
-      64 && (v.show_label = /*show_label*/
-      d[6]), y & /*$$scope, label*/
-      2097156 && (v.$$scope = { dirty: y, ctx: d }), l.$set(v), b === (b = u(d)) && c ? c.p(d, y) : (c.d(1), c = b(d), c && (c.c(), c.m(i, null))), (!f || y & /*rtl*/
-      2048 && o !== (o = /*rtl*/
-      d[11] ? "rtl" : "ltr")) && O(i, "dir", o), (!f || y & /*interactive*/
-      1024) && ge(i, "disabled", !/*interactive*/
-      d[10]);
+      D[9] ? m ? (m.p(D, S), S & /*loading_status*/
+      512 && C0(m, 1)) : (m = Qs(D), m.c(), C0(m, 1), m.m(e.parentNode, e)) : m && (km(), Q0(m, 1, 1, () => {
+        m = null;
+      }), bm());
+      const F = {};
+      S & /*show_label*/
+      64 && (F.show_label = /*show_label*/
+      D[6]), S & /*$$scope, label*/
+      4194308 && (F.$$scope = { dirty: S, ctx: D }), r.$set(F), v === (v = d(D)) && g ? g.p(D, S) : (g.d(1), g = v(D), g && (g.c(), g.m(i, null))), (!l || S & /*rtl*/
+      2048 && s !== (s = /*rtl*/
+      D[11] ? "rtl" : "ltr")) && i0(i, "dir", s), (!l || S & /*interactive*/
+      1024) && Na(i, "disabled", !/*interactive*/
+      D[10]);
     },
-    i(d) {
-      f || (K(_), K(l.$$.fragment, d), f = !0);
+    i(D) {
+      l || (C0(m), C0(r.$$.fragment, D), l = !0);
     },
-    o(d) {
-      le(_), le(l.$$.fragment, d), f = !1;
+    o(D) {
+      Q0(m), Q0(r.$$.fragment, D), l = !1;
     },
-    d(d) {
-      d && (ne(e), ne(t)), _ && _.d(d), ke(l), c.d(), n[19](null), a = !1, bn(r);
+    d(D) {
+      D && (b0(e), b0(t)), m && m.d(D), Nn(r), g.d(), a[19](null), o = !1, Am(h);
     }
   };
 }
-function kn(n) {
+function Cm(a) {
   let e, t;
-  return e = new At({
+  return e = new du({
     props: {
       visible: (
         /*visible*/
-        n[5]
+        a[5]
       ),
       elem_id: (
         /*elem_id*/
-        n[3]
+        a[3]
       ),
       elem_classes: (
         /*elem_classes*/
-        n[4]
+        a[4]
       ),
       scale: (
         /*scale*/
-        n[7]
+        a[7]
       ),
       min_width: (
         /*min_width*/
-        n[8]
+        a[8]
       ),
       allow_overflow: !1,
       padding: !0,
-      $$slots: { default: [vn] },
-      $$scope: { ctx: n }
+      $$slots: { default: [Tm] },
+      $$scope: { ctx: a }
     }
   }), {
     c() {
-      ve(e.$$.fragment);
+      Rn(e.$$.fragment);
+    },
+    l(r) {
+      Bn(e.$$.fragment, r);
     },
-    m(l, s) {
-      ye(e, l, s), t = !0;
+    m(r, n) {
+      Ln(e, r, n), t = !0;
     },
-    p(l, [s]) {
+    p(r, [n]) {
       const i = {};
-      s & /*visible*/
+      n & /*visible*/
       32 && (i.visible = /*visible*/
-      l[5]), s & /*elem_id*/
+      r[5]), n & /*elem_id*/
       8 && (i.elem_id = /*elem_id*/
-      l[3]), s & /*elem_classes*/
+      r[3]), n & /*elem_classes*/
       16 && (i.elem_classes = /*elem_classes*/
-      l[4]), s & /*scale*/
+      r[4]), n & /*scale*/
       128 && (i.scale = /*scale*/
-      l[7]), s & /*min_width*/
+      r[7]), n & /*min_width*/
       256 && (i.min_width = /*min_width*/
-      l[8]), s & /*$$scope, rtl, el, interactive, value, is_being_edited, _value, show_label, label, gradio, loading_status*/
-      2129479 && (i.$$scope = { dirty: s, ctx: l }), e.$set(i);
+      r[8]), n & /*$$scope, rtl, el, interactive, value, is_being_edited, _value, show_label, label, gradio, loading_status*/
+      4226631 && (i.$$scope = { dirty: n, ctx: r }), e.$set(i);
     },
-    i(l) {
-      t || (K(e.$$.fragment, l), t = !0);
+    i(r) {
+      t || (C0(e.$$.fragment, r), t = !0);
     },
-    o(l) {
-      le(e.$$.fragment, l), t = !1;
+    o(r) {
+      Q0(e.$$.fragment, r), t = !1;
     },
-    d(l) {
-      ke(e, l);
+    d(r) {
+      Nn(e, r);
     }
   };
 }
-const yn = !0;
-function Tn(n, e, t) {
-  let { gradio: l } = e, { label: s = "Textbox" } = e, { elem_id: i = "" } = e, { elem_classes: o = [] } = e, { visible: f = !0 } = e, { value: a = "" } = e, { show_label: r } = e, { scale: _ = null } = e, { min_width: u = void 0 } = e, { loading_status: b = void 0 } = e, { value_is_output: c = !1 } = e, { interactive: d } = e, { rtl: y = !1 } = e, v;
-  function F() {
-    l.dispatch("change"), c || l.dispatch("input");
+const Mm = !0;
+function zm(a, e, t) {
+  var r = this && this.__awaiter || function(M, R, V, X) {
+    function be(ae) {
+      return ae instanceof V ? ae : new V(function(fe) {
+        fe(ae);
+      });
+    }
+    return new (V || (V = Promise))(function(ae, fe) {
+      function ye(he) {
+        try {
+          se(X.next(he));
+        } catch (ge) {
+          fe(ge);
+        }
+      }
+      function Ne(he) {
+        try {
+          se(X.throw(he));
+        } catch (ge) {
+          fe(ge);
+        }
+      }
+      function se(he) {
+        he.done ? ae(he.value) : be(he.value).then(ye, Ne);
+      }
+      se((X = X.apply(M, R || [])).next());
+    });
+  };
+  let { gradio: n } = e, { label: i = "Textbox" } = e, { elem_id: s = "" } = e, { elem_classes: l = [] } = e, { visible: o = !0 } = e, { value: h = "" } = e, { show_label: m } = e, { scale: d = null } = e, { min_width: v = void 0 } = e, { loading_status: g = void 0 } = e, { value_is_output: D = !1 } = e, { interactive: S } = e, { rtl: F = !1 } = e, T;
+  function x() {
+    n.dispatch("change"), D || n.dispatch("input");
   }
-  async function q(k) {
-    await he(), k.key === "Enter" && (k.preventDefault(), l.dispatch("submit"));
+  function b(M) {
+    return r(this, void 0, void 0, function* () {
+      yield La(), M.key === "Enter" && (M.preventDefault(), n.dispatch("submit"));
+    });
   }
-  let m = !1, z = "";
-  async function h() {
-    await he(), d && (t(0, a = v.innerText), t(13, m = !1), t(12, v.innerText = "", v));
+  let A = !1, C = "";
+  function z() {
+    return r(this, void 0, void 0, function* () {
+      yield La(), S && (t(0, h = T.innerText), t(13, A = !1), t(12, T.innerText = "", T));
+    });
   }
-  async function $() {
-    if (await he(), !d) {
-      v.blur();
-      return;
-    }
-    t(13, m = !0);
+  function B() {
+    return r(this, void 0, void 0, function* () {
+      if (yield La(), !S) {
+        T.blur();
+        return;
+      }
+      t(13, A = !0);
+    });
   }
-  function R(k) {
-    an[k ? "unshift" : "push"](() => {
-      v = k, t(12, v);
+  function P(M) {
+    vm[M ? "unshift" : "push"](() => {
+      T = M, t(12, T);
     });
   }
-  return n.$$set = (k) => {
-    "gradio" in k && t(1, l = k.gradio), "label" in k && t(2, s = k.label), "elem_id" in k && t(3, i = k.elem_id), "elem_classes" in k && t(4, o = k.elem_classes), "visible" in k && t(5, f = k.visible), "value" in k && t(0, a = k.value), "show_label" in k && t(6, r = k.show_label), "scale" in k && t(7, _ = k.scale), "min_width" in k && t(8, u = k.min_width), "loading_status" in k && t(9, b = k.loading_status), "value_is_output" in k && t(18, c = k.value_is_output), "interactive" in k && t(10, d = k.interactive), "rtl" in k && t(11, y = k.rtl);
-  }, n.$$.update = () => {
-    n.$$.dirty & /*value*/
-    1 && a === null && t(0, a = ""), n.$$.dirty & /*value*/
-    1 && t(14, z = nn.bbcodeToHtml(a || "")), n.$$.dirty & /*value*/
-    1 && F();
+  return a.$$set = (M) => {
+    "gradio" in M && t(1, n = M.gradio), "label" in M && t(2, i = M.label), "elem_id" in M && t(3, s = M.elem_id), "elem_classes" in M && t(4, l = M.elem_classes), "visible" in M && t(5, o = M.visible), "value" in M && t(0, h = M.value), "show_label" in M && t(6, m = M.show_label), "scale" in M && t(7, d = M.scale), "min_width" in M && t(8, v = M.min_width), "loading_status" in M && t(9, g = M.loading_status), "value_is_output" in M && t(18, D = M.value_is_output), "interactive" in M && t(10, S = M.interactive), "rtl" in M && t(11, F = M.rtl);
+  }, a.$$.update = () => {
+    a.$$.dirty & /*value*/
+    1 && h === null && t(0, h = ""), a.$$.dirty & /*value*/
+    1 && t(14, C = fm.bbcodeToHtml(h || "")), a.$$.dirty & /*value*/
+    1 && x();
   }, [
-    a,
-    l,
-    s,
+    h,
+    n,
     i,
+    s,
+    l,
     o,
-    f,
-    r,
-    _,
-    u,
-    b,
+    m,
     d,
-    y,
     v,
-    m,
+    g,
+    S,
+    F,
+    T,
+    A,
+    C,
+    b,
     z,
-    q,
-    h,
-    $,
-    c,
-    R
+    B,
+    D,
+    P
   ];
 }
-class zn extends fn {
+class Bm extends pm {
   constructor(e) {
-    super(), mn(this, e, Tn, kn, gn, {
+    super(), Dm(this, e, zm, Cm, _m, {
       gradio: 1,
       label: 2,
       elem_id: 3,
@@ -2381,81 +19698,81 @@ class zn extends fn {
     return this.$$.ctx[1];
   }
   set gradio(e) {
-    this.$$set({ gradio: e }), E();
+    this.$$set({ gradio: e }), Je();
   }
   get label() {
     return this.$$.ctx[2];
   }
   set label(e) {
-    this.$$set({ label: e }), E();
+    this.$$set({ label: e }), Je();
   }
   get elem_id() {
     return this.$$.ctx[3];
   }
   set elem_id(e) {
-    this.$$set({ elem_id: e }), E();
+    this.$$set({ elem_id: e }), Je();
   }
   get elem_classes() {
     return this.$$.ctx[4];
   }
   set elem_classes(e) {
-    this.$$set({ elem_classes: e }), E();
+    this.$$set({ elem_classes: e }), Je();
   }
   get visible() {
     return this.$$.ctx[5];
   }
   set visible(e) {
-    this.$$set({ visible: e }), E();
+    this.$$set({ visible: e }), Je();
   }
   get value() {
     return this.$$.ctx[0];
   }
   set value(e) {
-    this.$$set({ value: e }), E();
+    this.$$set({ value: e }), Je();
   }
   get show_label() {
     return this.$$.ctx[6];
   }
   set show_label(e) {
-    this.$$set({ show_label: e }), E();
+    this.$$set({ show_label: e }), Je();
   }
   get scale() {
     return this.$$.ctx[7];
   }
   set scale(e) {
-    this.$$set({ scale: e }), E();
+    this.$$set({ scale: e }), Je();
   }
   get min_width() {
     return this.$$.ctx[8];
   }
   set min_width(e) {
-    this.$$set({ min_width: e }), E();
+    this.$$set({ min_width: e }), Je();
   }
   get loading_status() {
     return this.$$.ctx[9];
   }
   set loading_status(e) {
-    this.$$set({ loading_status: e }), E();
+    this.$$set({ loading_status: e }), Je();
   }
   get value_is_output() {
     return this.$$.ctx[18];
   }
   set value_is_output(e) {
-    this.$$set({ value_is_output: e }), E();
+    this.$$set({ value_is_output: e }), Je();
   }
   get interactive() {
     return this.$$.ctx[10];
   }
   set interactive(e) {
-    this.$$set({ interactive: e }), E();
+    this.$$set({ interactive: e }), Je();
   }
   get rtl() {
     return this.$$.ctx[11];
   }
   set rtl(e) {
-    this.$$set({ rtl: e }), E();
+    this.$$set({ rtl: e }), Je();
   }
 }
 export {
-  zn as default
+  Bm as default
 };