var G7 = Object.defineProperty;
var Oc = (i) => {
  throw TypeError(i);
};
var V7 = (i, e, t) => e in i ? G7(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
var rt = (i, e, t) => V7(i, typeof e != "symbol" ? e + "" : e, t), Y7 = (i, e, t) => e.has(i) || Oc("Cannot " + t);
var Pc = (i, e, t) => e.has(i) ? Oc("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(i) : e.set(i, t);
var el = (i, e, t) => (Y7(i, e, "access private method"), t);
var Ir = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, xl = { exports: {} };
/**
 * @license
 * Lodash <https://lodash.com/>
 * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */
xl.exports;
(function(i, e) {
  (function() {
    var t, a = "4.17.21", l = 200, o = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", u = "Expected a function", h = "Invalid `variable` option passed into `_.template`", d = "__lodash_hash_undefined__", p = 500, _ = "__lodash_placeholder__", x = 1, C = 2, A = 4, $ = 1, I = 2, q = 1, H = 2, T = 4, D = 8, R = 16, N = 32, U = 64, G = 128, te = 256, J = 512, X = 30, oe = "...", Ae = 800, je = 16, Me = 1, Ne = 2, Xe = 3, he = 1 / 0, ke = 9007199254740991, Oe = 17976931348623157e292, ce = NaN, le = 4294967295, Be = le - 1, Pe = le >>> 1, dt = [
      ["ary", G],
      ["bind", q],
      ["bindKey", H],
      ["curry", D],
      ["curryRight", R],
      ["flip", J],
      ["partial", N],
      ["partialRight", U],
      ["rearg", te]
    ], Q = "[object Arguments]", vt = "[object Array]", Dt = "[object AsyncFunction]", at = "[object Boolean]", Bt = "[object Date]", l0 = "[object DOMException]", Kt = "[object Error]", Pt = "[object Function]", b0 = "[object GeneratorFunction]", st = "[object Map]", y0 = "[object Number]", Pn = "[object Null]", kt = "[object Object]", w0 = "[object Promise]", U0 = "[object Proxy]", Hn = "[object RegExp]", Jt = "[object Set]", gr = "[object String]", Un = "[object Symbol]", vr = "[object Undefined]", x0 = "[object WeakMap]", Wn = "[object WeakSet]", Gn = "[object ArrayBuffer]", Dn = "[object DataView]", Ur = "[object Float32Array]", _r = "[object Float64Array]", Wr = "[object Int8Array]", Vn = "[object Int16Array]", Yn = "[object Int32Array]", s0 = "[object Uint8Array]", ln = "[object Uint8ClampedArray]", br = "[object Uint16Array]", yr = "[object Uint32Array]", Ol = /\b__p \+= '';/g, Gr = /\b(__p \+=) '' \+/g, Vr = /(__e\(.*?\)|\b__t\)) \+\n'';/g, ri = /&(?:amp|lt|gt|quot|#39);/g, Xn = /[&<>"']/g, Pl = RegExp(ri.source), Hl = RegExp(Xn.source), At = /<%-([\s\S]+?)%>/g, Zn = /<%([\s\S]+?)%>/g, ai = /<%=([\s\S]+?)%>/g, ii = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, _a = /^\w*$/, li = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, Yr = /[\\^$.*+?()[\]{}|]/g, Ul = RegExp(Yr.source), Qt = /^\s+/, Xr = /\s/, si = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, oi = /\{\n\/\* \[wrapped with (.+)\] \*/, ui = /,? & /, ci = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, W0 = /[()=,{}\[\]\/\s]/, hi = /\\(\\)?/g, fi = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, ba = /\w*$/, di = /^[-+]0x[0-9a-f]+$/i, Wl = /^0b[01]+$/i, fe = /^\[object .+?Constructor\]$/, B = /^0o[0-7]+$/i, ee = /^(?:0|[1-9]\d*)$/, ue = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, Ve = /($^)/, Et = /['\n\r\u2028\u2029\\]/g, mt = "\\ud800-\\udfff", Nt = "\\u0300-\\u036f", D0 = "\\ufe20-\\ufe2f", wr = "\\u20d0-\\u20ff", Tt = Nt + D0 + wr, ya = "\\u2700-\\u27bf", wa = "a-z\\xdf-\\xf6\\xf8-\\xff", Pf = "\\xac\\xb1\\xd7\\xf7", Hf = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", Uf = "\\u2000-\\u206f", Wf = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", _u = "A-Z\\xc0-\\xd6\\xd8-\\xde", bu = "\\ufe0e\\ufe0f", yu = Pf + Hf + Uf + Wf, Gl = "['’]", Gf = "[" + mt + "]", wu = "[" + yu + "]", mi = "[" + Tt + "]", xu = "\\d+", Vf = "[" + ya + "]", Du = "[" + wa + "]", ku = "[^" + mt + yu + xu + ya + wa + _u + "]", Vl = "\\ud83c[\\udffb-\\udfff]", Yf = "(?:" + mi + "|" + Vl + ")", Au = "[^" + mt + "]", Yl = "(?:\\ud83c[\\udde6-\\uddff]){2}", Xl = "[\\ud800-\\udbff][\\udc00-\\udfff]", Zr = "[" + _u + "]", Su = "\\u200d", Fu = "(?:" + Du + "|" + ku + ")", Xf = "(?:" + Zr + "|" + ku + ")", Cu = "(?:" + Gl + "(?:d|ll|m|re|s|t|ve))?", Eu = "(?:" + Gl + "(?:D|LL|M|RE|S|T|VE))?", Tu = Yf + "?", $u = "[" + bu + "]?", Zf = "(?:" + Su + "(?:" + [Au, Yl, Xl].join("|") + ")" + $u + Tu + ")*", Kf = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", Jf = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", Mu = $u + Tu + Zf, Qf = "(?:" + [Vf, Yl, Xl].join("|") + ")" + Mu, jf = "(?:" + [Au + mi + "?", mi, Yl, Xl, Gf].join("|") + ")", ed = RegExp(Gl, "g"), td = RegExp(mi, "g"), Zl = RegExp(Vl + "(?=" + Vl + ")|" + jf + Mu, "g"), nd = RegExp([
      Zr + "?" + Du + "+" + Cu + "(?=" + [wu, Zr, "$"].join("|") + ")",
      Xf + "+" + Eu + "(?=" + [wu, Zr + Fu, "$"].join("|") + ")",
      Zr + "?" + Fu + "+" + Cu,
      Zr + "+" + Eu,
      Jf,
      Kf,
      xu,
      Qf
    ].join("|"), "g"), rd = RegExp("[" + Su + mt + Tt + bu + "]"), ad = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, id = [
      "Array",
      "Buffer",
      "DataView",
      "Date",
      "Error",
      "Float32Array",
      "Float64Array",
      "Function",
      "Int8Array",
      "Int16Array",
      "Int32Array",
      "Map",
      "Math",
      "Object",
      "Promise",
      "RegExp",
      "Set",
      "String",
      "Symbol",
      "TypeError",
      "Uint8Array",
      "Uint8ClampedArray",
      "Uint16Array",
      "Uint32Array",
      "WeakMap",
      "_",
      "clearTimeout",
      "isFinite",
      "parseInt",
      "setTimeout"
    ], ld = -1, nt = {};
    nt[Ur] = nt[_r] = nt[Wr] = nt[Vn] = nt[Yn] = nt[s0] = nt[ln] = nt[br] = nt[yr] = !0, nt[Q] = nt[vt] = nt[Gn] = nt[at] = nt[Dn] = nt[Bt] = nt[Kt] = nt[Pt] = nt[st] = nt[y0] = nt[kt] = nt[Hn] = nt[Jt] = nt[gr] = nt[x0] = !1;
    var et = {};
    et[Q] = et[vt] = et[Gn] = et[Dn] = et[at] = et[Bt] = et[Ur] = et[_r] = et[Wr] = et[Vn] = et[Yn] = et[st] = et[y0] = et[kt] = et[Hn] = et[Jt] = et[gr] = et[Un] = et[s0] = et[ln] = et[br] = et[yr] = !0, et[Kt] = et[Pt] = et[x0] = !1;
    var sd = {
      // Latin-1 Supplement block.
      À: "A",
      Á: "A",
      Â: "A",
      Ã: "A",
      Ä: "A",
      Å: "A",
      à: "a",
      á: "a",
      â: "a",
      ã: "a",
      ä: "a",
      å: "a",
      Ç: "C",
      ç: "c",
      Ð: "D",
      ð: "d",
      È: "E",
      É: "E",
      Ê: "E",
      Ë: "E",
      è: "e",
      é: "e",
      ê: "e",
      ë: "e",
      Ì: "I",
      Í: "I",
      Î: "I",
      Ï: "I",
      ì: "i",
      í: "i",
      î: "i",
      ï: "i",
      Ñ: "N",
      ñ: "n",
      Ò: "O",
      Ó: "O",
      Ô: "O",
      Õ: "O",
      Ö: "O",
      Ø: "O",
      ò: "o",
      ó: "o",
      ô: "o",
      õ: "o",
      ö: "o",
      ø: "o",
      Ù: "U",
      Ú: "U",
      Û: "U",
      Ü: "U",
      ù: "u",
      ú: "u",
      û: "u",
      ü: "u",
      Ý: "Y",
      ý: "y",
      ÿ: "y",
      Æ: "Ae",
      æ: "ae",
      Þ: "Th",
      þ: "th",
      ß: "ss",
      // Latin Extended-A block.
      Ā: "A",
      Ă: "A",
      Ą: "A",
      ā: "a",
      ă: "a",
      ą: "a",
      Ć: "C",
      Ĉ: "C",
      Ċ: "C",
      Č: "C",
      ć: "c",
      ĉ: "c",
      ċ: "c",
      č: "c",
      Ď: "D",
      Đ: "D",
      ď: "d",
      đ: "d",
      Ē: "E",
      Ĕ: "E",
      Ė: "E",
      Ę: "E",
      Ě: "E",
      ē: "e",
      ĕ: "e",
      ė: "e",
      ę: "e",
      ě: "e",
      Ĝ: "G",
      Ğ: "G",
      Ġ: "G",
      Ģ: "G",
      ĝ: "g",
      ğ: "g",
      ġ: "g",
      ģ: "g",
      Ĥ: "H",
      Ħ: "H",
      ĥ: "h",
      ħ: "h",
      Ĩ: "I",
      Ī: "I",
      Ĭ: "I",
      Į: "I",
      İ: "I",
      ĩ: "i",
      ī: "i",
      ĭ: "i",
      į: "i",
      ı: "i",
      Ĵ: "J",
      ĵ: "j",
      Ķ: "K",
      ķ: "k",
      ĸ: "k",
      Ĺ: "L",
      Ļ: "L",
      Ľ: "L",
      Ŀ: "L",
      Ł: "L",
      ĺ: "l",
      ļ: "l",
      ľ: "l",
      ŀ: "l",
      ł: "l",
      Ń: "N",
      Ņ: "N",
      Ň: "N",
      Ŋ: "N",
      ń: "n",
      ņ: "n",
      ň: "n",
      ŋ: "n",
      Ō: "O",
      Ŏ: "O",
      Ő: "O",
      ō: "o",
      ŏ: "o",
      ő: "o",
      Ŕ: "R",
      Ŗ: "R",
      Ř: "R",
      ŕ: "r",
      ŗ: "r",
      ř: "r",
      Ś: "S",
      Ŝ: "S",
      Ş: "S",
      Š: "S",
      ś: "s",
      ŝ: "s",
      ş: "s",
      š: "s",
      Ţ: "T",
      Ť: "T",
      Ŧ: "T",
      ţ: "t",
      ť: "t",
      ŧ: "t",
      Ũ: "U",
      Ū: "U",
      Ŭ: "U",
      Ů: "U",
      Ű: "U",
      Ų: "U",
      ũ: "u",
      ū: "u",
      ŭ: "u",
      ů: "u",
      ű: "u",
      ų: "u",
      Ŵ: "W",
      ŵ: "w",
      Ŷ: "Y",
      ŷ: "y",
      Ÿ: "Y",
      Ź: "Z",
      Ż: "Z",
      Ž: "Z",
      ź: "z",
      ż: "z",
      ž: "z",
      Ĳ: "IJ",
      ĳ: "ij",
      Œ: "Oe",
      œ: "oe",
      ŉ: "'n",
      ſ: "s"
    }, od = {
      "&": "&amp;",
      "<": "&lt;",
      ">": "&gt;",
      '"': "&quot;",
      "'": "&#39;"
    }, ud = {
      "&amp;": "&",
      "&lt;": "<",
      "&gt;": ">",
      "&quot;": '"',
      "&#39;": "'"
    }, cd = {
      "\\": "\\",
      "'": "'",
      "\n": "n",
      "\r": "r",
      "\u2028": "u2028",
      "\u2029": "u2029"
    }, hd = parseFloat, fd = parseInt, Bu = typeof Ir == "object" && Ir && Ir.Object === Object && Ir, dd = typeof self == "object" && self && self.Object === Object && self, zt = Bu || dd || Function("return this")(), Kl = e && !e.nodeType && e, xr = Kl && !0 && i && !i.nodeType && i, zu = xr && xr.exports === Kl, Jl = zu && Bu.process, k0 = function() {
      try {
        var z = xr && xr.require && xr.require("util").types;
        return z || Jl && Jl.binding && Jl.binding("util");
      } catch {
      }
    }(), Ru = k0 && k0.isArrayBuffer, Iu = k0 && k0.isDate, Lu = k0 && k0.isMap, Nu = k0 && k0.isRegExp, qu = k0 && k0.isSet, Ou = k0 && k0.isTypedArray;
    function o0(z, W, P) {
      switch (P.length) {
        case 0:
          return z.call(W);
        case 1:
          return z.call(W, P[0]);
        case 2:
          return z.call(W, P[0], P[1]);
        case 3:
          return z.call(W, P[0], P[1], P[2]);
      }
      return z.apply(W, P);
    }
    function md(z, W, P, se) {
      for (var Se = -1, We = z == null ? 0 : z.length; ++Se < We; ) {
        var Ft = z[Se];
        W(se, Ft, P(Ft), z);
      }
      return se;
    }
    function A0(z, W) {
      for (var P = -1, se = z == null ? 0 : z.length; ++P < se && W(z[P], P, z) !== !1; )
        ;
      return z;
    }
    function pd(z, W) {
      for (var P = z == null ? 0 : z.length; P-- && W(z[P], P, z) !== !1; )
        ;
      return z;
    }
    function Pu(z, W) {
      for (var P = -1, se = z == null ? 0 : z.length; ++P < se; )
        if (!W(z[P], P, z))
          return !1;
      return !0;
    }
    function Kn(z, W) {
      for (var P = -1, se = z == null ? 0 : z.length, Se = 0, We = []; ++P < se; ) {
        var Ft = z[P];
        W(Ft, P, z) && (We[Se++] = Ft);
      }
      return We;
    }
    function pi(z, W) {
      var P = z == null ? 0 : z.length;
      return !!P && Kr(z, W, 0) > -1;
    }
    function Ql(z, W, P) {
      for (var se = -1, Se = z == null ? 0 : z.length; ++se < Se; )
        if (P(W, z[se]))
          return !0;
      return !1;
    }
    function it(z, W) {
      for (var P = -1, se = z == null ? 0 : z.length, Se = Array(se); ++P < se; )
        Se[P] = W(z[P], P, z);
      return Se;
    }
    function Jn(z, W) {
      for (var P = -1, se = W.length, Se = z.length; ++P < se; )
        z[Se + P] = W[P];
      return z;
    }
    function jl(z, W, P, se) {
      var Se = -1, We = z == null ? 0 : z.length;
      for (se && We && (P = z[++Se]); ++Se < We; )
        P = W(P, z[Se], Se, z);
      return P;
    }
    function gd(z, W, P, se) {
      var Se = z == null ? 0 : z.length;
      for (se && Se && (P = z[--Se]); Se--; )
        P = W(P, z[Se], Se, z);
      return P;
    }
    function es(z, W) {
      for (var P = -1, se = z == null ? 0 : z.length; ++P < se; )
        if (W(z[P], P, z))
          return !0;
      return !1;
    }
    var vd = ts("length");
    function _d(z) {
      return z.split("");
    }
    function bd(z) {
      return z.match(ci) || [];
    }
    function Hu(z, W, P) {
      var se;
      return P(z, function(Se, We, Ft) {
        if (W(Se, We, Ft))
          return se = We, !1;
      }), se;
    }
    function gi(z, W, P, se) {
      for (var Se = z.length, We = P + (se ? 1 : -1); se ? We-- : ++We < Se; )
        if (W(z[We], We, z))
          return We;
      return -1;
    }
    function Kr(z, W, P) {
      return W === W ? $d(z, W, P) : gi(z, Uu, P);
    }
    function yd(z, W, P, se) {
      for (var Se = P - 1, We = z.length; ++Se < We; )
        if (se(z[Se], W))
          return Se;
      return -1;
    }
    function Uu(z) {
      return z !== z;
    }
    function Wu(z, W) {
      var P = z == null ? 0 : z.length;
      return P ? rs(z, W) / P : ce;
    }
    function ts(z) {
      return function(W) {
        return W == null ? t : W[z];
      };
    }
    function ns(z) {
      return function(W) {
        return z == null ? t : z[W];
      };
    }
    function Gu(z, W, P, se, Se) {
      return Se(z, function(We, Ft, Je) {
        P = se ? (se = !1, We) : W(P, We, Ft, Je);
      }), P;
    }
    function wd(z, W) {
      var P = z.length;
      for (z.sort(W); P--; )
        z[P] = z[P].value;
      return z;
    }
    function rs(z, W) {
      for (var P, se = -1, Se = z.length; ++se < Se; ) {
        var We = W(z[se]);
        We !== t && (P = P === t ? We : P + We);
      }
      return P;
    }
    function as(z, W) {
      for (var P = -1, se = Array(z); ++P < z; )
        se[P] = W(P);
      return se;
    }
    function xd(z, W) {
      return it(W, function(P) {
        return [P, z[P]];
      });
    }
    function Vu(z) {
      return z && z.slice(0, Ku(z) + 1).replace(Qt, "");
    }
    function u0(z) {
      return function(W) {
        return z(W);
      };
    }
    function is(z, W) {
      return it(W, function(P) {
        return z[P];
      });
    }
    function xa(z, W) {
      return z.has(W);
    }
    function Yu(z, W) {
      for (var P = -1, se = z.length; ++P < se && Kr(W, z[P], 0) > -1; )
        ;
      return P;
    }
    function Xu(z, W) {
      for (var P = z.length; P-- && Kr(W, z[P], 0) > -1; )
        ;
      return P;
    }
    function Dd(z, W) {
      for (var P = z.length, se = 0; P--; )
        z[P] === W && ++se;
      return se;
    }
    var kd = ns(sd), Ad = ns(od);
    function Sd(z) {
      return "\\" + cd[z];
    }
    function Fd(z, W) {
      return z == null ? t : z[W];
    }
    function Jr(z) {
      return rd.test(z);
    }
    function Cd(z) {
      return ad.test(z);
    }
    function Ed(z) {
      for (var W, P = []; !(W = z.next()).done; )
        P.push(W.value);
      return P;
    }
    function ls(z) {
      var W = -1, P = Array(z.size);
      return z.forEach(function(se, Se) {
        P[++W] = [Se, se];
      }), P;
    }
    function Zu(z, W) {
      return function(P) {
        return z(W(P));
      };
    }
    function Qn(z, W) {
      for (var P = -1, se = z.length, Se = 0, We = []; ++P < se; ) {
        var Ft = z[P];
        (Ft === W || Ft === _) && (z[P] = _, We[Se++] = P);
      }
      return We;
    }
    function vi(z) {
      var W = -1, P = Array(z.size);
      return z.forEach(function(se) {
        P[++W] = se;
      }), P;
    }
    function Td(z) {
      var W = -1, P = Array(z.size);
      return z.forEach(function(se) {
        P[++W] = [se, se];
      }), P;
    }
    function $d(z, W, P) {
      for (var se = P - 1, Se = z.length; ++se < Se; )
        if (z[se] === W)
          return se;
      return -1;
    }
    function Md(z, W, P) {
      for (var se = P + 1; se--; )
        if (z[se] === W)
          return se;
      return se;
    }
    function Qr(z) {
      return Jr(z) ? zd(z) : vd(z);
    }
    function G0(z) {
      return Jr(z) ? Rd(z) : _d(z);
    }
    function Ku(z) {
      for (var W = z.length; W-- && Xr.test(z.charAt(W)); )
        ;
      return W;
    }
    var Bd = ns(ud);
    function zd(z) {
      for (var W = Zl.lastIndex = 0; Zl.test(z); )
        ++W;
      return W;
    }
    function Rd(z) {
      return z.match(Zl) || [];
    }
    function Id(z) {
      return z.match(nd) || [];
    }
    var Ld = function z(W) {
      W = W == null ? zt : jr.defaults(zt.Object(), W, jr.pick(zt, id));
      var P = W.Array, se = W.Date, Se = W.Error, We = W.Function, Ft = W.Math, Je = W.Object, ss = W.RegExp, Nd = W.String, S0 = W.TypeError, _i = P.prototype, qd = We.prototype, ea = Je.prototype, bi = W["__core-js_shared__"], yi = qd.toString, Ye = ea.hasOwnProperty, Od = 0, Ju = function() {
        var n = /[^.]+$/.exec(bi && bi.keys && bi.keys.IE_PROTO || "");
        return n ? "Symbol(src)_1." + n : "";
      }(), wi = ea.toString, Pd = yi.call(Je), Hd = zt._, Ud = ss(
        "^" + yi.call(Ye).replace(Yr, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
      ), xi = zu ? W.Buffer : t, jn = W.Symbol, Di = W.Uint8Array, Qu = xi ? xi.allocUnsafe : t, ki = Zu(Je.getPrototypeOf, Je), ju = Je.create, e1 = ea.propertyIsEnumerable, Ai = _i.splice, t1 = jn ? jn.isConcatSpreadable : t, Da = jn ? jn.iterator : t, Dr = jn ? jn.toStringTag : t, Si = function() {
        try {
          var n = Cr(Je, "defineProperty");
          return n({}, "", {}), n;
        } catch {
        }
      }(), Wd = W.clearTimeout !== zt.clearTimeout && W.clearTimeout, Gd = se && se.now !== zt.Date.now && se.now, Vd = W.setTimeout !== zt.setTimeout && W.setTimeout, Fi = Ft.ceil, Ci = Ft.floor, os = Je.getOwnPropertySymbols, Yd = xi ? xi.isBuffer : t, n1 = W.isFinite, Xd = _i.join, Zd = Zu(Je.keys, Je), Ct = Ft.max, qt = Ft.min, Kd = se.now, Jd = W.parseInt, r1 = Ft.random, Qd = _i.reverse, us = Cr(W, "DataView"), ka = Cr(W, "Map"), cs = Cr(W, "Promise"), ta = Cr(W, "Set"), Aa = Cr(W, "WeakMap"), Sa = Cr(Je, "create"), Ei = Aa && new Aa(), na = {}, jd = Er(us), e2 = Er(ka), t2 = Er(cs), n2 = Er(ta), r2 = Er(Aa), Ti = jn ? jn.prototype : t, Fa = Ti ? Ti.valueOf : t, a1 = Ti ? Ti.toString : t;
      function b(n) {
        if (pt(n) && !Ce(n) && !(n instanceof Le)) {
          if (n instanceof F0)
            return n;
          if (Ye.call(n, "__wrapped__"))
            return ic(n);
        }
        return new F0(n);
      }
      var ra = /* @__PURE__ */ function() {
        function n() {
        }
        return function(r) {
          if (!ot(r))
            return {};
          if (ju)
            return ju(r);
          n.prototype = r;
          var s = new n();
          return n.prototype = t, s;
        };
      }();
      function $i() {
      }
      function F0(n, r) {
        this.__wrapped__ = n, this.__actions__ = [], this.__chain__ = !!r, this.__index__ = 0, this.__values__ = t;
      }
      b.templateSettings = {
        /**
         * Used to detect `data` property values to be HTML-escaped.
         *
         * @memberOf _.templateSettings
         * @type {RegExp}
         */
        escape: At,
        /**
         * Used to detect code to be evaluated.
         *
         * @memberOf _.templateSettings
         * @type {RegExp}
         */
        evaluate: Zn,
        /**
         * Used to detect `data` property values to inject.
         *
         * @memberOf _.templateSettings
         * @type {RegExp}
         */
        interpolate: ai,
        /**
         * Used to reference the data object in the template text.
         *
         * @memberOf _.templateSettings
         * @type {string}
         */
        variable: "",
        /**
         * Used to import variables into the compiled template.
         *
         * @memberOf _.templateSettings
         * @type {Object}
         */
        imports: {
          /**
           * A reference to the `lodash` function.
           *
           * @memberOf _.templateSettings.imports
           * @type {Function}
           */
          _: b
        }
      }, b.prototype = $i.prototype, b.prototype.constructor = b, F0.prototype = ra($i.prototype), F0.prototype.constructor = F0;
      function Le(n) {
        this.__wrapped__ = n, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = le, this.__views__ = [];
      }
      function a2() {
        var n = new Le(this.__wrapped__);
        return n.__actions__ = jt(this.__actions__), n.__dir__ = this.__dir__, n.__filtered__ = this.__filtered__, n.__iteratees__ = jt(this.__iteratees__), n.__takeCount__ = this.__takeCount__, n.__views__ = jt(this.__views__), n;
      }
      function i2() {
        if (this.__filtered__) {
          var n = new Le(this);
          n.__dir__ = -1, n.__filtered__ = !0;
        } else
          n = this.clone(), n.__dir__ *= -1;
        return n;
      }
      function l2() {
        var n = this.__wrapped__.value(), r = this.__dir__, s = Ce(n), f = r < 0, g = s ? n.length : 0, w = _m(0, g, this.__views__), S = w.start, E = w.end, L = E - S, V = f ? E : S - 1, Y = this.__iteratees__, Z = Y.length, re = 0, de = qt(L, this.__takeCount__);
        if (!s || !f && g == L && de == L)
          return C1(n, this.__actions__);
        var ye = [];
        e:
          for (; L-- && re < de; ) {
            V += r;
            for (var $e = -1, we = n[V]; ++$e < Z; ) {
              var Re = Y[$e], qe = Re.iteratee, f0 = Re.type, Wt = qe(we);
              if (f0 == Ne)
                we = Wt;
              else if (!Wt) {
                if (f0 == Me)
                  continue e;
                break e;
              }
            }
            ye[re++] = we;
          }
        return ye;
      }
      Le.prototype = ra($i.prototype), Le.prototype.constructor = Le;
      function kr(n) {
        var r = -1, s = n == null ? 0 : n.length;
        for (this.clear(); ++r < s; ) {
          var f = n[r];
          this.set(f[0], f[1]);
        }
      }
      function s2() {
        this.__data__ = Sa ? Sa(null) : {}, this.size = 0;
      }
      function o2(n) {
        var r = this.has(n) && delete this.__data__[n];
        return this.size -= r ? 1 : 0, r;
      }
      function u2(n) {
        var r = this.__data__;
        if (Sa) {
          var s = r[n];
          return s === d ? t : s;
        }
        return Ye.call(r, n) ? r[n] : t;
      }
      function c2(n) {
        var r = this.__data__;
        return Sa ? r[n] !== t : Ye.call(r, n);
      }
      function h2(n, r) {
        var s = this.__data__;
        return this.size += this.has(n) ? 0 : 1, s[n] = Sa && r === t ? d : r, this;
      }
      kr.prototype.clear = s2, kr.prototype.delete = o2, kr.prototype.get = u2, kr.prototype.has = c2, kr.prototype.set = h2;
      function kn(n) {
        var r = -1, s = n == null ? 0 : n.length;
        for (this.clear(); ++r < s; ) {
          var f = n[r];
          this.set(f[0], f[1]);
        }
      }
      function f2() {
        this.__data__ = [], this.size = 0;
      }
      function d2(n) {
        var r = this.__data__, s = Mi(r, n);
        if (s < 0)
          return !1;
        var f = r.length - 1;
        return s == f ? r.pop() : Ai.call(r, s, 1), --this.size, !0;
      }
      function m2(n) {
        var r = this.__data__, s = Mi(r, n);
        return s < 0 ? t : r[s][1];
      }
      function p2(n) {
        return Mi(this.__data__, n) > -1;
      }
      function g2(n, r) {
        var s = this.__data__, f = Mi(s, n);
        return f < 0 ? (++this.size, s.push([n, r])) : s[f][1] = r, this;
      }
      kn.prototype.clear = f2, kn.prototype.delete = d2, kn.prototype.get = m2, kn.prototype.has = p2, kn.prototype.set = g2;
      function An(n) {
        var r = -1, s = n == null ? 0 : n.length;
        for (this.clear(); ++r < s; ) {
          var f = n[r];
          this.set(f[0], f[1]);
        }
      }
      function v2() {
        this.size = 0, this.__data__ = {
          hash: new kr(),
          map: new (ka || kn)(),
          string: new kr()
        };
      }
      function _2(n) {
        var r = Wi(this, n).delete(n);
        return this.size -= r ? 1 : 0, r;
      }
      function b2(n) {
        return Wi(this, n).get(n);
      }
      function y2(n) {
        return Wi(this, n).has(n);
      }
      function w2(n, r) {
        var s = Wi(this, n), f = s.size;
        return s.set(n, r), this.size += s.size == f ? 0 : 1, this;
      }
      An.prototype.clear = v2, An.prototype.delete = _2, An.prototype.get = b2, An.prototype.has = y2, An.prototype.set = w2;
      function Ar(n) {
        var r = -1, s = n == null ? 0 : n.length;
        for (this.__data__ = new An(); ++r < s; )
          this.add(n[r]);
      }
      function x2(n) {
        return this.__data__.set(n, d), this;
      }
      function D2(n) {
        return this.__data__.has(n);
      }
      Ar.prototype.add = Ar.prototype.push = x2, Ar.prototype.has = D2;
      function V0(n) {
        var r = this.__data__ = new kn(n);
        this.size = r.size;
      }
      function k2() {
        this.__data__ = new kn(), this.size = 0;
      }
      function A2(n) {
        var r = this.__data__, s = r.delete(n);
        return this.size = r.size, s;
      }
      function S2(n) {
        return this.__data__.get(n);
      }
      function F2(n) {
        return this.__data__.has(n);
      }
      function C2(n, r) {
        var s = this.__data__;
        if (s instanceof kn) {
          var f = s.__data__;
          if (!ka || f.length < l - 1)
            return f.push([n, r]), this.size = ++s.size, this;
          s = this.__data__ = new An(f);
        }
        return s.set(n, r), this.size = s.size, this;
      }
      V0.prototype.clear = k2, V0.prototype.delete = A2, V0.prototype.get = S2, V0.prototype.has = F2, V0.prototype.set = C2;
      function i1(n, r) {
        var s = Ce(n), f = !s && Tr(n), g = !s && !f && ar(n), w = !s && !f && !g && sa(n), S = s || f || g || w, E = S ? as(n.length, Nd) : [], L = E.length;
        for (var V in n)
          (r || Ye.call(n, V)) && !(S && // Safari 9 has enumerable `arguments.length` in strict mode.
          (V == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
          g && (V == "offset" || V == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
          w && (V == "buffer" || V == "byteLength" || V == "byteOffset") || // Skip index properties.
          En(V, L))) && E.push(V);
        return E;
      }
      function l1(n) {
        var r = n.length;
        return r ? n[ws(0, r - 1)] : t;
      }
      function E2(n, r) {
        return Gi(jt(n), Sr(r, 0, n.length));
      }
      function T2(n) {
        return Gi(jt(n));
      }
      function hs(n, r, s) {
        (s !== t && !Y0(n[r], s) || s === t && !(r in n)) && Sn(n, r, s);
      }
      function Ca(n, r, s) {
        var f = n[r];
        (!(Ye.call(n, r) && Y0(f, s)) || s === t && !(r in n)) && Sn(n, r, s);
      }
      function Mi(n, r) {
        for (var s = n.length; s--; )
          if (Y0(n[s][0], r))
            return s;
        return -1;
      }
      function $2(n, r, s, f) {
        return er(n, function(g, w, S) {
          r(f, g, s(g), S);
        }), f;
      }
      function s1(n, r) {
        return n && on(r, $t(r), n);
      }
      function M2(n, r) {
        return n && on(r, t0(r), n);
      }
      function Sn(n, r, s) {
        r == "__proto__" && Si ? Si(n, r, {
          configurable: !0,
          enumerable: !0,
          value: s,
          writable: !0
        }) : n[r] = s;
      }
      function fs(n, r) {
        for (var s = -1, f = r.length, g = P(f), w = n == null; ++s < f; )
          g[s] = w ? t : Vs(n, r[s]);
        return g;
      }
      function Sr(n, r, s) {
        return n === n && (s !== t && (n = n <= s ? n : s), r !== t && (n = n >= r ? n : r)), n;
      }
      function C0(n, r, s, f, g, w) {
        var S, E = r & x, L = r & C, V = r & A;
        if (s && (S = g ? s(n, f, g, w) : s(n)), S !== t)
          return S;
        if (!ot(n))
          return n;
        var Y = Ce(n);
        if (Y) {
          if (S = ym(n), !E)
            return jt(n, S);
        } else {
          var Z = Ot(n), re = Z == Pt || Z == b0;
          if (ar(n))
            return $1(n, E);
          if (Z == kt || Z == Q || re && !g) {
            if (S = L || re ? {} : K1(n), !E)
              return L ? um(n, M2(S, n)) : om(n, s1(S, n));
          } else {
            if (!et[Z])
              return g ? n : {};
            S = wm(n, Z, E);
          }
        }
        w || (w = new V0());
        var de = w.get(n);
        if (de)
          return de;
        w.set(n, S), Ac(n) ? n.forEach(function(we) {
          S.add(C0(we, r, s, we, n, w));
        }) : Dc(n) && n.forEach(function(we, Re) {
          S.set(Re, C0(we, r, s, Re, n, w));
        });
        var ye = V ? L ? Ms : $s : L ? t0 : $t, $e = Y ? t : ye(n);
        return A0($e || n, function(we, Re) {
          $e && (Re = we, we = n[Re]), Ca(S, Re, C0(we, r, s, Re, n, w));
        }), S;
      }
      function B2(n) {
        var r = $t(n);
        return function(s) {
          return o1(s, n, r);
        };
      }
      function o1(n, r, s) {
        var f = s.length;
        if (n == null)
          return !f;
        for (n = Je(n); f--; ) {
          var g = s[f], w = r[g], S = n[g];
          if (S === t && !(g in n) || !w(S))
            return !1;
        }
        return !0;
      }
      function u1(n, r, s) {
        if (typeof n != "function")
          throw new S0(u);
        return Ra(function() {
          n.apply(t, s);
        }, r);
      }
      function Ea(n, r, s, f) {
        var g = -1, w = pi, S = !0, E = n.length, L = [], V = r.length;
        if (!E)
          return L;
        s && (r = it(r, u0(s))), f ? (w = Ql, S = !1) : r.length >= l && (w = xa, S = !1, r = new Ar(r));
        e:
          for (; ++g < E; ) {
            var Y = n[g], Z = s == null ? Y : s(Y);
            if (Y = f || Y !== 0 ? Y : 0, S && Z === Z) {
              for (var re = V; re--; )
                if (r[re] === Z)
                  continue e;
              L.push(Y);
            } else w(r, Z, f) || L.push(Y);
          }
        return L;
      }
      var er = I1(sn), c1 = I1(ms, !0);
      function z2(n, r) {
        var s = !0;
        return er(n, function(f, g, w) {
          return s = !!r(f, g, w), s;
        }), s;
      }
      function Bi(n, r, s) {
        for (var f = -1, g = n.length; ++f < g; ) {
          var w = n[f], S = r(w);
          if (S != null && (E === t ? S === S && !h0(S) : s(S, E)))
            var E = S, L = w;
        }
        return L;
      }
      function R2(n, r, s, f) {
        var g = n.length;
        for (s = Ee(s), s < 0 && (s = -s > g ? 0 : g + s), f = f === t || f > g ? g : Ee(f), f < 0 && (f += g), f = s > f ? 0 : Fc(f); s < f; )
          n[s++] = r;
        return n;
      }
      function h1(n, r) {
        var s = [];
        return er(n, function(f, g, w) {
          r(f, g, w) && s.push(f);
        }), s;
      }
      function Rt(n, r, s, f, g) {
        var w = -1, S = n.length;
        for (s || (s = Dm), g || (g = []); ++w < S; ) {
          var E = n[w];
          r > 0 && s(E) ? r > 1 ? Rt(E, r - 1, s, f, g) : Jn(g, E) : f || (g[g.length] = E);
        }
        return g;
      }
      var ds = L1(), f1 = L1(!0);
      function sn(n, r) {
        return n && ds(n, r, $t);
      }
      function ms(n, r) {
        return n && f1(n, r, $t);
      }
      function zi(n, r) {
        return Kn(r, function(s) {
          return Tn(n[s]);
        });
      }
      function Fr(n, r) {
        r = nr(r, n);
        for (var s = 0, f = r.length; n != null && s < f; )
          n = n[un(r[s++])];
        return s && s == f ? n : t;
      }
      function d1(n, r, s) {
        var f = r(n);
        return Ce(n) ? f : Jn(f, s(n));
      }
      function Ht(n) {
        return n == null ? n === t ? vr : Pn : Dr && Dr in Je(n) ? vm(n) : Tm(n);
      }
      function ps(n, r) {
        return n > r;
      }
      function I2(n, r) {
        return n != null && Ye.call(n, r);
      }
      function L2(n, r) {
        return n != null && r in Je(n);
      }
      function N2(n, r, s) {
        return n >= qt(r, s) && n < Ct(r, s);
      }
      function gs(n, r, s) {
        for (var f = s ? Ql : pi, g = n[0].length, w = n.length, S = w, E = P(w), L = 1 / 0, V = []; S--; ) {
          var Y = n[S];
          S && r && (Y = it(Y, u0(r))), L = qt(Y.length, L), E[S] = !s && (r || g >= 120 && Y.length >= 120) ? new Ar(S && Y) : t;
        }
        Y = n[0];
        var Z = -1, re = E[0];
        e:
          for (; ++Z < g && V.length < L; ) {
            var de = Y[Z], ye = r ? r(de) : de;
            if (de = s || de !== 0 ? de : 0, !(re ? xa(re, ye) : f(V, ye, s))) {
              for (S = w; --S; ) {
                var $e = E[S];
                if (!($e ? xa($e, ye) : f(n[S], ye, s)))
                  continue e;
              }
              re && re.push(ye), V.push(de);
            }
          }
        return V;
      }
      function q2(n, r, s, f) {
        return sn(n, function(g, w, S) {
          r(f, s(g), w, S);
        }), f;
      }
      function Ta(n, r, s) {
        r = nr(r, n), n = ec(n, r);
        var f = n == null ? n : n[un(T0(r))];
        return f == null ? t : o0(f, n, s);
      }
      function m1(n) {
        return pt(n) && Ht(n) == Q;
      }
      function O2(n) {
        return pt(n) && Ht(n) == Gn;
      }
      function P2(n) {
        return pt(n) && Ht(n) == Bt;
      }
      function $a(n, r, s, f, g) {
        return n === r ? !0 : n == null || r == null || !pt(n) && !pt(r) ? n !== n && r !== r : H2(n, r, s, f, $a, g);
      }
      function H2(n, r, s, f, g, w) {
        var S = Ce(n), E = Ce(r), L = S ? vt : Ot(n), V = E ? vt : Ot(r);
        L = L == Q ? kt : L, V = V == Q ? kt : V;
        var Y = L == kt, Z = V == kt, re = L == V;
        if (re && ar(n)) {
          if (!ar(r))
            return !1;
          S = !0, Y = !1;
        }
        if (re && !Y)
          return w || (w = new V0()), S || sa(n) ? Y1(n, r, s, f, g, w) : pm(n, r, L, s, f, g, w);
        if (!(s & $)) {
          var de = Y && Ye.call(n, "__wrapped__"), ye = Z && Ye.call(r, "__wrapped__");
          if (de || ye) {
            var $e = de ? n.value() : n, we = ye ? r.value() : r;
            return w || (w = new V0()), g($e, we, s, f, w);
          }
        }
        return re ? (w || (w = new V0()), gm(n, r, s, f, g, w)) : !1;
      }
      function U2(n) {
        return pt(n) && Ot(n) == st;
      }
      function vs(n, r, s, f) {
        var g = s.length, w = g, S = !f;
        if (n == null)
          return !w;
        for (n = Je(n); g--; ) {
          var E = s[g];
          if (S && E[2] ? E[1] !== n[E[0]] : !(E[0] in n))
            return !1;
        }
        for (; ++g < w; ) {
          E = s[g];
          var L = E[0], V = n[L], Y = E[1];
          if (S && E[2]) {
            if (V === t && !(L in n))
              return !1;
          } else {
            var Z = new V0();
            if (f)
              var re = f(V, Y, L, n, r, Z);
            if (!(re === t ? $a(Y, V, $ | I, f, Z) : re))
              return !1;
          }
        }
        return !0;
      }
      function p1(n) {
        if (!ot(n) || Am(n))
          return !1;
        var r = Tn(n) ? Ud : fe;
        return r.test(Er(n));
      }
      function W2(n) {
        return pt(n) && Ht(n) == Hn;
      }
      function G2(n) {
        return pt(n) && Ot(n) == Jt;
      }
      function V2(n) {
        return pt(n) && Ji(n.length) && !!nt[Ht(n)];
      }
      function g1(n) {
        return typeof n == "function" ? n : n == null ? n0 : typeof n == "object" ? Ce(n) ? b1(n[0], n[1]) : _1(n) : Nc(n);
      }
      function _s(n) {
        if (!za(n))
          return Zd(n);
        var r = [];
        for (var s in Je(n))
          Ye.call(n, s) && s != "constructor" && r.push(s);
        return r;
      }
      function Y2(n) {
        if (!ot(n))
          return Em(n);
        var r = za(n), s = [];
        for (var f in n)
          f == "constructor" && (r || !Ye.call(n, f)) || s.push(f);
        return s;
      }
      function bs(n, r) {
        return n < r;
      }
      function v1(n, r) {
        var s = -1, f = e0(n) ? P(n.length) : [];
        return er(n, function(g, w, S) {
          f[++s] = r(g, w, S);
        }), f;
      }
      function _1(n) {
        var r = zs(n);
        return r.length == 1 && r[0][2] ? Q1(r[0][0], r[0][1]) : function(s) {
          return s === n || vs(s, n, r);
        };
      }
      function b1(n, r) {
        return Is(n) && J1(r) ? Q1(un(n), r) : function(s) {
          var f = Vs(s, n);
          return f === t && f === r ? Ys(s, n) : $a(r, f, $ | I);
        };
      }
      function Ri(n, r, s, f, g) {
        n !== r && ds(r, function(w, S) {
          if (g || (g = new V0()), ot(w))
            X2(n, r, S, s, Ri, f, g);
          else {
            var E = f ? f(Ns(n, S), w, S + "", n, r, g) : t;
            E === t && (E = w), hs(n, S, E);
          }
        }, t0);
      }
      function X2(n, r, s, f, g, w, S) {
        var E = Ns(n, s), L = Ns(r, s), V = S.get(L);
        if (V) {
          hs(n, s, V);
          return;
        }
        var Y = w ? w(E, L, s + "", n, r, S) : t, Z = Y === t;
        if (Z) {
          var re = Ce(L), de = !re && ar(L), ye = !re && !de && sa(L);
          Y = L, re || de || ye ? Ce(E) ? Y = E : _t(E) ? Y = jt(E) : de ? (Z = !1, Y = $1(L, !0)) : ye ? (Z = !1, Y = M1(L, !0)) : Y = [] : Ia(L) || Tr(L) ? (Y = E, Tr(E) ? Y = Cc(E) : (!ot(E) || Tn(E)) && (Y = K1(L))) : Z = !1;
        }
        Z && (S.set(L, Y), g(Y, L, f, w, S), S.delete(L)), hs(n, s, Y);
      }
      function y1(n, r) {
        var s = n.length;
        if (s)
          return r += r < 0 ? s : 0, En(r, s) ? n[r] : t;
      }
      function w1(n, r, s) {
        r.length ? r = it(r, function(w) {
          return Ce(w) ? function(S) {
            return Fr(S, w.length === 1 ? w[0] : w);
          } : w;
        }) : r = [n0];
        var f = -1;
        r = it(r, u0(be()));
        var g = v1(n, function(w, S, E) {
          var L = it(r, function(V) {
            return V(w);
          });
          return { criteria: L, index: ++f, value: w };
        });
        return wd(g, function(w, S) {
          return sm(w, S, s);
        });
      }
      function Z2(n, r) {
        return x1(n, r, function(s, f) {
          return Ys(n, f);
        });
      }
      function x1(n, r, s) {
        for (var f = -1, g = r.length, w = {}; ++f < g; ) {
          var S = r[f], E = Fr(n, S);
          s(E, S) && Ma(w, nr(S, n), E);
        }
        return w;
      }
      function K2(n) {
        return function(r) {
          return Fr(r, n);
        };
      }
      function ys(n, r, s, f) {
        var g = f ? yd : Kr, w = -1, S = r.length, E = n;
        for (n === r && (r = jt(r)), s && (E = it(n, u0(s))); ++w < S; )
          for (var L = 0, V = r[w], Y = s ? s(V) : V; (L = g(E, Y, L, f)) > -1; )
            E !== n && Ai.call(E, L, 1), Ai.call(n, L, 1);
        return n;
      }
      function D1(n, r) {
        for (var s = n ? r.length : 0, f = s - 1; s--; ) {
          var g = r[s];
          if (s == f || g !== w) {
            var w = g;
            En(g) ? Ai.call(n, g, 1) : ks(n, g);
          }
        }
        return n;
      }
      function ws(n, r) {
        return n + Ci(r1() * (r - n + 1));
      }
      function J2(n, r, s, f) {
        for (var g = -1, w = Ct(Fi((r - n) / (s || 1)), 0), S = P(w); w--; )
          S[f ? w : ++g] = n, n += s;
        return S;
      }
      function xs(n, r) {
        var s = "";
        if (!n || r < 1 || r > ke)
          return s;
        do
          r % 2 && (s += n), r = Ci(r / 2), r && (n += n);
        while (r);
        return s;
      }
      function ze(n, r) {
        return qs(j1(n, r, n0), n + "");
      }
      function Q2(n) {
        return l1(oa(n));
      }
      function j2(n, r) {
        var s = oa(n);
        return Gi(s, Sr(r, 0, s.length));
      }
      function Ma(n, r, s, f) {
        if (!ot(n))
          return n;
        r = nr(r, n);
        for (var g = -1, w = r.length, S = w - 1, E = n; E != null && ++g < w; ) {
          var L = un(r[g]), V = s;
          if (L === "__proto__" || L === "constructor" || L === "prototype")
            return n;
          if (g != S) {
            var Y = E[L];
            V = f ? f(Y, L, E) : t, V === t && (V = ot(Y) ? Y : En(r[g + 1]) ? [] : {});
          }
          Ca(E, L, V), E = E[L];
        }
        return n;
      }
      var k1 = Ei ? function(n, r) {
        return Ei.set(n, r), n;
      } : n0, em = Si ? function(n, r) {
        return Si(n, "toString", {
          configurable: !0,
          enumerable: !1,
          value: Zs(r),
          writable: !0
        });
      } : n0;
      function tm(n) {
        return Gi(oa(n));
      }
      function E0(n, r, s) {
        var f = -1, g = n.length;
        r < 0 && (r = -r > g ? 0 : g + r), s = s > g ? g : s, s < 0 && (s += g), g = r > s ? 0 : s - r >>> 0, r >>>= 0;
        for (var w = P(g); ++f < g; )
          w[f] = n[f + r];
        return w;
      }
      function nm(n, r) {
        var s;
        return er(n, function(f, g, w) {
          return s = r(f, g, w), !s;
        }), !!s;
      }
      function Ii(n, r, s) {
        var f = 0, g = n == null ? f : n.length;
        if (typeof r == "number" && r === r && g <= Pe) {
          for (; f < g; ) {
            var w = f + g >>> 1, S = n[w];
            S !== null && !h0(S) && (s ? S <= r : S < r) ? f = w + 1 : g = w;
          }
          return g;
        }
        return Ds(n, r, n0, s);
      }
      function Ds(n, r, s, f) {
        var g = 0, w = n == null ? 0 : n.length;
        if (w === 0)
          return 0;
        r = s(r);
        for (var S = r !== r, E = r === null, L = h0(r), V = r === t; g < w; ) {
          var Y = Ci((g + w) / 2), Z = s(n[Y]), re = Z !== t, de = Z === null, ye = Z === Z, $e = h0(Z);
          if (S)
            var we = f || ye;
          else V ? we = ye && (f || re) : E ? we = ye && re && (f || !de) : L ? we = ye && re && !de && (f || !$e) : de || $e ? we = !1 : we = f ? Z <= r : Z < r;
          we ? g = Y + 1 : w = Y;
        }
        return qt(w, Be);
      }
      function A1(n, r) {
        for (var s = -1, f = n.length, g = 0, w = []; ++s < f; ) {
          var S = n[s], E = r ? r(S) : S;
          if (!s || !Y0(E, L)) {
            var L = E;
            w[g++] = S === 0 ? 0 : S;
          }
        }
        return w;
      }
      function S1(n) {
        return typeof n == "number" ? n : h0(n) ? ce : +n;
      }
      function c0(n) {
        if (typeof n == "string")
          return n;
        if (Ce(n))
          return it(n, c0) + "";
        if (h0(n))
          return a1 ? a1.call(n) : "";
        var r = n + "";
        return r == "0" && 1 / n == -he ? "-0" : r;
      }
      function tr(n, r, s) {
        var f = -1, g = pi, w = n.length, S = !0, E = [], L = E;
        if (s)
          S = !1, g = Ql;
        else if (w >= l) {
          var V = r ? null : dm(n);
          if (V)
            return vi(V);
          S = !1, g = xa, L = new Ar();
        } else
          L = r ? [] : E;
        e:
          for (; ++f < w; ) {
            var Y = n[f], Z = r ? r(Y) : Y;
            if (Y = s || Y !== 0 ? Y : 0, S && Z === Z) {
              for (var re = L.length; re--; )
                if (L[re] === Z)
                  continue e;
              r && L.push(Z), E.push(Y);
            } else g(L, Z, s) || (L !== E && L.push(Z), E.push(Y));
          }
        return E;
      }
      function ks(n, r) {
        return r = nr(r, n), n = ec(n, r), n == null || delete n[un(T0(r))];
      }
      function F1(n, r, s, f) {
        return Ma(n, r, s(Fr(n, r)), f);
      }
      function Li(n, r, s, f) {
        for (var g = n.length, w = f ? g : -1; (f ? w-- : ++w < g) && r(n[w], w, n); )
          ;
        return s ? E0(n, f ? 0 : w, f ? w + 1 : g) : E0(n, f ? w + 1 : 0, f ? g : w);
      }
      function C1(n, r) {
        var s = n;
        return s instanceof Le && (s = s.value()), jl(r, function(f, g) {
          return g.func.apply(g.thisArg, Jn([f], g.args));
        }, s);
      }
      function As(n, r, s) {
        var f = n.length;
        if (f < 2)
          return f ? tr(n[0]) : [];
        for (var g = -1, w = P(f); ++g < f; )
          for (var S = n[g], E = -1; ++E < f; )
            E != g && (w[g] = Ea(w[g] || S, n[E], r, s));
        return tr(Rt(w, 1), r, s);
      }
      function E1(n, r, s) {
        for (var f = -1, g = n.length, w = r.length, S = {}; ++f < g; ) {
          var E = f < w ? r[f] : t;
          s(S, n[f], E);
        }
        return S;
      }
      function Ss(n) {
        return _t(n) ? n : [];
      }
      function Fs(n) {
        return typeof n == "function" ? n : n0;
      }
      function nr(n, r) {
        return Ce(n) ? n : Is(n, r) ? [n] : ac(Ge(n));
      }
      var rm = ze;
      function rr(n, r, s) {
        var f = n.length;
        return s = s === t ? f : s, !r && s >= f ? n : E0(n, r, s);
      }
      var T1 = Wd || function(n) {
        return zt.clearTimeout(n);
      };
      function $1(n, r) {
        if (r)
          return n.slice();
        var s = n.length, f = Qu ? Qu(s) : new n.constructor(s);
        return n.copy(f), f;
      }
      function Cs(n) {
        var r = new n.constructor(n.byteLength);
        return new Di(r).set(new Di(n)), r;
      }
      function am(n, r) {
        var s = r ? Cs(n.buffer) : n.buffer;
        return new n.constructor(s, n.byteOffset, n.byteLength);
      }
      function im(n) {
        var r = new n.constructor(n.source, ba.exec(n));
        return r.lastIndex = n.lastIndex, r;
      }
      function lm(n) {
        return Fa ? Je(Fa.call(n)) : {};
      }
      function M1(n, r) {
        var s = r ? Cs(n.buffer) : n.buffer;
        return new n.constructor(s, n.byteOffset, n.length);
      }
      function B1(n, r) {
        if (n !== r) {
          var s = n !== t, f = n === null, g = n === n, w = h0(n), S = r !== t, E = r === null, L = r === r, V = h0(r);
          if (!E && !V && !w && n > r || w && S && L && !E && !V || f && S && L || !s && L || !g)
            return 1;
          if (!f && !w && !V && n < r || V && s && g && !f && !w || E && s && g || !S && g || !L)
            return -1;
        }
        return 0;
      }
      function sm(n, r, s) {
        for (var f = -1, g = n.criteria, w = r.criteria, S = g.length, E = s.length; ++f < S; ) {
          var L = B1(g[f], w[f]);
          if (L) {
            if (f >= E)
              return L;
            var V = s[f];
            return L * (V == "desc" ? -1 : 1);
          }
        }
        return n.index - r.index;
      }
      function z1(n, r, s, f) {
        for (var g = -1, w = n.length, S = s.length, E = -1, L = r.length, V = Ct(w - S, 0), Y = P(L + V), Z = !f; ++E < L; )
          Y[E] = r[E];
        for (; ++g < S; )
          (Z || g < w) && (Y[s[g]] = n[g]);
        for (; V--; )
          Y[E++] = n[g++];
        return Y;
      }
      function R1(n, r, s, f) {
        for (var g = -1, w = n.length, S = -1, E = s.length, L = -1, V = r.length, Y = Ct(w - E, 0), Z = P(Y + V), re = !f; ++g < Y; )
          Z[g] = n[g];
        for (var de = g; ++L < V; )
          Z[de + L] = r[L];
        for (; ++S < E; )
          (re || g < w) && (Z[de + s[S]] = n[g++]);
        return Z;
      }
      function jt(n, r) {
        var s = -1, f = n.length;
        for (r || (r = P(f)); ++s < f; )
          r[s] = n[s];
        return r;
      }
      function on(n, r, s, f) {
        var g = !s;
        s || (s = {});
        for (var w = -1, S = r.length; ++w < S; ) {
          var E = r[w], L = f ? f(s[E], n[E], E, s, n) : t;
          L === t && (L = n[E]), g ? Sn(s, E, L) : Ca(s, E, L);
        }
        return s;
      }
      function om(n, r) {
        return on(n, Rs(n), r);
      }
      function um(n, r) {
        return on(n, X1(n), r);
      }
      function Ni(n, r) {
        return function(s, f) {
          var g = Ce(s) ? md : $2, w = r ? r() : {};
          return g(s, n, be(f, 2), w);
        };
      }
      function aa(n) {
        return ze(function(r, s) {
          var f = -1, g = s.length, w = g > 1 ? s[g - 1] : t, S = g > 2 ? s[2] : t;
          for (w = n.length > 3 && typeof w == "function" ? (g--, w) : t, S && Ut(s[0], s[1], S) && (w = g < 3 ? t : w, g = 1), r = Je(r); ++f < g; ) {
            var E = s[f];
            E && n(r, E, f, w);
          }
          return r;
        });
      }
      function I1(n, r) {
        return function(s, f) {
          if (s == null)
            return s;
          if (!e0(s))
            return n(s, f);
          for (var g = s.length, w = r ? g : -1, S = Je(s); (r ? w-- : ++w < g) && f(S[w], w, S) !== !1; )
            ;
          return s;
        };
      }
      function L1(n) {
        return function(r, s, f) {
          for (var g = -1, w = Je(r), S = f(r), E = S.length; E--; ) {
            var L = S[n ? E : ++g];
            if (s(w[L], L, w) === !1)
              break;
          }
          return r;
        };
      }
      function cm(n, r, s) {
        var f = r & q, g = Ba(n);
        function w() {
          var S = this && this !== zt && this instanceof w ? g : n;
          return S.apply(f ? s : this, arguments);
        }
        return w;
      }
      function N1(n) {
        return function(r) {
          r = Ge(r);
          var s = Jr(r) ? G0(r) : t, f = s ? s[0] : r.charAt(0), g = s ? rr(s, 1).join("") : r.slice(1);
          return f[n]() + g;
        };
      }
      function ia(n) {
        return function(r) {
          return jl(Ic(Rc(r).replace(ed, "")), n, "");
        };
      }
      function Ba(n) {
        return function() {
          var r = arguments;
          switch (r.length) {
            case 0:
              return new n();
            case 1:
              return new n(r[0]);
            case 2:
              return new n(r[0], r[1]);
            case 3:
              return new n(r[0], r[1], r[2]);
            case 4:
              return new n(r[0], r[1], r[2], r[3]);
            case 5:
              return new n(r[0], r[1], r[2], r[3], r[4]);
            case 6:
              return new n(r[0], r[1], r[2], r[3], r[4], r[5]);
            case 7:
              return new n(r[0], r[1], r[2], r[3], r[4], r[5], r[6]);
          }
          var s = ra(n.prototype), f = n.apply(s, r);
          return ot(f) ? f : s;
        };
      }
      function hm(n, r, s) {
        var f = Ba(n);
        function g() {
          for (var w = arguments.length, S = P(w), E = w, L = la(g); E--; )
            S[E] = arguments[E];
          var V = w < 3 && S[0] !== L && S[w - 1] !== L ? [] : Qn(S, L);
          if (w -= V.length, w < s)
            return U1(
              n,
              r,
              qi,
              g.placeholder,
              t,
              S,
              V,
              t,
              t,
              s - w
            );
          var Y = this && this !== zt && this instanceof g ? f : n;
          return o0(Y, this, S);
        }
        return g;
      }
      function q1(n) {
        return function(r, s, f) {
          var g = Je(r);
          if (!e0(r)) {
            var w = be(s, 3);
            r = $t(r), s = function(E) {
              return w(g[E], E, g);
            };
          }
          var S = n(r, s, f);
          return S > -1 ? g[w ? r[S] : S] : t;
        };
      }
      function O1(n) {
        return Cn(function(r) {
          var s = r.length, f = s, g = F0.prototype.thru;
          for (n && r.reverse(); f--; ) {
            var w = r[f];
            if (typeof w != "function")
              throw new S0(u);
            if (g && !S && Ui(w) == "wrapper")
              var S = new F0([], !0);
          }
          for (f = S ? f : s; ++f < s; ) {
            w = r[f];
            var E = Ui(w), L = E == "wrapper" ? Bs(w) : t;
            L && Ls(L[0]) && L[1] == (G | D | N | te) && !L[4].length && L[9] == 1 ? S = S[Ui(L[0])].apply(S, L[3]) : S = w.length == 1 && Ls(w) ? S[E]() : S.thru(w);
          }
          return function() {
            var V = arguments, Y = V[0];
            if (S && V.length == 1 && Ce(Y))
              return S.plant(Y).value();
            for (var Z = 0, re = s ? r[Z].apply(this, V) : Y; ++Z < s; )
              re = r[Z].call(this, re);
            return re;
          };
        });
      }
      function qi(n, r, s, f, g, w, S, E, L, V) {
        var Y = r & G, Z = r & q, re = r & H, de = r & (D | R), ye = r & J, $e = re ? t : Ba(n);
        function we() {
          for (var Re = arguments.length, qe = P(Re), f0 = Re; f0--; )
            qe[f0] = arguments[f0];
          if (de)
            var Wt = la(we), d0 = Dd(qe, Wt);
          if (f && (qe = z1(qe, f, g, de)), w && (qe = R1(qe, w, S, de)), Re -= d0, de && Re < V) {
            var bt = Qn(qe, Wt);
            return U1(
              n,
              r,
              qi,
              we.placeholder,
              s,
              qe,
              bt,
              E,
              L,
              V - Re
            );
          }
          var X0 = Z ? s : this, Mn = re ? X0[n] : n;
          return Re = qe.length, E ? qe = $m(qe, E) : ye && Re > 1 && qe.reverse(), Y && L < Re && (qe.length = L), this && this !== zt && this instanceof we && (Mn = $e || Ba(Mn)), Mn.apply(X0, qe);
        }
        return we;
      }
      function P1(n, r) {
        return function(s, f) {
          return q2(s, n, r(f), {});
        };
      }
      function Oi(n, r) {
        return function(s, f) {
          var g;
          if (s === t && f === t)
            return r;
          if (s !== t && (g = s), f !== t) {
            if (g === t)
              return f;
            typeof s == "string" || typeof f == "string" ? (s = c0(s), f = c0(f)) : (s = S1(s), f = S1(f)), g = n(s, f);
          }
          return g;
        };
      }
      function Es(n) {
        return Cn(function(r) {
          return r = it(r, u0(be())), ze(function(s) {
            var f = this;
            return n(r, function(g) {
              return o0(g, f, s);
            });
          });
        });
      }
      function Pi(n, r) {
        r = r === t ? " " : c0(r);
        var s = r.length;
        if (s < 2)
          return s ? xs(r, n) : r;
        var f = xs(r, Fi(n / Qr(r)));
        return Jr(r) ? rr(G0(f), 0, n).join("") : f.slice(0, n);
      }
      function fm(n, r, s, f) {
        var g = r & q, w = Ba(n);
        function S() {
          for (var E = -1, L = arguments.length, V = -1, Y = f.length, Z = P(Y + L), re = this && this !== zt && this instanceof S ? w : n; ++V < Y; )
            Z[V] = f[V];
          for (; L--; )
            Z[V++] = arguments[++E];
          return o0(re, g ? s : this, Z);
        }
        return S;
      }
      function H1(n) {
        return function(r, s, f) {
          return f && typeof f != "number" && Ut(r, s, f) && (s = f = t), r = $n(r), s === t ? (s = r, r = 0) : s = $n(s), f = f === t ? r < s ? 1 : -1 : $n(f), J2(r, s, f, n);
        };
      }
      function Hi(n) {
        return function(r, s) {
          return typeof r == "string" && typeof s == "string" || (r = $0(r), s = $0(s)), n(r, s);
        };
      }
      function U1(n, r, s, f, g, w, S, E, L, V) {
        var Y = r & D, Z = Y ? S : t, re = Y ? t : S, de = Y ? w : t, ye = Y ? t : w;
        r |= Y ? N : U, r &= ~(Y ? U : N), r & T || (r &= ~(q | H));
        var $e = [
          n,
          r,
          g,
          de,
          Z,
          ye,
          re,
          E,
          L,
          V
        ], we = s.apply(t, $e);
        return Ls(n) && tc(we, $e), we.placeholder = f, nc(we, n, r);
      }
      function Ts(n) {
        var r = Ft[n];
        return function(s, f) {
          if (s = $0(s), f = f == null ? 0 : qt(Ee(f), 292), f && n1(s)) {
            var g = (Ge(s) + "e").split("e"), w = r(g[0] + "e" + (+g[1] + f));
            return g = (Ge(w) + "e").split("e"), +(g[0] + "e" + (+g[1] - f));
          }
          return r(s);
        };
      }
      var dm = ta && 1 / vi(new ta([, -0]))[1] == he ? function(n) {
        return new ta(n);
      } : Qs;
      function W1(n) {
        return function(r) {
          var s = Ot(r);
          return s == st ? ls(r) : s == Jt ? Td(r) : xd(r, n(r));
        };
      }
      function Fn(n, r, s, f, g, w, S, E) {
        var L = r & H;
        if (!L && typeof n != "function")
          throw new S0(u);
        var V = f ? f.length : 0;
        if (V || (r &= ~(N | U), f = g = t), S = S === t ? S : Ct(Ee(S), 0), E = E === t ? E : Ee(E), V -= g ? g.length : 0, r & U) {
          var Y = f, Z = g;
          f = g = t;
        }
        var re = L ? t : Bs(n), de = [
          n,
          r,
          s,
          f,
          g,
          Y,
          Z,
          w,
          S,
          E
        ];
        if (re && Cm(de, re), n = de[0], r = de[1], s = de[2], f = de[3], g = de[4], E = de[9] = de[9] === t ? L ? 0 : n.length : Ct(de[9] - V, 0), !E && r & (D | R) && (r &= ~(D | R)), !r || r == q)
          var ye = cm(n, r, s);
        else r == D || r == R ? ye = hm(n, r, E) : (r == N || r == (q | N)) && !g.length ? ye = fm(n, r, s, f) : ye = qi.apply(t, de);
        var $e = re ? k1 : tc;
        return nc($e(ye, de), n, r);
      }
      function G1(n, r, s, f) {
        return n === t || Y0(n, ea[s]) && !Ye.call(f, s) ? r : n;
      }
      function V1(n, r, s, f, g, w) {
        return ot(n) && ot(r) && (w.set(r, n), Ri(n, r, t, V1, w), w.delete(r)), n;
      }
      function mm(n) {
        return Ia(n) ? t : n;
      }
      function Y1(n, r, s, f, g, w) {
        var S = s & $, E = n.length, L = r.length;
        if (E != L && !(S && L > E))
          return !1;
        var V = w.get(n), Y = w.get(r);
        if (V && Y)
          return V == r && Y == n;
        var Z = -1, re = !0, de = s & I ? new Ar() : t;
        for (w.set(n, r), w.set(r, n); ++Z < E; ) {
          var ye = n[Z], $e = r[Z];
          if (f)
            var we = S ? f($e, ye, Z, r, n, w) : f(ye, $e, Z, n, r, w);
          if (we !== t) {
            if (we)
              continue;
            re = !1;
            break;
          }
          if (de) {
            if (!es(r, function(Re, qe) {
              if (!xa(de, qe) && (ye === Re || g(ye, Re, s, f, w)))
                return de.push(qe);
            })) {
              re = !1;
              break;
            }
          } else if (!(ye === $e || g(ye, $e, s, f, w))) {
            re = !1;
            break;
          }
        }
        return w.delete(n), w.delete(r), re;
      }
      function pm(n, r, s, f, g, w, S) {
        switch (s) {
          case Dn:
            if (n.byteLength != r.byteLength || n.byteOffset != r.byteOffset)
              return !1;
            n = n.buffer, r = r.buffer;
          case Gn:
            return !(n.byteLength != r.byteLength || !w(new Di(n), new Di(r)));
          case at:
          case Bt:
          case y0:
            return Y0(+n, +r);
          case Kt:
            return n.name == r.name && n.message == r.message;
          case Hn:
          case gr:
            return n == r + "";
          case st:
            var E = ls;
          case Jt:
            var L = f & $;
            if (E || (E = vi), n.size != r.size && !L)
              return !1;
            var V = S.get(n);
            if (V)
              return V == r;
            f |= I, S.set(n, r);
            var Y = Y1(E(n), E(r), f, g, w, S);
            return S.delete(n), Y;
          case Un:
            if (Fa)
              return Fa.call(n) == Fa.call(r);
        }
        return !1;
      }
      function gm(n, r, s, f, g, w) {
        var S = s & $, E = $s(n), L = E.length, V = $s(r), Y = V.length;
        if (L != Y && !S)
          return !1;
        for (var Z = L; Z--; ) {
          var re = E[Z];
          if (!(S ? re in r : Ye.call(r, re)))
            return !1;
        }
        var de = w.get(n), ye = w.get(r);
        if (de && ye)
          return de == r && ye == n;
        var $e = !0;
        w.set(n, r), w.set(r, n);
        for (var we = S; ++Z < L; ) {
          re = E[Z];
          var Re = n[re], qe = r[re];
          if (f)
            var f0 = S ? f(qe, Re, re, r, n, w) : f(Re, qe, re, n, r, w);
          if (!(f0 === t ? Re === qe || g(Re, qe, s, f, w) : f0)) {
            $e = !1;
            break;
          }
          we || (we = re == "constructor");
        }
        if ($e && !we) {
          var Wt = n.constructor, d0 = r.constructor;
          Wt != d0 && "constructor" in n && "constructor" in r && !(typeof Wt == "function" && Wt instanceof Wt && typeof d0 == "function" && d0 instanceof d0) && ($e = !1);
        }
        return w.delete(n), w.delete(r), $e;
      }
      function Cn(n) {
        return qs(j1(n, t, oc), n + "");
      }
      function $s(n) {
        return d1(n, $t, Rs);
      }
      function Ms(n) {
        return d1(n, t0, X1);
      }
      var Bs = Ei ? function(n) {
        return Ei.get(n);
      } : Qs;
      function Ui(n) {
        for (var r = n.name + "", s = na[r], f = Ye.call(na, r) ? s.length : 0; f--; ) {
          var g = s[f], w = g.func;
          if (w == null || w == n)
            return g.name;
        }
        return r;
      }
      function la(n) {
        var r = Ye.call(b, "placeholder") ? b : n;
        return r.placeholder;
      }
      function be() {
        var n = b.iteratee || Ks;
        return n = n === Ks ? g1 : n, arguments.length ? n(arguments[0], arguments[1]) : n;
      }
      function Wi(n, r) {
        var s = n.__data__;
        return km(r) ? s[typeof r == "string" ? "string" : "hash"] : s.map;
      }
      function zs(n) {
        for (var r = $t(n), s = r.length; s--; ) {
          var f = r[s], g = n[f];
          r[s] = [f, g, J1(g)];
        }
        return r;
      }
      function Cr(n, r) {
        var s = Fd(n, r);
        return p1(s) ? s : t;
      }
      function vm(n) {
        var r = Ye.call(n, Dr), s = n[Dr];
        try {
          n[Dr] = t;
          var f = !0;
        } catch {
        }
        var g = wi.call(n);
        return f && (r ? n[Dr] = s : delete n[Dr]), g;
      }
      var Rs = os ? function(n) {
        return n == null ? [] : (n = Je(n), Kn(os(n), function(r) {
          return e1.call(n, r);
        }));
      } : js, X1 = os ? function(n) {
        for (var r = []; n; )
          Jn(r, Rs(n)), n = ki(n);
        return r;
      } : js, Ot = Ht;
      (us && Ot(new us(new ArrayBuffer(1))) != Dn || ka && Ot(new ka()) != st || cs && Ot(cs.resolve()) != w0 || ta && Ot(new ta()) != Jt || Aa && Ot(new Aa()) != x0) && (Ot = function(n) {
        var r = Ht(n), s = r == kt ? n.constructor : t, f = s ? Er(s) : "";
        if (f)
          switch (f) {
            case jd:
              return Dn;
            case e2:
              return st;
            case t2:
              return w0;
            case n2:
              return Jt;
            case r2:
              return x0;
          }
        return r;
      });
      function _m(n, r, s) {
        for (var f = -1, g = s.length; ++f < g; ) {
          var w = s[f], S = w.size;
          switch (w.type) {
            case "drop":
              n += S;
              break;
            case "dropRight":
              r -= S;
              break;
            case "take":
              r = qt(r, n + S);
              break;
            case "takeRight":
              n = Ct(n, r - S);
              break;
          }
        }
        return { start: n, end: r };
      }
      function bm(n) {
        var r = n.match(oi);
        return r ? r[1].split(ui) : [];
      }
      function Z1(n, r, s) {
        r = nr(r, n);
        for (var f = -1, g = r.length, w = !1; ++f < g; ) {
          var S = un(r[f]);
          if (!(w = n != null && s(n, S)))
            break;
          n = n[S];
        }
        return w || ++f != g ? w : (g = n == null ? 0 : n.length, !!g && Ji(g) && En(S, g) && (Ce(n) || Tr(n)));
      }
      function ym(n) {
        var r = n.length, s = new n.constructor(r);
        return r && typeof n[0] == "string" && Ye.call(n, "index") && (s.index = n.index, s.input = n.input), s;
      }
      function K1(n) {
        return typeof n.constructor == "function" && !za(n) ? ra(ki(n)) : {};
      }
      function wm(n, r, s) {
        var f = n.constructor;
        switch (r) {
          case Gn:
            return Cs(n);
          case at:
          case Bt:
            return new f(+n);
          case Dn:
            return am(n, s);
          case Ur:
          case _r:
          case Wr:
          case Vn:
          case Yn:
          case s0:
          case ln:
          case br:
          case yr:
            return M1(n, s);
          case st:
            return new f();
          case y0:
          case gr:
            return new f(n);
          case Hn:
            return im(n);
          case Jt:
            return new f();
          case Un:
            return lm(n);
        }
      }
      function xm(n, r) {
        var s = r.length;
        if (!s)
          return n;
        var f = s - 1;
        return r[f] = (s > 1 ? "& " : "") + r[f], r = r.join(s > 2 ? ", " : " "), n.replace(si, `{
/* [wrapped with ` + r + `] */
`);
      }
      function Dm(n) {
        return Ce(n) || Tr(n) || !!(t1 && n && n[t1]);
      }
      function En(n, r) {
        var s = typeof n;
        return r = r ?? ke, !!r && (s == "number" || s != "symbol" && ee.test(n)) && n > -1 && n % 1 == 0 && n < r;
      }
      function Ut(n, r, s) {
        if (!ot(s))
          return !1;
        var f = typeof r;
        return (f == "number" ? e0(s) && En(r, s.length) : f == "string" && r in s) ? Y0(s[r], n) : !1;
      }
      function Is(n, r) {
        if (Ce(n))
          return !1;
        var s = typeof n;
        return s == "number" || s == "symbol" || s == "boolean" || n == null || h0(n) ? !0 : _a.test(n) || !ii.test(n) || r != null && n in Je(r);
      }
      function km(n) {
        var r = typeof n;
        return r == "string" || r == "number" || r == "symbol" || r == "boolean" ? n !== "__proto__" : n === null;
      }
      function Ls(n) {
        var r = Ui(n), s = b[r];
        if (typeof s != "function" || !(r in Le.prototype))
          return !1;
        if (n === s)
          return !0;
        var f = Bs(s);
        return !!f && n === f[0];
      }
      function Am(n) {
        return !!Ju && Ju in n;
      }
      var Sm = bi ? Tn : eo;
      function za(n) {
        var r = n && n.constructor, s = typeof r == "function" && r.prototype || ea;
        return n === s;
      }
      function J1(n) {
        return n === n && !ot(n);
      }
      function Q1(n, r) {
        return function(s) {
          return s == null ? !1 : s[n] === r && (r !== t || n in Je(s));
        };
      }
      function Fm(n) {
        var r = Zi(n, function(f) {
          return s.size === p && s.clear(), f;
        }), s = r.cache;
        return r;
      }
      function Cm(n, r) {
        var s = n[1], f = r[1], g = s | f, w = g < (q | H | G), S = f == G && s == D || f == G && s == te && n[7].length <= r[8] || f == (G | te) && r[7].length <= r[8] && s == D;
        if (!(w || S))
          return n;
        f & q && (n[2] = r[2], g |= s & q ? 0 : T);
        var E = r[3];
        if (E) {
          var L = n[3];
          n[3] = L ? z1(L, E, r[4]) : E, n[4] = L ? Qn(n[3], _) : r[4];
        }
        return E = r[5], E && (L = n[5], n[5] = L ? R1(L, E, r[6]) : E, n[6] = L ? Qn(n[5], _) : r[6]), E = r[7], E && (n[7] = E), f & G && (n[8] = n[8] == null ? r[8] : qt(n[8], r[8])), n[9] == null && (n[9] = r[9]), n[0] = r[0], n[1] = g, n;
      }
      function Em(n) {
        var r = [];
        if (n != null)
          for (var s in Je(n))
            r.push(s);
        return r;
      }
      function Tm(n) {
        return wi.call(n);
      }
      function j1(n, r, s) {
        return r = Ct(r === t ? n.length - 1 : r, 0), function() {
          for (var f = arguments, g = -1, w = Ct(f.length - r, 0), S = P(w); ++g < w; )
            S[g] = f[r + g];
          g = -1;
          for (var E = P(r + 1); ++g < r; )
            E[g] = f[g];
          return E[r] = s(S), o0(n, this, E);
        };
      }
      function ec(n, r) {
        return r.length < 2 ? n : Fr(n, E0(r, 0, -1));
      }
      function $m(n, r) {
        for (var s = n.length, f = qt(r.length, s), g = jt(n); f--; ) {
          var w = r[f];
          n[f] = En(w, s) ? g[w] : t;
        }
        return n;
      }
      function Ns(n, r) {
        if (!(r === "constructor" && typeof n[r] == "function") && r != "__proto__")
          return n[r];
      }
      var tc = rc(k1), Ra = Vd || function(n, r) {
        return zt.setTimeout(n, r);
      }, qs = rc(em);
      function nc(n, r, s) {
        var f = r + "";
        return qs(n, xm(f, Mm(bm(f), s)));
      }
      function rc(n) {
        var r = 0, s = 0;
        return function() {
          var f = Kd(), g = je - (f - s);
          if (s = f, g > 0) {
            if (++r >= Ae)
              return arguments[0];
          } else
            r = 0;
          return n.apply(t, arguments);
        };
      }
      function Gi(n, r) {
        var s = -1, f = n.length, g = f - 1;
        for (r = r === t ? f : r; ++s < r; ) {
          var w = ws(s, g), S = n[w];
          n[w] = n[s], n[s] = S;
        }
        return n.length = r, n;
      }
      var ac = Fm(function(n) {
        var r = [];
        return n.charCodeAt(0) === 46 && r.push(""), n.replace(li, function(s, f, g, w) {
          r.push(g ? w.replace(hi, "$1") : f || s);
        }), r;
      });
      function un(n) {
        if (typeof n == "string" || h0(n))
          return n;
        var r = n + "";
        return r == "0" && 1 / n == -he ? "-0" : r;
      }
      function Er(n) {
        if (n != null) {
          try {
            return yi.call(n);
          } catch {
          }
          try {
            return n + "";
          } catch {
          }
        }
        return "";
      }
      function Mm(n, r) {
        return A0(dt, function(s) {
          var f = "_." + s[0];
          r & s[1] && !pi(n, f) && n.push(f);
        }), n.sort();
      }
      function ic(n) {
        if (n instanceof Le)
          return n.clone();
        var r = new F0(n.__wrapped__, n.__chain__);
        return r.__actions__ = jt(n.__actions__), r.__index__ = n.__index__, r.__values__ = n.__values__, r;
      }
      function Bm(n, r, s) {
        (s ? Ut(n, r, s) : r === t) ? r = 1 : r = Ct(Ee(r), 0);
        var f = n == null ? 0 : n.length;
        if (!f || r < 1)
          return [];
        for (var g = 0, w = 0, S = P(Fi(f / r)); g < f; )
          S[w++] = E0(n, g, g += r);
        return S;
      }
      function zm(n) {
        for (var r = -1, s = n == null ? 0 : n.length, f = 0, g = []; ++r < s; ) {
          var w = n[r];
          w && (g[f++] = w);
        }
        return g;
      }
      function Rm() {
        var n = arguments.length;
        if (!n)
          return [];
        for (var r = P(n - 1), s = arguments[0], f = n; f--; )
          r[f - 1] = arguments[f];
        return Jn(Ce(s) ? jt(s) : [s], Rt(r, 1));
      }
      var Im = ze(function(n, r) {
        return _t(n) ? Ea(n, Rt(r, 1, _t, !0)) : [];
      }), Lm = ze(function(n, r) {
        var s = T0(r);
        return _t(s) && (s = t), _t(n) ? Ea(n, Rt(r, 1, _t, !0), be(s, 2)) : [];
      }), Nm = ze(function(n, r) {
        var s = T0(r);
        return _t(s) && (s = t), _t(n) ? Ea(n, Rt(r, 1, _t, !0), t, s) : [];
      });
      function qm(n, r, s) {
        var f = n == null ? 0 : n.length;
        return f ? (r = s || r === t ? 1 : Ee(r), E0(n, r < 0 ? 0 : r, f)) : [];
      }
      function Om(n, r, s) {
        var f = n == null ? 0 : n.length;
        return f ? (r = s || r === t ? 1 : Ee(r), r = f - r, E0(n, 0, r < 0 ? 0 : r)) : [];
      }
      function Pm(n, r) {
        return n && n.length ? Li(n, be(r, 3), !0, !0) : [];
      }
      function Hm(n, r) {
        return n && n.length ? Li(n, be(r, 3), !0) : [];
      }
      function Um(n, r, s, f) {
        var g = n == null ? 0 : n.length;
        return g ? (s && typeof s != "number" && Ut(n, r, s) && (s = 0, f = g), R2(n, r, s, f)) : [];
      }
      function lc(n, r, s) {
        var f = n == null ? 0 : n.length;
        if (!f)
          return -1;
        var g = s == null ? 0 : Ee(s);
        return g < 0 && (g = Ct(f + g, 0)), gi(n, be(r, 3), g);
      }
      function sc(n, r, s) {
        var f = n == null ? 0 : n.length;
        if (!f)
          return -1;
        var g = f - 1;
        return s !== t && (g = Ee(s), g = s < 0 ? Ct(f + g, 0) : qt(g, f - 1)), gi(n, be(r, 3), g, !0);
      }
      function oc(n) {
        var r = n == null ? 0 : n.length;
        return r ? Rt(n, 1) : [];
      }
      function Wm(n) {
        var r = n == null ? 0 : n.length;
        return r ? Rt(n, he) : [];
      }
      function Gm(n, r) {
        var s = n == null ? 0 : n.length;
        return s ? (r = r === t ? 1 : Ee(r), Rt(n, r)) : [];
      }
      function Vm(n) {
        for (var r = -1, s = n == null ? 0 : n.length, f = {}; ++r < s; ) {
          var g = n[r];
          f[g[0]] = g[1];
        }
        return f;
      }
      function uc(n) {
        return n && n.length ? n[0] : t;
      }
      function Ym(n, r, s) {
        var f = n == null ? 0 : n.length;
        if (!f)
          return -1;
        var g = s == null ? 0 : Ee(s);
        return g < 0 && (g = Ct(f + g, 0)), Kr(n, r, g);
      }
      function Xm(n) {
        var r = n == null ? 0 : n.length;
        return r ? E0(n, 0, -1) : [];
      }
      var Zm = ze(function(n) {
        var r = it(n, Ss);
        return r.length && r[0] === n[0] ? gs(r) : [];
      }), Km = ze(function(n) {
        var r = T0(n), s = it(n, Ss);
        return r === T0(s) ? r = t : s.pop(), s.length && s[0] === n[0] ? gs(s, be(r, 2)) : [];
      }), Jm = ze(function(n) {
        var r = T0(n), s = it(n, Ss);
        return r = typeof r == "function" ? r : t, r && s.pop(), s.length && s[0] === n[0] ? gs(s, t, r) : [];
      });
      function Qm(n, r) {
        return n == null ? "" : Xd.call(n, r);
      }
      function T0(n) {
        var r = n == null ? 0 : n.length;
        return r ? n[r - 1] : t;
      }
      function jm(n, r, s) {
        var f = n == null ? 0 : n.length;
        if (!f)
          return -1;
        var g = f;
        return s !== t && (g = Ee(s), g = g < 0 ? Ct(f + g, 0) : qt(g, f - 1)), r === r ? Md(n, r, g) : gi(n, Uu, g, !0);
      }
      function e5(n, r) {
        return n && n.length ? y1(n, Ee(r)) : t;
      }
      var t5 = ze(cc);
      function cc(n, r) {
        return n && n.length && r && r.length ? ys(n, r) : n;
      }
      function n5(n, r, s) {
        return n && n.length && r && r.length ? ys(n, r, be(s, 2)) : n;
      }
      function r5(n, r, s) {
        return n && n.length && r && r.length ? ys(n, r, t, s) : n;
      }
      var a5 = Cn(function(n, r) {
        var s = n == null ? 0 : n.length, f = fs(n, r);
        return D1(n, it(r, function(g) {
          return En(g, s) ? +g : g;
        }).sort(B1)), f;
      });
      function i5(n, r) {
        var s = [];
        if (!(n && n.length))
          return s;
        var f = -1, g = [], w = n.length;
        for (r = be(r, 3); ++f < w; ) {
          var S = n[f];
          r(S, f, n) && (s.push(S), g.push(f));
        }
        return D1(n, g), s;
      }
      function Os(n) {
        return n == null ? n : Qd.call(n);
      }
      function l5(n, r, s) {
        var f = n == null ? 0 : n.length;
        return f ? (s && typeof s != "number" && Ut(n, r, s) ? (r = 0, s = f) : (r = r == null ? 0 : Ee(r), s = s === t ? f : Ee(s)), E0(n, r, s)) : [];
      }
      function s5(n, r) {
        return Ii(n, r);
      }
      function o5(n, r, s) {
        return Ds(n, r, be(s, 2));
      }
      function u5(n, r) {
        var s = n == null ? 0 : n.length;
        if (s) {
          var f = Ii(n, r);
          if (f < s && Y0(n[f], r))
            return f;
        }
        return -1;
      }
      function c5(n, r) {
        return Ii(n, r, !0);
      }
      function h5(n, r, s) {
        return Ds(n, r, be(s, 2), !0);
      }
      function f5(n, r) {
        var s = n == null ? 0 : n.length;
        if (s) {
          var f = Ii(n, r, !0) - 1;
          if (Y0(n[f], r))
            return f;
        }
        return -1;
      }
      function d5(n) {
        return n && n.length ? A1(n) : [];
      }
      function m5(n, r) {
        return n && n.length ? A1(n, be(r, 2)) : [];
      }
      function p5(n) {
        var r = n == null ? 0 : n.length;
        return r ? E0(n, 1, r) : [];
      }
      function g5(n, r, s) {
        return n && n.length ? (r = s || r === t ? 1 : Ee(r), E0(n, 0, r < 0 ? 0 : r)) : [];
      }
      function v5(n, r, s) {
        var f = n == null ? 0 : n.length;
        return f ? (r = s || r === t ? 1 : Ee(r), r = f - r, E0(n, r < 0 ? 0 : r, f)) : [];
      }
      function _5(n, r) {
        return n && n.length ? Li(n, be(r, 3), !1, !0) : [];
      }
      function b5(n, r) {
        return n && n.length ? Li(n, be(r, 3)) : [];
      }
      var y5 = ze(function(n) {
        return tr(Rt(n, 1, _t, !0));
      }), w5 = ze(function(n) {
        var r = T0(n);
        return _t(r) && (r = t), tr(Rt(n, 1, _t, !0), be(r, 2));
      }), x5 = ze(function(n) {
        var r = T0(n);
        return r = typeof r == "function" ? r : t, tr(Rt(n, 1, _t, !0), t, r);
      });
      function D5(n) {
        return n && n.length ? tr(n) : [];
      }
      function k5(n, r) {
        return n && n.length ? tr(n, be(r, 2)) : [];
      }
      function A5(n, r) {
        return r = typeof r == "function" ? r : t, n && n.length ? tr(n, t, r) : [];
      }
      function Ps(n) {
        if (!(n && n.length))
          return [];
        var r = 0;
        return n = Kn(n, function(s) {
          if (_t(s))
            return r = Ct(s.length, r), !0;
        }), as(r, function(s) {
          return it(n, ts(s));
        });
      }
      function hc(n, r) {
        if (!(n && n.length))
          return [];
        var s = Ps(n);
        return r == null ? s : it(s, function(f) {
          return o0(r, t, f);
        });
      }
      var S5 = ze(function(n, r) {
        return _t(n) ? Ea(n, r) : [];
      }), F5 = ze(function(n) {
        return As(Kn(n, _t));
      }), C5 = ze(function(n) {
        var r = T0(n);
        return _t(r) && (r = t), As(Kn(n, _t), be(r, 2));
      }), E5 = ze(function(n) {
        var r = T0(n);
        return r = typeof r == "function" ? r : t, As(Kn(n, _t), t, r);
      }), T5 = ze(Ps);
      function $5(n, r) {
        return E1(n || [], r || [], Ca);
      }
      function M5(n, r) {
        return E1(n || [], r || [], Ma);
      }
      var B5 = ze(function(n) {
        var r = n.length, s = r > 1 ? n[r - 1] : t;
        return s = typeof s == "function" ? (n.pop(), s) : t, hc(n, s);
      });
      function fc(n) {
        var r = b(n);
        return r.__chain__ = !0, r;
      }
      function z5(n, r) {
        return r(n), n;
      }
      function Vi(n, r) {
        return r(n);
      }
      var R5 = Cn(function(n) {
        var r = n.length, s = r ? n[0] : 0, f = this.__wrapped__, g = function(w) {
          return fs(w, n);
        };
        return r > 1 || this.__actions__.length || !(f instanceof Le) || !En(s) ? this.thru(g) : (f = f.slice(s, +s + (r ? 1 : 0)), f.__actions__.push({
          func: Vi,
          args: [g],
          thisArg: t
        }), new F0(f, this.__chain__).thru(function(w) {
          return r && !w.length && w.push(t), w;
        }));
      });
      function I5() {
        return fc(this);
      }
      function L5() {
        return new F0(this.value(), this.__chain__);
      }
      function N5() {
        this.__values__ === t && (this.__values__ = Sc(this.value()));
        var n = this.__index__ >= this.__values__.length, r = n ? t : this.__values__[this.__index__++];
        return { done: n, value: r };
      }
      function q5() {
        return this;
      }
      function O5(n) {
        for (var r, s = this; s instanceof $i; ) {
          var f = ic(s);
          f.__index__ = 0, f.__values__ = t, r ? g.__wrapped__ = f : r = f;
          var g = f;
          s = s.__wrapped__;
        }
        return g.__wrapped__ = n, r;
      }
      function P5() {
        var n = this.__wrapped__;
        if (n instanceof Le) {
          var r = n;
          return this.__actions__.length && (r = new Le(this)), r = r.reverse(), r.__actions__.push({
            func: Vi,
            args: [Os],
            thisArg: t
          }), new F0(r, this.__chain__);
        }
        return this.thru(Os);
      }
      function H5() {
        return C1(this.__wrapped__, this.__actions__);
      }
      var U5 = Ni(function(n, r, s) {
        Ye.call(n, s) ? ++n[s] : Sn(n, s, 1);
      });
      function W5(n, r, s) {
        var f = Ce(n) ? Pu : z2;
        return s && Ut(n, r, s) && (r = t), f(n, be(r, 3));
      }
      function G5(n, r) {
        var s = Ce(n) ? Kn : h1;
        return s(n, be(r, 3));
      }
      var V5 = q1(lc), Y5 = q1(sc);
      function X5(n, r) {
        return Rt(Yi(n, r), 1);
      }
      function Z5(n, r) {
        return Rt(Yi(n, r), he);
      }
      function K5(n, r, s) {
        return s = s === t ? 1 : Ee(s), Rt(Yi(n, r), s);
      }
      function dc(n, r) {
        var s = Ce(n) ? A0 : er;
        return s(n, be(r, 3));
      }
      function mc(n, r) {
        var s = Ce(n) ? pd : c1;
        return s(n, be(r, 3));
      }
      var J5 = Ni(function(n, r, s) {
        Ye.call(n, s) ? n[s].push(r) : Sn(n, s, [r]);
      });
      function Q5(n, r, s, f) {
        n = e0(n) ? n : oa(n), s = s && !f ? Ee(s) : 0;
        var g = n.length;
        return s < 0 && (s = Ct(g + s, 0)), Qi(n) ? s <= g && n.indexOf(r, s) > -1 : !!g && Kr(n, r, s) > -1;
      }
      var j5 = ze(function(n, r, s) {
        var f = -1, g = typeof r == "function", w = e0(n) ? P(n.length) : [];
        return er(n, function(S) {
          w[++f] = g ? o0(r, S, s) : Ta(S, r, s);
        }), w;
      }), e3 = Ni(function(n, r, s) {
        Sn(n, s, r);
      });
      function Yi(n, r) {
        var s = Ce(n) ? it : v1;
        return s(n, be(r, 3));
      }
      function t3(n, r, s, f) {
        return n == null ? [] : (Ce(r) || (r = r == null ? [] : [r]), s = f ? t : s, Ce(s) || (s = s == null ? [] : [s]), w1(n, r, s));
      }
      var n3 = Ni(function(n, r, s) {
        n[s ? 0 : 1].push(r);
      }, function() {
        return [[], []];
      });
      function r3(n, r, s) {
        var f = Ce(n) ? jl : Gu, g = arguments.length < 3;
        return f(n, be(r, 4), s, g, er);
      }
      function a3(n, r, s) {
        var f = Ce(n) ? gd : Gu, g = arguments.length < 3;
        return f(n, be(r, 4), s, g, c1);
      }
      function i3(n, r) {
        var s = Ce(n) ? Kn : h1;
        return s(n, Ki(be(r, 3)));
      }
      function l3(n) {
        var r = Ce(n) ? l1 : Q2;
        return r(n);
      }
      function s3(n, r, s) {
        (s ? Ut(n, r, s) : r === t) ? r = 1 : r = Ee(r);
        var f = Ce(n) ? E2 : j2;
        return f(n, r);
      }
      function o3(n) {
        var r = Ce(n) ? T2 : tm;
        return r(n);
      }
      function u3(n) {
        if (n == null)
          return 0;
        if (e0(n))
          return Qi(n) ? Qr(n) : n.length;
        var r = Ot(n);
        return r == st || r == Jt ? n.size : _s(n).length;
      }
      function c3(n, r, s) {
        var f = Ce(n) ? es : nm;
        return s && Ut(n, r, s) && (r = t), f(n, be(r, 3));
      }
      var h3 = ze(function(n, r) {
        if (n == null)
          return [];
        var s = r.length;
        return s > 1 && Ut(n, r[0], r[1]) ? r = [] : s > 2 && Ut(r[0], r[1], r[2]) && (r = [r[0]]), w1(n, Rt(r, 1), []);
      }), Xi = Gd || function() {
        return zt.Date.now();
      };
      function f3(n, r) {
        if (typeof r != "function")
          throw new S0(u);
        return n = Ee(n), function() {
          if (--n < 1)
            return r.apply(this, arguments);
        };
      }
      function pc(n, r, s) {
        return r = s ? t : r, r = n && r == null ? n.length : r, Fn(n, G, t, t, t, t, r);
      }
      function gc(n, r) {
        var s;
        if (typeof r != "function")
          throw new S0(u);
        return n = Ee(n), function() {
          return --n > 0 && (s = r.apply(this, arguments)), n <= 1 && (r = t), s;
        };
      }
      var Hs = ze(function(n, r, s) {
        var f = q;
        if (s.length) {
          var g = Qn(s, la(Hs));
          f |= N;
        }
        return Fn(n, f, r, s, g);
      }), vc = ze(function(n, r, s) {
        var f = q | H;
        if (s.length) {
          var g = Qn(s, la(vc));
          f |= N;
        }
        return Fn(r, f, n, s, g);
      });
      function _c(n, r, s) {
        r = s ? t : r;
        var f = Fn(n, D, t, t, t, t, t, r);
        return f.placeholder = _c.placeholder, f;
      }
      function bc(n, r, s) {
        r = s ? t : r;
        var f = Fn(n, R, t, t, t, t, t, r);
        return f.placeholder = bc.placeholder, f;
      }
      function yc(n, r, s) {
        var f, g, w, S, E, L, V = 0, Y = !1, Z = !1, re = !0;
        if (typeof n != "function")
          throw new S0(u);
        r = $0(r) || 0, ot(s) && (Y = !!s.leading, Z = "maxWait" in s, w = Z ? Ct($0(s.maxWait) || 0, r) : w, re = "trailing" in s ? !!s.trailing : re);
        function de(bt) {
          var X0 = f, Mn = g;
          return f = g = t, V = bt, S = n.apply(Mn, X0), S;
        }
        function ye(bt) {
          return V = bt, E = Ra(Re, r), Y ? de(bt) : S;
        }
        function $e(bt) {
          var X0 = bt - L, Mn = bt - V, qc = r - X0;
          return Z ? qt(qc, w - Mn) : qc;
        }
        function we(bt) {
          var X0 = bt - L, Mn = bt - V;
          return L === t || X0 >= r || X0 < 0 || Z && Mn >= w;
        }
        function Re() {
          var bt = Xi();
          if (we(bt))
            return qe(bt);
          E = Ra(Re, $e(bt));
        }
        function qe(bt) {
          return E = t, re && f ? de(bt) : (f = g = t, S);
        }
        function f0() {
          E !== t && T1(E), V = 0, f = L = g = E = t;
        }
        function Wt() {
          return E === t ? S : qe(Xi());
        }
        function d0() {
          var bt = Xi(), X0 = we(bt);
          if (f = arguments, g = this, L = bt, X0) {
            if (E === t)
              return ye(L);
            if (Z)
              return T1(E), E = Ra(Re, r), de(L);
          }
          return E === t && (E = Ra(Re, r)), S;
        }
        return d0.cancel = f0, d0.flush = Wt, d0;
      }
      var d3 = ze(function(n, r) {
        return u1(n, 1, r);
      }), m3 = ze(function(n, r, s) {
        return u1(n, $0(r) || 0, s);
      });
      function p3(n) {
        return Fn(n, J);
      }
      function Zi(n, r) {
        if (typeof n != "function" || r != null && typeof r != "function")
          throw new S0(u);
        var s = function() {
          var f = arguments, g = r ? r.apply(this, f) : f[0], w = s.cache;
          if (w.has(g))
            return w.get(g);
          var S = n.apply(this, f);
          return s.cache = w.set(g, S) || w, S;
        };
        return s.cache = new (Zi.Cache || An)(), s;
      }
      Zi.Cache = An;
      function Ki(n) {
        if (typeof n != "function")
          throw new S0(u);
        return function() {
          var r = arguments;
          switch (r.length) {
            case 0:
              return !n.call(this);
            case 1:
              return !n.call(this, r[0]);
            case 2:
              return !n.call(this, r[0], r[1]);
            case 3:
              return !n.call(this, r[0], r[1], r[2]);
          }
          return !n.apply(this, r);
        };
      }
      function g3(n) {
        return gc(2, n);
      }
      var v3 = rm(function(n, r) {
        r = r.length == 1 && Ce(r[0]) ? it(r[0], u0(be())) : it(Rt(r, 1), u0(be()));
        var s = r.length;
        return ze(function(f) {
          for (var g = -1, w = qt(f.length, s); ++g < w; )
            f[g] = r[g].call(this, f[g]);
          return o0(n, this, f);
        });
      }), Us = ze(function(n, r) {
        var s = Qn(r, la(Us));
        return Fn(n, N, t, r, s);
      }), wc = ze(function(n, r) {
        var s = Qn(r, la(wc));
        return Fn(n, U, t, r, s);
      }), _3 = Cn(function(n, r) {
        return Fn(n, te, t, t, t, r);
      });
      function b3(n, r) {
        if (typeof n != "function")
          throw new S0(u);
        return r = r === t ? r : Ee(r), ze(n, r);
      }
      function y3(n, r) {
        if (typeof n != "function")
          throw new S0(u);
        return r = r == null ? 0 : Ct(Ee(r), 0), ze(function(s) {
          var f = s[r], g = rr(s, 0, r);
          return f && Jn(g, f), o0(n, this, g);
        });
      }
      function w3(n, r, s) {
        var f = !0, g = !0;
        if (typeof n != "function")
          throw new S0(u);
        return ot(s) && (f = "leading" in s ? !!s.leading : f, g = "trailing" in s ? !!s.trailing : g), yc(n, r, {
          leading: f,
          maxWait: r,
          trailing: g
        });
      }
      function x3(n) {
        return pc(n, 1);
      }
      function D3(n, r) {
        return Us(Fs(r), n);
      }
      function k3() {
        if (!arguments.length)
          return [];
        var n = arguments[0];
        return Ce(n) ? n : [n];
      }
      function A3(n) {
        return C0(n, A);
      }
      function S3(n, r) {
        return r = typeof r == "function" ? r : t, C0(n, A, r);
      }
      function F3(n) {
        return C0(n, x | A);
      }
      function C3(n, r) {
        return r = typeof r == "function" ? r : t, C0(n, x | A, r);
      }
      function E3(n, r) {
        return r == null || o1(n, r, $t(r));
      }
      function Y0(n, r) {
        return n === r || n !== n && r !== r;
      }
      var T3 = Hi(ps), $3 = Hi(function(n, r) {
        return n >= r;
      }), Tr = m1(/* @__PURE__ */ function() {
        return arguments;
      }()) ? m1 : function(n) {
        return pt(n) && Ye.call(n, "callee") && !e1.call(n, "callee");
      }, Ce = P.isArray, M3 = Ru ? u0(Ru) : O2;
      function e0(n) {
        return n != null && Ji(n.length) && !Tn(n);
      }
      function _t(n) {
        return pt(n) && e0(n);
      }
      function B3(n) {
        return n === !0 || n === !1 || pt(n) && Ht(n) == at;
      }
      var ar = Yd || eo, z3 = Iu ? u0(Iu) : P2;
      function R3(n) {
        return pt(n) && n.nodeType === 1 && !Ia(n);
      }
      function I3(n) {
        if (n == null)
          return !0;
        if (e0(n) && (Ce(n) || typeof n == "string" || typeof n.splice == "function" || ar(n) || sa(n) || Tr(n)))
          return !n.length;
        var r = Ot(n);
        if (r == st || r == Jt)
          return !n.size;
        if (za(n))
          return !_s(n).length;
        for (var s in n)
          if (Ye.call(n, s))
            return !1;
        return !0;
      }
      function L3(n, r) {
        return $a(n, r);
      }
      function N3(n, r, s) {
        s = typeof s == "function" ? s : t;
        var f = s ? s(n, r) : t;
        return f === t ? $a(n, r, t, s) : !!f;
      }
      function Ws(n) {
        if (!pt(n))
          return !1;
        var r = Ht(n);
        return r == Kt || r == l0 || typeof n.message == "string" && typeof n.name == "string" && !Ia(n);
      }
      function q3(n) {
        return typeof n == "number" && n1(n);
      }
      function Tn(n) {
        if (!ot(n))
          return !1;
        var r = Ht(n);
        return r == Pt || r == b0 || r == Dt || r == U0;
      }
      function xc(n) {
        return typeof n == "number" && n == Ee(n);
      }
      function Ji(n) {
        return typeof n == "number" && n > -1 && n % 1 == 0 && n <= ke;
      }
      function ot(n) {
        var r = typeof n;
        return n != null && (r == "object" || r == "function");
      }
      function pt(n) {
        return n != null && typeof n == "object";
      }
      var Dc = Lu ? u0(Lu) : U2;
      function O3(n, r) {
        return n === r || vs(n, r, zs(r));
      }
      function P3(n, r, s) {
        return s = typeof s == "function" ? s : t, vs(n, r, zs(r), s);
      }
      function H3(n) {
        return kc(n) && n != +n;
      }
      function U3(n) {
        if (Sm(n))
          throw new Se(o);
        return p1(n);
      }
      function W3(n) {
        return n === null;
      }
      function G3(n) {
        return n == null;
      }
      function kc(n) {
        return typeof n == "number" || pt(n) && Ht(n) == y0;
      }
      function Ia(n) {
        if (!pt(n) || Ht(n) != kt)
          return !1;
        var r = ki(n);
        if (r === null)
          return !0;
        var s = Ye.call(r, "constructor") && r.constructor;
        return typeof s == "function" && s instanceof s && yi.call(s) == Pd;
      }
      var Gs = Nu ? u0(Nu) : W2;
      function V3(n) {
        return xc(n) && n >= -ke && n <= ke;
      }
      var Ac = qu ? u0(qu) : G2;
      function Qi(n) {
        return typeof n == "string" || !Ce(n) && pt(n) && Ht(n) == gr;
      }
      function h0(n) {
        return typeof n == "symbol" || pt(n) && Ht(n) == Un;
      }
      var sa = Ou ? u0(Ou) : V2;
      function Y3(n) {
        return n === t;
      }
      function X3(n) {
        return pt(n) && Ot(n) == x0;
      }
      function Z3(n) {
        return pt(n) && Ht(n) == Wn;
      }
      var K3 = Hi(bs), J3 = Hi(function(n, r) {
        return n <= r;
      });
      function Sc(n) {
        if (!n)
          return [];
        if (e0(n))
          return Qi(n) ? G0(n) : jt(n);
        if (Da && n[Da])
          return Ed(n[Da]());
        var r = Ot(n), s = r == st ? ls : r == Jt ? vi : oa;
        return s(n);
      }
      function $n(n) {
        if (!n)
          return n === 0 ? n : 0;
        if (n = $0(n), n === he || n === -he) {
          var r = n < 0 ? -1 : 1;
          return r * Oe;
        }
        return n === n ? n : 0;
      }
      function Ee(n) {
        var r = $n(n), s = r % 1;
        return r === r ? s ? r - s : r : 0;
      }
      function Fc(n) {
        return n ? Sr(Ee(n), 0, le) : 0;
      }
      function $0(n) {
        if (typeof n == "number")
          return n;
        if (h0(n))
          return ce;
        if (ot(n)) {
          var r = typeof n.valueOf == "function" ? n.valueOf() : n;
          n = ot(r) ? r + "" : r;
        }
        if (typeof n != "string")
          return n === 0 ? n : +n;
        n = Vu(n);
        var s = Wl.test(n);
        return s || B.test(n) ? fd(n.slice(2), s ? 2 : 8) : di.test(n) ? ce : +n;
      }
      function Cc(n) {
        return on(n, t0(n));
      }
      function Q3(n) {
        return n ? Sr(Ee(n), -ke, ke) : n === 0 ? n : 0;
      }
      function Ge(n) {
        return n == null ? "" : c0(n);
      }
      var j3 = aa(function(n, r) {
        if (za(r) || e0(r)) {
          on(r, $t(r), n);
          return;
        }
        for (var s in r)
          Ye.call(r, s) && Ca(n, s, r[s]);
      }), Ec = aa(function(n, r) {
        on(r, t0(r), n);
      }), ji = aa(function(n, r, s, f) {
        on(r, t0(r), n, f);
      }), e6 = aa(function(n, r, s, f) {
        on(r, $t(r), n, f);
      }), t6 = Cn(fs);
      function n6(n, r) {
        var s = ra(n);
        return r == null ? s : s1(s, r);
      }
      var r6 = ze(function(n, r) {
        n = Je(n);
        var s = -1, f = r.length, g = f > 2 ? r[2] : t;
        for (g && Ut(r[0], r[1], g) && (f = 1); ++s < f; )
          for (var w = r[s], S = t0(w), E = -1, L = S.length; ++E < L; ) {
            var V = S[E], Y = n[V];
            (Y === t || Y0(Y, ea[V]) && !Ye.call(n, V)) && (n[V] = w[V]);
          }
        return n;
      }), a6 = ze(function(n) {
        return n.push(t, V1), o0(Tc, t, n);
      });
      function i6(n, r) {
        return Hu(n, be(r, 3), sn);
      }
      function l6(n, r) {
        return Hu(n, be(r, 3), ms);
      }
      function s6(n, r) {
        return n == null ? n : ds(n, be(r, 3), t0);
      }
      function o6(n, r) {
        return n == null ? n : f1(n, be(r, 3), t0);
      }
      function u6(n, r) {
        return n && sn(n, be(r, 3));
      }
      function c6(n, r) {
        return n && ms(n, be(r, 3));
      }
      function h6(n) {
        return n == null ? [] : zi(n, $t(n));
      }
      function f6(n) {
        return n == null ? [] : zi(n, t0(n));
      }
      function Vs(n, r, s) {
        var f = n == null ? t : Fr(n, r);
        return f === t ? s : f;
      }
      function d6(n, r) {
        return n != null && Z1(n, r, I2);
      }
      function Ys(n, r) {
        return n != null && Z1(n, r, L2);
      }
      var m6 = P1(function(n, r, s) {
        r != null && typeof r.toString != "function" && (r = wi.call(r)), n[r] = s;
      }, Zs(n0)), p6 = P1(function(n, r, s) {
        r != null && typeof r.toString != "function" && (r = wi.call(r)), Ye.call(n, r) ? n[r].push(s) : n[r] = [s];
      }, be), g6 = ze(Ta);
      function $t(n) {
        return e0(n) ? i1(n) : _s(n);
      }
      function t0(n) {
        return e0(n) ? i1(n, !0) : Y2(n);
      }
      function v6(n, r) {
        var s = {};
        return r = be(r, 3), sn(n, function(f, g, w) {
          Sn(s, r(f, g, w), f);
        }), s;
      }
      function _6(n, r) {
        var s = {};
        return r = be(r, 3), sn(n, function(f, g, w) {
          Sn(s, g, r(f, g, w));
        }), s;
      }
      var b6 = aa(function(n, r, s) {
        Ri(n, r, s);
      }), Tc = aa(function(n, r, s, f) {
        Ri(n, r, s, f);
      }), y6 = Cn(function(n, r) {
        var s = {};
        if (n == null)
          return s;
        var f = !1;
        r = it(r, function(w) {
          return w = nr(w, n), f || (f = w.length > 1), w;
        }), on(n, Ms(n), s), f && (s = C0(s, x | C | A, mm));
        for (var g = r.length; g--; )
          ks(s, r[g]);
        return s;
      });
      function w6(n, r) {
        return $c(n, Ki(be(r)));
      }
      var x6 = Cn(function(n, r) {
        return n == null ? {} : Z2(n, r);
      });
      function $c(n, r) {
        if (n == null)
          return {};
        var s = it(Ms(n), function(f) {
          return [f];
        });
        return r = be(r), x1(n, s, function(f, g) {
          return r(f, g[0]);
        });
      }
      function D6(n, r, s) {
        r = nr(r, n);
        var f = -1, g = r.length;
        for (g || (g = 1, n = t); ++f < g; ) {
          var w = n == null ? t : n[un(r[f])];
          w === t && (f = g, w = s), n = Tn(w) ? w.call(n) : w;
        }
        return n;
      }
      function k6(n, r, s) {
        return n == null ? n : Ma(n, r, s);
      }
      function A6(n, r, s, f) {
        return f = typeof f == "function" ? f : t, n == null ? n : Ma(n, r, s, f);
      }
      var Mc = W1($t), Bc = W1(t0);
      function S6(n, r, s) {
        var f = Ce(n), g = f || ar(n) || sa(n);
        if (r = be(r, 4), s == null) {
          var w = n && n.constructor;
          g ? s = f ? new w() : [] : ot(n) ? s = Tn(w) ? ra(ki(n)) : {} : s = {};
        }
        return (g ? A0 : sn)(n, function(S, E, L) {
          return r(s, S, E, L);
        }), s;
      }
      function F6(n, r) {
        return n == null ? !0 : ks(n, r);
      }
      function C6(n, r, s) {
        return n == null ? n : F1(n, r, Fs(s));
      }
      function E6(n, r, s, f) {
        return f = typeof f == "function" ? f : t, n == null ? n : F1(n, r, Fs(s), f);
      }
      function oa(n) {
        return n == null ? [] : is(n, $t(n));
      }
      function T6(n) {
        return n == null ? [] : is(n, t0(n));
      }
      function $6(n, r, s) {
        return s === t && (s = r, r = t), s !== t && (s = $0(s), s = s === s ? s : 0), r !== t && (r = $0(r), r = r === r ? r : 0), Sr($0(n), r, s);
      }
      function M6(n, r, s) {
        return r = $n(r), s === t ? (s = r, r = 0) : s = $n(s), n = $0(n), N2(n, r, s);
      }
      function B6(n, r, s) {
        if (s && typeof s != "boolean" && Ut(n, r, s) && (r = s = t), s === t && (typeof r == "boolean" ? (s = r, r = t) : typeof n == "boolean" && (s = n, n = t)), n === t && r === t ? (n = 0, r = 1) : (n = $n(n), r === t ? (r = n, n = 0) : r = $n(r)), n > r) {
          var f = n;
          n = r, r = f;
        }
        if (s || n % 1 || r % 1) {
          var g = r1();
          return qt(n + g * (r - n + hd("1e-" + ((g + "").length - 1))), r);
        }
        return ws(n, r);
      }
      var z6 = ia(function(n, r, s) {
        return r = r.toLowerCase(), n + (s ? zc(r) : r);
      });
      function zc(n) {
        return Xs(Ge(n).toLowerCase());
      }
      function Rc(n) {
        return n = Ge(n), n && n.replace(ue, kd).replace(td, "");
      }
      function R6(n, r, s) {
        n = Ge(n), r = c0(r);
        var f = n.length;
        s = s === t ? f : Sr(Ee(s), 0, f);
        var g = s;
        return s -= r.length, s >= 0 && n.slice(s, g) == r;
      }
      function I6(n) {
        return n = Ge(n), n && Hl.test(n) ? n.replace(Xn, Ad) : n;
      }
      function L6(n) {
        return n = Ge(n), n && Ul.test(n) ? n.replace(Yr, "\\$&") : n;
      }
      var N6 = ia(function(n, r, s) {
        return n + (s ? "-" : "") + r.toLowerCase();
      }), q6 = ia(function(n, r, s) {
        return n + (s ? " " : "") + r.toLowerCase();
      }), O6 = N1("toLowerCase");
      function P6(n, r, s) {
        n = Ge(n), r = Ee(r);
        var f = r ? Qr(n) : 0;
        if (!r || f >= r)
          return n;
        var g = (r - f) / 2;
        return Pi(Ci(g), s) + n + Pi(Fi(g), s);
      }
      function H6(n, r, s) {
        n = Ge(n), r = Ee(r);
        var f = r ? Qr(n) : 0;
        return r && f < r ? n + Pi(r - f, s) : n;
      }
      function U6(n, r, s) {
        n = Ge(n), r = Ee(r);
        var f = r ? Qr(n) : 0;
        return r && f < r ? Pi(r - f, s) + n : n;
      }
      function W6(n, r, s) {
        return s || r == null ? r = 0 : r && (r = +r), Jd(Ge(n).replace(Qt, ""), r || 0);
      }
      function G6(n, r, s) {
        return (s ? Ut(n, r, s) : r === t) ? r = 1 : r = Ee(r), xs(Ge(n), r);
      }
      function V6() {
        var n = arguments, r = Ge(n[0]);
        return n.length < 3 ? r : r.replace(n[1], n[2]);
      }
      var Y6 = ia(function(n, r, s) {
        return n + (s ? "_" : "") + r.toLowerCase();
      });
      function X6(n, r, s) {
        return s && typeof s != "number" && Ut(n, r, s) && (r = s = t), s = s === t ? le : s >>> 0, s ? (n = Ge(n), n && (typeof r == "string" || r != null && !Gs(r)) && (r = c0(r), !r && Jr(n)) ? rr(G0(n), 0, s) : n.split(r, s)) : [];
      }
      var Z6 = ia(function(n, r, s) {
        return n + (s ? " " : "") + Xs(r);
      });
      function K6(n, r, s) {
        return n = Ge(n), s = s == null ? 0 : Sr(Ee(s), 0, n.length), r = c0(r), n.slice(s, s + r.length) == r;
      }
      function J6(n, r, s) {
        var f = b.templateSettings;
        s && Ut(n, r, s) && (r = t), n = Ge(n), r = ji({}, r, f, G1);
        var g = ji({}, r.imports, f.imports, G1), w = $t(g), S = is(g, w), E, L, V = 0, Y = r.interpolate || Ve, Z = "__p += '", re = ss(
          (r.escape || Ve).source + "|" + Y.source + "|" + (Y === ai ? fi : Ve).source + "|" + (r.evaluate || Ve).source + "|$",
          "g"
        ), de = "//# sourceURL=" + (Ye.call(r, "sourceURL") ? (r.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++ld + "]") + `
`;
        n.replace(re, function(we, Re, qe, f0, Wt, d0) {
          return qe || (qe = f0), Z += n.slice(V, d0).replace(Et, Sd), Re && (E = !0, Z += `' +
__e(` + Re + `) +
'`), Wt && (L = !0, Z += `';
` + Wt + `;
__p += '`), qe && (Z += `' +
((__t = (` + qe + `)) == null ? '' : __t) +
'`), V = d0 + we.length, we;
        }), Z += `';
`;
        var ye = Ye.call(r, "variable") && r.variable;
        if (!ye)
          Z = `with (obj) {
` + Z + `
}
`;
        else if (W0.test(ye))
          throw new Se(h);
        Z = (L ? Z.replace(Ol, "") : Z).replace(Gr, "$1").replace(Vr, "$1;"), Z = "function(" + (ye || "obj") + `) {
` + (ye ? "" : `obj || (obj = {});
`) + "var __t, __p = ''" + (E ? ", __e = _.escape" : "") + (L ? `, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
` : `;
`) + Z + `return __p
}`;
        var $e = Lc(function() {
          return We(w, de + "return " + Z).apply(t, S);
        });
        if ($e.source = Z, Ws($e))
          throw $e;
        return $e;
      }
      function Q6(n) {
        return Ge(n).toLowerCase();
      }
      function j6(n) {
        return Ge(n).toUpperCase();
      }
      function e7(n, r, s) {
        if (n = Ge(n), n && (s || r === t))
          return Vu(n);
        if (!n || !(r = c0(r)))
          return n;
        var f = G0(n), g = G0(r), w = Yu(f, g), S = Xu(f, g) + 1;
        return rr(f, w, S).join("");
      }
      function t7(n, r, s) {
        if (n = Ge(n), n && (s || r === t))
          return n.slice(0, Ku(n) + 1);
        if (!n || !(r = c0(r)))
          return n;
        var f = G0(n), g = Xu(f, G0(r)) + 1;
        return rr(f, 0, g).join("");
      }
      function n7(n, r, s) {
        if (n = Ge(n), n && (s || r === t))
          return n.replace(Qt, "");
        if (!n || !(r = c0(r)))
          return n;
        var f = G0(n), g = Yu(f, G0(r));
        return rr(f, g).join("");
      }
      function r7(n, r) {
        var s = X, f = oe;
        if (ot(r)) {
          var g = "separator" in r ? r.separator : g;
          s = "length" in r ? Ee(r.length) : s, f = "omission" in r ? c0(r.omission) : f;
        }
        n = Ge(n);
        var w = n.length;
        if (Jr(n)) {
          var S = G0(n);
          w = S.length;
        }
        if (s >= w)
          return n;
        var E = s - Qr(f);
        if (E < 1)
          return f;
        var L = S ? rr(S, 0, E).join("") : n.slice(0, E);
        if (g === t)
          return L + f;
        if (S && (E += L.length - E), Gs(g)) {
          if (n.slice(E).search(g)) {
            var V, Y = L;
            for (g.global || (g = ss(g.source, Ge(ba.exec(g)) + "g")), g.lastIndex = 0; V = g.exec(Y); )
              var Z = V.index;
            L = L.slice(0, Z === t ? E : Z);
          }
        } else if (n.indexOf(c0(g), E) != E) {
          var re = L.lastIndexOf(g);
          re > -1 && (L = L.slice(0, re));
        }
        return L + f;
      }
      function a7(n) {
        return n = Ge(n), n && Pl.test(n) ? n.replace(ri, Bd) : n;
      }
      var i7 = ia(function(n, r, s) {
        return n + (s ? " " : "") + r.toUpperCase();
      }), Xs = N1("toUpperCase");
      function Ic(n, r, s) {
        return n = Ge(n), r = s ? t : r, r === t ? Cd(n) ? Id(n) : bd(n) : n.match(r) || [];
      }
      var Lc = ze(function(n, r) {
        try {
          return o0(n, t, r);
        } catch (s) {
          return Ws(s) ? s : new Se(s);
        }
      }), l7 = Cn(function(n, r) {
        return A0(r, function(s) {
          s = un(s), Sn(n, s, Hs(n[s], n));
        }), n;
      });
      function s7(n) {
        var r = n == null ? 0 : n.length, s = be();
        return n = r ? it(n, function(f) {
          if (typeof f[1] != "function")
            throw new S0(u);
          return [s(f[0]), f[1]];
        }) : [], ze(function(f) {
          for (var g = -1; ++g < r; ) {
            var w = n[g];
            if (o0(w[0], this, f))
              return o0(w[1], this, f);
          }
        });
      }
      function o7(n) {
        return B2(C0(n, x));
      }
      function Zs(n) {
        return function() {
          return n;
        };
      }
      function u7(n, r) {
        return n == null || n !== n ? r : n;
      }
      var c7 = O1(), h7 = O1(!0);
      function n0(n) {
        return n;
      }
      function Ks(n) {
        return g1(typeof n == "function" ? n : C0(n, x));
      }
      function f7(n) {
        return _1(C0(n, x));
      }
      function d7(n, r) {
        return b1(n, C0(r, x));
      }
      var m7 = ze(function(n, r) {
        return function(s) {
          return Ta(s, n, r);
        };
      }), p7 = ze(function(n, r) {
        return function(s) {
          return Ta(n, s, r);
        };
      });
      function Js(n, r, s) {
        var f = $t(r), g = zi(r, f);
        s == null && !(ot(r) && (g.length || !f.length)) && (s = r, r = n, n = this, g = zi(r, $t(r)));
        var w = !(ot(s) && "chain" in s) || !!s.chain, S = Tn(n);
        return A0(g, function(E) {
          var L = r[E];
          n[E] = L, S && (n.prototype[E] = function() {
            var V = this.__chain__;
            if (w || V) {
              var Y = n(this.__wrapped__), Z = Y.__actions__ = jt(this.__actions__);
              return Z.push({ func: L, args: arguments, thisArg: n }), Y.__chain__ = V, Y;
            }
            return L.apply(n, Jn([this.value()], arguments));
          });
        }), n;
      }
      function g7() {
        return zt._ === this && (zt._ = Hd), this;
      }
      function Qs() {
      }
      function v7(n) {
        return n = Ee(n), ze(function(r) {
          return y1(r, n);
        });
      }
      var _7 = Es(it), b7 = Es(Pu), y7 = Es(es);
      function Nc(n) {
        return Is(n) ? ts(un(n)) : K2(n);
      }
      function w7(n) {
        return function(r) {
          return n == null ? t : Fr(n, r);
        };
      }
      var x7 = H1(), D7 = H1(!0);
      function js() {
        return [];
      }
      function eo() {
        return !1;
      }
      function k7() {
        return {};
      }
      function A7() {
        return "";
      }
      function S7() {
        return !0;
      }
      function F7(n, r) {
        if (n = Ee(n), n < 1 || n > ke)
          return [];
        var s = le, f = qt(n, le);
        r = be(r), n -= le;
        for (var g = as(f, r); ++s < n; )
          r(s);
        return g;
      }
      function C7(n) {
        return Ce(n) ? it(n, un) : h0(n) ? [n] : jt(ac(Ge(n)));
      }
      function E7(n) {
        var r = ++Od;
        return Ge(n) + r;
      }
      var T7 = Oi(function(n, r) {
        return n + r;
      }, 0), $7 = Ts("ceil"), M7 = Oi(function(n, r) {
        return n / r;
      }, 1), B7 = Ts("floor");
      function z7(n) {
        return n && n.length ? Bi(n, n0, ps) : t;
      }
      function R7(n, r) {
        return n && n.length ? Bi(n, be(r, 2), ps) : t;
      }
      function I7(n) {
        return Wu(n, n0);
      }
      function L7(n, r) {
        return Wu(n, be(r, 2));
      }
      function N7(n) {
        return n && n.length ? Bi(n, n0, bs) : t;
      }
      function q7(n, r) {
        return n && n.length ? Bi(n, be(r, 2), bs) : t;
      }
      var O7 = Oi(function(n, r) {
        return n * r;
      }, 1), P7 = Ts("round"), H7 = Oi(function(n, r) {
        return n - r;
      }, 0);
      function U7(n) {
        return n && n.length ? rs(n, n0) : 0;
      }
      function W7(n, r) {
        return n && n.length ? rs(n, be(r, 2)) : 0;
      }
      return b.after = f3, b.ary = pc, b.assign = j3, b.assignIn = Ec, b.assignInWith = ji, b.assignWith = e6, b.at = t6, b.before = gc, b.bind = Hs, b.bindAll = l7, b.bindKey = vc, b.castArray = k3, b.chain = fc, b.chunk = Bm, b.compact = zm, b.concat = Rm, b.cond = s7, b.conforms = o7, b.constant = Zs, b.countBy = U5, b.create = n6, b.curry = _c, b.curryRight = bc, b.debounce = yc, b.defaults = r6, b.defaultsDeep = a6, b.defer = d3, b.delay = m3, b.difference = Im, b.differenceBy = Lm, b.differenceWith = Nm, b.drop = qm, b.dropRight = Om, b.dropRightWhile = Pm, b.dropWhile = Hm, b.fill = Um, b.filter = G5, b.flatMap = X5, b.flatMapDeep = Z5, b.flatMapDepth = K5, b.flatten = oc, b.flattenDeep = Wm, b.flattenDepth = Gm, b.flip = p3, b.flow = c7, b.flowRight = h7, b.fromPairs = Vm, b.functions = h6, b.functionsIn = f6, b.groupBy = J5, b.initial = Xm, b.intersection = Zm, b.intersectionBy = Km, b.intersectionWith = Jm, b.invert = m6, b.invertBy = p6, b.invokeMap = j5, b.iteratee = Ks, b.keyBy = e3, b.keys = $t, b.keysIn = t0, b.map = Yi, b.mapKeys = v6, b.mapValues = _6, b.matches = f7, b.matchesProperty = d7, b.memoize = Zi, b.merge = b6, b.mergeWith = Tc, b.method = m7, b.methodOf = p7, b.mixin = Js, b.negate = Ki, b.nthArg = v7, b.omit = y6, b.omitBy = w6, b.once = g3, b.orderBy = t3, b.over = _7, b.overArgs = v3, b.overEvery = b7, b.overSome = y7, b.partial = Us, b.partialRight = wc, b.partition = n3, b.pick = x6, b.pickBy = $c, b.property = Nc, b.propertyOf = w7, b.pull = t5, b.pullAll = cc, b.pullAllBy = n5, b.pullAllWith = r5, b.pullAt = a5, b.range = x7, b.rangeRight = D7, b.rearg = _3, b.reject = i3, b.remove = i5, b.rest = b3, b.reverse = Os, b.sampleSize = s3, b.set = k6, b.setWith = A6, b.shuffle = o3, b.slice = l5, b.sortBy = h3, b.sortedUniq = d5, b.sortedUniqBy = m5, b.split = X6, b.spread = y3, b.tail = p5, b.take = g5, b.takeRight = v5, b.takeRightWhile = _5, b.takeWhile = b5, b.tap = z5, b.throttle = w3, b.thru = Vi, b.toArray = Sc, b.toPairs = Mc, b.toPairsIn = Bc, b.toPath = C7, b.toPlainObject = Cc, b.transform = S6, b.unary = x3, b.union = y5, b.unionBy = w5, b.unionWith = x5, b.uniq = D5, b.uniqBy = k5, b.uniqWith = A5, b.unset = F6, b.unzip = Ps, b.unzipWith = hc, b.update = C6, b.updateWith = E6, b.values = oa, b.valuesIn = T6, b.without = S5, b.words = Ic, b.wrap = D3, b.xor = F5, b.xorBy = C5, b.xorWith = E5, b.zip = T5, b.zipObject = $5, b.zipObjectDeep = M5, b.zipWith = B5, b.entries = Mc, b.entriesIn = Bc, b.extend = Ec, b.extendWith = ji, Js(b, b), b.add = T7, b.attempt = Lc, b.camelCase = z6, b.capitalize = zc, b.ceil = $7, b.clamp = $6, b.clone = A3, b.cloneDeep = F3, b.cloneDeepWith = C3, b.cloneWith = S3, b.conformsTo = E3, b.deburr = Rc, b.defaultTo = u7, b.divide = M7, b.endsWith = R6, b.eq = Y0, b.escape = I6, b.escapeRegExp = L6, b.every = W5, b.find = V5, b.findIndex = lc, b.findKey = i6, b.findLast = Y5, b.findLastIndex = sc, b.findLastKey = l6, b.floor = B7, b.forEach = dc, b.forEachRight = mc, b.forIn = s6, b.forInRight = o6, b.forOwn = u6, b.forOwnRight = c6, b.get = Vs, b.gt = T3, b.gte = $3, b.has = d6, b.hasIn = Ys, b.head = uc, b.identity = n0, b.includes = Q5, b.indexOf = Ym, b.inRange = M6, b.invoke = g6, b.isArguments = Tr, b.isArray = Ce, b.isArrayBuffer = M3, b.isArrayLike = e0, b.isArrayLikeObject = _t, b.isBoolean = B3, b.isBuffer = ar, b.isDate = z3, b.isElement = R3, b.isEmpty = I3, b.isEqual = L3, b.isEqualWith = N3, b.isError = Ws, b.isFinite = q3, b.isFunction = Tn, b.isInteger = xc, b.isLength = Ji, b.isMap = Dc, b.isMatch = O3, b.isMatchWith = P3, b.isNaN = H3, b.isNative = U3, b.isNil = G3, b.isNull = W3, b.isNumber = kc, b.isObject = ot, b.isObjectLike = pt, b.isPlainObject = Ia, b.isRegExp = Gs, b.isSafeInteger = V3, b.isSet = Ac, b.isString = Qi, b.isSymbol = h0, b.isTypedArray = sa, b.isUndefined = Y3, b.isWeakMap = X3, b.isWeakSet = Z3, b.join = Qm, b.kebabCase = N6, b.last = T0, b.lastIndexOf = jm, b.lowerCase = q6, b.lowerFirst = O6, b.lt = K3, b.lte = J3, b.max = z7, b.maxBy = R7, b.mean = I7, b.meanBy = L7, b.min = N7, b.minBy = q7, b.stubArray = js, b.stubFalse = eo, b.stubObject = k7, b.stubString = A7, b.stubTrue = S7, b.multiply = O7, b.nth = e5, b.noConflict = g7, b.noop = Qs, b.now = Xi, b.pad = P6, b.padEnd = H6, b.padStart = U6, b.parseInt = W6, b.random = B6, b.reduce = r3, b.reduceRight = a3, b.repeat = G6, b.replace = V6, b.result = D6, b.round = P7, b.runInContext = z, b.sample = l3, b.size = u3, b.snakeCase = Y6, b.some = c3, b.sortedIndex = s5, b.sortedIndexBy = o5, b.sortedIndexOf = u5, b.sortedLastIndex = c5, b.sortedLastIndexBy = h5, b.sortedLastIndexOf = f5, b.startCase = Z6, b.startsWith = K6, b.subtract = H7, b.sum = U7, b.sumBy = W7, b.template = J6, b.times = F7, b.toFinite = $n, b.toInteger = Ee, b.toLength = Fc, b.toLower = Q6, b.toNumber = $0, b.toSafeInteger = Q3, b.toString = Ge, b.toUpper = j6, b.trim = e7, b.trimEnd = t7, b.trimStart = n7, b.truncate = r7, b.unescape = a7, b.uniqueId = E7, b.upperCase = i7, b.upperFirst = Xs, b.each = dc, b.eachRight = mc, b.first = uc, Js(b, function() {
        var n = {};
        return sn(b, function(r, s) {
          Ye.call(b.prototype, s) || (n[s] = r);
        }), n;
      }(), { chain: !1 }), b.VERSION = a, A0(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(n) {
        b[n].placeholder = b;
      }), A0(["drop", "take"], function(n, r) {
        Le.prototype[n] = function(s) {
          s = s === t ? 1 : Ct(Ee(s), 0);
          var f = this.__filtered__ && !r ? new Le(this) : this.clone();
          return f.__filtered__ ? f.__takeCount__ = qt(s, f.__takeCount__) : f.__views__.push({
            size: qt(s, le),
            type: n + (f.__dir__ < 0 ? "Right" : "")
          }), f;
        }, Le.prototype[n + "Right"] = function(s) {
          return this.reverse()[n](s).reverse();
        };
      }), A0(["filter", "map", "takeWhile"], function(n, r) {
        var s = r + 1, f = s == Me || s == Xe;
        Le.prototype[n] = function(g) {
          var w = this.clone();
          return w.__iteratees__.push({
            iteratee: be(g, 3),
            type: s
          }), w.__filtered__ = w.__filtered__ || f, w;
        };
      }), A0(["head", "last"], function(n, r) {
        var s = "take" + (r ? "Right" : "");
        Le.prototype[n] = function() {
          return this[s](1).value()[0];
        };
      }), A0(["initial", "tail"], function(n, r) {
        var s = "drop" + (r ? "" : "Right");
        Le.prototype[n] = function() {
          return this.__filtered__ ? new Le(this) : this[s](1);
        };
      }), Le.prototype.compact = function() {
        return this.filter(n0);
      }, Le.prototype.find = function(n) {
        return this.filter(n).head();
      }, Le.prototype.findLast = function(n) {
        return this.reverse().find(n);
      }, Le.prototype.invokeMap = ze(function(n, r) {
        return typeof n == "function" ? new Le(this) : this.map(function(s) {
          return Ta(s, n, r);
        });
      }), Le.prototype.reject = function(n) {
        return this.filter(Ki(be(n)));
      }, Le.prototype.slice = function(n, r) {
        n = Ee(n);
        var s = this;
        return s.__filtered__ && (n > 0 || r < 0) ? new Le(s) : (n < 0 ? s = s.takeRight(-n) : n && (s = s.drop(n)), r !== t && (r = Ee(r), s = r < 0 ? s.dropRight(-r) : s.take(r - n)), s);
      }, Le.prototype.takeRightWhile = function(n) {
        return this.reverse().takeWhile(n).reverse();
      }, Le.prototype.toArray = function() {
        return this.take(le);
      }, sn(Le.prototype, function(n, r) {
        var s = /^(?:filter|find|map|reject)|While$/.test(r), f = /^(?:head|last)$/.test(r), g = b[f ? "take" + (r == "last" ? "Right" : "") : r], w = f || /^find/.test(r);
        g && (b.prototype[r] = function() {
          var S = this.__wrapped__, E = f ? [1] : arguments, L = S instanceof Le, V = E[0], Y = L || Ce(S), Z = function(Re) {
            var qe = g.apply(b, Jn([Re], E));
            return f && re ? qe[0] : qe;
          };
          Y && s && typeof V == "function" && V.length != 1 && (L = Y = !1);
          var re = this.__chain__, de = !!this.__actions__.length, ye = w && !re, $e = L && !de;
          if (!w && Y) {
            S = $e ? S : new Le(this);
            var we = n.apply(S, E);
            return we.__actions__.push({ func: Vi, args: [Z], thisArg: t }), new F0(we, re);
          }
          return ye && $e ? n.apply(this, E) : (we = this.thru(Z), ye ? f ? we.value()[0] : we.value() : we);
        });
      }), A0(["pop", "push", "shift", "sort", "splice", "unshift"], function(n) {
        var r = _i[n], s = /^(?:push|sort|unshift)$/.test(n) ? "tap" : "thru", f = /^(?:pop|shift)$/.test(n);
        b.prototype[n] = function() {
          var g = arguments;
          if (f && !this.__chain__) {
            var w = this.value();
            return r.apply(Ce(w) ? w : [], g);
          }
          return this[s](function(S) {
            return r.apply(Ce(S) ? S : [], g);
          });
        };
      }), sn(Le.prototype, function(n, r) {
        var s = b[r];
        if (s) {
          var f = s.name + "";
          Ye.call(na, f) || (na[f] = []), na[f].push({ name: r, func: s });
        }
      }), na[qi(t, H).name] = [{
        name: "wrapper",
        func: t
      }], Le.prototype.clone = a2, Le.prototype.reverse = i2, Le.prototype.value = l2, b.prototype.at = R5, b.prototype.chain = I5, b.prototype.commit = L5, b.prototype.next = N5, b.prototype.plant = O5, b.prototype.reverse = P5, b.prototype.toJSON = b.prototype.valueOf = b.prototype.value = H5, b.prototype.first = b.prototype.head, Da && (b.prototype[Da] = q5), b;
    }, jr = Ld();
    xr ? ((xr.exports = jr)._ = jr, Kl._ = jr) : zt._ = jr;
  }).call(Ir);
})(xl, xl.exports);
var X7 = xl.exports;
const {
  SvelteComponent: Z7,
  append_hydration: K7,
  attr: cn,
  children: Hc,
  claim_element: Uc,
  detach: to,
  element: Wc,
  init: J7,
  insert_hydration: Q7,
  noop: Gc,
  safe_not_equal: j7,
  src_url_equal: Vc
} = window.__gradio__svelte__internal, { onMount: ep } = window.__gradio__svelte__internal;
function tp(i) {
  let e, t, a, l;
  return {
    c() {
      e = Wc("div"), t = Wc("iframe"), this.h();
    },
    l(o) {
      e = Uc(o, "DIV", { class: !0 });
      var u = Hc(e);
      t = Uc(u, "IFRAME", {
        id: !0,
        title: !0,
        src: !0,
        allow: !0,
        sandbox: !0,
        allowtransparency: !0,
        class: !0
      }), Hc(t).forEach(to), u.forEach(to), this.h();
    },
    h() {
      cn(t, "id", "sandboxIframe"), cn(t, "title", "iframe component"), Vc(t.src, a = /*value*/
      i[0]) || cn(t, "src", a), cn(t, "allow", "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; display-capture"), cn(t, "sandbox", "allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts"), cn(t, "allowtransparency", ""), t.allowFullscreen = !0, cn(t, "class", "w-full h-full flex-1"), cn(e, "class", l = `relative flex flex-col flex-1 w-full h-full 
    ${/*min_height*/
      i[2] ? "min" : ""}
    ${/*visible*/
      i[1] ? "" : "hidden"}
    ${/*isDarkMode*/
      i[3] ? "bg-black text-white" : "bg-white text-black"}`);
    },
    m(o, u) {
      Q7(o, e, u), K7(e, t);
    },
    p(o, [u]) {
      u & /*value*/
      1 && !Vc(t.src, a = /*value*/
      o[0]) && cn(t, "src", a), u & /*min_height, visible, isDarkMode*/
      14 && l !== (l = `relative flex flex-col flex-1 w-full h-full 
    ${/*min_height*/
      o[2] ? "min" : ""}
    ${/*visible*/
      o[1] ? "" : "hidden"}
    ${/*isDarkMode*/
      o[3] ? "bg-black text-white" : "bg-white text-black"}`) && cn(e, "class", l);
    },
    i: Gc,
    o: Gc,
    d(o) {
      o && to(e);
    }
  };
}
function np() {
  return (/* @__PURE__ */ new Date()).toISOString();
}
function rp(i, e, t) {
  const a = [];
  let { value: l } = e, { visible: o = !0 } = e, { min_height: u = !1 } = e, { isDarkMode: h = !1 } = e, { updateUserInteractions: d } = e;
  return ep(() => {
    function p(_) {
      const x = _.data;
      if (console.log("Received message from iframe", x), typeof x != "object" || !x.type)
        return;
      const { type: C, time: A, ...$ } = x, I = A ?? np();
      d({ type: C, time: I, ...$ });
    }
    return window.addEventListener("message", p), () => {
      window.removeEventListener("message", p);
    };
  }), i.$$set = (p) => {
    "value" in p && t(0, l = p.value), "visible" in p && t(1, o = p.visible), "min_height" in p && t(2, u = p.min_height), "isDarkMode" in p && t(3, h = p.isDarkMode), "updateUserInteractions" in p && t(5, d = p.updateUserInteractions);
  }, [l, o, u, h, a, d];
}
class ap extends Z7 {
  constructor(e) {
    super(), J7(this, e, rp, tp, j7, {
      elem_classes: 4,
      value: 0,
      visible: 1,
      min_height: 2,
      isDarkMode: 3,
      updateUserInteractions: 5
    });
  }
  get elem_classes() {
    return this.$$.ctx[4];
  }
}
function ha(i) {
  let e = ["", "k", "M", "G", "T", "P", "E", "Z"], t = 0;
  for (; i > 1e3 && t < e.length - 1; )
    i /= 1e3, t++;
  let a = e[t];
  return (Number.isInteger(i) ? i : i.toFixed(1)) + a;
}
function _l() {
}
function ip(i, e) {
  return i != i ? e == e : i !== e || i && typeof i == "object" || typeof i == "function";
}
const bh = typeof window < "u";
let Yc = bh ? () => window.performance.now() : () => Date.now(), yh = bh ? (i) => requestAnimationFrame(i) : _l;
const fa = /* @__PURE__ */ new Set();
function wh(i) {
  fa.forEach((e) => {
    e.c(i) || (fa.delete(e), e.f());
  }), fa.size !== 0 && yh(wh);
}
function lp(i) {
  let e;
  return fa.size === 0 && yh(wh), {
    promise: new Promise((t) => {
      fa.add(e = { c: i, f: t });
    }),
    abort() {
      fa.delete(e);
    }
  };
}
const ua = [];
function sp(i, e = _l) {
  let t;
  const a = /* @__PURE__ */ new Set();
  function l(h) {
    if (ip(i, h) && (i = h, t)) {
      const d = !ua.length;
      for (const p of a)
        p[1](), ua.push(p, i);
      if (d) {
        for (let p = 0; p < ua.length; p += 2)
          ua[p][0](ua[p + 1]);
        ua.length = 0;
      }
    }
  }
  function o(h) {
    l(h(i));
  }
  function u(h, d = _l) {
    const p = [h, d];
    return a.add(p), a.size === 1 && (t = e(l, o) || _l), h(i), () => {
      a.delete(p), a.size === 0 && t && (t(), t = null);
    };
  }
  return { set: l, update: o, subscribe: u };
}
function Xc(i) {
  return Object.prototype.toString.call(i) === "[object Date]";
}
function Ao(i, e, t, a) {
  if (typeof t == "number" || Xc(t)) {
    const l = a - t, o = (t - e) / (i.dt || 1 / 60), u = i.opts.stiffness * l, h = i.opts.damping * o, d = (u - h) * i.inv_mass, p = (o + d) * i.dt;
    return Math.abs(p) < i.opts.precision && Math.abs(l) < i.opts.precision ? a : (i.settled = !1, Xc(t) ? new Date(t.getTime() + p) : t + p);
  } else {
    if (Array.isArray(t))
      return t.map(
        (l, o) => Ao(i, e[o], t[o], a[o])
      );
    if (typeof t == "object") {
      const l = {};
      for (const o in t)
        l[o] = Ao(i, e[o], t[o], a[o]);
      return l;
    } else
      throw new Error(`Cannot spring ${typeof t} values`);
  }
}
function Zc(i, e = {}) {
  const t = sp(i), { stiffness: a = 0.15, damping: l = 0.8, precision: o = 0.01 } = e;
  let u, h, d, p = i, _ = i, x = 1, C = 0, A = !1;
  function $(q, H = {}) {
    _ = q;
    const T = d = {};
    return i == null || H.hard || I.stiffness >= 1 && I.damping >= 1 ? (A = !0, u = Yc(), p = q, t.set(i = _), Promise.resolve()) : (H.soft && (C = 1 / ((H.soft === !0 ? 0.5 : +H.soft) * 60), x = 0), h || (u = Yc(), A = !1, h = lp((D) => {
      if (A)
        return A = !1, h = null, !1;
      x = Math.min(x + C, 1);
      const R = {
        inv_mass: x,
        opts: I,
        settled: !0,
        dt: (D - u) * 60 / 1e3
      }, N = Ao(R, p, i, _);
      return u = D, p = i, t.set(i = N), R.settled && (h = null), !R.settled;
    })), new Promise((D) => {
      h.promise.then(() => {
        T === d && D();
      });
    }));
  }
  const I = {
    set: $,
    update: (q, H) => $(q(_, i), H),
    subscribe: t.subscribe,
    stiffness: a,
    damping: l,
    precision: o
  };
  return I;
}
const {
  SvelteComponent: op,
  append_hydration: Z0,
  attr: He,
  children: M0,
  claim_element: up,
  claim_svg_element: K0,
  component_subscribe: Kc,
  detach: m0,
  element: cp,
  init: hp,
  insert_hydration: fp,
  noop: Jc,
  safe_not_equal: dp,
  set_style: tl,
  svg_element: J0,
  toggle_class: Qc
} = window.__gradio__svelte__internal, { onMount: mp } = window.__gradio__svelte__internal;
function pp(i) {
  let e, t, a, l, o, u, h, d, p, _, x, C;
  return {
    c() {
      e = cp("div"), t = J0("svg"), a = J0("g"), l = J0("path"), o = J0("path"), u = J0("path"), h = J0("path"), d = J0("g"), p = J0("path"), _ = J0("path"), x = J0("path"), C = J0("path"), this.h();
    },
    l(A) {
      e = up(A, "DIV", { class: !0 });
      var $ = M0(e);
      t = K0($, "svg", {
        viewBox: !0,
        fill: !0,
        xmlns: !0,
        class: !0
      });
      var I = M0(t);
      a = K0(I, "g", { style: !0 });
      var q = M0(a);
      l = K0(q, "path", {
        d: !0,
        fill: !0,
        "fill-opacity": !0,
        class: !0
      }), M0(l).forEach(m0), o = K0(q, "path", { d: !0, fill: !0, class: !0 }), M0(o).forEach(m0), u = K0(q, "path", {
        d: !0,
        fill: !0,
        "fill-opacity": !0,
        class: !0
      }), M0(u).forEach(m0), h = K0(q, "path", { d: !0, fill: !0, class: !0 }), M0(h).forEach(m0), q.forEach(m0), d = K0(I, "g", { style: !0 });
      var H = M0(d);
      p = K0(H, "path", {
        d: !0,
        fill: !0,
        "fill-opacity": !0,
        class: !0
      }), M0(p).forEach(m0), _ = K0(H, "path", { d: !0, fill: !0, class: !0 }), M0(_).forEach(m0), x = K0(H, "path", {
        d: !0,
        fill: !0,
        "fill-opacity": !0,
        class: !0
      }), M0(x).forEach(m0), C = K0(H, "path", { d: !0, fill: !0, class: !0 }), M0(C).forEach(m0), H.forEach(m0), I.forEach(m0), $.forEach(m0), this.h();
    },
    h() {
      He(l, "d", "M255.926 0.754768L509.702 139.936V221.027L255.926 81.8465V0.754768Z"), He(l, "fill", "#FF7C00"), He(l, "fill-opacity", "0.4"), He(l, "class", "svelte-43sxxs"), He(o, "d", "M509.69 139.936L254.981 279.641V361.255L509.69 221.55V139.936Z"), He(o, "fill", "#FF7C00"), He(o, "class", "svelte-43sxxs"), He(u, "d", "M0.250138 139.937L254.981 279.641V361.255L0.250138 221.55V139.937Z"), He(u, "fill", "#FF7C00"), He(u, "fill-opacity", "0.4"), He(u, "class", "svelte-43sxxs"), He(h, "d", "M255.923 0.232622L0.236328 139.936V221.55L255.923 81.8469V0.232622Z"), He(h, "fill", "#FF7C00"), He(h, "class", "svelte-43sxxs"), tl(a, "transform", "translate(" + /*$top*/
      i[1][0] + "px, " + /*$top*/
      i[1][1] + "px)"), He(p, "d", "M255.926 141.5L509.702 280.681V361.773L255.926 222.592V141.5Z"), He(p, "fill", "#FF7C00"), He(p, "fill-opacity", "0.4"), He(p, "class", "svelte-43sxxs"), He(_, "d", "M509.69 280.679L254.981 420.384V501.998L509.69 362.293V280.679Z"), He(_, "fill", "#FF7C00"), He(_, "class", "svelte-43sxxs"), He(x, "d", "M0.250138 280.681L254.981 420.386V502L0.250138 362.295V280.681Z"), He(x, "fill", "#FF7C00"), He(x, "fill-opacity", "0.4"), He(x, "class", "svelte-43sxxs"), He(C, "d", "M255.923 140.977L0.236328 280.68V362.294L255.923 222.591V140.977Z"), He(C, "fill", "#FF7C00"), He(C, "class", "svelte-43sxxs"), tl(d, "transform", "translate(" + /*$bottom*/
      i[2][0] + "px, " + /*$bottom*/
      i[2][1] + "px)"), He(t, "viewBox", "-1200 -1200 3000 3000"), He(t, "fill", "none"), He(t, "xmlns", "http://www.w3.org/2000/svg"), He(t, "class", "svelte-43sxxs"), He(e, "class", "svelte-43sxxs"), Qc(
        e,
        "margin",
        /*margin*/
        i[0]
      );
    },
    m(A, $) {
      fp(A, e, $), Z0(e, t), Z0(t, a), Z0(a, l), Z0(a, o), Z0(a, u), Z0(a, h), Z0(t, d), Z0(d, p), Z0(d, _), Z0(d, x), Z0(d, C);
    },
    p(A, [$]) {
      $ & /*$top*/
      2 && tl(a, "transform", "translate(" + /*$top*/
      A[1][0] + "px, " + /*$top*/
      A[1][1] + "px)"), $ & /*$bottom*/
      4 && tl(d, "transform", "translate(" + /*$bottom*/
      A[2][0] + "px, " + /*$bottom*/
      A[2][1] + "px)"), $ & /*margin*/
      1 && Qc(
        e,
        "margin",
        /*margin*/
        A[0]
      );
    },
    i: Jc,
    o: Jc,
    d(A) {
      A && m0(e);
    }
  };
}
function gp(i, e, t) {
  let a, l, { margin: o = !0 } = e;
  const u = Zc([0, 0]);
  Kc(i, u, (C) => t(1, a = C));
  const h = Zc([0, 0]);
  Kc(i, h, (C) => t(2, l = C));
  let d;
  async function p() {
    await Promise.all([u.set([125, 140]), h.set([-125, -140])]), await Promise.all([u.set([-125, 140]), h.set([125, -140])]), await Promise.all([u.set([-125, 0]), h.set([125, -0])]), await Promise.all([u.set([125, 0]), h.set([-125, 0])]);
  }
  async function _() {
    await p(), d || _();
  }
  async function x() {
    await Promise.all([u.set([125, 0]), h.set([-125, 0])]), _();
  }
  return mp(() => (x(), () => d = !0)), i.$$set = (C) => {
    "margin" in C && t(0, o = C.margin);
  }, [o, a, l, u, h];
}
class vp extends op {
  constructor(e) {
    super(), hp(this, e, gp, pp, dp, { margin: 0 });
  }
}
const {
  SvelteComponent: _p,
  assign: bp,
  children: yp,
  claim_element: wp,
  create_slot: xp,
  detach: jc,
  element: Dp,
  get_all_dirty_from_scope: kp,
  get_slot_changes: Ap,
  get_spread_update: Sp,
  init: Fp,
  insert_hydration: Cp,
  safe_not_equal: Ep,
  set_dynamic_element_data: e4,
  set_style: It,
  toggle_class: r0,
  transition_in: xh,
  transition_out: Dh,
  update_slot_base: Tp
} = window.__gradio__svelte__internal;
function $p(i) {
  let e, t, a;
  const l = (
    /*#slots*/
    i[22].default
  ), o = xp(
    l,
    i,
    /*$$scope*/
    i[21],
    null
  );
  let u = [
    { "data-testid": (
      /*test_id*/
      i[10]
    ) },
    { id: (
      /*elem_id*/
      i[5]
    ) },
    {
      class: t = "block " + /*elem_classes*/
      i[6].join(" ") + " svelte-dbzldu"
    }
  ], h = {};
  for (let d = 0; d < u.length; d += 1)
    h = bp(h, u[d]);
  return {
    c() {
      e = Dp(
        /*tag*/
        i[18]
      ), o && o.c(), this.h();
    },
    l(d) {
      e = wp(
        d,
        /*tag*/
        (i[18] || "null").toUpperCase(),
        {
          "data-testid": !0,
          id: !0,
          class: !0
        }
      );
      var p = yp(e);
      o && o.l(p), p.forEach(jc), this.h();
    },
    h() {
      e4(
        /*tag*/
        i[18]
      )(e, h), r0(
        e,
        "hidden",
        /*visible*/
        i[13] === !1
      ), r0(
        e,
        "padded",
        /*padding*/
        i[9]
      ), r0(
        e,
        "flex",
        /*flex*/
        i[0]
      ), r0(
        e,
        "border_focus",
        /*border_mode*/
        i[8] === "focus"
      ), r0(
        e,
        "border_contrast",
        /*border_mode*/
        i[8] === "contrast"
      ), r0(e, "hide-container", !/*explicit_call*/
      i[11] && !/*container*/
      i[12]), r0(
        e,
        "auto-margin",
        /*scale*/
        i[16] === null
      ), It(
        e,
        "height",
        /*get_dimension*/
        i[19](
          /*height*/
          i[1]
        )
      ), It(
        e,
        "min-height",
        /*get_dimension*/
        i[19](
          /*min_height*/
          i[2]
        )
      ), It(
        e,
        "max-height",
        /*get_dimension*/
        i[19](
          /*max_height*/
          i[3]
        )
      ), It(e, "width", typeof /*width*/
      i[4] == "number" ? `calc(min(${/*width*/
      i[4]}px, 100%))` : (
        /*get_dimension*/
        i[19](
          /*width*/
          i[4]
        )
      )), It(
        e,
        "border-style",
        /*variant*/
        i[7]
      ), It(
        e,
        "overflow",
        /*allow_overflow*/
        i[14] ? (
          /*overflow_behavior*/
          i[15]
        ) : "hidden"
      ), It(
        e,
        "flex-grow",
        /*scale*/
        i[16]
      ), It(e, "min-width", `calc(min(${/*min_width*/
      i[17]}px, 100%))`), It(e, "border-width", "var(--block-border-width)");
    },
    m(d, p) {
      Cp(d, e, p), o && o.m(e, null), a = !0;
    },
    p(d, p) {
      o && o.p && (!a || p & /*$$scope*/
      2097152) && Tp(
        o,
        l,
        d,
        /*$$scope*/
        d[21],
        a ? Ap(
          l,
          /*$$scope*/
          d[21],
          p,
          null
        ) : kp(
          /*$$scope*/
          d[21]
        ),
        null
      ), e4(
        /*tag*/
        d[18]
      )(e, h = Sp(u, [
        (!a || p & /*test_id*/
        1024) && { "data-testid": (
          /*test_id*/
          d[10]
        ) },
        (!a || p & /*elem_id*/
        32) && { id: (
          /*elem_id*/
          d[5]
        ) },
        (!a || p & /*elem_classes*/
        64 && t !== (t = "block " + /*elem_classes*/
        d[6].join(" ") + " svelte-dbzldu")) && { class: t }
      ])), r0(
        e,
        "hidden",
        /*visible*/
        d[13] === !1
      ), r0(
        e,
        "padded",
        /*padding*/
        d[9]
      ), r0(
        e,
        "flex",
        /*flex*/
        d[0]
      ), r0(
        e,
        "border_focus",
        /*border_mode*/
        d[8] === "focus"
      ), r0(
        e,
        "border_contrast",
        /*border_mode*/
        d[8] === "contrast"
      ), r0(e, "hide-container", !/*explicit_call*/
      d[11] && !/*container*/
      d[12]), r0(
        e,
        "auto-margin",
        /*scale*/
        d[16] === null
      ), p & /*height*/
      2 && It(
        e,
        "height",
        /*get_dimension*/
        d[19](
          /*height*/
          d[1]
        )
      ), p & /*min_height*/
      4 && It(
        e,
        "min-height",
        /*get_dimension*/
        d[19](
          /*min_height*/
          d[2]
        )
      ), p & /*max_height*/
      8 && It(
        e,
        "max-height",
        /*get_dimension*/
        d[19](
          /*max_height*/
          d[3]
        )
      ), p & /*width*/
      16 && It(e, "width", typeof /*width*/
      d[4] == "number" ? `calc(min(${/*width*/
      d[4]}px, 100%))` : (
        /*get_dimension*/
        d[19](
          /*width*/
          d[4]
        )
      )), p & /*variant*/
      128 && It(
        e,
        "border-style",
        /*variant*/
        d[7]
      ), p & /*allow_overflow, overflow_behavior*/
      49152 && It(
        e,
        "overflow",
        /*allow_overflow*/
        d[14] ? (
          /*overflow_behavior*/
          d[15]
        ) : "hidden"
      ), p & /*scale*/
      65536 && It(
        e,
        "flex-grow",
        /*scale*/
        d[16]
      ), p & /*min_width*/
      131072 && It(e, "min-width", `calc(min(${/*min_width*/
      d[17]}px, 100%))`);
    },
    i(d) {
      a || (xh(o, d), a = !0);
    },
    o(d) {
      Dh(o, d), a = !1;
    },
    d(d) {
      d && jc(e), o && o.d(d);
    }
  };
}
function Mp(i) {
  let e, t = (
    /*tag*/
    i[18] && $p(i)
  );
  return {
    c() {
      t && t.c();
    },
    l(a) {
      t && t.l(a);
    },
    m(a, l) {
      t && t.m(a, l), e = !0;
    },
    p(a, [l]) {
      /*tag*/
      a[18] && t.p(a, l);
    },
    i(a) {
      e || (xh(t, a), e = !0);
    },
    o(a) {
      Dh(t, a), e = !1;
    },
    d(a) {
      t && t.d(a);
    }
  };
}
function Bp(i, e, t) {
  let { $$slots: a = {}, $$scope: l } = e, { height: o = void 0 } = e, { min_height: u = void 0 } = e, { max_height: h = void 0 } = e, { width: d = void 0 } = e, { elem_id: p = "" } = e, { elem_classes: _ = [] } = e, { variant: x = "solid" } = e, { border_mode: C = "base" } = e, { padding: A = !0 } = e, { type: $ = "normal" } = e, { test_id: I = void 0 } = e, { explicit_call: q = !1 } = e, { container: H = !0 } = e, { visible: T = !0 } = e, { allow_overflow: D = !0 } = e, { overflow_behavior: R = "auto" } = e, { scale: N = null } = e, { min_width: U = 0 } = e, { flex: G = !1 } = e;
  T || (G = !1);
  let te = $ === "fieldset" ? "fieldset" : "div";
  const J = (X) => {
    if (X !== void 0) {
      if (typeof X == "number")
        return X + "px";
      if (typeof X == "string")
        return X;
    }
  };
  return i.$$set = (X) => {
    "height" in X && t(1, o = X.height), "min_height" in X && t(2, u = X.min_height), "max_height" in X && t(3, h = X.max_height), "width" in X && t(4, d = X.width), "elem_id" in X && t(5, p = X.elem_id), "elem_classes" in X && t(6, _ = X.elem_classes), "variant" in X && t(7, x = X.variant), "border_mode" in X && t(8, C = X.border_mode), "padding" in X && t(9, A = X.padding), "type" in X && t(20, $ = X.type), "test_id" in X && t(10, I = X.test_id), "explicit_call" in X && t(11, q = X.explicit_call), "container" in X && t(12, H = X.container), "visible" in X && t(13, T = X.visible), "allow_overflow" in X && t(14, D = X.allow_overflow), "overflow_behavior" in X && t(15, R = X.overflow_behavior), "scale" in X && t(16, N = X.scale), "min_width" in X && t(17, U = X.min_width), "flex" in X && t(0, G = X.flex), "$$scope" in X && t(21, l = X.$$scope);
  }, [
    G,
    o,
    u,
    h,
    d,
    p,
    _,
    x,
    C,
    A,
    I,
    q,
    H,
    T,
    D,
    R,
    N,
    U,
    te,
    J,
    $,
    l,
    a
  ];
}
class zp extends _p {
  constructor(e) {
    super(), Fp(this, e, Bp, Mp, Ep, {
      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
    });
  }
}
class Uo {
  // 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, a) {
    this.lexer = void 0, this.start = void 0, this.end = void 0, this.lexer = e, this.start = t, this.end = a;
  }
  /**
   * 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 Uo(e.loc.lexer, e.loc.start, t.loc.end) : e && e.loc;
  }
}
class Wo {
  // 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;
  }
  /**
   * 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 Wo(t, Uo.range(this, e));
  }
}
class ge {
  // 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 a = "KaTeX parse error: " + e, l, o, u = t && t.loc;
    if (u && u.start <= u.end) {
      var h = u.lexer.input;
      l = u.start, o = u.end, l === h.length ? a += " at end of input: " : a += " at position " + (l + 1) + ": ";
      var d = h.slice(l, o).replace(/[^]/g, "$&̲"), p;
      l > 15 ? p = "…" + h.slice(l - 15, l) : p = h.slice(0, l);
      var _;
      o + 15 < h.length ? _ = h.slice(o, o + 15) + "…" : _ = h.slice(o), a += p + d + _;
    }
    var x = new Error(a);
    return x.name = "ParseError", x.__proto__ = ge.prototype, x.position = l, l != null && o != null && (x.length = o - l), x.rawMessage = e, x;
  }
}
ge.prototype.__proto__ = Error.prototype;
var Rp = function(e, t) {
  return e.indexOf(t) !== -1;
}, Ip = function(e, t) {
  return e === void 0 ? t : e;
}, Lp = /([A-Z])/g, Np = function(e) {
  return e.replace(Lp, "-$1").toLowerCase();
}, qp = {
  "&": "&amp;",
  ">": "&gt;",
  "<": "&lt;",
  '"': "&quot;",
  "'": "&#x27;"
}, Op = /[&><"']/g;
function Pp(i) {
  return String(i).replace(Op, (e) => qp[e]);
}
var kh = function i(e) {
  return e.type === "ordgroup" || e.type === "color" ? e.body.length === 1 ? i(e.body[0]) : e : e.type === "font" ? i(e.body) : e;
}, Hp = function(e) {
  var t = kh(e);
  return t.type === "mathord" || t.type === "textord" || t.type === "atom";
}, Up = function(e) {
  if (!e)
    throw new Error("Expected non-null, but got " + String(e));
  return e;
}, Wp = 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";
}, _e = {
  contains: Rp,
  deflt: Ip,
  escape: Pp,
  hyphenate: Np,
  getBaseElem: kh,
  isCharacterBox: Hp,
  protocolFromUrl: Wp
};
class ir {
  constructor(e, t, a) {
    this.id = void 0, this.size = void 0, this.cramped = void 0, this.id = e, this.size = t, this.cramped = a;
  }
  /**
   * Get the style of a superscript given a base in the current style.
   */
  sup() {
    return fn[Gp[this.id]];
  }
  /**
   * Get the style of a subscript given a base in the current style.
   */
  sub() {
    return fn[Vp[this.id]];
  }
  /**
   * Get the style of a fraction numerator given the fraction in the current
   * style.
   */
  fracNum() {
    return fn[Yp[this.id]];
  }
  /**
   * Get the style of a fraction denominator given the fraction in the current
   * style.
   */
  fracDen() {
    return fn[Xp[this.id]];
  }
  /**
   * Get the cramped version of a style (in particular, cramping a cramped style
   * doesn't change the style).
   */
  cramp() {
    return fn[Zp[this.id]];
  }
  /**
   * Get a text or display version of this style.
   */
  text() {
    return fn[Kp[this.id]];
  }
  /**
   * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)
   */
  isTight() {
    return this.size >= 2;
  }
}
var Go = 0, Dl = 1, da = 2, Ln = 3, Ja = 4, I0 = 5, ma = 6, Yt = 7, fn = [new ir(Go, 0, !1), new ir(Dl, 0, !0), new ir(da, 1, !1), new ir(Ln, 1, !0), new ir(Ja, 2, !1), new ir(I0, 2, !0), new ir(ma, 3, !1), new ir(Yt, 3, !0)], Gp = [Ja, I0, Ja, I0, ma, Yt, ma, Yt], Vp = [I0, I0, I0, I0, Yt, Yt, Yt, Yt], Yp = [da, Ln, Ja, I0, ma, Yt, ma, Yt], Xp = [Ln, Ln, I0, I0, Yt, Yt, Yt, Yt], Zp = [Dl, Dl, Ln, Ln, I0, I0, Yt, Yt], Kp = [Go, Dl, da, Ln, da, Ln, da, Ln], xe = {
  DISPLAY: fn[Go],
  TEXT: fn[da],
  SCRIPT: fn[Ja],
  SCRIPTSCRIPT: fn[ma]
}, So = [{
  // 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 Jp(i) {
  for (var e = 0; e < So.length; e++)
    for (var t = So[e], a = 0; a < t.blocks.length; a++) {
      var l = t.blocks[a];
      if (i >= l[0] && i <= l[1])
        return t.name;
    }
  return null;
}
var bl = [];
So.forEach((i) => i.blocks.forEach((e) => bl.push(...e)));
function Qp(i) {
  for (var e = 0; e < bl.length; e += 2)
    if (i >= bl[e] && i <= bl[e + 1])
      return !0;
  return !1;
}
var ca = 80, jp = 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";
}, e8 = 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";
}, t8 = 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";
}, n8 = 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";
}, r8 = 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";
}, a8 = function(e) {
  var t = e / 2;
  return "M400000 " + e + " H0 L" + t + " 0 l65 45 L145 " + (e - 80) + " H400000z";
}, i8 = function(e, t, a) {
  var l = a - 54 - t - e;
  return "M702 " + (e + t) + "H400000" + (40 + e) + `
H742v` + l + `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";
}, l8 = function(e, t, a) {
  t = 1e3 * t;
  var l = "";
  switch (e) {
    case "sqrtMain":
      l = jp(t, ca);
      break;
    case "sqrtSize1":
      l = e8(t, ca);
      break;
    case "sqrtSize2":
      l = t8(t, ca);
      break;
    case "sqrtSize3":
      l = n8(t, ca);
      break;
    case "sqrtSize4":
      l = r8(t, ca);
      break;
    case "sqrtTall":
      l = i8(t, ca, a);
  }
  return l;
}, s8 = 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 "";
  }
}, t4 = {
  // 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`
}, o8 = 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 ja {
  // 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 _e.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 Rn = {
  "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]
  }
}, n4 = {
  // 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 Vo(i, e, t) {
  if (!Rn[e])
    throw new Error("Font metrics not found for font: " + e + ".");
  var a = i.charCodeAt(0), l = Rn[e][a];
  if (!l && i[0] in n4 && (a = n4[i[0]].charCodeAt(0), l = Rn[e][a]), !l && t === "text" && Qp(a) && (l = Rn[e][77]), l)
    return {
      depth: l[0],
      height: l[1],
      italic: l[2],
      skew: l[3],
      width: l[4]
    };
}
var Fo = {
  // 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
}, u8 = {
  ex: !0,
  em: !0,
  mu: !0
}, c8 = function(e) {
  return typeof e != "string" && (e = e.unit), e in Fo || e in u8 || e === "ex";
}, ct = function(e, t) {
  var a;
  if (e.unit in Fo)
    a = Fo[e.unit] / t.fontMetrics().ptPerEm / t.sizeMultiplier;
  else if (e.unit === "mu")
    a = t.fontMetrics().cssEmPerMu;
  else {
    var l;
    if (t.style.isTight() ? l = t.havingStyle(t.style.text()) : l = t, e.unit === "ex")
      a = l.fontMetrics().xHeight;
    else if (e.unit === "em")
      a = l.fontMetrics().quad;
    else
      throw new ge("Invalid unit: '" + e.unit + "'");
    l !== t && (a *= l.sizeMultiplier / t.sizeMultiplier);
  }
  return Math.min(e.number * a, t.maxSize);
}, ne = function(e) {
  return +e.toFixed(4) + "em";
}, ur = function(e) {
  return e.filter((t) => t).join(" ");
}, Ah = function(e, t, a) {
  if (this.classes = e || [], this.attributes = {}, this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = a || {}, t) {
    t.style.isTight() && this.classes.push("mtight");
    var l = t.getColor();
    l && (this.style.color = l);
  }
}, Sh = function(e) {
  var t = document.createElement(e);
  t.className = ur(this.classes);
  for (var a in this.style)
    this.style.hasOwnProperty(a) && (t.style[a] = this.style[a]);
  for (var l in this.attributes)
    this.attributes.hasOwnProperty(l) && t.setAttribute(l, this.attributes[l]);
  for (var o = 0; o < this.children.length; o++)
    t.appendChild(this.children[o].toNode());
  return t;
}, Fh = function(e) {
  var t = "<" + e;
  this.classes.length && (t += ' class="' + _e.escape(ur(this.classes)) + '"');
  var a = "";
  for (var l in this.style)
    this.style.hasOwnProperty(l) && (a += _e.hyphenate(l) + ":" + this.style[l] + ";");
  a && (t += ' style="' + _e.escape(a) + '"');
  for (var o in this.attributes)
    this.attributes.hasOwnProperty(o) && (t += " " + o + '="' + _e.escape(this.attributes[o]) + '"');
  t += ">";
  for (var u = 0; u < this.children.length; u++)
    t += this.children[u].toMarkup();
  return t += "</" + e + ">", t;
};
class Ml {
  constructor(e, t, a, l) {
    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, Ah.call(this, e, a, l), 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 _e.contains(this.classes, e);
  }
  toNode() {
    return Sh.call(this, "span");
  }
  toMarkup() {
    return Fh.call(this, "span");
  }
}
class Ch {
  constructor(e, t, a, l) {
    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, Ah.call(this, t, l), this.children = a || [], this.setAttribute("href", e);
  }
  setAttribute(e, t) {
    this.attributes[e] = t;
  }
  hasClass(e) {
    return _e.contains(this.classes, e);
  }
  toNode() {
    return Sh.call(this, "a");
  }
  toMarkup() {
    return Fh.call(this, "a");
  }
}
class h8 {
  constructor(e, t, a) {
    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 = a;
  }
  hasClass(e) {
    return _e.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="' + _e.escape(this.src) + '"' + (' alt="' + _e.escape(this.alt) + '"'), t = "";
    for (var a in this.style)
      this.style.hasOwnProperty(a) && (t += _e.hyphenate(a) + ":" + this.style[a] + ";");
    return t && (e += ' style="' + _e.escape(t) + '"'), e += "'/>", e;
  }
}
var f8 = {
  î: "ı̂",
  ï: "ı̈",
  í: "ı́",
  // 'ī': '\u0131\u0304', // enable when we add Extended Latin
  ì: "ı̀"
};
class bn {
  constructor(e, t, a, l, o, u, h, d) {
    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 = a || 0, this.italic = l || 0, this.skew = o || 0, this.width = u || 0, this.classes = h || [], this.style = d || {}, this.maxFontSize = 0;
    var p = Jp(this.text.charCodeAt(0));
    p && this.classes.push(p + "_fallback"), /[îïíì]/.test(this.text) && (this.text = f8[this.text]);
  }
  hasClass(e) {
    return _e.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 = ne(this.italic)), this.classes.length > 0 && (t = t || document.createElement("span"), t.className = ur(this.classes));
    for (var a in this.style)
      this.style.hasOwnProperty(a) && (t = t || document.createElement("span"), t.style[a] = this.style[a]);
    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 += _e.escape(ur(this.classes)), t += '"');
    var a = "";
    this.italic > 0 && (a += "margin-right:" + this.italic + "em;");
    for (var l in this.style)
      this.style.hasOwnProperty(l) && (a += _e.hyphenate(l) + ":" + this.style[l] + ";");
    a && (e = !0, t += ' style="' + _e.escape(a) + '"');
    var o = _e.escape(this.text);
    return e ? (t += ">", t += o, t += "</span>", t) : o;
  }
}
class cr {
  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 a in this.attributes)
      Object.prototype.hasOwnProperty.call(this.attributes, a) && t.setAttribute(a, this.attributes[a]);
    for (var l = 0; l < this.children.length; l++)
      t.appendChild(this.children[l].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 + '="' + _e.escape(this.attributes[t]) + '"');
    e += ">";
    for (var a = 0; a < this.children.length; a++)
      e += this.children[a].toMarkup();
    return e += "</svg>", e;
  }
}
class Nr {
  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", t4[this.pathName]), t;
  }
  toMarkup() {
    return this.alternate ? '<path d="' + _e.escape(this.alternate) + '"/>' : '<path d="' + _e.escape(t4[this.pathName]) + '"/>';
  }
}
class r4 {
  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 a in this.attributes)
      Object.prototype.hasOwnProperty.call(this.attributes, a) && t.setAttribute(a, this.attributes[a]);
    return t;
  }
  toMarkup() {
    var e = "<line";
    for (var t in this.attributes)
      Object.prototype.hasOwnProperty.call(this.attributes, t) && (e += " " + t + '="' + _e.escape(this.attributes[t]) + '"');
    return e += "/>", e;
  }
}
function a4(i) {
  if (i instanceof bn)
    return i;
  throw new Error("Expected symbolNode but got " + String(i) + ".");
}
function d8(i) {
  if (i instanceof Ml)
    return i;
  throw new Error("Expected span<HtmlDomNode> but got " + String(i) + ".");
}
var m8 = {
  "accent-token": 1,
  mathord: 1,
  "op-token": 1,
  spacing: 1,
  textord: 1
}, xt = {
  math: {},
  text: {}
};
function c(i, e, t, a, l, o) {
  xt[i][l] = {
    font: e,
    group: t,
    replace: a
  }, o && a && (xt[i][a] = xt[i][l]);
}
var m = "math", K = "text", v = "main", k = "ams", lt = "accent-token", ie = "bin", Zt = "close", ga = "inner", ve = "mathord", St = "op-token", v0 = "open", Bl = "punct", F = "rel", On = "spacing", M = "textord";
c(m, v, F, "≡", "\\equiv", !0);
c(m, v, F, "≺", "\\prec", !0);
c(m, v, F, "≻", "\\succ", !0);
c(m, v, F, "∼", "\\sim", !0);
c(m, v, F, "⊥", "\\perp");
c(m, v, F, "⪯", "\\preceq", !0);
c(m, v, F, "⪰", "\\succeq", !0);
c(m, v, F, "≃", "\\simeq", !0);
c(m, v, F, "∣", "\\mid", !0);
c(m, v, F, "≪", "\\ll", !0);
c(m, v, F, "≫", "\\gg", !0);
c(m, v, F, "≍", "\\asymp", !0);
c(m, v, F, "∥", "\\parallel");
c(m, v, F, "⋈", "\\bowtie", !0);
c(m, v, F, "⌣", "\\smile", !0);
c(m, v, F, "⊑", "\\sqsubseteq", !0);
c(m, v, F, "⊒", "\\sqsupseteq", !0);
c(m, v, F, "≐", "\\doteq", !0);
c(m, v, F, "⌢", "\\frown", !0);
c(m, v, F, "∋", "\\ni", !0);
c(m, v, F, "∝", "\\propto", !0);
c(m, v, F, "⊢", "\\vdash", !0);
c(m, v, F, "⊣", "\\dashv", !0);
c(m, v, F, "∋", "\\owns");
c(m, v, Bl, ".", "\\ldotp");
c(m, v, Bl, "⋅", "\\cdotp");
c(m, v, M, "#", "\\#");
c(K, v, M, "#", "\\#");
c(m, v, M, "&", "\\&");
c(K, v, M, "&", "\\&");
c(m, v, M, "ℵ", "\\aleph", !0);
c(m, v, M, "∀", "\\forall", !0);
c(m, v, M, "ℏ", "\\hbar", !0);
c(m, v, M, "∃", "\\exists", !0);
c(m, v, M, "∇", "\\nabla", !0);
c(m, v, M, "♭", "\\flat", !0);
c(m, v, M, "ℓ", "\\ell", !0);
c(m, v, M, "♮", "\\natural", !0);
c(m, v, M, "♣", "\\clubsuit", !0);
c(m, v, M, "℘", "\\wp", !0);
c(m, v, M, "♯", "\\sharp", !0);
c(m, v, M, "♢", "\\diamondsuit", !0);
c(m, v, M, "ℜ", "\\Re", !0);
c(m, v, M, "♡", "\\heartsuit", !0);
c(m, v, M, "ℑ", "\\Im", !0);
c(m, v, M, "♠", "\\spadesuit", !0);
c(m, v, M, "§", "\\S", !0);
c(K, v, M, "§", "\\S");
c(m, v, M, "¶", "\\P", !0);
c(K, v, M, "¶", "\\P");
c(m, v, M, "†", "\\dag");
c(K, v, M, "†", "\\dag");
c(K, v, M, "†", "\\textdagger");
c(m, v, M, "‡", "\\ddag");
c(K, v, M, "‡", "\\ddag");
c(K, v, M, "‡", "\\textdaggerdbl");
c(m, v, Zt, "⎱", "\\rmoustache", !0);
c(m, v, v0, "⎰", "\\lmoustache", !0);
c(m, v, Zt, "⟯", "\\rgroup", !0);
c(m, v, v0, "⟮", "\\lgroup", !0);
c(m, v, ie, "∓", "\\mp", !0);
c(m, v, ie, "⊖", "\\ominus", !0);
c(m, v, ie, "⊎", "\\uplus", !0);
c(m, v, ie, "⊓", "\\sqcap", !0);
c(m, v, ie, "∗", "\\ast");
c(m, v, ie, "⊔", "\\sqcup", !0);
c(m, v, ie, "◯", "\\bigcirc", !0);
c(m, v, ie, "∙", "\\bullet", !0);
c(m, v, ie, "‡", "\\ddagger");
c(m, v, ie, "≀", "\\wr", !0);
c(m, v, ie, "⨿", "\\amalg");
c(m, v, ie, "&", "\\And");
c(m, v, F, "⟵", "\\longleftarrow", !0);
c(m, v, F, "⇐", "\\Leftarrow", !0);
c(m, v, F, "⟸", "\\Longleftarrow", !0);
c(m, v, F, "⟶", "\\longrightarrow", !0);
c(m, v, F, "⇒", "\\Rightarrow", !0);
c(m, v, F, "⟹", "\\Longrightarrow", !0);
c(m, v, F, "↔", "\\leftrightarrow", !0);
c(m, v, F, "⟷", "\\longleftrightarrow", !0);
c(m, v, F, "⇔", "\\Leftrightarrow", !0);
c(m, v, F, "⟺", "\\Longleftrightarrow", !0);
c(m, v, F, "↦", "\\mapsto", !0);
c(m, v, F, "⟼", "\\longmapsto", !0);
c(m, v, F, "↗", "\\nearrow", !0);
c(m, v, F, "↩", "\\hookleftarrow", !0);
c(m, v, F, "↪", "\\hookrightarrow", !0);
c(m, v, F, "↘", "\\searrow", !0);
c(m, v, F, "↼", "\\leftharpoonup", !0);
c(m, v, F, "⇀", "\\rightharpoonup", !0);
c(m, v, F, "↙", "\\swarrow", !0);
c(m, v, F, "↽", "\\leftharpoondown", !0);
c(m, v, F, "⇁", "\\rightharpoondown", !0);
c(m, v, F, "↖", "\\nwarrow", !0);
c(m, v, F, "⇌", "\\rightleftharpoons", !0);
c(m, k, F, "≮", "\\nless", !0);
c(m, k, F, "", "\\@nleqslant");
c(m, k, F, "", "\\@nleqq");
c(m, k, F, "⪇", "\\lneq", !0);
c(m, k, F, "≨", "\\lneqq", !0);
c(m, k, F, "", "\\@lvertneqq");
c(m, k, F, "⋦", "\\lnsim", !0);
c(m, k, F, "⪉", "\\lnapprox", !0);
c(m, k, F, "⊀", "\\nprec", !0);
c(m, k, F, "⋠", "\\npreceq", !0);
c(m, k, F, "⋨", "\\precnsim", !0);
c(m, k, F, "⪹", "\\precnapprox", !0);
c(m, k, F, "≁", "\\nsim", !0);
c(m, k, F, "", "\\@nshortmid");
c(m, k, F, "∤", "\\nmid", !0);
c(m, k, F, "⊬", "\\nvdash", !0);
c(m, k, F, "⊭", "\\nvDash", !0);
c(m, k, F, "⋪", "\\ntriangleleft");
c(m, k, F, "⋬", "\\ntrianglelefteq", !0);
c(m, k, F, "⊊", "\\subsetneq", !0);
c(m, k, F, "", "\\@varsubsetneq");
c(m, k, F, "⫋", "\\subsetneqq", !0);
c(m, k, F, "", "\\@varsubsetneqq");
c(m, k, F, "≯", "\\ngtr", !0);
c(m, k, F, "", "\\@ngeqslant");
c(m, k, F, "", "\\@ngeqq");
c(m, k, F, "⪈", "\\gneq", !0);
c(m, k, F, "≩", "\\gneqq", !0);
c(m, k, F, "", "\\@gvertneqq");
c(m, k, F, "⋧", "\\gnsim", !0);
c(m, k, F, "⪊", "\\gnapprox", !0);
c(m, k, F, "⊁", "\\nsucc", !0);
c(m, k, F, "⋡", "\\nsucceq", !0);
c(m, k, F, "⋩", "\\succnsim", !0);
c(m, k, F, "⪺", "\\succnapprox", !0);
c(m, k, F, "≆", "\\ncong", !0);
c(m, k, F, "", "\\@nshortparallel");
c(m, k, F, "∦", "\\nparallel", !0);
c(m, k, F, "⊯", "\\nVDash", !0);
c(m, k, F, "⋫", "\\ntriangleright");
c(m, k, F, "⋭", "\\ntrianglerighteq", !0);
c(m, k, F, "", "\\@nsupseteqq");
c(m, k, F, "⊋", "\\supsetneq", !0);
c(m, k, F, "", "\\@varsupsetneq");
c(m, k, F, "⫌", "\\supsetneqq", !0);
c(m, k, F, "", "\\@varsupsetneqq");
c(m, k, F, "⊮", "\\nVdash", !0);
c(m, k, F, "⪵", "\\precneqq", !0);
c(m, k, F, "⪶", "\\succneqq", !0);
c(m, k, F, "", "\\@nsubseteqq");
c(m, k, ie, "⊴", "\\unlhd");
c(m, k, ie, "⊵", "\\unrhd");
c(m, k, F, "↚", "\\nleftarrow", !0);
c(m, k, F, "↛", "\\nrightarrow", !0);
c(m, k, F, "⇍", "\\nLeftarrow", !0);
c(m, k, F, "⇏", "\\nRightarrow", !0);
c(m, k, F, "↮", "\\nleftrightarrow", !0);
c(m, k, F, "⇎", "\\nLeftrightarrow", !0);
c(m, k, F, "△", "\\vartriangle");
c(m, k, M, "ℏ", "\\hslash");
c(m, k, M, "▽", "\\triangledown");
c(m, k, M, "◊", "\\lozenge");
c(m, k, M, "Ⓢ", "\\circledS");
c(m, k, M, "®", "\\circledR");
c(K, k, M, "®", "\\circledR");
c(m, k, M, "∡", "\\measuredangle", !0);
c(m, k, M, "∄", "\\nexists");
c(m, k, M, "℧", "\\mho");
c(m, k, M, "Ⅎ", "\\Finv", !0);
c(m, k, M, "⅁", "\\Game", !0);
c(m, k, M, "‵", "\\backprime");
c(m, k, M, "▲", "\\blacktriangle");
c(m, k, M, "▼", "\\blacktriangledown");
c(m, k, M, "■", "\\blacksquare");
c(m, k, M, "⧫", "\\blacklozenge");
c(m, k, M, "★", "\\bigstar");
c(m, k, M, "∢", "\\sphericalangle", !0);
c(m, k, M, "∁", "\\complement", !0);
c(m, k, M, "ð", "\\eth", !0);
c(K, v, M, "ð", "ð");
c(m, k, M, "╱", "\\diagup");
c(m, k, M, "╲", "\\diagdown");
c(m, k, M, "□", "\\square");
c(m, k, M, "□", "\\Box");
c(m, k, M, "◊", "\\Diamond");
c(m, k, M, "¥", "\\yen", !0);
c(K, k, M, "¥", "\\yen", !0);
c(m, k, M, "✓", "\\checkmark", !0);
c(K, k, M, "✓", "\\checkmark");
c(m, k, M, "ℶ", "\\beth", !0);
c(m, k, M, "ℸ", "\\daleth", !0);
c(m, k, M, "ℷ", "\\gimel", !0);
c(m, k, M, "ϝ", "\\digamma", !0);
c(m, k, M, "ϰ", "\\varkappa");
c(m, k, v0, "┌", "\\@ulcorner", !0);
c(m, k, Zt, "┐", "\\@urcorner", !0);
c(m, k, v0, "└", "\\@llcorner", !0);
c(m, k, Zt, "┘", "\\@lrcorner", !0);
c(m, k, F, "≦", "\\leqq", !0);
c(m, k, F, "⩽", "\\leqslant", !0);
c(m, k, F, "⪕", "\\eqslantless", !0);
c(m, k, F, "≲", "\\lesssim", !0);
c(m, k, F, "⪅", "\\lessapprox", !0);
c(m, k, F, "≊", "\\approxeq", !0);
c(m, k, ie, "⋖", "\\lessdot");
c(m, k, F, "⋘", "\\lll", !0);
c(m, k, F, "≶", "\\lessgtr", !0);
c(m, k, F, "⋚", "\\lesseqgtr", !0);
c(m, k, F, "⪋", "\\lesseqqgtr", !0);
c(m, k, F, "≑", "\\doteqdot");
c(m, k, F, "≓", "\\risingdotseq", !0);
c(m, k, F, "≒", "\\fallingdotseq", !0);
c(m, k, F, "∽", "\\backsim", !0);
c(m, k, F, "⋍", "\\backsimeq", !0);
c(m, k, F, "⫅", "\\subseteqq", !0);
c(m, k, F, "⋐", "\\Subset", !0);
c(m, k, F, "⊏", "\\sqsubset", !0);
c(m, k, F, "≼", "\\preccurlyeq", !0);
c(m, k, F, "⋞", "\\curlyeqprec", !0);
c(m, k, F, "≾", "\\precsim", !0);
c(m, k, F, "⪷", "\\precapprox", !0);
c(m, k, F, "⊲", "\\vartriangleleft");
c(m, k, F, "⊴", "\\trianglelefteq");
c(m, k, F, "⊨", "\\vDash", !0);
c(m, k, F, "⊪", "\\Vvdash", !0);
c(m, k, F, "⌣", "\\smallsmile");
c(m, k, F, "⌢", "\\smallfrown");
c(m, k, F, "≏", "\\bumpeq", !0);
c(m, k, F, "≎", "\\Bumpeq", !0);
c(m, k, F, "≧", "\\geqq", !0);
c(m, k, F, "⩾", "\\geqslant", !0);
c(m, k, F, "⪖", "\\eqslantgtr", !0);
c(m, k, F, "≳", "\\gtrsim", !0);
c(m, k, F, "⪆", "\\gtrapprox", !0);
c(m, k, ie, "⋗", "\\gtrdot");
c(m, k, F, "⋙", "\\ggg", !0);
c(m, k, F, "≷", "\\gtrless", !0);
c(m, k, F, "⋛", "\\gtreqless", !0);
c(m, k, F, "⪌", "\\gtreqqless", !0);
c(m, k, F, "≖", "\\eqcirc", !0);
c(m, k, F, "≗", "\\circeq", !0);
c(m, k, F, "≜", "\\triangleq", !0);
c(m, k, F, "∼", "\\thicksim");
c(m, k, F, "≈", "\\thickapprox");
c(m, k, F, "⫆", "\\supseteqq", !0);
c(m, k, F, "⋑", "\\Supset", !0);
c(m, k, F, "⊐", "\\sqsupset", !0);
c(m, k, F, "≽", "\\succcurlyeq", !0);
c(m, k, F, "⋟", "\\curlyeqsucc", !0);
c(m, k, F, "≿", "\\succsim", !0);
c(m, k, F, "⪸", "\\succapprox", !0);
c(m, k, F, "⊳", "\\vartriangleright");
c(m, k, F, "⊵", "\\trianglerighteq");
c(m, k, F, "⊩", "\\Vdash", !0);
c(m, k, F, "∣", "\\shortmid");
c(m, k, F, "∥", "\\shortparallel");
c(m, k, F, "≬", "\\between", !0);
c(m, k, F, "⋔", "\\pitchfork", !0);
c(m, k, F, "∝", "\\varpropto");
c(m, k, F, "◀", "\\blacktriangleleft");
c(m, k, F, "∴", "\\therefore", !0);
c(m, k, F, "∍", "\\backepsilon");
c(m, k, F, "▶", "\\blacktriangleright");
c(m, k, F, "∵", "\\because", !0);
c(m, k, F, "⋘", "\\llless");
c(m, k, F, "⋙", "\\gggtr");
c(m, k, ie, "⊲", "\\lhd");
c(m, k, ie, "⊳", "\\rhd");
c(m, k, F, "≂", "\\eqsim", !0);
c(m, v, F, "⋈", "\\Join");
c(m, k, F, "≑", "\\Doteq", !0);
c(m, k, ie, "∔", "\\dotplus", !0);
c(m, k, ie, "∖", "\\smallsetminus");
c(m, k, ie, "⋒", "\\Cap", !0);
c(m, k, ie, "⋓", "\\Cup", !0);
c(m, k, ie, "⩞", "\\doublebarwedge", !0);
c(m, k, ie, "⊟", "\\boxminus", !0);
c(m, k, ie, "⊞", "\\boxplus", !0);
c(m, k, ie, "⋇", "\\divideontimes", !0);
c(m, k, ie, "⋉", "\\ltimes", !0);
c(m, k, ie, "⋊", "\\rtimes", !0);
c(m, k, ie, "⋋", "\\leftthreetimes", !0);
c(m, k, ie, "⋌", "\\rightthreetimes", !0);
c(m, k, ie, "⋏", "\\curlywedge", !0);
c(m, k, ie, "⋎", "\\curlyvee", !0);
c(m, k, ie, "⊝", "\\circleddash", !0);
c(m, k, ie, "⊛", "\\circledast", !0);
c(m, k, ie, "⋅", "\\centerdot");
c(m, k, ie, "⊺", "\\intercal", !0);
c(m, k, ie, "⋒", "\\doublecap");
c(m, k, ie, "⋓", "\\doublecup");
c(m, k, ie, "⊠", "\\boxtimes", !0);
c(m, k, F, "⇢", "\\dashrightarrow", !0);
c(m, k, F, "⇠", "\\dashleftarrow", !0);
c(m, k, F, "⇇", "\\leftleftarrows", !0);
c(m, k, F, "⇆", "\\leftrightarrows", !0);
c(m, k, F, "⇚", "\\Lleftarrow", !0);
c(m, k, F, "↞", "\\twoheadleftarrow", !0);
c(m, k, F, "↢", "\\leftarrowtail", !0);
c(m, k, F, "↫", "\\looparrowleft", !0);
c(m, k, F, "⇋", "\\leftrightharpoons", !0);
c(m, k, F, "↶", "\\curvearrowleft", !0);
c(m, k, F, "↺", "\\circlearrowleft", !0);
c(m, k, F, "↰", "\\Lsh", !0);
c(m, k, F, "⇈", "\\upuparrows", !0);
c(m, k, F, "↿", "\\upharpoonleft", !0);
c(m, k, F, "⇃", "\\downharpoonleft", !0);
c(m, v, F, "⊶", "\\origof", !0);
c(m, v, F, "⊷", "\\imageof", !0);
c(m, k, F, "⊸", "\\multimap", !0);
c(m, k, F, "↭", "\\leftrightsquigarrow", !0);
c(m, k, F, "⇉", "\\rightrightarrows", !0);
c(m, k, F, "⇄", "\\rightleftarrows", !0);
c(m, k, F, "↠", "\\twoheadrightarrow", !0);
c(m, k, F, "↣", "\\rightarrowtail", !0);
c(m, k, F, "↬", "\\looparrowright", !0);
c(m, k, F, "↷", "\\curvearrowright", !0);
c(m, k, F, "↻", "\\circlearrowright", !0);
c(m, k, F, "↱", "\\Rsh", !0);
c(m, k, F, "⇊", "\\downdownarrows", !0);
c(m, k, F, "↾", "\\upharpoonright", !0);
c(m, k, F, "⇂", "\\downharpoonright", !0);
c(m, k, F, "⇝", "\\rightsquigarrow", !0);
c(m, k, F, "⇝", "\\leadsto");
c(m, k, F, "⇛", "\\Rrightarrow", !0);
c(m, k, F, "↾", "\\restriction");
c(m, v, M, "‘", "`");
c(m, v, M, "$", "\\$");
c(K, v, M, "$", "\\$");
c(K, v, M, "$", "\\textdollar");
c(m, v, M, "%", "\\%");
c(K, v, M, "%", "\\%");
c(m, v, M, "_", "\\_");
c(K, v, M, "_", "\\_");
c(K, v, M, "_", "\\textunderscore");
c(m, v, M, "∠", "\\angle", !0);
c(m, v, M, "∞", "\\infty", !0);
c(m, v, M, "′", "\\prime");
c(m, v, M, "△", "\\triangle");
c(m, v, M, "Γ", "\\Gamma", !0);
c(m, v, M, "Δ", "\\Delta", !0);
c(m, v, M, "Θ", "\\Theta", !0);
c(m, v, M, "Λ", "\\Lambda", !0);
c(m, v, M, "Ξ", "\\Xi", !0);
c(m, v, M, "Π", "\\Pi", !0);
c(m, v, M, "Σ", "\\Sigma", !0);
c(m, v, M, "Υ", "\\Upsilon", !0);
c(m, v, M, "Φ", "\\Phi", !0);
c(m, v, M, "Ψ", "\\Psi", !0);
c(m, v, M, "Ω", "\\Omega", !0);
c(m, v, M, "A", "Α");
c(m, v, M, "B", "Β");
c(m, v, M, "E", "Ε");
c(m, v, M, "Z", "Ζ");
c(m, v, M, "H", "Η");
c(m, v, M, "I", "Ι");
c(m, v, M, "K", "Κ");
c(m, v, M, "M", "Μ");
c(m, v, M, "N", "Ν");
c(m, v, M, "O", "Ο");
c(m, v, M, "P", "Ρ");
c(m, v, M, "T", "Τ");
c(m, v, M, "X", "Χ");
c(m, v, M, "¬", "\\neg", !0);
c(m, v, M, "¬", "\\lnot");
c(m, v, M, "⊤", "\\top");
c(m, v, M, "⊥", "\\bot");
c(m, v, M, "∅", "\\emptyset");
c(m, k, M, "∅", "\\varnothing");
c(m, v, ve, "α", "\\alpha", !0);
c(m, v, ve, "β", "\\beta", !0);
c(m, v, ve, "γ", "\\gamma", !0);
c(m, v, ve, "δ", "\\delta", !0);
c(m, v, ve, "ϵ", "\\epsilon", !0);
c(m, v, ve, "ζ", "\\zeta", !0);
c(m, v, ve, "η", "\\eta", !0);
c(m, v, ve, "θ", "\\theta", !0);
c(m, v, ve, "ι", "\\iota", !0);
c(m, v, ve, "κ", "\\kappa", !0);
c(m, v, ve, "λ", "\\lambda", !0);
c(m, v, ve, "μ", "\\mu", !0);
c(m, v, ve, "ν", "\\nu", !0);
c(m, v, ve, "ξ", "\\xi", !0);
c(m, v, ve, "ο", "\\omicron", !0);
c(m, v, ve, "π", "\\pi", !0);
c(m, v, ve, "ρ", "\\rho", !0);
c(m, v, ve, "σ", "\\sigma", !0);
c(m, v, ve, "τ", "\\tau", !0);
c(m, v, ve, "υ", "\\upsilon", !0);
c(m, v, ve, "ϕ", "\\phi", !0);
c(m, v, ve, "χ", "\\chi", !0);
c(m, v, ve, "ψ", "\\psi", !0);
c(m, v, ve, "ω", "\\omega", !0);
c(m, v, ve, "ε", "\\varepsilon", !0);
c(m, v, ve, "ϑ", "\\vartheta", !0);
c(m, v, ve, "ϖ", "\\varpi", !0);
c(m, v, ve, "ϱ", "\\varrho", !0);
c(m, v, ve, "ς", "\\varsigma", !0);
c(m, v, ve, "φ", "\\varphi", !0);
c(m, v, ie, "∗", "*", !0);
c(m, v, ie, "+", "+");
c(m, v, ie, "−", "-", !0);
c(m, v, ie, "⋅", "\\cdot", !0);
c(m, v, ie, "∘", "\\circ", !0);
c(m, v, ie, "÷", "\\div", !0);
c(m, v, ie, "±", "\\pm", !0);
c(m, v, ie, "×", "\\times", !0);
c(m, v, ie, "∩", "\\cap", !0);
c(m, v, ie, "∪", "\\cup", !0);
c(m, v, ie, "∖", "\\setminus", !0);
c(m, v, ie, "∧", "\\land");
c(m, v, ie, "∨", "\\lor");
c(m, v, ie, "∧", "\\wedge", !0);
c(m, v, ie, "∨", "\\vee", !0);
c(m, v, M, "√", "\\surd");
c(m, v, v0, "⟨", "\\langle", !0);
c(m, v, v0, "∣", "\\lvert");
c(m, v, v0, "∥", "\\lVert");
c(m, v, Zt, "?", "?");
c(m, v, Zt, "!", "!");
c(m, v, Zt, "⟩", "\\rangle", !0);
c(m, v, Zt, "∣", "\\rvert");
c(m, v, Zt, "∥", "\\rVert");
c(m, v, F, "=", "=");
c(m, v, F, ":", ":");
c(m, v, F, "≈", "\\approx", !0);
c(m, v, F, "≅", "\\cong", !0);
c(m, v, F, "≥", "\\ge");
c(m, v, F, "≥", "\\geq", !0);
c(m, v, F, "←", "\\gets");
c(m, v, F, ">", "\\gt", !0);
c(m, v, F, "∈", "\\in", !0);
c(m, v, F, "", "\\@not");
c(m, v, F, "⊂", "\\subset", !0);
c(m, v, F, "⊃", "\\supset", !0);
c(m, v, F, "⊆", "\\subseteq", !0);
c(m, v, F, "⊇", "\\supseteq", !0);
c(m, k, F, "⊈", "\\nsubseteq", !0);
c(m, k, F, "⊉", "\\nsupseteq", !0);
c(m, v, F, "⊨", "\\models");
c(m, v, F, "←", "\\leftarrow", !0);
c(m, v, F, "≤", "\\le");
c(m, v, F, "≤", "\\leq", !0);
c(m, v, F, "<", "\\lt", !0);
c(m, v, F, "→", "\\rightarrow", !0);
c(m, v, F, "→", "\\to");
c(m, k, F, "≱", "\\ngeq", !0);
c(m, k, F, "≰", "\\nleq", !0);
c(m, v, On, " ", "\\ ");
c(m, v, On, " ", "\\space");
c(m, v, On, " ", "\\nobreakspace");
c(K, v, On, " ", "\\ ");
c(K, v, On, " ", " ");
c(K, v, On, " ", "\\space");
c(K, v, On, " ", "\\nobreakspace");
c(m, v, On, null, "\\nobreak");
c(m, v, On, null, "\\allowbreak");
c(m, v, Bl, ",", ",");
c(m, v, Bl, ";", ";");
c(m, k, ie, "⊼", "\\barwedge", !0);
c(m, k, ie, "⊻", "\\veebar", !0);
c(m, v, ie, "⊙", "\\odot", !0);
c(m, v, ie, "⊕", "\\oplus", !0);
c(m, v, ie, "⊗", "\\otimes", !0);
c(m, v, M, "∂", "\\partial", !0);
c(m, v, ie, "⊘", "\\oslash", !0);
c(m, k, ie, "⊚", "\\circledcirc", !0);
c(m, k, ie, "⊡", "\\boxdot", !0);
c(m, v, ie, "△", "\\bigtriangleup");
c(m, v, ie, "▽", "\\bigtriangledown");
c(m, v, ie, "†", "\\dagger");
c(m, v, ie, "⋄", "\\diamond");
c(m, v, ie, "⋆", "\\star");
c(m, v, ie, "◃", "\\triangleleft");
c(m, v, ie, "▹", "\\triangleright");
c(m, v, v0, "{", "\\{");
c(K, v, M, "{", "\\{");
c(K, v, M, "{", "\\textbraceleft");
c(m, v, Zt, "}", "\\}");
c(K, v, M, "}", "\\}");
c(K, v, M, "}", "\\textbraceright");
c(m, v, v0, "{", "\\lbrace");
c(m, v, Zt, "}", "\\rbrace");
c(m, v, v0, "[", "\\lbrack", !0);
c(K, v, M, "[", "\\lbrack", !0);
c(m, v, Zt, "]", "\\rbrack", !0);
c(K, v, M, "]", "\\rbrack", !0);
c(m, v, v0, "(", "\\lparen", !0);
c(m, v, Zt, ")", "\\rparen", !0);
c(K, v, M, "<", "\\textless", !0);
c(K, v, M, ">", "\\textgreater", !0);
c(m, v, v0, "⌊", "\\lfloor", !0);
c(m, v, Zt, "⌋", "\\rfloor", !0);
c(m, v, v0, "⌈", "\\lceil", !0);
c(m, v, Zt, "⌉", "\\rceil", !0);
c(m, v, M, "\\", "\\backslash");
c(m, v, M, "∣", "|");
c(m, v, M, "∣", "\\vert");
c(K, v, M, "|", "\\textbar", !0);
c(m, v, M, "∥", "\\|");
c(m, v, M, "∥", "\\Vert");
c(K, v, M, "∥", "\\textbardbl");
c(K, v, M, "~", "\\textasciitilde");
c(K, v, M, "\\", "\\textbackslash");
c(K, v, M, "^", "\\textasciicircum");
c(m, v, F, "↑", "\\uparrow", !0);
c(m, v, F, "⇑", "\\Uparrow", !0);
c(m, v, F, "↓", "\\downarrow", !0);
c(m, v, F, "⇓", "\\Downarrow", !0);
c(m, v, F, "↕", "\\updownarrow", !0);
c(m, v, F, "⇕", "\\Updownarrow", !0);
c(m, v, St, "∐", "\\coprod");
c(m, v, St, "⋁", "\\bigvee");
c(m, v, St, "⋀", "\\bigwedge");
c(m, v, St, "⨄", "\\biguplus");
c(m, v, St, "⋂", "\\bigcap");
c(m, v, St, "⋃", "\\bigcup");
c(m, v, St, "∫", "\\int");
c(m, v, St, "∫", "\\intop");
c(m, v, St, "∬", "\\iint");
c(m, v, St, "∭", "\\iiint");
c(m, v, St, "∏", "\\prod");
c(m, v, St, "∑", "\\sum");
c(m, v, St, "⨂", "\\bigotimes");
c(m, v, St, "⨁", "\\bigoplus");
c(m, v, St, "⨀", "\\bigodot");
c(m, v, St, "∮", "\\oint");
c(m, v, St, "∯", "\\oiint");
c(m, v, St, "∰", "\\oiiint");
c(m, v, St, "⨆", "\\bigsqcup");
c(m, v, St, "∫", "\\smallint");
c(K, v, ga, "…", "\\textellipsis");
c(m, v, ga, "…", "\\mathellipsis");
c(K, v, ga, "…", "\\ldots", !0);
c(m, v, ga, "…", "\\ldots", !0);
c(m, v, ga, "⋯", "\\@cdots", !0);
c(m, v, ga, "⋱", "\\ddots", !0);
c(m, v, M, "⋮", "\\varvdots");
c(m, v, lt, "ˊ", "\\acute");
c(m, v, lt, "ˋ", "\\grave");
c(m, v, lt, "¨", "\\ddot");
c(m, v, lt, "~", "\\tilde");
c(m, v, lt, "ˉ", "\\bar");
c(m, v, lt, "˘", "\\breve");
c(m, v, lt, "ˇ", "\\check");
c(m, v, lt, "^", "\\hat");
c(m, v, lt, "⃗", "\\vec");
c(m, v, lt, "˙", "\\dot");
c(m, v, lt, "˚", "\\mathring");
c(m, v, ve, "", "\\@imath");
c(m, v, ve, "", "\\@jmath");
c(m, v, M, "ı", "ı");
c(m, v, M, "ȷ", "ȷ");
c(K, v, M, "ı", "\\i", !0);
c(K, v, M, "ȷ", "\\j", !0);
c(K, v, M, "ß", "\\ss", !0);
c(K, v, M, "æ", "\\ae", !0);
c(K, v, M, "œ", "\\oe", !0);
c(K, v, M, "ø", "\\o", !0);
c(K, v, M, "Æ", "\\AE", !0);
c(K, v, M, "Œ", "\\OE", !0);
c(K, v, M, "Ø", "\\O", !0);
c(K, v, lt, "ˊ", "\\'");
c(K, v, lt, "ˋ", "\\`");
c(K, v, lt, "ˆ", "\\^");
c(K, v, lt, "˜", "\\~");
c(K, v, lt, "ˉ", "\\=");
c(K, v, lt, "˘", "\\u");
c(K, v, lt, "˙", "\\.");
c(K, v, lt, "¸", "\\c");
c(K, v, lt, "˚", "\\r");
c(K, v, lt, "ˇ", "\\v");
c(K, v, lt, "¨", '\\"');
c(K, v, lt, "˝", "\\H");
c(K, v, lt, "◯", "\\textcircled");
var Eh = {
  "--": !0,
  "---": !0,
  "``": !0,
  "''": !0
};
c(K, v, M, "–", "--", !0);
c(K, v, M, "–", "\\textendash");
c(K, v, M, "—", "---", !0);
c(K, v, M, "—", "\\textemdash");
c(K, v, M, "‘", "`", !0);
c(K, v, M, "‘", "\\textquoteleft");
c(K, v, M, "’", "'", !0);
c(K, v, M, "’", "\\textquoteright");
c(K, v, M, "“", "``", !0);
c(K, v, M, "“", "\\textquotedblleft");
c(K, v, M, "”", "''", !0);
c(K, v, M, "”", "\\textquotedblright");
c(m, v, M, "°", "\\degree", !0);
c(K, v, M, "°", "\\degree");
c(K, v, M, "°", "\\textdegree", !0);
c(m, v, M, "£", "\\pounds");
c(m, v, M, "£", "\\mathsterling", !0);
c(K, v, M, "£", "\\pounds");
c(K, v, M, "£", "\\textsterling", !0);
c(m, k, M, "✠", "\\maltese");
c(K, k, M, "✠", "\\maltese");
var i4 = '0123456789/@."';
for (var no = 0; no < i4.length; no++) {
  var l4 = i4.charAt(no);
  c(m, v, M, l4, l4);
}
var s4 = '0123456789!@*()-=+";:?/.,';
for (var ro = 0; ro < s4.length; ro++) {
  var o4 = s4.charAt(ro);
  c(K, v, M, o4, o4);
}
var kl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (var ao = 0; ao < kl.length; ao++) {
  var nl = kl.charAt(ao);
  c(m, v, ve, nl, nl), c(K, v, M, nl, nl);
}
c(m, k, M, "C", "ℂ");
c(K, k, M, "C", "ℂ");
c(m, k, M, "H", "ℍ");
c(K, k, M, "H", "ℍ");
c(m, k, M, "N", "ℕ");
c(K, k, M, "N", "ℕ");
c(m, k, M, "P", "ℙ");
c(K, k, M, "P", "ℙ");
c(m, k, M, "Q", "ℚ");
c(K, k, M, "Q", "ℚ");
c(m, k, M, "R", "ℝ");
c(K, k, M, "R", "ℝ");
c(m, k, M, "Z", "ℤ");
c(K, k, M, "Z", "ℤ");
c(m, v, ve, "h", "ℎ");
c(K, v, ve, "h", "ℎ");
var De = "";
for (var Gt = 0; Gt < kl.length; Gt++) {
  var gt = kl.charAt(Gt);
  De = String.fromCharCode(55349, 56320 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56372 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56424 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56580 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56684 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56736 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56788 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56840 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56944 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), Gt < 26 && (De = String.fromCharCode(55349, 56632 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De), De = String.fromCharCode(55349, 56476 + Gt), c(m, v, ve, gt, De), c(K, v, M, gt, De));
}
De = "𝕜";
c(m, v, ve, "k", De);
c(K, v, M, "k", De);
for (var $r = 0; $r < 10; $r++) {
  var lr = $r.toString();
  De = String.fromCharCode(55349, 57294 + $r), c(m, v, ve, lr, De), c(K, v, M, lr, De), De = String.fromCharCode(55349, 57314 + $r), c(m, v, ve, lr, De), c(K, v, M, lr, De), De = String.fromCharCode(55349, 57324 + $r), c(m, v, ve, lr, De), c(K, v, M, lr, De), De = String.fromCharCode(55349, 57334 + $r), c(m, v, ve, lr, De), c(K, v, M, lr, De);
}
var u4 = "ÐÞþ";
for (var io = 0; io < u4.length; io++) {
  var rl = u4.charAt(io);
  c(m, v, ve, rl, rl), c(K, v, M, rl, rl);
}
var al = [
  ["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
], c4 = [
  ["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
], p8 = function(e, t) {
  var a = e.charCodeAt(0), l = e.charCodeAt(1), o = (a - 55296) * 1024 + (l - 56320) + 65536, u = t === "math" ? 0 : 1;
  if (119808 <= o && o < 120484) {
    var h = Math.floor((o - 119808) / 26);
    return [al[h][2], al[h][u]];
  } else if (120782 <= o && o <= 120831) {
    var d = Math.floor((o - 120782) / 10);
    return [c4[d][2], c4[d][u]];
  } else {
    if (o === 120485 || o === 120486)
      return [al[0][2], al[0][u]];
    if (120486 < o && o < 120782)
      return ["", ""];
    throw new ge("Unsupported character: " + e);
  }
}, zl = function(e, t, a) {
  return xt[a][e] && xt[a][e].replace && (e = xt[a][e].replace), {
    value: e,
    metrics: Vo(e, t, a)
  };
}, en = function(e, t, a, l, o) {
  var u = zl(e, t, a), h = u.metrics;
  e = u.value;
  var d;
  if (h) {
    var p = h.italic;
    (a === "text" || l && l.font === "mathit") && (p = 0), d = new bn(e, h.height, h.depth, p, h.skew, h.width, o);
  } else
    typeof console < "u" && console.warn("No character metrics " + ("for '" + e + "' in style '" + t + "' and mode '" + a + "'")), d = new bn(e, 0, 0, 0, 0, 0, o);
  if (l) {
    d.maxFontSize = l.sizeMultiplier, l.style.isTight() && d.classes.push("mtight");
    var _ = l.getColor();
    _ && (d.style.color = _);
  }
  return d;
}, g8 = function(e, t, a, l) {
  return l === void 0 && (l = []), a.font === "boldsymbol" && zl(e, "Main-Bold", t).metrics ? en(e, "Main-Bold", t, a, l.concat(["mathbf"])) : e === "\\" || xt[t][e].font === "main" ? en(e, "Main-Regular", t, a, l) : en(e, "AMS-Regular", t, a, l.concat(["amsrm"]));
}, v8 = function(e, t, a, l, o) {
  return o !== "textord" && zl(e, "Math-BoldItalic", t).metrics ? {
    fontName: "Math-BoldItalic",
    fontClass: "boldsymbol"
  } : {
    fontName: "Main-Bold",
    fontClass: "mathbf"
  };
}, _8 = function(e, t, a) {
  var l = e.mode, o = e.text, u = ["mord"], h = l === "math" || l === "text" && t.font, d = h ? t.font : t.fontFamily, p = "", _ = "";
  if (o.charCodeAt(0) === 55349 && ([p, _] = p8(o, l)), p.length > 0)
    return en(o, p, l, t, u.concat(_));
  if (d) {
    var x, C;
    if (d === "boldsymbol") {
      var A = v8(o, l, t, u, a);
      x = A.fontName, C = [A.fontClass];
    } else h ? (x = Mh[d].fontName, C = [d]) : (x = il(d, t.fontWeight, t.fontShape), C = [d, t.fontWeight, t.fontShape]);
    if (zl(o, x, l).metrics)
      return en(o, x, l, t, u.concat(C));
    if (Eh.hasOwnProperty(o) && x.slice(0, 10) === "Typewriter") {
      for (var $ = [], I = 0; I < o.length; I++)
        $.push(en(o[I], x, l, t, u.concat(C)));
      return $h($);
    }
  }
  if (a === "mathord")
    return en(o, "Math-Italic", l, t, u.concat(["mathnormal"]));
  if (a === "textord") {
    var q = xt[l][o] && xt[l][o].font;
    if (q === "ams") {
      var H = il("amsrm", t.fontWeight, t.fontShape);
      return en(o, H, l, t, u.concat("amsrm", t.fontWeight, t.fontShape));
    } else if (q === "main" || !q) {
      var T = il("textrm", t.fontWeight, t.fontShape);
      return en(o, T, l, t, u.concat(t.fontWeight, t.fontShape));
    } else {
      var D = il(q, t.fontWeight, t.fontShape);
      return en(o, D, l, t, u.concat(D, t.fontWeight, t.fontShape));
    }
  } else
    throw new Error("unexpected type: " + a + " in makeOrd");
}, b8 = (i, e) => {
  if (ur(i.classes) !== ur(e.classes) || i.skew !== e.skew || i.maxFontSize !== e.maxFontSize)
    return !1;
  if (i.classes.length === 1) {
    var t = i.classes[0];
    if (t === "mbin" || t === "mord")
      return !1;
  }
  for (var a in i.style)
    if (i.style.hasOwnProperty(a) && i.style[a] !== e.style[a])
      return !1;
  for (var l in e.style)
    if (e.style.hasOwnProperty(l) && i.style[l] !== e.style[l])
      return !1;
  return !0;
}, y8 = (i) => {
  for (var e = 0; e < i.length - 1; e++) {
    var t = i[e], a = i[e + 1];
    t instanceof bn && a instanceof bn && b8(t, a) && (t.text += a.text, t.height = Math.max(t.height, a.height), t.depth = Math.max(t.depth, a.depth), t.italic = a.italic, i.splice(e + 1, 1), e--);
  }
  return i;
}, Yo = function(e) {
  for (var t = 0, a = 0, l = 0, o = 0; o < e.children.length; o++) {
    var u = e.children[o];
    u.height > t && (t = u.height), u.depth > a && (a = u.depth), u.maxFontSize > l && (l = u.maxFontSize);
  }
  e.height = t, e.depth = a, e.maxFontSize = l;
}, i0 = function(e, t, a, l) {
  var o = new Ml(e, t, a, l);
  return Yo(o), o;
}, Th = (i, e, t, a) => new Ml(i, e, t, a), w8 = function(e, t, a) {
  var l = i0([e], [], t);
  return l.height = Math.max(a || t.fontMetrics().defaultRuleThickness, t.minRuleThickness), l.style.borderBottomWidth = ne(l.height), l.maxFontSize = 1, l;
}, x8 = function(e, t, a, l) {
  var o = new Ch(e, t, a, l);
  return Yo(o), o;
}, $h = function(e) {
  var t = new ja(e);
  return Yo(t), t;
}, D8 = function(e, t) {
  return e instanceof ja ? i0([], [e], t) : e;
}, k8 = function(e) {
  if (e.positionType === "individualShift") {
    for (var t = e.children, a = [t[0]], l = -t[0].shift - t[0].elem.depth, o = l, u = 1; u < t.length; u++) {
      var h = -t[u].shift - o - t[u].elem.depth, d = h - (t[u - 1].elem.height + t[u - 1].elem.depth);
      o = o + h, a.push({
        type: "kern",
        size: d
      }), a.push(t[u]);
    }
    return {
      children: a,
      depth: l
    };
  }
  var p;
  if (e.positionType === "top") {
    for (var _ = e.positionData, x = 0; x < e.children.length; x++) {
      var C = e.children[x];
      _ -= C.type === "kern" ? C.size : C.elem.height + C.elem.depth;
    }
    p = _;
  } else if (e.positionType === "bottom")
    p = -e.positionData;
  else {
    var A = e.children[0];
    if (A.type !== "elem")
      throw new Error('First child must have type "elem".');
    if (e.positionType === "shift")
      p = -A.elem.depth - e.positionData;
    else if (e.positionType === "firstBaseline")
      p = -A.elem.depth;
    else
      throw new Error("Invalid positionType " + e.positionType + ".");
  }
  return {
    children: e.children,
    depth: p
  };
}, A8 = function(e, t) {
  for (var {
    children: a,
    depth: l
  } = k8(e), o = 0, u = 0; u < a.length; u++) {
    var h = a[u];
    if (h.type === "elem") {
      var d = h.elem;
      o = Math.max(o, d.maxFontSize, d.height);
    }
  }
  o += 2;
  var p = i0(["pstrut"], []);
  p.style.height = ne(o);
  for (var _ = [], x = l, C = l, A = l, $ = 0; $ < a.length; $++) {
    var I = a[$];
    if (I.type === "kern")
      A += I.size;
    else {
      var q = I.elem, H = I.wrapperClasses || [], T = I.wrapperStyle || {}, D = i0(H, [p, q], void 0, T);
      D.style.top = ne(-o - A - q.depth), I.marginLeft && (D.style.marginLeft = I.marginLeft), I.marginRight && (D.style.marginRight = I.marginRight), _.push(D), A += q.height + q.depth;
    }
    x = Math.min(x, A), C = Math.max(C, A);
  }
  var R = i0(["vlist"], _);
  R.style.height = ne(C);
  var N;
  if (x < 0) {
    var U = i0([], []), G = i0(["vlist"], [U]);
    G.style.height = ne(-x);
    var te = i0(["vlist-s"], [new bn("​")]);
    N = [i0(["vlist-r"], [R, te]), i0(["vlist-r"], [G])];
  } else
    N = [i0(["vlist-r"], [R])];
  var J = i0(["vlist-t"], N);
  return N.length === 2 && J.classes.push("vlist-t2"), J.height = C, J.depth = -x, J;
}, S8 = (i, e) => {
  var t = i0(["mspace"], [], e), a = ct(i, e);
  return t.style.marginRight = ne(a), t;
}, il = function(e, t, a) {
  var l = "";
  switch (e) {
    case "amsrm":
      l = "AMS";
      break;
    case "textrm":
      l = "Main";
      break;
    case "textsf":
      l = "SansSerif";
      break;
    case "texttt":
      l = "Typewriter";
      break;
    default:
      l = e;
  }
  var o;
  return t === "textbf" && a === "textit" ? o = "BoldItalic" : t === "textbf" ? o = "Bold" : t === "textit" ? o = "Italic" : o = "Regular", l + "-" + o;
}, Mh = {
  // 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"
  }
}, Bh = {
  //   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]
}, F8 = function(e, t) {
  var [a, l, o] = Bh[e], u = new Nr(a), h = new cr([u], {
    width: ne(l),
    height: ne(o),
    // Override CSS rule `.katex svg { width: 100% }`
    style: "width:" + ne(l),
    viewBox: "0 0 " + 1e3 * l + " " + 1e3 * o,
    preserveAspectRatio: "xMinYMin"
  }), d = Th(["overlay"], [h], t);
  return d.height = o, d.style.height = ne(o), d.style.width = ne(l), d;
}, O = {
  fontMap: Mh,
  makeSymbol: en,
  mathsym: g8,
  makeSpan: i0,
  makeSvgSpan: Th,
  makeLineSpan: w8,
  makeAnchor: x8,
  makeFragment: $h,
  wrapFragment: D8,
  makeVList: A8,
  makeOrd: _8,
  makeGlue: S8,
  staticSvg: F8,
  svgData: Bh,
  tryCombineChars: y8
}, ut = {
  number: 3,
  unit: "mu"
}, Mr = {
  number: 4,
  unit: "mu"
}, Bn = {
  number: 5,
  unit: "mu"
}, C8 = {
  mord: {
    mop: ut,
    mbin: Mr,
    mrel: Bn,
    minner: ut
  },
  mop: {
    mord: ut,
    mop: ut,
    mrel: Bn,
    minner: ut
  },
  mbin: {
    mord: Mr,
    mop: Mr,
    mopen: Mr,
    minner: Mr
  },
  mrel: {
    mord: Bn,
    mop: Bn,
    mopen: Bn,
    minner: Bn
  },
  mopen: {},
  mclose: {
    mop: ut,
    mbin: Mr,
    mrel: Bn,
    minner: ut
  },
  mpunct: {
    mord: ut,
    mop: ut,
    mrel: Bn,
    mopen: ut,
    mclose: ut,
    mpunct: ut,
    minner: ut
  },
  minner: {
    mord: ut,
    mop: ut,
    mbin: Mr,
    mrel: Bn,
    mopen: ut,
    mpunct: ut,
    minner: ut
  }
}, E8 = {
  mord: {
    mop: ut
  },
  mop: {
    mord: ut,
    mop: ut
  },
  mbin: {},
  mrel: {},
  mopen: {},
  mclose: {
    mop: ut
  },
  mpunct: {},
  minner: {
    mop: ut
  }
}, zh = {}, Al = {}, Sl = {};
function ae(i) {
  for (var {
    type: e,
    names: t,
    props: a,
    handler: l,
    htmlBuilder: o,
    mathmlBuilder: u
  } = i, h = {
    type: e,
    numArgs: a.numArgs,
    argTypes: a.argTypes,
    allowedInArgument: !!a.allowedInArgument,
    allowedInText: !!a.allowedInText,
    allowedInMath: a.allowedInMath === void 0 ? !0 : a.allowedInMath,
    numOptionalArgs: a.numOptionalArgs || 0,
    infix: !!a.infix,
    primitive: !!a.primitive,
    handler: l
  }, d = 0; d < t.length; ++d)
    zh[t[d]] = h;
  e && (o && (Al[e] = o), u && (Sl[e] = u));
}
function Pr(i) {
  var {
    type: e,
    htmlBuilder: t,
    mathmlBuilder: a
  } = i;
  ae({
    type: e,
    names: [],
    props: {
      numArgs: 0
    },
    handler() {
      throw new Error("Should never be called.");
    },
    htmlBuilder: t,
    mathmlBuilder: a
  });
}
var Fl = function(e) {
  return e.type === "ordgroup" && e.body.length === 1 ? e.body[0] : e;
}, wt = function(e) {
  return e.type === "ordgroup" ? e.body : [e];
}, pa = O.makeSpan, T8 = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"], $8 = ["rightmost", "mrel", "mclose", "mpunct"], M8 = {
  display: xe.DISPLAY,
  text: xe.TEXT,
  script: xe.SCRIPT,
  scriptscript: xe.SCRIPTSCRIPT
}, B8 = {
  mord: "mord",
  mop: "mop",
  mbin: "mbin",
  mrel: "mrel",
  mopen: "mopen",
  mclose: "mclose",
  mpunct: "mpunct",
  minner: "minner"
}, Lt = function(e, t, a, l) {
  l === void 0 && (l = [null, null]);
  for (var o = [], u = 0; u < e.length; u++) {
    var h = Ue(e[u], t);
    if (h instanceof ja) {
      var d = h.children;
      o.push(...d);
    } else
      o.push(h);
  }
  if (O.tryCombineChars(o), !a)
    return o;
  var p = t;
  if (e.length === 1) {
    var _ = e[0];
    _.type === "sizing" ? p = t.havingSize(_.size) : _.type === "styling" && (p = t.havingStyle(M8[_.style]));
  }
  var x = pa([l[0] || "leftmost"], [], t), C = pa([l[1] || "rightmost"], [], t), A = a === "root";
  return h4(o, ($, I) => {
    var q = I.classes[0], H = $.classes[0];
    q === "mbin" && _e.contains($8, H) ? I.classes[0] = "mord" : H === "mbin" && _e.contains(T8, q) && ($.classes[0] = "mord");
  }, {
    node: x
  }, C, A), h4(o, ($, I) => {
    var q = Co(I), H = Co($), T = q && H ? $.hasClass("mtight") ? E8[q][H] : C8[q][H] : null;
    if (T)
      return O.makeGlue(T, p);
  }, {
    node: x
  }, C, A), o;
}, h4 = function i(e, t, a, l, o) {
  l && e.push(l);
  for (var u = 0; u < e.length; u++) {
    var h = e[u], d = Rh(h);
    if (d) {
      i(d.children, t, a, null, o);
      continue;
    }
    var p = !h.hasClass("mspace");
    if (p) {
      var _ = t(h, a.node);
      _ && (a.insertAfter ? a.insertAfter(_) : (e.unshift(_), u++));
    }
    p ? a.node = h : o && h.hasClass("newline") && (a.node = pa(["leftmost"])), a.insertAfter = /* @__PURE__ */ ((x) => (C) => {
      e.splice(x + 1, 0, C), u++;
    })(u);
  }
  l && e.pop();
}, Rh = function(e) {
  return e instanceof ja || e instanceof Ch || e instanceof Ml && e.hasClass("enclosing") ? e : null;
}, z8 = function i(e, t) {
  var a = Rh(e);
  if (a) {
    var l = a.children;
    if (l.length) {
      if (t === "right")
        return i(l[l.length - 1], "right");
      if (t === "left")
        return i(l[0], "left");
    }
  }
  return e;
}, Co = function(e, t) {
  return e ? (t && (e = z8(e, t)), B8[e.classes[0]] || null) : null;
}, Qa = function(e, t) {
  var a = ["nulldelimiter"].concat(e.baseSizingClasses());
  return pa(t.concat(a));
}, Ue = function(e, t, a) {
  if (!e)
    return pa();
  if (Al[e.type]) {
    var l = Al[e.type](e, t);
    if (a && t.size !== a.size) {
      l = pa(t.sizingClasses(a), [l], t);
      var o = t.sizeMultiplier / a.sizeMultiplier;
      l.height *= o, l.depth *= o;
    }
    return l;
  } else
    throw new ge("Got group of unknown type: '" + e.type + "'");
};
function Ih(i) {
  return new ja(i);
}
class nn {
  constructor(e, t, a) {
    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 = a || [];
  }
  /**
   * 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 = ur(this.classes));
    for (var a = 0; a < this.children.length; a++)
      e.appendChild(this.children[a].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 += _e.escape(this.attributes[t]), e += '"');
    this.classes.length > 0 && (e += ' class ="' + _e.escape(ur(this.classes)) + '"'), e += ">";
    for (var a = 0; a < this.children.length; a++)
      e += this.children[a].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 Va {
  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 _e.escape(this.toText());
  }
  /**
   * Converts the text node into a string
   * (representing the text itself).
   */
  toText() {
    return this.text;
  }
}
class R8 {
  /**
   * 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", ne(this.width)), e;
  }
  /**
   * Converts the math node into an HTML markup string.
   */
  toMarkup() {
    return this.character ? "<mtext>" + this.character + "</mtext>" : '<mspace width="' + ne(this.width) + '"/>';
  }
  /**
   * Converts the math node into a string, similar to innerText.
   */
  toText() {
    return this.character ? this.character : " ";
  }
}
var j = {
  MathNode: nn,
  TextNode: Va,
  SpaceNode: R8,
  newDocumentFragment: Ih
}, q0 = function(e, t, a) {
  return xt[t][e] && xt[t][e].replace && e.charCodeAt(0) !== 55349 && !(Eh.hasOwnProperty(e) && a && (a.fontFamily && a.fontFamily.slice(4, 6) === "tt" || a.font && a.font.slice(4, 6) === "tt")) && (e = xt[t][e].replace), new j.TextNode(e);
}, Xo = function(e) {
  return e.length === 1 ? e[0] : new j.MathNode("mrow", e);
}, Zo = 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 a = t.font;
  if (!a || a === "mathnormal")
    return null;
  var l = e.mode;
  if (a === "mathit")
    return "italic";
  if (a === "boldsymbol")
    return e.type === "textord" ? "bold" : "bold-italic";
  if (a === "mathbf")
    return "bold";
  if (a === "mathbb")
    return "double-struck";
  if (a === "mathfrak")
    return "fraktur";
  if (a === "mathscr" || a === "mathcal")
    return "script";
  if (a === "mathsf")
    return "sans-serif";
  if (a === "mathtt")
    return "monospace";
  var o = e.text;
  if (_e.contains(["\\imath", "\\jmath"], o))
    return null;
  xt[l][o] && xt[l][o].replace && (o = xt[l][o].replace);
  var u = O.fontMap[a].fontName;
  return Vo(o, u, l) ? O.fontMap[a].variant : null;
}, _0 = function(e, t, a) {
  if (e.length === 1) {
    var l = Qe(e[0], t);
    return a && l instanceof nn && l.type === "mo" && (l.setAttribute("lspace", "0em"), l.setAttribute("rspace", "0em")), [l];
  }
  for (var o = [], u, h = 0; h < e.length; h++) {
    var d = Qe(e[h], t);
    if (d instanceof nn && u instanceof nn) {
      if (d.type === "mtext" && u.type === "mtext" && d.getAttribute("mathvariant") === u.getAttribute("mathvariant")) {
        u.children.push(...d.children);
        continue;
      } else if (d.type === "mn" && u.type === "mn") {
        u.children.push(...d.children);
        continue;
      } else if (d.type === "mi" && d.children.length === 1 && u.type === "mn") {
        var p = d.children[0];
        if (p instanceof Va && p.text === ".") {
          u.children.push(...d.children);
          continue;
        }
      } else if (u.type === "mi" && u.children.length === 1) {
        var _ = u.children[0];
        if (_ instanceof Va && _.text === "̸" && (d.type === "mo" || d.type === "mi" || d.type === "mn")) {
          var x = d.children[0];
          x instanceof Va && x.text.length > 0 && (x.text = x.text.slice(0, 1) + "̸" + x.text.slice(1), o.pop());
        }
      }
    }
    o.push(d), u = d;
  }
  return o;
}, hr = function(e, t, a) {
  return Xo(_0(e, t, a));
}, Qe = function(e, t) {
  if (!e)
    return new j.MathNode("mrow");
  if (Sl[e.type]) {
    var a = Sl[e.type](e, t);
    return a;
  } else
    throw new ge("Got group of unknown type: '" + e.type + "'");
}, I8 = {
  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": "="
}, L8 = function(e) {
  var t = new j.MathNode("mo", [new j.TextNode(I8[e.replace(/^\\/, "")])]);
  return t.setAttribute("stretchy", "true"), t;
}, N8 = {
  //   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]
}, q8 = function(e) {
  return e.type === "ordgroup" ? e.body.length : 1;
}, O8 = function(e, t) {
  function a() {
    var h = 4e5, d = e.label.slice(1);
    if (_e.contains(["widehat", "widecheck", "widetilde", "utilde"], d)) {
      var p = e, _ = q8(p.base), x, C, A;
      if (_ > 5)
        d === "widehat" || d === "widecheck" ? (x = 420, h = 2364, A = 0.42, C = d + "4") : (x = 312, h = 2340, A = 0.34, C = "tilde4");
      else {
        var $ = [1, 1, 2, 2, 3, 3][_];
        d === "widehat" || d === "widecheck" ? (h = [0, 1062, 2364, 2364, 2364][$], x = [0, 239, 300, 360, 420][$], A = [0, 0.24, 0.3, 0.3, 0.36, 0.42][$], C = d + $) : (h = [0, 600, 1033, 2339, 2340][$], x = [0, 260, 286, 306, 312][$], A = [0, 0.26, 0.286, 0.3, 0.306, 0.34][$], C = "tilde" + $);
      }
      var I = new Nr(C), q = new cr([I], {
        width: "100%",
        height: ne(A),
        viewBox: "0 0 " + h + " " + x,
        preserveAspectRatio: "none"
      });
      return {
        span: O.makeSvgSpan([], [q], t),
        minWidth: 0,
        height: A
      };
    } else {
      var H = [], T = N8[d], [D, R, N] = T, U = N / 1e3, G = D.length, te, J;
      if (G === 1) {
        var X = T[3];
        te = ["hide-tail"], J = [X];
      } else if (G === 2)
        te = ["halfarrow-left", "halfarrow-right"], J = ["xMinYMin", "xMaxYMin"];
      else if (G === 3)
        te = ["brace-left", "brace-center", "brace-right"], J = ["xMinYMin", "xMidYMin", "xMaxYMin"];
      else
        throw new Error(`Correct katexImagesData or update code here to support
                    ` + G + " children.");
      for (var oe = 0; oe < G; oe++) {
        var Ae = new Nr(D[oe]), je = new cr([Ae], {
          width: "400em",
          height: ne(U),
          viewBox: "0 0 " + h + " " + N,
          preserveAspectRatio: J[oe] + " slice"
        }), Me = O.makeSvgSpan([te[oe]], [je], t);
        if (G === 1)
          return {
            span: Me,
            minWidth: R,
            height: U
          };
        Me.style.height = ne(U), H.push(Me);
      }
      return {
        span: O.makeSpan(["stretchy"], H, t),
        minWidth: R,
        height: U
      };
    }
  }
  var {
    span: l,
    minWidth: o,
    height: u
  } = a();
  return l.height = u, l.style.height = ne(u), o > 0 && (l.style.minWidth = ne(o)), l;
}, P8 = function(e, t, a, l, o) {
  var u, h = e.height + e.depth + a + l;
  if (/fbox|color|angl/.test(t)) {
    if (u = O.makeSpan(["stretchy", t], [], o), t === "fbox") {
      var d = o.color && o.getColor();
      d && (u.style.borderColor = d);
    }
  } else {
    var p = [];
    /^[bx]cancel$/.test(t) && p.push(new r4({
      x1: "0",
      y1: "0",
      x2: "100%",
      y2: "100%",
      "stroke-width": "0.046em"
    })), /^x?cancel$/.test(t) && p.push(new r4({
      x1: "0",
      y1: "100%",
      x2: "100%",
      y2: "0",
      "stroke-width": "0.046em"
    }));
    var _ = new cr(p, {
      width: "100%",
      height: ne(h)
    });
    u = O.makeSvgSpan([], [_], o);
  }
  return u.height = h, u.style.height = ne(h), u;
}, qn = {
  encloseSpan: P8,
  mathMLnode: L8,
  svgSpan: O8
};
function Te(i, e) {
  if (!i || i.type !== e)
    throw new Error("Expected node of type " + e + ", but got " + (i ? "node of type " + i.type : String(i)));
  return i;
}
function Ko(i) {
  var e = Rl(i);
  if (!e)
    throw new Error("Expected node of symbol group type, but got " + (i ? "node of type " + i.type : String(i)));
  return e;
}
function Rl(i) {
  return i && (i.type === "atom" || m8.hasOwnProperty(i.type)) ? i : null;
}
var Jo = (i, e) => {
  var t, a, l;
  i && i.type === "supsub" ? (a = Te(i.base, "accent"), t = a.base, i.base = t, l = d8(Ue(i, e)), i.base = a) : (a = Te(i, "accent"), t = a.base);
  var o = Ue(t, e.havingCrampedStyle()), u = a.isShifty && _e.isCharacterBox(t), h = 0;
  if (u) {
    var d = _e.getBaseElem(t), p = Ue(d, e.havingCrampedStyle());
    h = a4(p).skew;
  }
  var _ = a.label === "\\c", x = _ ? o.height + o.depth : Math.min(o.height, e.fontMetrics().xHeight), C;
  if (a.isStretchy)
    C = qn.svgSpan(a, e), C = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: o
      }, {
        type: "elem",
        elem: C,
        wrapperClasses: ["svg-align"],
        wrapperStyle: h > 0 ? {
          width: "calc(100% - " + ne(2 * h) + ")",
          marginLeft: ne(2 * h)
        } : void 0
      }]
    }, e);
  else {
    var A, $;
    a.label === "\\vec" ? (A = O.staticSvg("vec", e), $ = O.svgData.vec[1]) : (A = O.makeOrd({
      mode: a.mode,
      text: a.label
    }, e, "textord"), A = a4(A), A.italic = 0, $ = A.width, _ && (x += A.depth)), C = O.makeSpan(["accent-body"], [A]);
    var I = a.label === "\\textcircled";
    I && (C.classes.push("accent-full"), x = o.height);
    var q = h;
    I || (q -= $ / 2), C.style.left = ne(q), a.label === "\\textcircled" && (C.style.top = ".2em"), C = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: o
      }, {
        type: "kern",
        size: -x
      }, {
        type: "elem",
        elem: C
      }]
    }, e);
  }
  var H = O.makeSpan(["mord", "accent"], [C], e);
  return l ? (l.children[0] = H, l.height = Math.max(H.height, l.height), l.classes[0] = "mord", l) : H;
}, Lh = (i, e) => {
  var t = i.isStretchy ? qn.mathMLnode(i.label) : new j.MathNode("mo", [q0(i.label, i.mode)]), a = new j.MathNode("mover", [Qe(i.base, e), t]);
  return a.setAttribute("accent", "true"), a;
}, H8 = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map((i) => "\\" + i).join("|"));
ae({
  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: (i, e) => {
    var t = Fl(e[0]), a = !H8.test(i.funcName), l = !a || i.funcName === "\\widehat" || i.funcName === "\\widetilde" || i.funcName === "\\widecheck";
    return {
      type: "accent",
      mode: i.parser.mode,
      label: i.funcName,
      isStretchy: a,
      isShifty: l,
      base: t
    };
  },
  htmlBuilder: Jo,
  mathmlBuilder: Lh
});
ae({
  type: "accent",
  names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"],
  props: {
    numArgs: 1,
    allowedInText: !0,
    allowedInMath: !0,
    // unless in strict mode
    argTypes: ["primitive"]
  },
  handler: (i, e) => {
    var t = e[0], a = i.parser.mode;
    return a === "math" && (i.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + i.funcName + " works only in text mode"), a = "text"), {
      type: "accent",
      mode: a,
      label: i.funcName,
      isStretchy: !1,
      isShifty: !0,
      base: t
    };
  },
  htmlBuilder: Jo,
  mathmlBuilder: Lh
});
ae({
  type: "accentUnder",
  names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"],
  props: {
    numArgs: 1
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    return {
      type: "accentUnder",
      mode: t.mode,
      label: a,
      base: l
    };
  },
  htmlBuilder: (i, e) => {
    var t = Ue(i.base, e), a = qn.svgSpan(i, e), l = i.label === "\\utilde" ? 0.12 : 0, o = O.makeVList({
      positionType: "top",
      positionData: t.height,
      children: [{
        type: "elem",
        elem: a,
        wrapperClasses: ["svg-align"]
      }, {
        type: "kern",
        size: l
      }, {
        type: "elem",
        elem: t
      }]
    }, e);
    return O.makeSpan(["mord", "accentunder"], [o], e);
  },
  mathmlBuilder: (i, e) => {
    var t = qn.mathMLnode(i.label), a = new j.MathNode("munder", [Qe(i.base, e), t]);
    return a.setAttribute("accentunder", "true"), a;
  }
});
var ll = (i) => {
  var e = new j.MathNode("mpadded", i ? [i] : []);
  return e.setAttribute("width", "+0.6em"), e.setAttribute("lspace", "0.3em"), e;
};
ae({
  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(i, e, t) {
    var {
      parser: a,
      funcName: l
    } = i;
    return {
      type: "xArrow",
      mode: a.mode,
      label: l,
      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(i, e) {
    var t = e.style, a = e.havingStyle(t.sup()), l = O.wrapFragment(Ue(i.body, a, e), e), o = i.label.slice(0, 2) === "\\x" ? "x" : "cd";
    l.classes.push(o + "-arrow-pad");
    var u;
    i.below && (a = e.havingStyle(t.sub()), u = O.wrapFragment(Ue(i.below, a, e), e), u.classes.push(o + "-arrow-pad"));
    var h = qn.svgSpan(i, e), d = -e.fontMetrics().axisHeight + 0.5 * h.height, p = -e.fontMetrics().axisHeight - 0.5 * h.height - 0.111;
    (l.depth > 0.25 || i.label === "\\xleftequilibrium") && (p -= l.depth);
    var _;
    if (u) {
      var x = -e.fontMetrics().axisHeight + u.height + 0.5 * h.height + 0.111;
      _ = O.makeVList({
        positionType: "individualShift",
        children: [{
          type: "elem",
          elem: l,
          shift: p
        }, {
          type: "elem",
          elem: h,
          shift: d
        }, {
          type: "elem",
          elem: u,
          shift: x
        }]
      }, e);
    } else
      _ = O.makeVList({
        positionType: "individualShift",
        children: [{
          type: "elem",
          elem: l,
          shift: p
        }, {
          type: "elem",
          elem: h,
          shift: d
        }]
      }, e);
    return _.children[0].children[0].children[1].classes.push("svg-align"), O.makeSpan(["mrel", "x-arrow"], [_], e);
  },
  mathmlBuilder(i, e) {
    var t = qn.mathMLnode(i.label);
    t.setAttribute("minsize", i.label.charAt(0) === "x" ? "1.75em" : "3.0em");
    var a;
    if (i.body) {
      var l = ll(Qe(i.body, e));
      if (i.below) {
        var o = ll(Qe(i.below, e));
        a = new j.MathNode("munderover", [t, o, l]);
      } else
        a = new j.MathNode("mover", [t, l]);
    } else if (i.below) {
      var u = ll(Qe(i.below, e));
      a = new j.MathNode("munder", [t, u]);
    } else
      a = ll(), a = new j.MathNode("mover", [t, a]);
    return a;
  }
});
var U8 = O.makeSpan;
function Nh(i, e) {
  var t = Lt(i.body, e, !0);
  return U8([i.mclass], t, e);
}
function qh(i, e) {
  var t, a = _0(i.body, e);
  return i.mclass === "minner" ? t = new j.MathNode("mpadded", a) : i.mclass === "mord" ? i.isCharacterBox ? (t = a[0], t.type = "mi") : t = new j.MathNode("mi", a) : (i.isCharacterBox ? (t = a[0], t.type = "mo") : t = new j.MathNode("mo", a), i.mclass === "mbin" ? (t.attributes.lspace = "0.22em", t.attributes.rspace = "0.22em") : i.mclass === "mpunct" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0.17em") : i.mclass === "mopen" || i.mclass === "mclose" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0em") : i.mclass === "minner" && (t.attributes.lspace = "0.0556em", t.attributes.width = "+0.1111em")), t;
}
ae({
  type: "mclass",
  names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"],
  props: {
    numArgs: 1,
    primitive: !0
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    return {
      type: "mclass",
      mode: t.mode,
      mclass: "m" + a.slice(5),
      // TODO(kevinb): don't prefix with 'm'
      body: wt(l),
      isCharacterBox: _e.isCharacterBox(l)
    };
  },
  htmlBuilder: Nh,
  mathmlBuilder: qh
});
var Il = (i) => {
  var e = i.type === "ordgroup" && i.body.length ? i.body[0] : i;
  return e.type === "atom" && (e.family === "bin" || e.family === "rel") ? "m" + e.family : "mord";
};
ae({
  type: "mclass",
  names: ["\\@binrel"],
  props: {
    numArgs: 2
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "mclass",
      mode: t.mode,
      mclass: Il(e[0]),
      body: wt(e[1]),
      isCharacterBox: _e.isCharacterBox(e[1])
    };
  }
});
ae({
  type: "mclass",
  names: ["\\stackrel", "\\overset", "\\underset"],
  props: {
    numArgs: 2
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i, l = e[1], o = e[0], u;
    a !== "\\stackrel" ? u = Il(l) : u = "mrel";
    var h = {
      type: "op",
      mode: l.mode,
      limits: !0,
      alwaysHandleSupSub: !0,
      parentIsSupSub: !1,
      symbol: !1,
      suppressBaseShift: a !== "\\stackrel",
      body: wt(l)
    }, d = {
      type: "supsub",
      mode: o.mode,
      base: h,
      sup: a === "\\underset" ? null : o,
      sub: a === "\\underset" ? o : null
    };
    return {
      type: "mclass",
      mode: t.mode,
      mclass: u,
      body: [d],
      isCharacterBox: _e.isCharacterBox(d)
    };
  },
  htmlBuilder: Nh,
  mathmlBuilder: qh
});
ae({
  type: "pmb",
  names: ["\\pmb"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "pmb",
      mode: t.mode,
      mclass: Il(e[0]),
      body: wt(e[0])
    };
  },
  htmlBuilder(i, e) {
    var t = Lt(i.body, e, !0), a = O.makeSpan([i.mclass], t, e);
    return a.style.textShadow = "0.02em 0.01em 0.04px", a;
  },
  mathmlBuilder(i, e) {
    var t = _0(i.body, e), a = new j.MathNode("mstyle", t);
    return a.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px"), a;
  }
});
var W8 = {
  ">": "\\\\cdrightarrow",
  "<": "\\\\cdleftarrow",
  "=": "\\\\cdlongequal",
  A: "\\uparrow",
  V: "\\downarrow",
  "|": "\\Vert",
  ".": "no arrow"
}, f4 = () => ({
  type: "styling",
  body: [],
  mode: "math",
  style: "display"
}), d4 = (i) => i.type === "textord" && i.text === "@", G8 = (i, e) => (i.type === "mathord" || i.type === "atom") && i.text === e;
function V8(i, e, t) {
  var a = W8[i];
  switch (a) {
    case "\\\\cdrightarrow":
    case "\\\\cdleftarrow":
      return t.callFunction(a, [e[0]], [e[1]]);
    case "\\uparrow":
    case "\\downarrow": {
      var l = t.callFunction("\\\\cdleft", [e[0]], []), o = {
        type: "atom",
        text: a,
        mode: "math",
        family: "rel"
      }, u = t.callFunction("\\Big", [o], []), h = t.callFunction("\\\\cdright", [e[1]], []), d = {
        type: "ordgroup",
        mode: "math",
        body: [l, u, h]
      };
      return t.callFunction("\\\\cdparent", [d], []);
    }
    case "\\\\cdlongequal":
      return t.callFunction("\\\\cdlongequal", [], []);
    case "\\Vert": {
      var p = {
        type: "textord",
        text: "\\Vert",
        mode: "math"
      };
      return t.callFunction("\\Big", [p], []);
    }
    default:
      return {
        type: "textord",
        text: " ",
        mode: "math"
      };
  }
}
function Y8(i) {
  var e = [];
  for (i.gullet.beginGroup(), i.gullet.macros.set("\\cr", "\\\\\\relax"), i.gullet.beginGroup(); ; ) {
    e.push(i.parseExpression(!1, "\\\\")), i.gullet.endGroup(), i.gullet.beginGroup();
    var t = i.fetch().text;
    if (t === "&" || t === "\\\\")
      i.consume();
    else if (t === "\\end") {
      e[e.length - 1].length === 0 && e.pop();
      break;
    } else
      throw new ge("Expected \\\\ or \\cr or \\end", i.nextToken);
  }
  for (var a = [], l = [a], o = 0; o < e.length; o++) {
    for (var u = e[o], h = f4(), d = 0; d < u.length; d++)
      if (!d4(u[d]))
        h.body.push(u[d]);
      else {
        a.push(h), d += 1;
        var p = Ko(u[d]).text, _ = new Array(2);
        if (_[0] = {
          type: "ordgroup",
          mode: "math",
          body: []
        }, _[1] = {
          type: "ordgroup",
          mode: "math",
          body: []
        }, !("=|.".indexOf(p) > -1)) if ("<>AV".indexOf(p) > -1)
          for (var x = 0; x < 2; x++) {
            for (var C = !0, A = d + 1; A < u.length; A++) {
              if (G8(u[A], p)) {
                C = !1, d = A;
                break;
              }
              if (d4(u[A]))
                throw new ge("Missing a " + p + " character to complete a CD arrow.", u[A]);
              _[x].body.push(u[A]);
            }
            if (C)
              throw new ge("Missing a " + p + " character to complete a CD arrow.", u[d]);
          }
        else
          throw new ge('Expected one of "<>AV=|." after @', u[d]);
        var $ = V8(p, _, i), I = {
          type: "styling",
          body: [$],
          mode: "math",
          style: "display"
          // CD is always displaystyle.
        };
        a.push(I), h = f4();
      }
    o % 2 === 0 ? a.push(h) : a.shift(), a = [], l.push(a);
  }
  i.gullet.endGroup(), i.gullet.endGroup();
  var q = new Array(l[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: l,
    arraystretch: 1,
    addJot: !0,
    rowGaps: [null],
    cols: q,
    colSeparationType: "CD",
    hLinesBeforeRow: new Array(l.length + 1).fill([])
  };
}
ae({
  type: "cdlabel",
  names: ["\\\\cdleft", "\\\\cdright"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i;
    return {
      type: "cdlabel",
      mode: t.mode,
      side: a.slice(4),
      label: e[0]
    };
  },
  htmlBuilder(i, e) {
    var t = e.havingStyle(e.style.sup()), a = O.wrapFragment(Ue(i.label, t, e), e);
    return a.classes.push("cd-label-" + i.side), a.style.bottom = ne(0.8 - a.depth), a.height = 0, a.depth = 0, a;
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mrow", [Qe(i.label, e)]);
    return t = new j.MathNode("mpadded", [t]), t.setAttribute("width", "0"), i.side === "left" && t.setAttribute("lspace", "-1width"), t.setAttribute("voffset", "0.7em"), t = new j.MathNode("mstyle", [t]), t.setAttribute("displaystyle", "false"), t.setAttribute("scriptlevel", "1"), t;
  }
});
ae({
  type: "cdlabelparent",
  names: ["\\\\cdparent"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "cdlabelparent",
      mode: t.mode,
      fragment: e[0]
    };
  },
  htmlBuilder(i, e) {
    var t = O.wrapFragment(Ue(i.fragment, e), e);
    return t.classes.push("cd-vert-arrow"), t;
  },
  mathmlBuilder(i, e) {
    return new j.MathNode("mrow", [Qe(i.fragment, e)]);
  }
});
ae({
  type: "textord",
  names: ["\\@char"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler(i, e) {
    for (var {
      parser: t
    } = i, a = Te(e[0], "ordgroup"), l = a.body, o = "", u = 0; u < l.length; u++) {
      var h = Te(l[u], "textord");
      o += h.text;
    }
    var d = parseInt(o), p;
    if (isNaN(d))
      throw new ge("\\@char has non-numeric argument " + o);
    if (d < 0 || d >= 1114111)
      throw new ge("\\@char with invalid code point " + o);
    return d <= 65535 ? p = String.fromCharCode(d) : (d -= 65536, p = String.fromCharCode((d >> 10) + 55296, (d & 1023) + 56320)), {
      type: "textord",
      mode: t.mode,
      text: p
    };
  }
});
var Oh = (i, e) => {
  var t = Lt(i.body, e.withColor(i.color), !1);
  return O.makeFragment(t);
}, Ph = (i, e) => {
  var t = _0(i.body, e.withColor(i.color)), a = new j.MathNode("mstyle", t);
  return a.setAttribute("mathcolor", i.color), a;
};
ae({
  type: "color",
  names: ["\\textcolor"],
  props: {
    numArgs: 2,
    allowedInText: !0,
    argTypes: ["color", "original"]
  },
  handler(i, e) {
    var {
      parser: t
    } = i, a = Te(e[0], "color-token").color, l = e[1];
    return {
      type: "color",
      mode: t.mode,
      color: a,
      body: wt(l)
    };
  },
  htmlBuilder: Oh,
  mathmlBuilder: Ph
});
ae({
  type: "color",
  names: ["\\color"],
  props: {
    numArgs: 1,
    allowedInText: !0,
    argTypes: ["color"]
  },
  handler(i, e) {
    var {
      parser: t,
      breakOnTokenText: a
    } = i, l = Te(e[0], "color-token").color;
    t.gullet.macros.set("\\current@color", l);
    var o = t.parseExpression(!0, a);
    return {
      type: "color",
      mode: t.mode,
      color: l,
      body: o
    };
  },
  htmlBuilder: Oh,
  mathmlBuilder: Ph
});
ae({
  type: "cr",
  names: ["\\\\"],
  props: {
    numArgs: 0,
    numOptionalArgs: 0,
    allowedInText: !0
  },
  handler(i, e, t) {
    var {
      parser: a
    } = i, l = a.gullet.future().text === "[" ? a.parseSizeGroup(!0) : null, o = !a.settings.displayMode || !a.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode");
    return {
      type: "cr",
      mode: a.mode,
      newLine: o,
      size: l && Te(l, "size").value
    };
  },
  // The following builders are called only at the top level,
  // not within tabular/array environments.
  htmlBuilder(i, e) {
    var t = O.makeSpan(["mspace"], [], e);
    return i.newLine && (t.classes.push("newline"), i.size && (t.style.marginTop = ne(ct(i.size, e)))), t;
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mspace");
    return i.newLine && (t.setAttribute("linebreak", "newline"), i.size && t.setAttribute("height", ne(ct(i.size, e)))), t;
  }
});
var Eo = {
  "\\global": "\\global",
  "\\long": "\\\\globallong",
  "\\\\globallong": "\\\\globallong",
  "\\def": "\\gdef",
  "\\gdef": "\\gdef",
  "\\edef": "\\xdef",
  "\\xdef": "\\xdef",
  "\\let": "\\\\globallet",
  "\\futurelet": "\\\\globalfuture"
}, Hh = (i) => {
  var e = i.text;
  if (/^(?:[\\{}$&#^_]|EOF)$/.test(e))
    throw new ge("Expected a control sequence", i);
  return e;
}, X8 = (i) => {
  var e = i.gullet.popToken();
  return e.text === "=" && (e = i.gullet.popToken(), e.text === " " && (e = i.gullet.popToken())), e;
}, Uh = (i, e, t, a) => {
  var l = i.gullet.macros.get(t.text);
  l == null && (t.noexpand = !0, l = {
    tokens: [t],
    numArgs: 0,
    // reproduce the same behavior in expansion
    unexpandable: !i.gullet.isExpandable(t.text)
  }), i.gullet.macros.set(e, l, a);
};
ae({
  type: "internal",
  names: [
    "\\global",
    "\\long",
    "\\\\globallong"
    // can’t be entered directly
  ],
  props: {
    numArgs: 0,
    allowedInText: !0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t
    } = i;
    e.consumeSpaces();
    var a = e.fetch();
    if (Eo[a.text])
      return (t === "\\global" || t === "\\\\globallong") && (a.text = Eo[a.text]), Te(e.parseFunction(), "internal");
    throw new ge("Invalid token after macro prefix", a);
  }
});
ae({
  type: "internal",
  names: ["\\def", "\\gdef", "\\edef", "\\xdef"],
  props: {
    numArgs: 0,
    allowedInText: !0,
    primitive: !0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t
    } = i, a = e.gullet.popToken(), l = a.text;
    if (/^(?:[\\{}$&#^_]|EOF)$/.test(l))
      throw new ge("Expected a control sequence", a);
    for (var o = 0, u, h = [[]]; e.gullet.future().text !== "{"; )
      if (a = e.gullet.popToken(), a.text === "#") {
        if (e.gullet.future().text === "{") {
          u = e.gullet.future(), h[o].push("{");
          break;
        }
        if (a = e.gullet.popToken(), !/^[1-9]$/.test(a.text))
          throw new ge('Invalid argument number "' + a.text + '"');
        if (parseInt(a.text) !== o + 1)
          throw new ge('Argument number "' + a.text + '" out of order');
        o++, h.push([]);
      } else {
        if (a.text === "EOF")
          throw new ge("Expected a macro definition");
        h[o].push(a.text);
      }
    var {
      tokens: d
    } = e.gullet.consumeArg();
    return u && d.unshift(u), (t === "\\edef" || t === "\\xdef") && (d = e.gullet.expandTokens(d), d.reverse()), e.gullet.macros.set(l, {
      tokens: d,
      numArgs: o,
      delimiters: h
    }, t === Eo[t]), {
      type: "internal",
      mode: e.mode
    };
  }
});
ae({
  type: "internal",
  names: [
    "\\let",
    "\\\\globallet"
    // can’t be entered directly
  ],
  props: {
    numArgs: 0,
    allowedInText: !0,
    primitive: !0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t
    } = i, a = Hh(e.gullet.popToken());
    e.gullet.consumeSpaces();
    var l = X8(e);
    return Uh(e, a, l, t === "\\\\globallet"), {
      type: "internal",
      mode: e.mode
    };
  }
});
ae({
  type: "internal",
  names: [
    "\\futurelet",
    "\\\\globalfuture"
    // can’t be entered directly
  ],
  props: {
    numArgs: 0,
    allowedInText: !0,
    primitive: !0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t
    } = i, a = Hh(e.gullet.popToken()), l = e.gullet.popToken(), o = e.gullet.popToken();
    return Uh(e, a, o, t === "\\\\globalfuture"), e.gullet.pushToken(o), e.gullet.pushToken(l), {
      type: "internal",
      mode: e.mode
    };
  }
});
var Ga = function(e, t, a) {
  var l = xt.math[e] && xt.math[e].replace, o = Vo(l || e, t, a);
  if (!o)
    throw new Error("Unsupported symbol " + e + " and font size " + t + ".");
  return o;
}, Qo = function(e, t, a, l) {
  var o = a.havingBaseStyle(t), u = O.makeSpan(l.concat(o.sizingClasses(a)), [e], a), h = o.sizeMultiplier / a.sizeMultiplier;
  return u.height *= h, u.depth *= h, u.maxFontSize = o.sizeMultiplier, u;
}, Wh = function(e, t, a) {
  var l = t.havingBaseStyle(a), o = (1 - t.sizeMultiplier / l.sizeMultiplier) * t.fontMetrics().axisHeight;
  e.classes.push("delimcenter"), e.style.top = ne(o), e.height -= o, e.depth += o;
}, Z8 = function(e, t, a, l, o, u) {
  var h = O.makeSymbol(e, "Main-Regular", o, l), d = Qo(h, t, l, u);
  return a && Wh(d, l, t), d;
}, K8 = function(e, t, a, l) {
  return O.makeSymbol(e, "Size" + t + "-Regular", a, l);
}, Gh = function(e, t, a, l, o, u) {
  var h = K8(e, t, o, l), d = Qo(O.makeSpan(["delimsizing", "size" + t], [h], l), xe.TEXT, l, u);
  return a && Wh(d, l, xe.TEXT), d;
}, lo = function(e, t, a) {
  var l;
  t === "Size1-Regular" ? l = "delim-size1" : l = "delim-size4";
  var o = O.makeSpan(["delimsizinginner", l], [O.makeSpan([], [O.makeSymbol(e, t, a)])]);
  return {
    type: "elem",
    elem: o
  };
}, so = function(e, t, a) {
  var l = Rn["Size4-Regular"][e.charCodeAt(0)] ? Rn["Size4-Regular"][e.charCodeAt(0)][4] : Rn["Size1-Regular"][e.charCodeAt(0)][4], o = new Nr("inner", s8(e, Math.round(1e3 * t))), u = new cr([o], {
    width: ne(l),
    height: ne(t),
    // Override CSS rule `.katex svg { width: 100% }`
    style: "width:" + ne(l),
    viewBox: "0 0 " + 1e3 * l + " " + Math.round(1e3 * t),
    preserveAspectRatio: "xMinYMin"
  }), h = O.makeSvgSpan([], [u], a);
  return h.height = t, h.style.height = ne(t), h.style.width = ne(l), {
    type: "elem",
    elem: h
  };
}, To = 8e-3, sl = {
  type: "kern",
  size: -1 * To
}, J8 = ["|", "\\lvert", "\\rvert", "\\vert"], Q8 = ["\\|", "\\lVert", "\\rVert", "\\Vert"], Vh = function(e, t, a, l, o, u) {
  var h, d, p, _, x = "", C = 0;
  h = p = _ = e, d = null;
  var A = "Size1-Regular";
  e === "\\uparrow" ? p = _ = "⏐" : e === "\\Uparrow" ? p = _ = "‖" : e === "\\downarrow" ? h = p = "⏐" : e === "\\Downarrow" ? h = p = "‖" : e === "\\updownarrow" ? (h = "\\uparrow", p = "⏐", _ = "\\downarrow") : e === "\\Updownarrow" ? (h = "\\Uparrow", p = "‖", _ = "\\Downarrow") : _e.contains(J8, e) ? (p = "∣", x = "vert", C = 333) : _e.contains(Q8, e) ? (p = "∥", x = "doublevert", C = 556) : e === "[" || e === "\\lbrack" ? (h = "⎡", p = "⎢", _ = "⎣", A = "Size4-Regular", x = "lbrack", C = 667) : e === "]" || e === "\\rbrack" ? (h = "⎤", p = "⎥", _ = "⎦", A = "Size4-Regular", x = "rbrack", C = 667) : e === "\\lfloor" || e === "⌊" ? (p = h = "⎢", _ = "⎣", A = "Size4-Regular", x = "lfloor", C = 667) : e === "\\lceil" || e === "⌈" ? (h = "⎡", p = _ = "⎢", A = "Size4-Regular", x = "lceil", C = 667) : e === "\\rfloor" || e === "⌋" ? (p = h = "⎥", _ = "⎦", A = "Size4-Regular", x = "rfloor", C = 667) : e === "\\rceil" || e === "⌉" ? (h = "⎤", p = _ = "⎥", A = "Size4-Regular", x = "rceil", C = 667) : e === "(" || e === "\\lparen" ? (h = "⎛", p = "⎜", _ = "⎝", A = "Size4-Regular", x = "lparen", C = 875) : e === ")" || e === "\\rparen" ? (h = "⎞", p = "⎟", _ = "⎠", A = "Size4-Regular", x = "rparen", C = 875) : e === "\\{" || e === "\\lbrace" ? (h = "⎧", d = "⎨", _ = "⎩", p = "⎪", A = "Size4-Regular") : e === "\\}" || e === "\\rbrace" ? (h = "⎫", d = "⎬", _ = "⎭", p = "⎪", A = "Size4-Regular") : e === "\\lgroup" || e === "⟮" ? (h = "⎧", _ = "⎩", p = "⎪", A = "Size4-Regular") : e === "\\rgroup" || e === "⟯" ? (h = "⎫", _ = "⎭", p = "⎪", A = "Size4-Regular") : e === "\\lmoustache" || e === "⎰" ? (h = "⎧", _ = "⎭", p = "⎪", A = "Size4-Regular") : (e === "\\rmoustache" || e === "⎱") && (h = "⎫", _ = "⎩", p = "⎪", A = "Size4-Regular");
  var $ = Ga(h, A, o), I = $.height + $.depth, q = Ga(p, A, o), H = q.height + q.depth, T = Ga(_, A, o), D = T.height + T.depth, R = 0, N = 1;
  if (d !== null) {
    var U = Ga(d, A, o);
    R = U.height + U.depth, N = 2;
  }
  var G = I + D + R, te = Math.max(0, Math.ceil((t - G) / (N * H))), J = G + te * N * H, X = l.fontMetrics().axisHeight;
  a && (X *= l.sizeMultiplier);
  var oe = J / 2 - X, Ae = [];
  if (x.length > 0) {
    var je = J - I - D, Me = Math.round(J * 1e3), Ne = o8(x, Math.round(je * 1e3)), Xe = new Nr(x, Ne), he = (C / 1e3).toFixed(3) + "em", ke = (Me / 1e3).toFixed(3) + "em", Oe = new cr([Xe], {
      width: he,
      height: ke,
      viewBox: "0 0 " + C + " " + Me
    }), ce = O.makeSvgSpan([], [Oe], l);
    ce.height = Me / 1e3, ce.style.width = he, ce.style.height = ke, Ae.push({
      type: "elem",
      elem: ce
    });
  } else {
    if (Ae.push(lo(_, A, o)), Ae.push(sl), d === null) {
      var le = J - I - D + 2 * To;
      Ae.push(so(p, le, l));
    } else {
      var Be = (J - I - D - R) / 2 + 2 * To;
      Ae.push(so(p, Be, l)), Ae.push(sl), Ae.push(lo(d, A, o)), Ae.push(sl), Ae.push(so(p, Be, l));
    }
    Ae.push(sl), Ae.push(lo(h, A, o));
  }
  var Pe = l.havingBaseStyle(xe.TEXT), dt = O.makeVList({
    positionType: "bottom",
    positionData: oe,
    children: Ae
  }, Pe);
  return Qo(O.makeSpan(["delimsizing", "mult"], [dt], Pe), xe.TEXT, l, u);
}, oo = 80, uo = 0.08, co = function(e, t, a, l, o) {
  var u = l8(e, l, a), h = new Nr(e, u), d = new cr([h], {
    // Note: 1000:1 ratio of viewBox to document em width.
    width: "400em",
    height: ne(t),
    viewBox: "0 0 400000 " + a,
    preserveAspectRatio: "xMinYMin slice"
  });
  return O.makeSvgSpan(["hide-tail"], [d], o);
}, j8 = function(e, t) {
  var a = t.havingBaseSizing(), l = Kh("\\surd", e * a.sizeMultiplier, Zh, a), o = a.sizeMultiplier, u = Math.max(0, t.minRuleThickness - t.fontMetrics().sqrtRuleThickness), h, d = 0, p = 0, _ = 0, x;
  return l.type === "small" ? (_ = 1e3 + 1e3 * u + oo, e < 1 ? o = 1 : e < 1.4 && (o = 0.7), d = (1 + u + uo) / o, p = (1 + u) / o, h = co("sqrtMain", d, _, u, t), h.style.minWidth = "0.853em", x = 0.833 / o) : l.type === "large" ? (_ = (1e3 + oo) * Ya[l.size], p = (Ya[l.size] + u) / o, d = (Ya[l.size] + u + uo) / o, h = co("sqrtSize" + l.size, d, _, u, t), h.style.minWidth = "1.02em", x = 1 / o) : (d = e + u + uo, p = e + u, _ = Math.floor(1e3 * e + u) + oo, h = co("sqrtTall", d, _, u, t), h.style.minWidth = "0.742em", x = 1.056), h.height = p, h.style.height = ne(d), {
    span: h,
    advanceWidth: x,
    // 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 + u) * o
  };
}, Yh = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "\\surd"], eg = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱"], Xh = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"], Ya = [0, 1.2, 1.8, 2.4, 3], tg = function(e, t, a, l, o) {
  if (e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle"), _e.contains(Yh, e) || _e.contains(Xh, e))
    return Gh(e, t, !1, a, l, o);
  if (_e.contains(eg, e))
    return Vh(e, Ya[t], !1, a, l, o);
  throw new ge("Illegal delimiter: '" + e + "'");
}, ng = [{
  type: "small",
  style: xe.SCRIPTSCRIPT
}, {
  type: "small",
  style: xe.SCRIPT
}, {
  type: "small",
  style: xe.TEXT
}, {
  type: "large",
  size: 1
}, {
  type: "large",
  size: 2
}, {
  type: "large",
  size: 3
}, {
  type: "large",
  size: 4
}], rg = [{
  type: "small",
  style: xe.SCRIPTSCRIPT
}, {
  type: "small",
  style: xe.SCRIPT
}, {
  type: "small",
  style: xe.TEXT
}, {
  type: "stack"
}], Zh = [{
  type: "small",
  style: xe.SCRIPTSCRIPT
}, {
  type: "small",
  style: xe.SCRIPT
}, {
  type: "small",
  style: xe.TEXT
}, {
  type: "large",
  size: 1
}, {
  type: "large",
  size: 2
}, {
  type: "large",
  size: 3
}, {
  type: "large",
  size: 4
}, {
  type: "stack"
}], ag = 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.");
}, Kh = function(e, t, a, l) {
  for (var o = Math.min(2, 3 - l.style.size), u = o; u < a.length && a[u].type !== "stack"; u++) {
    var h = Ga(e, ag(a[u]), "math"), d = h.height + h.depth;
    if (a[u].type === "small") {
      var p = l.havingBaseStyle(a[u].style);
      d *= p.sizeMultiplier;
    }
    if (d > t)
      return a[u];
  }
  return a[a.length - 1];
}, Jh = function(e, t, a, l, o, u) {
  e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle");
  var h;
  _e.contains(Xh, e) ? h = ng : _e.contains(Yh, e) ? h = Zh : h = rg;
  var d = Kh(e, t, h, l);
  return d.type === "small" ? Z8(e, d.style, a, l, o, u) : d.type === "large" ? Gh(e, d.size, a, l, o, u) : Vh(e, t, a, l, o, u);
}, ig = function(e, t, a, l, o, u) {
  var h = l.fontMetrics().axisHeight * l.sizeMultiplier, d = 901, p = 5 / l.fontMetrics().ptPerEm, _ = Math.max(t - h, a + h), x = 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)
    _ / 500 * d,
    2 * _ - p
  );
  return Jh(e, x, !0, l, o, u);
}, Nn = {
  sqrtImage: j8,
  sizedDelim: tg,
  sizeToMaxHeight: Ya,
  customSizedDelim: Jh,
  leftRightDelim: ig
}, m4 = {
  "\\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
  }
}, lg = ["(", "\\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 Ll(i, e) {
  var t = Rl(i);
  if (t && _e.contains(lg, t.text))
    return t;
  throw t ? new ge("Invalid delimiter '" + t.text + "' after '" + e.funcName + "'", i) : new ge("Invalid delimiter type '" + i.type + "'", i);
}
ae({
  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: (i, e) => {
    var t = Ll(e[0], i);
    return {
      type: "delimsizing",
      mode: i.parser.mode,
      size: m4[i.funcName].size,
      mclass: m4[i.funcName].mclass,
      delim: t.text
    };
  },
  htmlBuilder: (i, e) => i.delim === "." ? O.makeSpan([i.mclass]) : Nn.sizedDelim(i.delim, i.size, e, i.mode, [i.mclass]),
  mathmlBuilder: (i) => {
    var e = [];
    i.delim !== "." && e.push(q0(i.delim, i.mode));
    var t = new j.MathNode("mo", e);
    i.mclass === "mopen" || i.mclass === "mclose" ? t.setAttribute("fence", "true") : t.setAttribute("fence", "false"), t.setAttribute("stretchy", "true");
    var a = ne(Nn.sizeToMaxHeight[i.size]);
    return t.setAttribute("minsize", a), t.setAttribute("maxsize", a), t;
  }
});
function p4(i) {
  if (!i.body)
    throw new Error("Bug: The leftright ParseNode wasn't fully parsed.");
}
ae({
  type: "leftright-right",
  names: ["\\right"],
  props: {
    numArgs: 1,
    primitive: !0
  },
  handler: (i, e) => {
    var t = i.parser.gullet.macros.get("\\current@color");
    if (t && typeof t != "string")
      throw new ge("\\current@color set to non-string in \\right");
    return {
      type: "leftright-right",
      mode: i.parser.mode,
      delim: Ll(e[0], i).text,
      color: t
      // undefined if not set via \color
    };
  }
});
ae({
  type: "leftright",
  names: ["\\left"],
  props: {
    numArgs: 1,
    primitive: !0
  },
  handler: (i, e) => {
    var t = Ll(e[0], i), a = i.parser;
    ++a.leftrightDepth;
    var l = a.parseExpression(!1);
    --a.leftrightDepth, a.expect("\\right", !1);
    var o = Te(a.parseFunction(), "leftright-right");
    return {
      type: "leftright",
      mode: a.mode,
      body: l,
      left: t.text,
      right: o.delim,
      rightColor: o.color
    };
  },
  htmlBuilder: (i, e) => {
    p4(i);
    for (var t = Lt(i.body, e, !0, ["mopen", "mclose"]), a = 0, l = 0, o = !1, u = 0; u < t.length; u++)
      t[u].isMiddle ? o = !0 : (a = Math.max(t[u].height, a), l = Math.max(t[u].depth, l));
    a *= e.sizeMultiplier, l *= e.sizeMultiplier;
    var h;
    if (i.left === "." ? h = Qa(e, ["mopen"]) : h = Nn.leftRightDelim(i.left, a, l, e, i.mode, ["mopen"]), t.unshift(h), o)
      for (var d = 1; d < t.length; d++) {
        var p = t[d], _ = p.isMiddle;
        _ && (t[d] = Nn.leftRightDelim(_.delim, a, l, _.options, i.mode, []));
      }
    var x;
    if (i.right === ".")
      x = Qa(e, ["mclose"]);
    else {
      var C = i.rightColor ? e.withColor(i.rightColor) : e;
      x = Nn.leftRightDelim(i.right, a, l, C, i.mode, ["mclose"]);
    }
    return t.push(x), O.makeSpan(["minner"], t, e);
  },
  mathmlBuilder: (i, e) => {
    p4(i);
    var t = _0(i.body, e);
    if (i.left !== ".") {
      var a = new j.MathNode("mo", [q0(i.left, i.mode)]);
      a.setAttribute("fence", "true"), t.unshift(a);
    }
    if (i.right !== ".") {
      var l = new j.MathNode("mo", [q0(i.right, i.mode)]);
      l.setAttribute("fence", "true"), i.rightColor && l.setAttribute("mathcolor", i.rightColor), t.push(l);
    }
    return Xo(t);
  }
});
ae({
  type: "middle",
  names: ["\\middle"],
  props: {
    numArgs: 1,
    primitive: !0
  },
  handler: (i, e) => {
    var t = Ll(e[0], i);
    if (!i.parser.leftrightDepth)
      throw new ge("\\middle without preceding \\left", t);
    return {
      type: "middle",
      mode: i.parser.mode,
      delim: t.text
    };
  },
  htmlBuilder: (i, e) => {
    var t;
    if (i.delim === ".")
      t = Qa(e, []);
    else {
      t = Nn.sizedDelim(i.delim, 1, e, i.mode, []);
      var a = {
        delim: i.delim,
        options: e
      };
      t.isMiddle = a;
    }
    return t;
  },
  mathmlBuilder: (i, e) => {
    var t = i.delim === "\\vert" || i.delim === "|" ? q0("|", "text") : q0(i.delim, i.mode), a = new j.MathNode("mo", [t]);
    return a.setAttribute("fence", "true"), a.setAttribute("lspace", "0.05em"), a.setAttribute("rspace", "0.05em"), a;
  }
});
var jo = (i, e) => {
  var t = O.wrapFragment(Ue(i.body, e), e), a = i.label.slice(1), l = e.sizeMultiplier, o, u = 0, h = _e.isCharacterBox(i.body);
  if (a === "sout")
    o = O.makeSpan(["stretchy", "sout"]), o.height = e.fontMetrics().defaultRuleThickness / l, u = -0.5 * e.fontMetrics().xHeight;
  else if (a === "phase") {
    var d = ct({
      number: 0.6,
      unit: "pt"
    }, e), p = ct({
      number: 0.35,
      unit: "ex"
    }, e), _ = e.havingBaseSizing();
    l = l / _.sizeMultiplier;
    var x = t.height + t.depth + d + p;
    t.style.paddingLeft = ne(x / 2 + d);
    var C = Math.floor(1e3 * x * l), A = a8(C), $ = new cr([new Nr("phase", A)], {
      width: "400em",
      height: ne(C / 1e3),
      viewBox: "0 0 400000 " + C,
      preserveAspectRatio: "xMinYMin slice"
    });
    o = O.makeSvgSpan(["hide-tail"], [$], e), o.style.height = ne(x), u = t.depth + d + p;
  } else {
    /cancel/.test(a) ? h || t.classes.push("cancel-pad") : a === "angl" ? t.classes.push("anglpad") : t.classes.push("boxpad");
    var I = 0, q = 0, H = 0;
    /box/.test(a) ? (H = Math.max(
      e.fontMetrics().fboxrule,
      // default
      e.minRuleThickness
      // User override.
    ), I = e.fontMetrics().fboxsep + (a === "colorbox" ? 0 : H), q = I) : a === "angl" ? (H = Math.max(e.fontMetrics().defaultRuleThickness, e.minRuleThickness), I = 4 * H, q = Math.max(0, 0.25 - t.depth)) : (I = h ? 0.2 : 0, q = I), o = qn.encloseSpan(t, a, I, q, e), /fbox|boxed|fcolorbox/.test(a) ? (o.style.borderStyle = "solid", o.style.borderWidth = ne(H)) : a === "angl" && H !== 0.049 && (o.style.borderTopWidth = ne(H), o.style.borderRightWidth = ne(H)), u = t.depth + q, i.backgroundColor && (o.style.backgroundColor = i.backgroundColor, i.borderColor && (o.style.borderColor = i.borderColor));
  }
  var T;
  if (i.backgroundColor)
    T = O.makeVList({
      positionType: "individualShift",
      children: [
        // Put the color background behind inner;
        {
          type: "elem",
          elem: o,
          shift: u
        },
        {
          type: "elem",
          elem: t,
          shift: 0
        }
      ]
    }, e);
  else {
    var D = /cancel|phase/.test(a) ? ["svg-align"] : [];
    T = O.makeVList({
      positionType: "individualShift",
      children: [
        // Write the \cancel stroke on top of inner.
        {
          type: "elem",
          elem: t,
          shift: 0
        },
        {
          type: "elem",
          elem: o,
          shift: u,
          wrapperClasses: D
        }
      ]
    }, e);
  }
  return /cancel/.test(a) && (T.height = t.height, T.depth = t.depth), /cancel/.test(a) && !h ? O.makeSpan(["mord", "cancel-lap"], [T], e) : O.makeSpan(["mord"], [T], e);
}, eu = (i, e) => {
  var t = 0, a = new j.MathNode(i.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [Qe(i.body, e)]);
  switch (i.label) {
    case "\\cancel":
      a.setAttribute("notation", "updiagonalstrike");
      break;
    case "\\bcancel":
      a.setAttribute("notation", "downdiagonalstrike");
      break;
    case "\\phase":
      a.setAttribute("notation", "phasorangle");
      break;
    case "\\sout":
      a.setAttribute("notation", "horizontalstrike");
      break;
    case "\\fbox":
      a.setAttribute("notation", "box");
      break;
    case "\\angl":
      a.setAttribute("notation", "actuarial");
      break;
    case "\\fcolorbox":
    case "\\colorbox":
      if (t = e.fontMetrics().fboxsep * e.fontMetrics().ptPerEm, a.setAttribute("width", "+" + 2 * t + "pt"), a.setAttribute("height", "+" + 2 * t + "pt"), a.setAttribute("lspace", t + "pt"), a.setAttribute("voffset", t + "pt"), i.label === "\\fcolorbox") {
        var l = Math.max(
          e.fontMetrics().fboxrule,
          // default
          e.minRuleThickness
          // user override
        );
        a.setAttribute("style", "border: " + l + "em solid " + String(i.borderColor));
      }
      break;
    case "\\xcancel":
      a.setAttribute("notation", "updiagonalstrike downdiagonalstrike");
      break;
  }
  return i.backgroundColor && a.setAttribute("mathbackground", i.backgroundColor), a;
};
ae({
  type: "enclose",
  names: ["\\colorbox"],
  props: {
    numArgs: 2,
    allowedInText: !0,
    argTypes: ["color", "text"]
  },
  handler(i, e, t) {
    var {
      parser: a,
      funcName: l
    } = i, o = Te(e[0], "color-token").color, u = e[1];
    return {
      type: "enclose",
      mode: a.mode,
      label: l,
      backgroundColor: o,
      body: u
    };
  },
  htmlBuilder: jo,
  mathmlBuilder: eu
});
ae({
  type: "enclose",
  names: ["\\fcolorbox"],
  props: {
    numArgs: 3,
    allowedInText: !0,
    argTypes: ["color", "color", "text"]
  },
  handler(i, e, t) {
    var {
      parser: a,
      funcName: l
    } = i, o = Te(e[0], "color-token").color, u = Te(e[1], "color-token").color, h = e[2];
    return {
      type: "enclose",
      mode: a.mode,
      label: l,
      backgroundColor: u,
      borderColor: o,
      body: h
    };
  },
  htmlBuilder: jo,
  mathmlBuilder: eu
});
ae({
  type: "enclose",
  names: ["\\fbox"],
  props: {
    numArgs: 1,
    argTypes: ["hbox"],
    allowedInText: !0
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "enclose",
      mode: t.mode,
      label: "\\fbox",
      body: e[0]
    };
  }
});
ae({
  type: "enclose",
  names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    return {
      type: "enclose",
      mode: t.mode,
      label: a,
      body: l
    };
  },
  htmlBuilder: jo,
  mathmlBuilder: eu
});
ae({
  type: "enclose",
  names: ["\\angl"],
  props: {
    numArgs: 1,
    argTypes: ["hbox"],
    allowedInText: !1
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "enclose",
      mode: t.mode,
      label: "\\angl",
      body: e[0]
    };
  }
});
var Qh = {};
function yn(i) {
  for (var {
    type: e,
    names: t,
    props: a,
    handler: l,
    htmlBuilder: o,
    mathmlBuilder: u
  } = i, h = {
    type: e,
    numArgs: a.numArgs || 0,
    allowedInText: !1,
    numOptionalArgs: 0,
    handler: l
  }, d = 0; d < t.length; ++d)
    Qh[t[d]] = h;
  o && (Al[e] = o), u && (Sl[e] = u);
}
var sg = {};
function y(i, e) {
  sg[i] = e;
}
function g4(i) {
  var e = [];
  i.consumeSpaces();
  var t = i.fetch().text;
  for (t === "\\relax" && (i.consume(), i.consumeSpaces(), t = i.fetch().text); t === "\\hline" || t === "\\hdashline"; )
    i.consume(), e.push(t === "\\hdashline"), i.consumeSpaces(), t = i.fetch().text;
  return e;
}
var Nl = (i) => {
  var e = i.parser.settings;
  if (!e.displayMode)
    throw new ge("{" + i.envName + "} can be used only in display mode.");
};
function tu(i) {
  if (i.indexOf("ed") === -1)
    return i.indexOf("*") === -1;
}
function pr(i, e, t) {
  var {
    hskipBeforeAndAfter: a,
    addJot: l,
    cols: o,
    arraystretch: u,
    colSeparationType: h,
    autoTag: d,
    singleRow: p,
    emptySingleRow: _,
    maxNumCols: x,
    leqno: C
  } = e;
  if (i.gullet.beginGroup(), p || i.gullet.macros.set("\\cr", "\\\\\\relax"), !u) {
    var A = i.gullet.expandMacroAsText("\\arraystretch");
    if (A == null)
      u = 1;
    else if (u = parseFloat(A), !u || u < 0)
      throw new ge("Invalid \\arraystretch: " + A);
  }
  i.gullet.beginGroup();
  var $ = [], I = [$], q = [], H = [], T = d != null ? [] : void 0;
  function D() {
    d && i.gullet.macros.set("\\@eqnsw", "1", !0);
  }
  function R() {
    T && (i.gullet.macros.get("\\df@tag") ? (T.push(i.subparse([new Wo("\\df@tag")])), i.gullet.macros.set("\\df@tag", void 0, !0)) : T.push(!!d && i.gullet.macros.get("\\@eqnsw") === "1"));
  }
  for (D(), H.push(g4(i)); ; ) {
    var N = i.parseExpression(!1, p ? "\\end" : "\\\\");
    i.gullet.endGroup(), i.gullet.beginGroup(), N = {
      type: "ordgroup",
      mode: i.mode,
      body: N
    }, t && (N = {
      type: "styling",
      mode: i.mode,
      style: t,
      body: [N]
    }), $.push(N);
    var U = i.fetch().text;
    if (U === "&") {
      if (x && $.length === x) {
        if (p || h)
          throw new ge("Too many tab characters: &", i.nextToken);
        i.settings.reportNonstrict("textEnv", "Too few columns specified in the {array} column argument.");
      }
      i.consume();
    } else if (U === "\\end") {
      R(), $.length === 1 && N.type === "styling" && N.body[0].body.length === 0 && (I.length > 1 || !_) && I.pop(), H.length < I.length + 1 && H.push([]);
      break;
    } else if (U === "\\\\") {
      i.consume();
      var G = void 0;
      i.gullet.future().text !== " " && (G = i.parseSizeGroup(!0)), q.push(G ? G.value : null), R(), H.push(g4(i)), $ = [], I.push($), D();
    } else
      throw new ge("Expected & or \\\\ or \\cr or \\end", i.nextToken);
  }
  return i.gullet.endGroup(), i.gullet.endGroup(), {
    type: "array",
    mode: i.mode,
    addJot: l,
    arraystretch: u,
    body: I,
    cols: o,
    rowGaps: q,
    hskipBeforeAndAfter: a,
    hLinesBeforeRow: H,
    colSeparationType: h,
    tags: T,
    leqno: C
  };
}
function nu(i) {
  return i.slice(0, 1) === "d" ? "display" : "text";
}
var wn = function(e, t) {
  var a, l, o = e.body.length, u = e.hLinesBeforeRow, h = 0, d = new Array(o), p = [], _ = Math.max(
    // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em.
    t.fontMetrics().arrayRuleWidth,
    t.minRuleThickness
    // User override.
  ), x = 1 / t.fontMetrics().ptPerEm, C = 5 * x;
  if (e.colSeparationType && e.colSeparationType === "small") {
    var A = t.havingStyle(xe.SCRIPT).sizeMultiplier;
    C = 0.2778 * (A / t.sizeMultiplier);
  }
  var $ = e.colSeparationType === "CD" ? ct({
    number: 3,
    unit: "ex"
  }, t) : 12 * x, I = 3 * x, q = e.arraystretch * $, H = 0.7 * q, T = 0.3 * q, D = 0;
  function R(w0) {
    for (var U0 = 0; U0 < w0.length; ++U0)
      U0 > 0 && (D += 0.25), p.push({
        pos: D,
        isDashed: w0[U0]
      });
  }
  for (R(u[0]), a = 0; a < e.body.length; ++a) {
    var N = e.body[a], U = H, G = T;
    h < N.length && (h = N.length);
    var te = new Array(N.length);
    for (l = 0; l < N.length; ++l) {
      var J = Ue(N[l], t);
      G < J.depth && (G = J.depth), U < J.height && (U = J.height), te[l] = J;
    }
    var X = e.rowGaps[a], oe = 0;
    X && (oe = ct(X, t), oe > 0 && (oe += T, G < oe && (G = oe), oe = 0)), e.addJot && (G += I), te.height = U, te.depth = G, D += U, te.pos = D, D += G + oe, d[a] = te, R(u[a + 1]);
  }
  var Ae = D / 2 + t.fontMetrics().axisHeight, je = e.cols || [], Me = [], Ne, Xe, he = [];
  if (e.tags && e.tags.some((w0) => w0))
    for (a = 0; a < o; ++a) {
      var ke = d[a], Oe = ke.pos - Ae, ce = e.tags[a], le = void 0;
      ce === !0 ? le = O.makeSpan(["eqn-num"], [], t) : ce === !1 ? le = O.makeSpan([], [], t) : le = O.makeSpan([], Lt(ce, t, !0), t), le.depth = ke.depth, le.height = ke.height, he.push({
        type: "elem",
        elem: le,
        shift: Oe
      });
    }
  for (
    l = 0, Xe = 0;
    // Continue while either there are more columns or more column
    // descriptions, so trailing separators don't get lost.
    l < h || Xe < je.length;
    ++l, ++Xe
  ) {
    for (var Be = je[Xe] || {}, Pe = !0; Be.type === "separator"; ) {
      if (Pe || (Ne = O.makeSpan(["arraycolsep"], []), Ne.style.width = ne(t.fontMetrics().doubleRuleSep), Me.push(Ne)), Be.separator === "|" || Be.separator === ":") {
        var dt = Be.separator === "|" ? "solid" : "dashed", Q = O.makeSpan(["vertical-separator"], [], t);
        Q.style.height = ne(D), Q.style.borderRightWidth = ne(_), Q.style.borderRightStyle = dt, Q.style.margin = "0 " + ne(-_ / 2);
        var vt = D - Ae;
        vt && (Q.style.verticalAlign = ne(-vt)), Me.push(Q);
      } else
        throw new ge("Invalid separator type: " + Be.separator);
      Xe++, Be = je[Xe] || {}, Pe = !1;
    }
    if (!(l >= h)) {
      var Dt = void 0;
      (l > 0 || e.hskipBeforeAndAfter) && (Dt = _e.deflt(Be.pregap, C), Dt !== 0 && (Ne = O.makeSpan(["arraycolsep"], []), Ne.style.width = ne(Dt), Me.push(Ne)));
      var at = [];
      for (a = 0; a < o; ++a) {
        var Bt = d[a], l0 = Bt[l];
        if (l0) {
          var Kt = Bt.pos - Ae;
          l0.depth = Bt.depth, l0.height = Bt.height, at.push({
            type: "elem",
            elem: l0,
            shift: Kt
          });
        }
      }
      at = O.makeVList({
        positionType: "individualShift",
        children: at
      }, t), at = O.makeSpan(["col-align-" + (Be.align || "c")], [at]), Me.push(at), (l < h - 1 || e.hskipBeforeAndAfter) && (Dt = _e.deflt(Be.postgap, C), Dt !== 0 && (Ne = O.makeSpan(["arraycolsep"], []), Ne.style.width = ne(Dt), Me.push(Ne)));
    }
  }
  if (d = O.makeSpan(["mtable"], Me), p.length > 0) {
    for (var Pt = O.makeLineSpan("hline", t, _), b0 = O.makeLineSpan("hdashline", t, _), st = [{
      type: "elem",
      elem: d,
      shift: 0
    }]; p.length > 0; ) {
      var y0 = p.pop(), Pn = y0.pos - Ae;
      y0.isDashed ? st.push({
        type: "elem",
        elem: b0,
        shift: Pn
      }) : st.push({
        type: "elem",
        elem: Pt,
        shift: Pn
      });
    }
    d = O.makeVList({
      positionType: "individualShift",
      children: st
    }, t);
  }
  if (he.length === 0)
    return O.makeSpan(["mord"], [d], t);
  var kt = O.makeVList({
    positionType: "individualShift",
    children: he
  }, t);
  return kt = O.makeSpan(["tag"], [kt], t), O.makeFragment([d, kt]);
}, og = {
  c: "center ",
  l: "left ",
  r: "right "
}, xn = function(e, t) {
  for (var a = [], l = new j.MathNode("mtd", [], ["mtr-glue"]), o = new j.MathNode("mtd", [], ["mml-eqn-num"]), u = 0; u < e.body.length; u++) {
    for (var h = e.body[u], d = [], p = 0; p < h.length; p++)
      d.push(new j.MathNode("mtd", [Qe(h[p], t)]));
    e.tags && e.tags[u] && (d.unshift(l), d.push(l), e.leqno ? d.unshift(o) : d.push(o)), a.push(new j.MathNode("mtr", d));
  }
  var _ = new j.MathNode("mtable", a), x = e.arraystretch === 0.5 ? 0.1 : 0.16 + e.arraystretch - 1 + (e.addJot ? 0.09 : 0);
  _.setAttribute("rowspacing", ne(x));
  var C = "", A = "";
  if (e.cols && e.cols.length > 0) {
    var $ = e.cols, I = "", q = !1, H = 0, T = $.length;
    $[0].type === "separator" && (C += "top ", H = 1), $[$.length - 1].type === "separator" && (C += "bottom ", T -= 1);
    for (var D = H; D < T; D++)
      $[D].type === "align" ? (A += og[$[D].align], q && (I += "none "), q = !0) : $[D].type === "separator" && q && (I += $[D].separator === "|" ? "solid " : "dashed ", q = !1);
    _.setAttribute("columnalign", A.trim()), /[sd]/.test(I) && _.setAttribute("columnlines", I.trim());
  }
  if (e.colSeparationType === "align") {
    for (var R = e.cols || [], N = "", U = 1; U < R.length; U++)
      N += U % 2 ? "0em " : "1em ";
    _.setAttribute("columnspacing", N.trim());
  } else e.colSeparationType === "alignat" || e.colSeparationType === "gather" ? _.setAttribute("columnspacing", "0em") : e.colSeparationType === "small" ? _.setAttribute("columnspacing", "0.2778em") : e.colSeparationType === "CD" ? _.setAttribute("columnspacing", "0.5em") : _.setAttribute("columnspacing", "1em");
  var G = "", te = e.hLinesBeforeRow;
  C += te[0].length > 0 ? "left " : "", C += te[te.length - 1].length > 0 ? "right " : "";
  for (var J = 1; J < te.length - 1; J++)
    G += te[J].length === 0 ? "none " : te[J][0] ? "dashed " : "solid ";
  return /[sd]/.test(G) && _.setAttribute("rowlines", G.trim()), C !== "" && (_ = new j.MathNode("menclose", [_]), _.setAttribute("notation", C.trim())), e.arraystretch && e.arraystretch < 1 && (_ = new j.MathNode("mstyle", [_]), _.setAttribute("scriptlevel", "1")), _;
}, jh = function(e, t) {
  e.envName.indexOf("ed") === -1 && Nl(e);
  var a = [], l = e.envName.indexOf("at") > -1 ? "alignat" : "align", o = e.envName === "split", u = pr(e.parser, {
    cols: a,
    addJot: !0,
    autoTag: o ? void 0 : tu(e.envName),
    emptySingleRow: !0,
    colSeparationType: l,
    maxNumCols: o ? 2 : void 0,
    leqno: e.parser.settings.leqno
  }, "display"), h, d = 0, p = {
    type: "ordgroup",
    mode: e.mode,
    body: []
  };
  if (t[0] && t[0].type === "ordgroup") {
    for (var _ = "", x = 0; x < t[0].body.length; x++) {
      var C = Te(t[0].body[x], "textord");
      _ += C.text;
    }
    h = Number(_), d = h * 2;
  }
  var A = !d;
  u.body.forEach(function(H) {
    for (var T = 1; T < H.length; T += 2) {
      var D = Te(H[T], "styling"), R = Te(D.body[0], "ordgroup");
      R.body.unshift(p);
    }
    if (A)
      d < H.length && (d = H.length);
    else {
      var N = H.length / 2;
      if (h < N)
        throw new ge("Too many math in a row: " + ("expected " + h + ", but got " + N), H[0]);
    }
  });
  for (var $ = 0; $ < d; ++$) {
    var I = "r", q = 0;
    $ % 2 === 1 ? I = "l" : $ > 0 && A && (q = 1), a[$] = {
      type: "align",
      align: I,
      pregap: q,
      postgap: 0
    };
  }
  return u.colSeparationType = A ? "align" : "alignat", u;
};
yn({
  type: "array",
  names: ["array", "darray"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var t = Rl(e[0]), a = t ? [e[0]] : Te(e[0], "ordgroup").body, l = a.map(function(u) {
      var h = Ko(u), d = h.text;
      if ("lcr".indexOf(d) !== -1)
        return {
          type: "align",
          align: d
        };
      if (d === "|")
        return {
          type: "separator",
          separator: "|"
        };
      if (d === ":")
        return {
          type: "separator",
          separator: ":"
        };
      throw new ge("Unknown column alignment: " + d, u);
    }), o = {
      cols: l,
      hskipBeforeAndAfter: !0,
      // \@preamble in lttab.dtx
      maxNumCols: l.length
    };
    return pr(i.parser, o, nu(i.envName));
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*"],
  props: {
    numArgs: 0
  },
  handler(i) {
    var e = {
      matrix: null,
      pmatrix: ["(", ")"],
      bmatrix: ["[", "]"],
      Bmatrix: ["\\{", "\\}"],
      vmatrix: ["|", "|"],
      Vmatrix: ["\\Vert", "\\Vert"]
    }[i.envName.replace("*", "")], t = "c", a = {
      hskipBeforeAndAfter: !1,
      cols: [{
        type: "align",
        align: t
      }]
    };
    if (i.envName.charAt(i.envName.length - 1) === "*") {
      var l = i.parser;
      if (l.consumeSpaces(), l.fetch().text === "[") {
        if (l.consume(), l.consumeSpaces(), t = l.fetch().text, "lcr".indexOf(t) === -1)
          throw new ge("Expected l or c or r", l.nextToken);
        l.consume(), l.consumeSpaces(), l.expect("]"), l.consume(), a.cols = [{
          type: "align",
          align: t
        }];
      }
    }
    var o = pr(i.parser, a, nu(i.envName)), u = Math.max(0, ...o.body.map((h) => h.length));
    return o.cols = new Array(u).fill({
      type: "align",
      align: t
    }), e ? {
      type: "leftright",
      mode: i.mode,
      body: [o],
      left: e[0],
      right: e[1],
      rightColor: void 0
      // \right uninfluenced by \color in array
    } : o;
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["smallmatrix"],
  props: {
    numArgs: 0
  },
  handler(i) {
    var e = {
      arraystretch: 0.5
    }, t = pr(i.parser, e, "script");
    return t.colSeparationType = "small", t;
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["subarray"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var t = Rl(e[0]), a = t ? [e[0]] : Te(e[0], "ordgroup").body, l = a.map(function(u) {
      var h = Ko(u), d = h.text;
      if ("lc".indexOf(d) !== -1)
        return {
          type: "align",
          align: d
        };
      throw new ge("Unknown column alignment: " + d, u);
    });
    if (l.length > 1)
      throw new ge("{subarray} can contain only one column");
    var o = {
      cols: l,
      hskipBeforeAndAfter: !1,
      arraystretch: 0.5
    };
    if (o = pr(i.parser, o, "script"), o.body.length > 0 && o.body[0].length > 1)
      throw new ge("{subarray} can contain only one column");
    return o;
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["cases", "dcases", "rcases", "drcases"],
  props: {
    numArgs: 0
  },
  handler(i) {
    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 = pr(i.parser, e, nu(i.envName));
    return {
      type: "leftright",
      mode: i.mode,
      body: [t],
      left: i.envName.indexOf("r") > -1 ? "." : "\\{",
      right: i.envName.indexOf("r") > -1 ? "\\}" : ".",
      rightColor: void 0
    };
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["align", "align*", "aligned", "split"],
  props: {
    numArgs: 0
  },
  handler: jh,
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["gathered", "gather", "gather*"],
  props: {
    numArgs: 0
  },
  handler(i) {
    _e.contains(["gather", "gather*"], i.envName) && Nl(i);
    var e = {
      cols: [{
        type: "align",
        align: "c"
      }],
      addJot: !0,
      colSeparationType: "gather",
      autoTag: tu(i.envName),
      emptySingleRow: !0,
      leqno: i.parser.settings.leqno
    };
    return pr(i.parser, e, "display");
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["alignat", "alignat*", "alignedat"],
  props: {
    numArgs: 1
  },
  handler: jh,
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["equation", "equation*"],
  props: {
    numArgs: 0
  },
  handler(i) {
    Nl(i);
    var e = {
      autoTag: tu(i.envName),
      emptySingleRow: !0,
      singleRow: !0,
      maxNumCols: 1,
      leqno: i.parser.settings.leqno
    };
    return pr(i.parser, e, "display");
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
yn({
  type: "array",
  names: ["CD"],
  props: {
    numArgs: 0
  },
  handler(i) {
    return Nl(i), Y8(i.parser);
  },
  htmlBuilder: wn,
  mathmlBuilder: xn
});
y("\\nonumber", "\\gdef\\@eqnsw{0}");
y("\\notag", "\\nonumber");
ae({
  type: "text",
  // Doesn't matter what this is.
  names: ["\\hline", "\\hdashline"],
  props: {
    numArgs: 0,
    allowedInText: !0,
    allowedInMath: !0
  },
  handler(i, e) {
    throw new ge(i.funcName + " valid only within array environment");
  }
});
var v4 = Qh;
ae({
  type: "environment",
  names: ["\\begin", "\\end"],
  props: {
    numArgs: 1,
    argTypes: ["text"]
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    if (l.type !== "ordgroup")
      throw new ge("Invalid environment name", l);
    for (var o = "", u = 0; u < l.body.length; ++u)
      o += Te(l.body[u], "textord").text;
    if (a === "\\begin") {
      if (!v4.hasOwnProperty(o))
        throw new ge("No such environment: " + o, l);
      var h = v4[o], {
        args: d,
        optArgs: p
      } = t.parseArguments("\\begin{" + o + "}", h), _ = {
        mode: t.mode,
        envName: o,
        parser: t
      }, x = h.handler(_, d, p);
      t.expect("\\end", !1);
      var C = t.nextToken, A = Te(t.parseFunction(), "environment");
      if (A.name !== o)
        throw new ge("Mismatch: \\begin{" + o + "} matched by \\end{" + A.name + "}", C);
      return x;
    }
    return {
      type: "environment",
      mode: t.mode,
      name: o,
      nameGroup: l
    };
  }
});
var ef = (i, e) => {
  var t = i.font, a = e.withFont(t);
  return Ue(i.body, a);
}, tf = (i, e) => {
  var t = i.font, a = e.withFont(t);
  return Qe(i.body, a);
}, _4 = {
  "\\Bbb": "\\mathbb",
  "\\bold": "\\mathbf",
  "\\frak": "\\mathfrak",
  "\\bm": "\\boldsymbol"
};
ae({
  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: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = Fl(e[0]), o = a;
    return o in _4 && (o = _4[o]), {
      type: "font",
      mode: t.mode,
      font: o.slice(1),
      body: l
    };
  },
  htmlBuilder: ef,
  mathmlBuilder: tf
});
ae({
  type: "mclass",
  names: ["\\boldsymbol", "\\bm"],
  props: {
    numArgs: 1
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = e[0], l = _e.isCharacterBox(a);
    return {
      type: "mclass",
      mode: t.mode,
      mclass: Il(a),
      body: [{
        type: "font",
        mode: t.mode,
        font: "boldsymbol",
        body: a
      }],
      isCharacterBox: l
    };
  }
});
ae({
  type: "font",
  names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"],
  props: {
    numArgs: 0,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a,
      breakOnTokenText: l
    } = i, {
      mode: o
    } = t, u = t.parseExpression(!0, l), h = "math" + a.slice(1);
    return {
      type: "font",
      mode: o,
      font: h,
      body: {
        type: "ordgroup",
        mode: t.mode,
        body: u
      }
    };
  },
  htmlBuilder: ef,
  mathmlBuilder: tf
});
var nf = (i, e) => {
  var t = e;
  return i === "display" ? t = t.id >= xe.SCRIPT.id ? t.text() : xe.DISPLAY : i === "text" && t.size === xe.DISPLAY.size ? t = xe.TEXT : i === "script" ? t = xe.SCRIPT : i === "scriptscript" && (t = xe.SCRIPTSCRIPT), t;
}, ru = (i, e) => {
  var t = nf(i.size, e.style), a = t.fracNum(), l = t.fracDen(), o;
  o = e.havingStyle(a);
  var u = Ue(i.numer, o, e);
  if (i.continued) {
    var h = 8.5 / e.fontMetrics().ptPerEm, d = 3.5 / e.fontMetrics().ptPerEm;
    u.height = u.height < h ? h : u.height, u.depth = u.depth < d ? d : u.depth;
  }
  o = e.havingStyle(l);
  var p = Ue(i.denom, o, e), _, x, C;
  i.hasBarLine ? (i.barSize ? (x = ct(i.barSize, e), _ = O.makeLineSpan("frac-line", e, x)) : _ = O.makeLineSpan("frac-line", e), x = _.height, C = _.height) : (_ = null, x = 0, C = e.fontMetrics().defaultRuleThickness);
  var A, $, I;
  t.size === xe.DISPLAY.size || i.size === "display" ? (A = e.fontMetrics().num1, x > 0 ? $ = 3 * C : $ = 7 * C, I = e.fontMetrics().denom1) : (x > 0 ? (A = e.fontMetrics().num2, $ = C) : (A = e.fontMetrics().num3, $ = 3 * C), I = e.fontMetrics().denom2);
  var q;
  if (_) {
    var T = e.fontMetrics().axisHeight;
    A - u.depth - (T + 0.5 * x) < $ && (A += $ - (A - u.depth - (T + 0.5 * x))), T - 0.5 * x - (p.height - I) < $ && (I += $ - (T - 0.5 * x - (p.height - I)));
    var D = -(T - 0.5 * x);
    q = O.makeVList({
      positionType: "individualShift",
      children: [{
        type: "elem",
        elem: p,
        shift: I
      }, {
        type: "elem",
        elem: _,
        shift: D
      }, {
        type: "elem",
        elem: u,
        shift: -A
      }]
    }, e);
  } else {
    var H = A - u.depth - (p.height - I);
    H < $ && (A += 0.5 * ($ - H), I += 0.5 * ($ - H)), q = O.makeVList({
      positionType: "individualShift",
      children: [{
        type: "elem",
        elem: p,
        shift: I
      }, {
        type: "elem",
        elem: u,
        shift: -A
      }]
    }, e);
  }
  o = e.havingStyle(t), q.height *= o.sizeMultiplier / e.sizeMultiplier, q.depth *= o.sizeMultiplier / e.sizeMultiplier;
  var R;
  t.size === xe.DISPLAY.size ? R = e.fontMetrics().delim1 : t.size === xe.SCRIPTSCRIPT.size ? R = e.havingStyle(xe.SCRIPT).fontMetrics().delim2 : R = e.fontMetrics().delim2;
  var N, U;
  return i.leftDelim == null ? N = Qa(e, ["mopen"]) : N = Nn.customSizedDelim(i.leftDelim, R, !0, e.havingStyle(t), i.mode, ["mopen"]), i.continued ? U = O.makeSpan([]) : i.rightDelim == null ? U = Qa(e, ["mclose"]) : U = Nn.customSizedDelim(i.rightDelim, R, !0, e.havingStyle(t), i.mode, ["mclose"]), O.makeSpan(["mord"].concat(o.sizingClasses(e)), [N, O.makeSpan(["mfrac"], [q]), U], e);
}, au = (i, e) => {
  var t = new j.MathNode("mfrac", [Qe(i.numer, e), Qe(i.denom, e)]);
  if (!i.hasBarLine)
    t.setAttribute("linethickness", "0px");
  else if (i.barSize) {
    var a = ct(i.barSize, e);
    t.setAttribute("linethickness", ne(a));
  }
  var l = nf(i.size, e.style);
  if (l.size !== e.style.size) {
    t = new j.MathNode("mstyle", [t]);
    var o = l.size === xe.DISPLAY.size ? "true" : "false";
    t.setAttribute("displaystyle", o), t.setAttribute("scriptlevel", "0");
  }
  if (i.leftDelim != null || i.rightDelim != null) {
    var u = [];
    if (i.leftDelim != null) {
      var h = new j.MathNode("mo", [new j.TextNode(i.leftDelim.replace("\\", ""))]);
      h.setAttribute("fence", "true"), u.push(h);
    }
    if (u.push(t), i.rightDelim != null) {
      var d = new j.MathNode("mo", [new j.TextNode(i.rightDelim.replace("\\", ""))]);
      d.setAttribute("fence", "true"), u.push(d);
    }
    return Xo(u);
  }
  return t;
};
ae({
  type: "genfrac",
  names: [
    "\\dfrac",
    "\\frac",
    "\\tfrac",
    "\\dbinom",
    "\\binom",
    "\\tbinom",
    "\\\\atopfrac",
    // can’t be entered directly
    "\\\\bracefrac",
    "\\\\brackfrac"
    // ditto
  ],
  props: {
    numArgs: 2,
    allowedInArgument: !0
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0], o = e[1], u, h = null, d = null, p = "auto";
    switch (a) {
      case "\\dfrac":
      case "\\frac":
      case "\\tfrac":
        u = !0;
        break;
      case "\\\\atopfrac":
        u = !1;
        break;
      case "\\dbinom":
      case "\\binom":
      case "\\tbinom":
        u = !1, h = "(", d = ")";
        break;
      case "\\\\bracefrac":
        u = !1, h = "\\{", d = "\\}";
        break;
      case "\\\\brackfrac":
        u = !1, h = "[", d = "]";
        break;
      default:
        throw new Error("Unrecognized genfrac command");
    }
    switch (a) {
      case "\\dfrac":
      case "\\dbinom":
        p = "display";
        break;
      case "\\tfrac":
      case "\\tbinom":
        p = "text";
        break;
    }
    return {
      type: "genfrac",
      mode: t.mode,
      continued: !1,
      numer: l,
      denom: o,
      hasBarLine: u,
      leftDelim: h,
      rightDelim: d,
      size: p,
      barSize: null
    };
  },
  htmlBuilder: ru,
  mathmlBuilder: au
});
ae({
  type: "genfrac",
  names: ["\\cfrac"],
  props: {
    numArgs: 2
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0], o = e[1];
    return {
      type: "genfrac",
      mode: t.mode,
      continued: !0,
      numer: l,
      denom: o,
      hasBarLine: !0,
      leftDelim: null,
      rightDelim: null,
      size: "display",
      barSize: null
    };
  }
});
ae({
  type: "infix",
  names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"],
  props: {
    numArgs: 0,
    infix: !0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t,
      token: a
    } = i, l;
    switch (t) {
      case "\\over":
        l = "\\frac";
        break;
      case "\\choose":
        l = "\\binom";
        break;
      case "\\atop":
        l = "\\\\atopfrac";
        break;
      case "\\brace":
        l = "\\\\bracefrac";
        break;
      case "\\brack":
        l = "\\\\brackfrac";
        break;
      default:
        throw new Error("Unrecognized infix genfrac command");
    }
    return {
      type: "infix",
      mode: e.mode,
      replaceWith: l,
      token: a
    };
  }
});
var b4 = ["display", "text", "script", "scriptscript"], y4 = function(e) {
  var t = null;
  return e.length > 0 && (t = e, t = t === "." ? null : t), t;
};
ae({
  type: "genfrac",
  names: ["\\genfrac"],
  props: {
    numArgs: 6,
    allowedInArgument: !0,
    argTypes: ["math", "math", "size", "text", "math", "math"]
  },
  handler(i, e) {
    var {
      parser: t
    } = i, a = e[4], l = e[5], o = Fl(e[0]), u = o.type === "atom" && o.family === "open" ? y4(o.text) : null, h = Fl(e[1]), d = h.type === "atom" && h.family === "close" ? y4(h.text) : null, p = Te(e[2], "size"), _, x = null;
    p.isBlank ? _ = !0 : (x = p.value, _ = x.number > 0);
    var C = "auto", A = e[3];
    if (A.type === "ordgroup") {
      if (A.body.length > 0) {
        var $ = Te(A.body[0], "textord");
        C = b4[Number($.text)];
      }
    } else
      A = Te(A, "textord"), C = b4[Number(A.text)];
    return {
      type: "genfrac",
      mode: t.mode,
      numer: a,
      denom: l,
      continued: !1,
      hasBarLine: _,
      barSize: x,
      leftDelim: u,
      rightDelim: d,
      size: C
    };
  },
  htmlBuilder: ru,
  mathmlBuilder: au
});
ae({
  type: "infix",
  names: ["\\above"],
  props: {
    numArgs: 1,
    argTypes: ["size"],
    infix: !0
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a,
      token: l
    } = i;
    return {
      type: "infix",
      mode: t.mode,
      replaceWith: "\\\\abovefrac",
      size: Te(e[0], "size").value,
      token: l
    };
  }
});
ae({
  type: "genfrac",
  names: ["\\\\abovefrac"],
  props: {
    numArgs: 3,
    argTypes: ["math", "size", "math"]
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0], o = Up(Te(e[1], "infix").size), u = e[2], h = o.number > 0;
    return {
      type: "genfrac",
      mode: t.mode,
      numer: l,
      denom: u,
      continued: !1,
      hasBarLine: h,
      barSize: o,
      leftDelim: null,
      rightDelim: null,
      size: "auto"
    };
  },
  htmlBuilder: ru,
  mathmlBuilder: au
});
var rf = (i, e) => {
  var t = e.style, a, l;
  i.type === "supsub" ? (a = i.sup ? Ue(i.sup, e.havingStyle(t.sup()), e) : Ue(i.sub, e.havingStyle(t.sub()), e), l = Te(i.base, "horizBrace")) : l = Te(i, "horizBrace");
  var o = Ue(l.base, e.havingBaseStyle(xe.DISPLAY)), u = qn.svgSpan(l, e), h;
  if (l.isOver ? (h = O.makeVList({
    positionType: "firstBaseline",
    children: [{
      type: "elem",
      elem: o
    }, {
      type: "kern",
      size: 0.1
    }, {
      type: "elem",
      elem: u
    }]
  }, e), h.children[0].children[0].children[1].classes.push("svg-align")) : (h = O.makeVList({
    positionType: "bottom",
    positionData: o.depth + 0.1 + u.height,
    children: [{
      type: "elem",
      elem: u
    }, {
      type: "kern",
      size: 0.1
    }, {
      type: "elem",
      elem: o
    }]
  }, e), h.children[0].children[0].children[0].classes.push("svg-align")), a) {
    var d = O.makeSpan(["mord", l.isOver ? "mover" : "munder"], [h], e);
    l.isOver ? h = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: d
      }, {
        type: "kern",
        size: 0.2
      }, {
        type: "elem",
        elem: a
      }]
    }, e) : h = O.makeVList({
      positionType: "bottom",
      positionData: d.depth + 0.2 + a.height + a.depth,
      children: [{
        type: "elem",
        elem: a
      }, {
        type: "kern",
        size: 0.2
      }, {
        type: "elem",
        elem: d
      }]
    }, e);
  }
  return O.makeSpan(["mord", l.isOver ? "mover" : "munder"], [h], e);
}, ug = (i, e) => {
  var t = qn.mathMLnode(i.label);
  return new j.MathNode(i.isOver ? "mover" : "munder", [Qe(i.base, e), t]);
};
ae({
  type: "horizBrace",
  names: ["\\overbrace", "\\underbrace"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i;
    return {
      type: "horizBrace",
      mode: t.mode,
      label: a,
      isOver: /^\\over/.test(a),
      base: e[0]
    };
  },
  htmlBuilder: rf,
  mathmlBuilder: ug
});
ae({
  type: "href",
  names: ["\\href"],
  props: {
    numArgs: 2,
    argTypes: ["url", "original"],
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = e[1], l = Te(e[0], "url").url;
    return t.settings.isTrusted({
      command: "\\href",
      url: l
    }) ? {
      type: "href",
      mode: t.mode,
      href: l,
      body: wt(a)
    } : t.formatUnsupportedCmd("\\href");
  },
  htmlBuilder: (i, e) => {
    var t = Lt(i.body, e, !1);
    return O.makeAnchor(i.href, [], t, e);
  },
  mathmlBuilder: (i, e) => {
    var t = hr(i.body, e);
    return t instanceof nn || (t = new nn("mrow", [t])), t.setAttribute("href", i.href), t;
  }
});
ae({
  type: "href",
  names: ["\\url"],
  props: {
    numArgs: 1,
    argTypes: ["url"],
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = Te(e[0], "url").url;
    if (!t.settings.isTrusted({
      command: "\\url",
      url: a
    }))
      return t.formatUnsupportedCmd("\\url");
    for (var l = [], o = 0; o < a.length; o++) {
      var u = a[o];
      u === "~" && (u = "\\textasciitilde"), l.push({
        type: "textord",
        mode: "text",
        text: u
      });
    }
    var h = {
      type: "text",
      mode: t.mode,
      font: "\\texttt",
      body: l
    };
    return {
      type: "href",
      mode: t.mode,
      href: a,
      body: wt(h)
    };
  }
});
ae({
  type: "hbox",
  names: ["\\hbox"],
  props: {
    numArgs: 1,
    argTypes: ["text"],
    allowedInText: !0,
    primitive: !0
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "hbox",
      mode: t.mode,
      body: wt(e[0])
    };
  },
  htmlBuilder(i, e) {
    var t = Lt(i.body, e, !1);
    return O.makeFragment(t);
  },
  mathmlBuilder(i, e) {
    return new j.MathNode("mrow", _0(i.body, e));
  }
});
ae({
  type: "html",
  names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"],
  props: {
    numArgs: 2,
    argTypes: ["raw", "original"],
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a,
      token: l
    } = i, o = Te(e[0], "raw").string, u = e[1];
    t.settings.strict && t.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode");
    var h, d = {};
    switch (a) {
      case "\\htmlClass":
        d.class = o, h = {
          command: "\\htmlClass",
          class: o
        };
        break;
      case "\\htmlId":
        d.id = o, h = {
          command: "\\htmlId",
          id: o
        };
        break;
      case "\\htmlStyle":
        d.style = o, h = {
          command: "\\htmlStyle",
          style: o
        };
        break;
      case "\\htmlData": {
        for (var p = o.split(","), _ = 0; _ < p.length; _++) {
          var x = p[_].split("=");
          if (x.length !== 2)
            throw new ge("Error parsing key-value for \\htmlData");
          d["data-" + x[0].trim()] = x[1].trim();
        }
        h = {
          command: "\\htmlData",
          attributes: d
        };
        break;
      }
      default:
        throw new Error("Unrecognized html command");
    }
    return t.settings.isTrusted(h) ? {
      type: "html",
      mode: t.mode,
      attributes: d,
      body: wt(u)
    } : t.formatUnsupportedCmd(a);
  },
  htmlBuilder: (i, e) => {
    var t = Lt(i.body, e, !1), a = ["enclosing"];
    i.attributes.class && a.push(...i.attributes.class.trim().split(/\s+/));
    var l = O.makeSpan(a, t, e);
    for (var o in i.attributes)
      o !== "class" && i.attributes.hasOwnProperty(o) && l.setAttribute(o, i.attributes[o]);
    return l;
  },
  mathmlBuilder: (i, e) => hr(i.body, e)
});
ae({
  type: "htmlmathml",
  names: ["\\html@mathml"],
  props: {
    numArgs: 2,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i;
    return {
      type: "htmlmathml",
      mode: t.mode,
      html: wt(e[0]),
      mathml: wt(e[1])
    };
  },
  htmlBuilder: (i, e) => {
    var t = Lt(i.html, e, !1);
    return O.makeFragment(t);
  },
  mathmlBuilder: (i, e) => hr(i.mathml, e)
});
var ho = 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 ge("Invalid size: '" + e + "' in \\includegraphics");
  var a = {
    number: +(t[1] + t[2]),
    // sign + magnitude, cast to number
    unit: t[3]
  };
  if (!c8(a))
    throw new ge("Invalid unit: '" + a.unit + "' in \\includegraphics.");
  return a;
};
ae({
  type: "includegraphics",
  names: ["\\includegraphics"],
  props: {
    numArgs: 1,
    numOptionalArgs: 1,
    argTypes: ["raw", "url"],
    allowedInText: !1
  },
  handler: (i, e, t) => {
    var {
      parser: a
    } = i, l = {
      number: 0,
      unit: "em"
    }, o = {
      number: 0.9,
      unit: "em"
    }, u = {
      number: 0,
      unit: "em"
    }, h = "";
    if (t[0])
      for (var d = Te(t[0], "raw").string, p = d.split(","), _ = 0; _ < p.length; _++) {
        var x = p[_].split("=");
        if (x.length === 2) {
          var C = x[1].trim();
          switch (x[0].trim()) {
            case "alt":
              h = C;
              break;
            case "width":
              l = ho(C);
              break;
            case "height":
              o = ho(C);
              break;
            case "totalheight":
              u = ho(C);
              break;
            default:
              throw new ge("Invalid key: '" + x[0] + "' in \\includegraphics.");
          }
        }
      }
    var A = Te(e[0], "url").url;
    return h === "" && (h = A, h = h.replace(/^.*[\\/]/, ""), h = h.substring(0, h.lastIndexOf("."))), a.settings.isTrusted({
      command: "\\includegraphics",
      url: A
    }) ? {
      type: "includegraphics",
      mode: a.mode,
      alt: h,
      width: l,
      height: o,
      totalheight: u,
      src: A
    } : a.formatUnsupportedCmd("\\includegraphics");
  },
  htmlBuilder: (i, e) => {
    var t = ct(i.height, e), a = 0;
    i.totalheight.number > 0 && (a = ct(i.totalheight, e) - t);
    var l = 0;
    i.width.number > 0 && (l = ct(i.width, e));
    var o = {
      height: ne(t + a)
    };
    l > 0 && (o.width = ne(l)), a > 0 && (o.verticalAlign = ne(-a));
    var u = new h8(i.src, i.alt, o);
    return u.height = t, u.depth = a, u;
  },
  mathmlBuilder: (i, e) => {
    var t = new j.MathNode("mglyph", []);
    t.setAttribute("alt", i.alt);
    var a = ct(i.height, e), l = 0;
    if (i.totalheight.number > 0 && (l = ct(i.totalheight, e) - a, t.setAttribute("valign", ne(-l))), t.setAttribute("height", ne(a + l)), i.width.number > 0) {
      var o = ct(i.width, e);
      t.setAttribute("width", ne(o));
    }
    return t.setAttribute("src", i.src), t;
  }
});
ae({
  type: "kern",
  names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"],
  props: {
    numArgs: 1,
    argTypes: ["size"],
    primitive: !0,
    allowedInText: !0
  },
  handler(i, e) {
    var {
      parser: t,
      funcName: a
    } = i, l = Te(e[0], "size");
    if (t.settings.strict) {
      var o = a[1] === "m", u = l.value.unit === "mu";
      o ? (u || t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + a + " supports only mu units, " + ("not " + l.value.unit + " units")), t.mode !== "math" && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + a + " works only in math mode")) : u && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + a + " doesn't support mu units");
    }
    return {
      type: "kern",
      mode: t.mode,
      dimension: l.value
    };
  },
  htmlBuilder(i, e) {
    return O.makeGlue(i.dimension, e);
  },
  mathmlBuilder(i, e) {
    var t = ct(i.dimension, e);
    return new j.SpaceNode(t);
  }
});
ae({
  type: "lap",
  names: ["\\mathllap", "\\mathrlap", "\\mathclap"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    return {
      type: "lap",
      mode: t.mode,
      alignment: a.slice(5),
      body: l
    };
  },
  htmlBuilder: (i, e) => {
    var t;
    i.alignment === "clap" ? (t = O.makeSpan([], [Ue(i.body, e)]), t = O.makeSpan(["inner"], [t], e)) : t = O.makeSpan(["inner"], [Ue(i.body, e)]);
    var a = O.makeSpan(["fix"], []), l = O.makeSpan([i.alignment], [t, a], e), o = O.makeSpan(["strut"]);
    return o.style.height = ne(l.height + l.depth), l.depth && (o.style.verticalAlign = ne(-l.depth)), l.children.unshift(o), l = O.makeSpan(["thinbox"], [l], e), O.makeSpan(["mord", "vbox"], [l], e);
  },
  mathmlBuilder: (i, e) => {
    var t = new j.MathNode("mpadded", [Qe(i.body, e)]);
    if (i.alignment !== "rlap") {
      var a = i.alignment === "llap" ? "-1" : "-0.5";
      t.setAttribute("lspace", a + "width");
    }
    return t.setAttribute("width", "0px"), t;
  }
});
ae({
  type: "styling",
  names: ["\\(", "$"],
  props: {
    numArgs: 0,
    allowedInText: !0,
    allowedInMath: !1
  },
  handler(i, e) {
    var {
      funcName: t,
      parser: a
    } = i, l = a.mode;
    a.switchMode("math");
    var o = t === "\\(" ? "\\)" : "$", u = a.parseExpression(!1, o);
    return a.expect(o), a.switchMode(l), {
      type: "styling",
      mode: a.mode,
      style: "text",
      body: u
    };
  }
});
ae({
  type: "text",
  // Doesn't matter what this is.
  names: ["\\)", "\\]"],
  props: {
    numArgs: 0,
    allowedInText: !0,
    allowedInMath: !1
  },
  handler(i, e) {
    throw new ge("Mismatched " + i.funcName);
  }
});
var w4 = (i, e) => {
  switch (e.style.size) {
    case xe.DISPLAY.size:
      return i.display;
    case xe.TEXT.size:
      return i.text;
    case xe.SCRIPT.size:
      return i.script;
    case xe.SCRIPTSCRIPT.size:
      return i.scriptscript;
    default:
      return i.text;
  }
};
ae({
  type: "mathchoice",
  names: ["\\mathchoice"],
  props: {
    numArgs: 4,
    primitive: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i;
    return {
      type: "mathchoice",
      mode: t.mode,
      display: wt(e[0]),
      text: wt(e[1]),
      script: wt(e[2]),
      scriptscript: wt(e[3])
    };
  },
  htmlBuilder: (i, e) => {
    var t = w4(i, e), a = Lt(t, e, !1);
    return O.makeFragment(a);
  },
  mathmlBuilder: (i, e) => {
    var t = w4(i, e);
    return hr(t, e);
  }
});
var af = (i, e, t, a, l, o, u) => {
  i = O.makeSpan([], [i]);
  var h = t && _e.isCharacterBox(t), d, p;
  if (e) {
    var _ = Ue(e, a.havingStyle(l.sup()), a);
    p = {
      elem: _,
      kern: Math.max(a.fontMetrics().bigOpSpacing1, a.fontMetrics().bigOpSpacing3 - _.depth)
    };
  }
  if (t) {
    var x = Ue(t, a.havingStyle(l.sub()), a);
    d = {
      elem: x,
      kern: Math.max(a.fontMetrics().bigOpSpacing2, a.fontMetrics().bigOpSpacing4 - x.height)
    };
  }
  var C;
  if (p && d) {
    var A = a.fontMetrics().bigOpSpacing5 + d.elem.height + d.elem.depth + d.kern + i.depth + u;
    C = O.makeVList({
      positionType: "bottom",
      positionData: A,
      children: [{
        type: "kern",
        size: a.fontMetrics().bigOpSpacing5
      }, {
        type: "elem",
        elem: d.elem,
        marginLeft: ne(-o)
      }, {
        type: "kern",
        size: d.kern
      }, {
        type: "elem",
        elem: i
      }, {
        type: "kern",
        size: p.kern
      }, {
        type: "elem",
        elem: p.elem,
        marginLeft: ne(o)
      }, {
        type: "kern",
        size: a.fontMetrics().bigOpSpacing5
      }]
    }, a);
  } else if (d) {
    var $ = i.height - u;
    C = O.makeVList({
      positionType: "top",
      positionData: $,
      children: [{
        type: "kern",
        size: a.fontMetrics().bigOpSpacing5
      }, {
        type: "elem",
        elem: d.elem,
        marginLeft: ne(-o)
      }, {
        type: "kern",
        size: d.kern
      }, {
        type: "elem",
        elem: i
      }]
    }, a);
  } else if (p) {
    var I = i.depth + u;
    C = O.makeVList({
      positionType: "bottom",
      positionData: I,
      children: [{
        type: "elem",
        elem: i
      }, {
        type: "kern",
        size: p.kern
      }, {
        type: "elem",
        elem: p.elem,
        marginLeft: ne(o)
      }, {
        type: "kern",
        size: a.fontMetrics().bigOpSpacing5
      }]
    }, a);
  } else
    return i;
  var q = [C];
  if (d && o !== 0 && !h) {
    var H = O.makeSpan(["mspace"], [], a);
    H.style.marginRight = ne(o), q.unshift(H);
  }
  return O.makeSpan(["mop", "op-limits"], q, a);
}, lf = ["\\smallint"], va = (i, e) => {
  var t, a, l = !1, o;
  i.type === "supsub" ? (t = i.sup, a = i.sub, o = Te(i.base, "op"), l = !0) : o = Te(i, "op");
  var u = e.style, h = !1;
  u.size === xe.DISPLAY.size && o.symbol && !_e.contains(lf, o.name) && (h = !0);
  var d;
  if (o.symbol) {
    var p = h ? "Size2-Regular" : "Size1-Regular", _ = "";
    if ((o.name === "\\oiint" || o.name === "\\oiiint") && (_ = o.name.slice(1), o.name = _ === "oiint" ? "\\iint" : "\\iiint"), d = O.makeSymbol(o.name, p, "math", e, ["mop", "op-symbol", h ? "large-op" : "small-op"]), _.length > 0) {
      var x = d.italic, C = O.staticSvg(_ + "Size" + (h ? "2" : "1"), e);
      d = O.makeVList({
        positionType: "individualShift",
        children: [{
          type: "elem",
          elem: d,
          shift: 0
        }, {
          type: "elem",
          elem: C,
          shift: h ? 0.08 : 0
        }]
      }, e), o.name = "\\" + _, d.classes.unshift("mop"), d.italic = x;
    }
  } else if (o.body) {
    var A = Lt(o.body, e, !0);
    A.length === 1 && A[0] instanceof bn ? (d = A[0], d.classes[0] = "mop") : d = O.makeSpan(["mop"], A, e);
  } else {
    for (var $ = [], I = 1; I < o.name.length; I++)
      $.push(O.mathsym(o.name[I], o.mode, e));
    d = O.makeSpan(["mop"], $, e);
  }
  var q = 0, H = 0;
  return (d instanceof bn || o.name === "\\oiint" || o.name === "\\oiiint") && !o.suppressBaseShift && (q = (d.height - d.depth) / 2 - e.fontMetrics().axisHeight, H = d.italic), l ? af(d, t, a, e, u, H, q) : (q && (d.style.position = "relative", d.style.top = ne(q)), d);
}, ei = (i, e) => {
  var t;
  if (i.symbol)
    t = new nn("mo", [q0(i.name, i.mode)]), _e.contains(lf, i.name) && t.setAttribute("largeop", "false");
  else if (i.body)
    t = new nn("mo", _0(i.body, e));
  else {
    t = new nn("mi", [new Va(i.name.slice(1))]);
    var a = new nn("mo", [q0("⁡", "text")]);
    i.parentIsSupSub ? t = new nn("mrow", [t, a]) : t = Ih([t, a]);
  }
  return t;
}, cg = {
  "∏": "\\prod",
  "∐": "\\coprod",
  "∑": "\\sum",
  "⋀": "\\bigwedge",
  "⋁": "\\bigvee",
  "⋂": "\\bigcap",
  "⋃": "\\bigcup",
  "⨀": "\\bigodot",
  "⨁": "\\bigoplus",
  "⨂": "\\bigotimes",
  "⨄": "\\biguplus",
  "⨆": "\\bigsqcup"
};
ae({
  type: "op",
  names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨄", "⨆"],
  props: {
    numArgs: 0
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = a;
    return l.length === 1 && (l = cg[l]), {
      type: "op",
      mode: t.mode,
      limits: !0,
      parentIsSupSub: !1,
      symbol: !0,
      name: l
    };
  },
  htmlBuilder: va,
  mathmlBuilder: ei
});
ae({
  type: "op",
  names: ["\\mathop"],
  props: {
    numArgs: 1,
    primitive: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = e[0];
    return {
      type: "op",
      mode: t.mode,
      limits: !1,
      parentIsSupSub: !1,
      symbol: !1,
      body: wt(a)
    };
  },
  htmlBuilder: va,
  mathmlBuilder: ei
});
var hg = {
  "∫": "\\int",
  "∬": "\\iint",
  "∭": "\\iiint",
  "∮": "\\oint",
  "∯": "\\oiint",
  "∰": "\\oiiint"
};
ae({
  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(i) {
    var {
      parser: e,
      funcName: t
    } = i;
    return {
      type: "op",
      mode: e.mode,
      limits: !1,
      parentIsSupSub: !1,
      symbol: !1,
      name: t
    };
  },
  htmlBuilder: va,
  mathmlBuilder: ei
});
ae({
  type: "op",
  names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"],
  props: {
    numArgs: 0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t
    } = i;
    return {
      type: "op",
      mode: e.mode,
      limits: !0,
      parentIsSupSub: !1,
      symbol: !1,
      name: t
    };
  },
  htmlBuilder: va,
  mathmlBuilder: ei
});
ae({
  type: "op",
  names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "∫", "∬", "∭", "∮", "∯", "∰"],
  props: {
    numArgs: 0
  },
  handler(i) {
    var {
      parser: e,
      funcName: t
    } = i, a = t;
    return a.length === 1 && (a = hg[a]), {
      type: "op",
      mode: e.mode,
      limits: !1,
      parentIsSupSub: !1,
      symbol: !0,
      name: a
    };
  },
  htmlBuilder: va,
  mathmlBuilder: ei
});
var sf = (i, e) => {
  var t, a, l = !1, o;
  i.type === "supsub" ? (t = i.sup, a = i.sub, o = Te(i.base, "operatorname"), l = !0) : o = Te(i, "operatorname");
  var u;
  if (o.body.length > 0) {
    for (var h = o.body.map((x) => {
      var C = x.text;
      return typeof C == "string" ? {
        type: "textord",
        mode: x.mode,
        text: C
      } : x;
    }), d = Lt(h, e.withFont("mathrm"), !0), p = 0; p < d.length; p++) {
      var _ = d[p];
      _ instanceof bn && (_.text = _.text.replace(/\u2212/, "-").replace(/\u2217/, "*"));
    }
    u = O.makeSpan(["mop"], d, e);
  } else
    u = O.makeSpan(["mop"], [], e);
  return l ? af(u, t, a, e, e.style, 0, 0) : u;
}, fg = (i, e) => {
  for (var t = _0(i.body, e.withFont("mathrm")), a = !0, l = 0; l < t.length; l++) {
    var o = t[l];
    if (!(o instanceof j.SpaceNode)) if (o instanceof j.MathNode)
      switch (o.type) {
        case "mi":
        case "mn":
        case "ms":
        case "mspace":
        case "mtext":
          break;
        case "mo": {
          var u = o.children[0];
          o.children.length === 1 && u instanceof j.TextNode ? u.text = u.text.replace(/\u2212/, "-").replace(/\u2217/, "*") : a = !1;
          break;
        }
        default:
          a = !1;
      }
    else
      a = !1;
  }
  if (a) {
    var h = t.map((_) => _.toText()).join("");
    t = [new j.TextNode(h)];
  }
  var d = new j.MathNode("mi", t);
  d.setAttribute("mathvariant", "normal");
  var p = new j.MathNode("mo", [q0("⁡", "text")]);
  return i.parentIsSupSub ? new j.MathNode("mrow", [d, p]) : j.newDocumentFragment([d, p]);
};
ae({
  type: "operatorname",
  names: ["\\operatorname@", "\\operatornamewithlimits"],
  props: {
    numArgs: 1
  },
  handler: (i, e) => {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    return {
      type: "operatorname",
      mode: t.mode,
      body: wt(l),
      alwaysHandleSupSub: a === "\\operatornamewithlimits",
      limits: !1,
      parentIsSupSub: !1
    };
  },
  htmlBuilder: sf,
  mathmlBuilder: fg
});
y("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@");
Pr({
  type: "ordgroup",
  htmlBuilder(i, e) {
    return i.semisimple ? O.makeFragment(Lt(i.body, e, !1)) : O.makeSpan(["mord"], Lt(i.body, e, !0), e);
  },
  mathmlBuilder(i, e) {
    return hr(i.body, e, !0);
  }
});
ae({
  type: "overline",
  names: ["\\overline"],
  props: {
    numArgs: 1
  },
  handler(i, e) {
    var {
      parser: t
    } = i, a = e[0];
    return {
      type: "overline",
      mode: t.mode,
      body: a
    };
  },
  htmlBuilder(i, e) {
    var t = Ue(i.body, e.havingCrampedStyle()), a = O.makeLineSpan("overline-line", e), l = e.fontMetrics().defaultRuleThickness, o = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: t
      }, {
        type: "kern",
        size: 3 * l
      }, {
        type: "elem",
        elem: a
      }, {
        type: "kern",
        size: l
      }]
    }, e);
    return O.makeSpan(["mord", "overline"], [o], e);
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mo", [new j.TextNode("‾")]);
    t.setAttribute("stretchy", "true");
    var a = new j.MathNode("mover", [Qe(i.body, e), t]);
    return a.setAttribute("accent", "true"), a;
  }
});
ae({
  type: "phantom",
  names: ["\\phantom"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = e[0];
    return {
      type: "phantom",
      mode: t.mode,
      body: wt(a)
    };
  },
  htmlBuilder: (i, e) => {
    var t = Lt(i.body, e.withPhantom(), !1);
    return O.makeFragment(t);
  },
  mathmlBuilder: (i, e) => {
    var t = _0(i.body, e);
    return new j.MathNode("mphantom", t);
  }
});
ae({
  type: "hphantom",
  names: ["\\hphantom"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = e[0];
    return {
      type: "hphantom",
      mode: t.mode,
      body: a
    };
  },
  htmlBuilder: (i, e) => {
    var t = O.makeSpan([], [Ue(i.body, e.withPhantom())]);
    if (t.height = 0, t.depth = 0, t.children)
      for (var a = 0; a < t.children.length; a++)
        t.children[a].height = 0, t.children[a].depth = 0;
    return t = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: t
      }]
    }, e), O.makeSpan(["mord"], [t], e);
  },
  mathmlBuilder: (i, e) => {
    var t = _0(wt(i.body), e), a = new j.MathNode("mphantom", t), l = new j.MathNode("mpadded", [a]);
    return l.setAttribute("height", "0px"), l.setAttribute("depth", "0px"), l;
  }
});
ae({
  type: "vphantom",
  names: ["\\vphantom"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      parser: t
    } = i, a = e[0];
    return {
      type: "vphantom",
      mode: t.mode,
      body: a
    };
  },
  htmlBuilder: (i, e) => {
    var t = O.makeSpan(["inner"], [Ue(i.body, e.withPhantom())]), a = O.makeSpan(["fix"], []);
    return O.makeSpan(["mord", "rlap"], [t, a], e);
  },
  mathmlBuilder: (i, e) => {
    var t = _0(wt(i.body), e), a = new j.MathNode("mphantom", t), l = new j.MathNode("mpadded", [a]);
    return l.setAttribute("width", "0px"), l;
  }
});
ae({
  type: "raisebox",
  names: ["\\raisebox"],
  props: {
    numArgs: 2,
    argTypes: ["size", "hbox"],
    allowedInText: !0
  },
  handler(i, e) {
    var {
      parser: t
    } = i, a = Te(e[0], "size").value, l = e[1];
    return {
      type: "raisebox",
      mode: t.mode,
      dy: a,
      body: l
    };
  },
  htmlBuilder(i, e) {
    var t = Ue(i.body, e), a = ct(i.dy, e);
    return O.makeVList({
      positionType: "shift",
      positionData: -a,
      children: [{
        type: "elem",
        elem: t
      }]
    }, e);
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mpadded", [Qe(i.body, e)]), a = i.dy.number + i.dy.unit;
    return t.setAttribute("voffset", a), t;
  }
});
ae({
  type: "internal",
  names: ["\\relax"],
  props: {
    numArgs: 0,
    allowedInText: !0
  },
  handler(i) {
    var {
      parser: e
    } = i;
    return {
      type: "internal",
      mode: e.mode
    };
  }
});
ae({
  type: "rule",
  names: ["\\rule"],
  props: {
    numArgs: 2,
    numOptionalArgs: 1,
    argTypes: ["size", "size", "size"]
  },
  handler(i, e, t) {
    var {
      parser: a
    } = i, l = t[0], o = Te(e[0], "size"), u = Te(e[1], "size");
    return {
      type: "rule",
      mode: a.mode,
      shift: l && Te(l, "size").value,
      width: o.value,
      height: u.value
    };
  },
  htmlBuilder(i, e) {
    var t = O.makeSpan(["mord", "rule"], [], e), a = ct(i.width, e), l = ct(i.height, e), o = i.shift ? ct(i.shift, e) : 0;
    return t.style.borderRightWidth = ne(a), t.style.borderTopWidth = ne(l), t.style.bottom = ne(o), t.width = a, t.height = l + o, t.depth = -o, t.maxFontSize = l * 1.125 * e.sizeMultiplier, t;
  },
  mathmlBuilder(i, e) {
    var t = ct(i.width, e), a = ct(i.height, e), l = i.shift ? ct(i.shift, e) : 0, o = e.color && e.getColor() || "black", u = new j.MathNode("mspace");
    u.setAttribute("mathbackground", o), u.setAttribute("width", ne(t)), u.setAttribute("height", ne(a));
    var h = new j.MathNode("mpadded", [u]);
    return l >= 0 ? h.setAttribute("height", ne(l)) : (h.setAttribute("height", ne(l)), h.setAttribute("depth", ne(-l))), h.setAttribute("voffset", ne(l)), h;
  }
});
function of(i, e, t) {
  for (var a = Lt(i, e, !1), l = e.sizeMultiplier / t.sizeMultiplier, o = 0; o < a.length; o++) {
    var u = a[o].classes.indexOf("sizing");
    u < 0 ? Array.prototype.push.apply(a[o].classes, e.sizingClasses(t)) : a[o].classes[u + 1] === "reset-size" + e.size && (a[o].classes[u + 1] = "reset-size" + t.size), a[o].height *= l, a[o].depth *= l;
  }
  return O.makeFragment(a);
}
var x4 = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], dg = (i, e) => {
  var t = e.havingSize(i.size);
  return of(i.body, t, e);
};
ae({
  type: "sizing",
  names: x4,
  props: {
    numArgs: 0,
    allowedInText: !0
  },
  handler: (i, e) => {
    var {
      breakOnTokenText: t,
      funcName: a,
      parser: l
    } = i, o = l.parseExpression(!1, t);
    return {
      type: "sizing",
      mode: l.mode,
      // Figure out what size to use based on the list of functions above
      size: x4.indexOf(a) + 1,
      body: o
    };
  },
  htmlBuilder: dg,
  mathmlBuilder: (i, e) => {
    var t = e.havingSize(i.size), a = _0(i.body, t), l = new j.MathNode("mstyle", a);
    return l.setAttribute("mathsize", ne(t.sizeMultiplier)), l;
  }
});
ae({
  type: "smash",
  names: ["\\smash"],
  props: {
    numArgs: 1,
    numOptionalArgs: 1,
    allowedInText: !0
  },
  handler: (i, e, t) => {
    var {
      parser: a
    } = i, l = !1, o = !1, u = t[0] && Te(t[0], "ordgroup");
    if (u)
      for (var h = "", d = 0; d < u.body.length; ++d) {
        var p = u.body[d];
        if (h = p.text, h === "t")
          l = !0;
        else if (h === "b")
          o = !0;
        else {
          l = !1, o = !1;
          break;
        }
      }
    else
      l = !0, o = !0;
    var _ = e[0];
    return {
      type: "smash",
      mode: a.mode,
      body: _,
      smashHeight: l,
      smashDepth: o
    };
  },
  htmlBuilder: (i, e) => {
    var t = O.makeSpan([], [Ue(i.body, e)]);
    if (!i.smashHeight && !i.smashDepth)
      return t;
    if (i.smashHeight && (t.height = 0, t.children))
      for (var a = 0; a < t.children.length; a++)
        t.children[a].height = 0;
    if (i.smashDepth && (t.depth = 0, t.children))
      for (var l = 0; l < t.children.length; l++)
        t.children[l].depth = 0;
    var o = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: t
      }]
    }, e);
    return O.makeSpan(["mord"], [o], e);
  },
  mathmlBuilder: (i, e) => {
    var t = new j.MathNode("mpadded", [Qe(i.body, e)]);
    return i.smashHeight && t.setAttribute("height", "0px"), i.smashDepth && t.setAttribute("depth", "0px"), t;
  }
});
ae({
  type: "sqrt",
  names: ["\\sqrt"],
  props: {
    numArgs: 1,
    numOptionalArgs: 1
  },
  handler(i, e, t) {
    var {
      parser: a
    } = i, l = t[0], o = e[0];
    return {
      type: "sqrt",
      mode: a.mode,
      body: o,
      index: l
    };
  },
  htmlBuilder(i, e) {
    var t = Ue(i.body, e.havingCrampedStyle());
    t.height === 0 && (t.height = e.fontMetrics().xHeight), t = O.wrapFragment(t, e);
    var a = e.fontMetrics(), l = a.defaultRuleThickness, o = l;
    e.style.id < xe.TEXT.id && (o = e.fontMetrics().xHeight);
    var u = l + o / 4, h = t.height + t.depth + u + l, {
      span: d,
      ruleWidth: p,
      advanceWidth: _
    } = Nn.sqrtImage(h, e), x = d.height - p;
    x > t.height + t.depth + u && (u = (u + x - t.height - t.depth) / 2);
    var C = d.height - t.height - u - p;
    t.style.paddingLeft = ne(_);
    var A = O.makeVList({
      positionType: "firstBaseline",
      children: [{
        type: "elem",
        elem: t,
        wrapperClasses: ["svg-align"]
      }, {
        type: "kern",
        size: -(t.height + C)
      }, {
        type: "elem",
        elem: d
      }, {
        type: "kern",
        size: p
      }]
    }, e);
    if (i.index) {
      var $ = e.havingStyle(xe.SCRIPTSCRIPT), I = Ue(i.index, $, e), q = 0.6 * (A.height - A.depth), H = O.makeVList({
        positionType: "shift",
        positionData: -q,
        children: [{
          type: "elem",
          elem: I
        }]
      }, e), T = O.makeSpan(["root"], [H]);
      return O.makeSpan(["mord", "sqrt"], [T, A], e);
    } else
      return O.makeSpan(["mord", "sqrt"], [A], e);
  },
  mathmlBuilder(i, e) {
    var {
      body: t,
      index: a
    } = i;
    return a ? new j.MathNode("mroot", [Qe(t, e), Qe(a, e)]) : new j.MathNode("msqrt", [Qe(t, e)]);
  }
});
var D4 = {
  display: xe.DISPLAY,
  text: xe.TEXT,
  script: xe.SCRIPT,
  scriptscript: xe.SCRIPTSCRIPT
};
ae({
  type: "styling",
  names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"],
  props: {
    numArgs: 0,
    allowedInText: !0,
    primitive: !0
  },
  handler(i, e) {
    var {
      breakOnTokenText: t,
      funcName: a,
      parser: l
    } = i, o = l.parseExpression(!0, t), u = a.slice(1, a.length - 5);
    return {
      type: "styling",
      mode: l.mode,
      // Figure out what style to use by pulling out the style from
      // the function name
      style: u,
      body: o
    };
  },
  htmlBuilder(i, e) {
    var t = D4[i.style], a = e.havingStyle(t).withFont("");
    return of(i.body, a, e);
  },
  mathmlBuilder(i, e) {
    var t = D4[i.style], a = e.havingStyle(t), l = _0(i.body, a), o = new j.MathNode("mstyle", l), u = {
      display: ["0", "true"],
      text: ["0", "false"],
      script: ["1", "false"],
      scriptscript: ["2", "false"]
    }, h = u[i.style];
    return o.setAttribute("scriptlevel", h[0]), o.setAttribute("displaystyle", h[1]), o;
  }
});
var mg = function(e, t) {
  var a = e.base;
  if (a)
    if (a.type === "op") {
      var l = a.limits && (t.style.size === xe.DISPLAY.size || a.alwaysHandleSupSub);
      return l ? va : null;
    } else if (a.type === "operatorname") {
      var o = a.alwaysHandleSupSub && (t.style.size === xe.DISPLAY.size || a.limits);
      return o ? sf : null;
    } else {
      if (a.type === "accent")
        return _e.isCharacterBox(a.base) ? Jo : null;
      if (a.type === "horizBrace") {
        var u = !e.sub;
        return u === a.isOver ? rf : null;
      } else
        return null;
    }
  else return null;
};
Pr({
  type: "supsub",
  htmlBuilder(i, e) {
    var t = mg(i, e);
    if (t)
      return t(i, e);
    var {
      base: a,
      sup: l,
      sub: o
    } = i, u = Ue(a, e), h, d, p = e.fontMetrics(), _ = 0, x = 0, C = a && _e.isCharacterBox(a);
    if (l) {
      var A = e.havingStyle(e.style.sup());
      h = Ue(l, A, e), C || (_ = u.height - A.fontMetrics().supDrop * A.sizeMultiplier / e.sizeMultiplier);
    }
    if (o) {
      var $ = e.havingStyle(e.style.sub());
      d = Ue(o, $, e), C || (x = u.depth + $.fontMetrics().subDrop * $.sizeMultiplier / e.sizeMultiplier);
    }
    var I;
    e.style === xe.DISPLAY ? I = p.sup1 : e.style.cramped ? I = p.sup3 : I = p.sup2;
    var q = e.sizeMultiplier, H = ne(0.5 / p.ptPerEm / q), T = null;
    if (d) {
      var D = i.base && i.base.type === "op" && i.base.name && (i.base.name === "\\oiint" || i.base.name === "\\oiiint");
      (u instanceof bn || D) && (T = ne(-u.italic));
    }
    var R;
    if (h && d) {
      _ = Math.max(_, I, h.depth + 0.25 * p.xHeight), x = Math.max(x, p.sub2);
      var N = p.defaultRuleThickness, U = 4 * N;
      if (_ - h.depth - (d.height - x) < U) {
        x = U - (_ - h.depth) + d.height;
        var G = 0.8 * p.xHeight - (_ - h.depth);
        G > 0 && (_ += G, x -= G);
      }
      var te = [{
        type: "elem",
        elem: d,
        shift: x,
        marginRight: H,
        marginLeft: T
      }, {
        type: "elem",
        elem: h,
        shift: -_,
        marginRight: H
      }];
      R = O.makeVList({
        positionType: "individualShift",
        children: te
      }, e);
    } else if (d) {
      x = Math.max(x, p.sub1, d.height - 0.8 * p.xHeight);
      var J = [{
        type: "elem",
        elem: d,
        marginLeft: T,
        marginRight: H
      }];
      R = O.makeVList({
        positionType: "shift",
        positionData: x,
        children: J
      }, e);
    } else if (h)
      _ = Math.max(_, I, h.depth + 0.25 * p.xHeight), R = O.makeVList({
        positionType: "shift",
        positionData: -_,
        children: [{
          type: "elem",
          elem: h,
          marginRight: H
        }]
      }, e);
    else
      throw new Error("supsub must have either sup or sub.");
    var X = Co(u, "right") || "mord";
    return O.makeSpan([X], [u, O.makeSpan(["msupsub"], [R])], e);
  },
  mathmlBuilder(i, e) {
    var t = !1, a, l;
    i.base && i.base.type === "horizBrace" && (l = !!i.sup, l === i.base.isOver && (t = !0, a = i.base.isOver)), i.base && (i.base.type === "op" || i.base.type === "operatorname") && (i.base.parentIsSupSub = !0);
    var o = [Qe(i.base, e)];
    i.sub && o.push(Qe(i.sub, e)), i.sup && o.push(Qe(i.sup, e));
    var u;
    if (t)
      u = a ? "mover" : "munder";
    else if (i.sub)
      if (i.sup) {
        var p = i.base;
        p && p.type === "op" && p.limits && e.style === xe.DISPLAY || p && p.type === "operatorname" && p.alwaysHandleSupSub && (e.style === xe.DISPLAY || p.limits) ? u = "munderover" : u = "msubsup";
      } else {
        var d = i.base;
        d && d.type === "op" && d.limits && (e.style === xe.DISPLAY || d.alwaysHandleSupSub) || d && d.type === "operatorname" && d.alwaysHandleSupSub && (d.limits || e.style === xe.DISPLAY) ? u = "munder" : u = "msub";
      }
    else {
      var h = i.base;
      h && h.type === "op" && h.limits && (e.style === xe.DISPLAY || h.alwaysHandleSupSub) || h && h.type === "operatorname" && h.alwaysHandleSupSub && (h.limits || e.style === xe.DISPLAY) ? u = "mover" : u = "msup";
    }
    return new j.MathNode(u, o);
  }
});
Pr({
  type: "atom",
  htmlBuilder(i, e) {
    return O.mathsym(i.text, i.mode, e, ["m" + i.family]);
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mo", [q0(i.text, i.mode)]);
    if (i.family === "bin") {
      var a = Zo(i, e);
      a === "bold-italic" && t.setAttribute("mathvariant", a);
    } else i.family === "punct" ? t.setAttribute("separator", "true") : (i.family === "open" || i.family === "close") && t.setAttribute("stretchy", "false");
    return t;
  }
});
var uf = {
  mi: "italic",
  mn: "normal",
  mtext: "normal"
};
Pr({
  type: "mathord",
  htmlBuilder(i, e) {
    return O.makeOrd(i, e, "mathord");
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mi", [q0(i.text, i.mode, e)]), a = Zo(i, e) || "italic";
    return a !== uf[t.type] && t.setAttribute("mathvariant", a), t;
  }
});
Pr({
  type: "textord",
  htmlBuilder(i, e) {
    return O.makeOrd(i, e, "textord");
  },
  mathmlBuilder(i, e) {
    var t = q0(i.text, i.mode, e), a = Zo(i, e) || "normal", l;
    return i.mode === "text" ? l = new j.MathNode("mtext", [t]) : /[0-9]/.test(i.text) ? l = new j.MathNode("mn", [t]) : i.text === "\\prime" ? l = new j.MathNode("mo", [t]) : l = new j.MathNode("mi", [t]), a !== uf[l.type] && l.setAttribute("mathvariant", a), l;
  }
});
var fo = {
  "\\nobreak": "nobreak",
  "\\allowbreak": "allowbreak"
}, mo = {
  " ": {},
  "\\ ": {},
  "~": {
    className: "nobreak"
  },
  "\\space": {},
  "\\nobreakspace": {
    className: "nobreak"
  }
};
Pr({
  type: "spacing",
  htmlBuilder(i, e) {
    if (mo.hasOwnProperty(i.text)) {
      var t = mo[i.text].className || "";
      if (i.mode === "text") {
        var a = O.makeOrd(i, e, "textord");
        return a.classes.push(t), a;
      } else
        return O.makeSpan(["mspace", t], [O.mathsym(i.text, i.mode, e)], e);
    } else {
      if (fo.hasOwnProperty(i.text))
        return O.makeSpan(["mspace", fo[i.text]], [], e);
      throw new ge('Unknown type of space "' + i.text + '"');
    }
  },
  mathmlBuilder(i, e) {
    var t;
    if (mo.hasOwnProperty(i.text))
      t = new j.MathNode("mtext", [new j.TextNode(" ")]);
    else {
      if (fo.hasOwnProperty(i.text))
        return new j.MathNode("mspace");
      throw new ge('Unknown type of space "' + i.text + '"');
    }
    return t;
  }
});
var k4 = () => {
  var i = new j.MathNode("mtd", []);
  return i.setAttribute("width", "50%"), i;
};
Pr({
  type: "tag",
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mtable", [new j.MathNode("mtr", [k4(), new j.MathNode("mtd", [hr(i.body, e)]), k4(), new j.MathNode("mtd", [hr(i.tag, e)])])]);
    return t.setAttribute("width", "100%"), t;
  }
});
var A4 = {
  "\\text": void 0,
  "\\textrm": "textrm",
  "\\textsf": "textsf",
  "\\texttt": "texttt",
  "\\textnormal": "textrm"
}, S4 = {
  "\\textbf": "textbf",
  "\\textmd": "textmd"
}, pg = {
  "\\textit": "textit",
  "\\textup": "textup"
}, F4 = (i, e) => {
  var t = i.font;
  if (t) {
    if (A4[t])
      return e.withTextFontFamily(A4[t]);
    if (S4[t])
      return e.withTextFontWeight(S4[t]);
    if (t === "\\emph")
      return e.fontShape === "textit" ? e.withTextFontShape("textup") : e.withTextFontShape("textit");
  } else return e;
  return e.withTextFontShape(pg[t]);
};
ae({
  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(i, e) {
    var {
      parser: t,
      funcName: a
    } = i, l = e[0];
    return {
      type: "text",
      mode: t.mode,
      body: wt(l),
      font: a
    };
  },
  htmlBuilder(i, e) {
    var t = F4(i, e), a = Lt(i.body, t, !0);
    return O.makeSpan(["mord", "text"], a, t);
  },
  mathmlBuilder(i, e) {
    var t = F4(i, e);
    return hr(i.body, t);
  }
});
ae({
  type: "underline",
  names: ["\\underline"],
  props: {
    numArgs: 1,
    allowedInText: !0
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "underline",
      mode: t.mode,
      body: e[0]
    };
  },
  htmlBuilder(i, e) {
    var t = Ue(i.body, e), a = O.makeLineSpan("underline-line", e), l = e.fontMetrics().defaultRuleThickness, o = O.makeVList({
      positionType: "top",
      positionData: t.height,
      children: [{
        type: "kern",
        size: l
      }, {
        type: "elem",
        elem: a
      }, {
        type: "kern",
        size: 3 * l
      }, {
        type: "elem",
        elem: t
      }]
    }, e);
    return O.makeSpan(["mord", "underline"], [o], e);
  },
  mathmlBuilder(i, e) {
    var t = new j.MathNode("mo", [new j.TextNode("‾")]);
    t.setAttribute("stretchy", "true");
    var a = new j.MathNode("munder", [Qe(i.body, e), t]);
    return a.setAttribute("accentunder", "true"), a;
  }
});
ae({
  type: "vcenter",
  names: ["\\vcenter"],
  props: {
    numArgs: 1,
    argTypes: ["original"],
    // In LaTeX, \vcenter can act only on a box.
    allowedInText: !1
  },
  handler(i, e) {
    var {
      parser: t
    } = i;
    return {
      type: "vcenter",
      mode: t.mode,
      body: e[0]
    };
  },
  htmlBuilder(i, e) {
    var t = Ue(i.body, e), a = e.fontMetrics().axisHeight, l = 0.5 * (t.height - a - (t.depth + a));
    return O.makeVList({
      positionType: "shift",
      positionData: l,
      children: [{
        type: "elem",
        elem: t
      }]
    }, e);
  },
  mathmlBuilder(i, e) {
    return new j.MathNode("mpadded", [Qe(i.body, e)], ["vcenter"]);
  }
});
ae({
  type: "verb",
  names: ["\\verb"],
  props: {
    numArgs: 0,
    allowedInText: !0
  },
  handler(i, e, t) {
    throw new ge("\\verb ended by end of line instead of matching delimiter");
  },
  htmlBuilder(i, e) {
    for (var t = C4(i), a = [], l = e.havingStyle(e.style.text()), o = 0; o < t.length; o++) {
      var u = t[o];
      u === "~" && (u = "\\textasciitilde"), a.push(O.makeSymbol(u, "Typewriter-Regular", i.mode, l, ["mord", "texttt"]));
    }
    return O.makeSpan(["mord", "text"].concat(l.sizingClasses(e)), O.tryCombineChars(a), l);
  },
  mathmlBuilder(i, e) {
    var t = new j.TextNode(C4(i)), a = new j.MathNode("mtext", [t]);
    return a.setAttribute("mathvariant", "monospace"), a;
  }
});
var C4 = (i) => i.body.replace(/ /g, i.star ? "␣" : " "), gg = zh;
y("\\noexpand", function(i) {
  var e = i.popToken();
  return i.isExpandable(e.text) && (e.noexpand = !0, e.treatAsRelax = !0), {
    tokens: [e],
    numArgs: 0
  };
});
y("\\expandafter", function(i) {
  var e = i.popToken();
  return i.expandOnce(!0), {
    tokens: [e],
    numArgs: 0
  };
});
y("\\@firstoftwo", function(i) {
  var e = i.consumeArgs(2);
  return {
    tokens: e[0],
    numArgs: 0
  };
});
y("\\@secondoftwo", function(i) {
  var e = i.consumeArgs(2);
  return {
    tokens: e[1],
    numArgs: 0
  };
});
y("\\@ifnextchar", function(i) {
  var e = i.consumeArgs(3);
  i.consumeSpaces();
  var t = i.future();
  return e[0].length === 1 && e[0][0].text === t.text ? {
    tokens: e[1],
    numArgs: 0
  } : {
    tokens: e[2],
    numArgs: 0
  };
});
y("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}");
y("\\TextOrMath", function(i) {
  var e = i.consumeArgs(2);
  return i.mode === "text" ? {
    tokens: e[0],
    numArgs: 0
  } : {
    tokens: e[1],
    numArgs: 0
  };
});
var E4 = {
  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
};
y("\\char", function(i) {
  var e = i.popToken(), t, a = "";
  if (e.text === "'")
    t = 8, e = i.popToken();
  else if (e.text === '"')
    t = 16, e = i.popToken();
  else if (e.text === "`")
    if (e = i.popToken(), e.text[0] === "\\")
      a = e.text.charCodeAt(1);
    else {
      if (e.text === "EOF")
        throw new ge("\\char` missing argument");
      a = e.text.charCodeAt(0);
    }
  else
    t = 10;
  if (t) {
    if (a = E4[e.text], a == null || a >= t)
      throw new ge("Invalid base-" + t + " digit " + e.text);
    for (var l; (l = E4[i.future().text]) != null && l < t; )
      a *= t, a += l, i.popToken();
  }
  return "\\@char{" + a + "}";
});
var iu = (i, e, t) => {
  var a = i.consumeArg().tokens;
  if (a.length !== 1)
    throw new ge("\\newcommand's first argument must be a macro name");
  var l = a[0].text, o = i.isDefined(l);
  if (o && !e)
    throw new ge("\\newcommand{" + l + "} attempting to redefine " + (l + "; use \\renewcommand"));
  if (!o && !t)
    throw new ge("\\renewcommand{" + l + "} when command " + l + " does not yet exist; use \\newcommand");
  var u = 0;
  if (a = i.consumeArg().tokens, a.length === 1 && a[0].text === "[") {
    for (var h = "", d = i.expandNextToken(); d.text !== "]" && d.text !== "EOF"; )
      h += d.text, d = i.expandNextToken();
    if (!h.match(/^\s*[0-9]+\s*$/))
      throw new ge("Invalid number of arguments: " + h);
    u = parseInt(h), a = i.consumeArg().tokens;
  }
  return i.macros.set(l, {
    tokens: a,
    numArgs: u
  }), "";
};
y("\\newcommand", (i) => iu(i, !1, !0));
y("\\renewcommand", (i) => iu(i, !0, !1));
y("\\providecommand", (i) => iu(i, !0, !0));
y("\\message", (i) => {
  var e = i.consumeArgs(1)[0];
  return console.log(e.reverse().map((t) => t.text).join("")), "";
});
y("\\errmessage", (i) => {
  var e = i.consumeArgs(1)[0];
  return console.error(e.reverse().map((t) => t.text).join("")), "";
});
y("\\show", (i) => {
  var e = i.popToken(), t = e.text;
  return console.log(e, i.macros.get(t), gg[t], xt.math[t], xt.text[t]), "";
});
y("\\bgroup", "{");
y("\\egroup", "}");
y("~", "\\nobreakspace");
y("\\lq", "`");
y("\\rq", "'");
y("\\aa", "\\r a");
y("\\AA", "\\r A");
y("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}");
y("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");
y("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");
y("ℬ", "\\mathscr{B}");
y("ℰ", "\\mathscr{E}");
y("ℱ", "\\mathscr{F}");
y("ℋ", "\\mathscr{H}");
y("ℐ", "\\mathscr{I}");
y("ℒ", "\\mathscr{L}");
y("ℳ", "\\mathscr{M}");
y("ℛ", "\\mathscr{R}");
y("ℭ", "\\mathfrak{C}");
y("ℌ", "\\mathfrak{H}");
y("ℨ", "\\mathfrak{Z}");
y("\\Bbbk", "\\Bbb{k}");
y("·", "\\cdotp");
y("\\llap", "\\mathllap{\\textrm{#1}}");
y("\\rlap", "\\mathrlap{\\textrm{#1}}");
y("\\clap", "\\mathclap{\\textrm{#1}}");
y("\\mathstrut", "\\vphantom{(}");
y("\\underbar", "\\underline{\\text{#1}}");
y("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');
y("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");
y("\\ne", "\\neq");
y("≠", "\\neq");
y("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");
y("∉", "\\notin");
y("≘", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");
y("≙", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");
y("≚", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");
y("≛", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");
y("≝", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");
y("≞", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");
y("≟", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");
y("⟂", "\\perp");
y("‼", "\\mathclose{!\\mkern-0.8mu!}");
y("∌", "\\notni");
y("⌜", "\\ulcorner");
y("⌝", "\\urcorner");
y("⌞", "\\llcorner");
y("⌟", "\\lrcorner");
y("©", "\\copyright");
y("®", "\\textregistered");
y("️", "\\textregistered");
y("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');
y("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');
y("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');
y("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');
y("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}");
y("⋮", "\\vdots");
y("\\varGamma", "\\mathit{\\Gamma}");
y("\\varDelta", "\\mathit{\\Delta}");
y("\\varTheta", "\\mathit{\\Theta}");
y("\\varLambda", "\\mathit{\\Lambda}");
y("\\varXi", "\\mathit{\\Xi}");
y("\\varPi", "\\mathit{\\Pi}");
y("\\varSigma", "\\mathit{\\Sigma}");
y("\\varUpsilon", "\\mathit{\\Upsilon}");
y("\\varPhi", "\\mathit{\\Phi}");
y("\\varPsi", "\\mathit{\\Psi}");
y("\\varOmega", "\\mathit{\\Omega}");
y("\\substack", "\\begin{subarray}{c}#1\\end{subarray}");
y("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");
y("\\boxed", "\\fbox{$\\displaystyle{#1}$}");
y("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;");
y("\\implies", "\\DOTSB\\;\\Longrightarrow\\;");
y("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;");
var T4 = {
  ",": "\\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"
};
y("\\dots", function(i) {
  var e = "\\dotso", t = i.expandAfterFuture().text;
  return t in T4 ? e = T4[t] : (t.slice(0, 4) === "\\not" || t in xt.math && _e.contains(["bin", "rel"], xt.math[t].group)) && (e = "\\dotsb"), e;
});
var lu = {
  // \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
};
y("\\dotso", function(i) {
  var e = i.future().text;
  return e in lu ? "\\ldots\\," : "\\ldots";
});
y("\\dotsc", function(i) {
  var e = i.future().text;
  return e in lu && e !== "," ? "\\ldots\\," : "\\ldots";
});
y("\\cdots", function(i) {
  var e = i.future().text;
  return e in lu ? "\\@cdots\\," : "\\@cdots";
});
y("\\dotsb", "\\cdots");
y("\\dotsm", "\\cdots");
y("\\dotsi", "\\!\\cdots");
y("\\dotsx", "\\ldots\\,");
y("\\DOTSI", "\\relax");
y("\\DOTSB", "\\relax");
y("\\DOTSX", "\\relax");
y("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");
y("\\,", "\\tmspace+{3mu}{.1667em}");
y("\\thinspace", "\\,");
y("\\>", "\\mskip{4mu}");
y("\\:", "\\tmspace+{4mu}{.2222em}");
y("\\medspace", "\\:");
y("\\;", "\\tmspace+{5mu}{.2777em}");
y("\\thickspace", "\\;");
y("\\!", "\\tmspace-{3mu}{.1667em}");
y("\\negthinspace", "\\!");
y("\\negmedspace", "\\tmspace-{4mu}{.2222em}");
y("\\negthickspace", "\\tmspace-{5mu}{.277em}");
y("\\enspace", "\\kern.5em ");
y("\\enskip", "\\hskip.5em\\relax");
y("\\quad", "\\hskip1em\\relax");
y("\\qquad", "\\hskip2em\\relax");
y("\\tag", "\\@ifstar\\tag@literal\\tag@paren");
y("\\tag@paren", "\\tag@literal{({#1})}");
y("\\tag@literal", (i) => {
  if (i.macros.get("\\df@tag"))
    throw new ge("Multiple \\tag");
  return "\\gdef\\df@tag{\\text{#1}}";
});
y("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");
y("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");
y("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}");
y("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");
y("\\newline", "\\\\\\relax");
y("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");
var cf = ne(Rn["Main-Regular"][84][1] - 0.7 * Rn["Main-Regular"][65][1]);
y("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + cf + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}");
y("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + cf + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}");
y("\\hspace", "\\@ifstar\\@hspacer\\@hspace");
y("\\@hspace", "\\hskip #1\\relax");
y("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax");
y("\\ordinarycolon", ":");
y("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}");
y("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');
y("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');
y("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');
y("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');
y("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');
y("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');
y("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');
y("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');
y("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');
y("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');
y("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');
y("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');
y("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');
y("∷", "\\dblcolon");
y("∹", "\\eqcolon");
y("≔", "\\coloneqq");
y("≕", "\\eqqcolon");
y("⩴", "\\Coloneqq");
y("\\ratio", "\\vcentcolon");
y("\\coloncolon", "\\dblcolon");
y("\\colonequals", "\\coloneqq");
y("\\coloncolonequals", "\\Coloneqq");
y("\\equalscolon", "\\eqqcolon");
y("\\equalscoloncolon", "\\Eqqcolon");
y("\\colonminus", "\\coloneq");
y("\\coloncolonminus", "\\Coloneq");
y("\\minuscolon", "\\eqcolon");
y("\\minuscoloncolon", "\\Eqcolon");
y("\\coloncolonapprox", "\\Colonapprox");
y("\\coloncolonsim", "\\Colonsim");
y("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
y("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");
y("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");
y("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");
y("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");
y("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}");
y("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}");
y("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}");
y("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}");
y("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}");
y("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}");
y("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}");
y("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}");
y("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{≩}");
y("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{≨}");
y("\\ngeqq", "\\html@mathml{\\@ngeqq}{≱}");
y("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{≱}");
y("\\nleqq", "\\html@mathml{\\@nleqq}{≰}");
y("\\nleqslant", "\\html@mathml{\\@nleqslant}{≰}");
y("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}");
y("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}");
y("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{⊈}");
y("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{⊉}");
y("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}");
y("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}");
y("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}");
y("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}");
y("\\imath", "\\html@mathml{\\@imath}{ı}");
y("\\jmath", "\\html@mathml{\\@jmath}{ȷ}");
y("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");
y("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");
y("⟦", "\\llbracket");
y("⟧", "\\rrbracket");
y("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");
y("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");
y("⦃", "\\lBrace");
y("⦄", "\\rBrace");
y("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");
y("⦵", "\\minuso");
y("\\darr", "\\downarrow");
y("\\dArr", "\\Downarrow");
y("\\Darr", "\\Downarrow");
y("\\lang", "\\langle");
y("\\rang", "\\rangle");
y("\\uarr", "\\uparrow");
y("\\uArr", "\\Uparrow");
y("\\Uarr", "\\Uparrow");
y("\\N", "\\mathbb{N}");
y("\\R", "\\mathbb{R}");
y("\\Z", "\\mathbb{Z}");
y("\\alef", "\\aleph");
y("\\alefsym", "\\aleph");
y("\\Alpha", "\\mathrm{A}");
y("\\Beta", "\\mathrm{B}");
y("\\bull", "\\bullet");
y("\\Chi", "\\mathrm{X}");
y("\\clubs", "\\clubsuit");
y("\\cnums", "\\mathbb{C}");
y("\\Complex", "\\mathbb{C}");
y("\\Dagger", "\\ddagger");
y("\\diamonds", "\\diamondsuit");
y("\\empty", "\\emptyset");
y("\\Epsilon", "\\mathrm{E}");
y("\\Eta", "\\mathrm{H}");
y("\\exist", "\\exists");
y("\\harr", "\\leftrightarrow");
y("\\hArr", "\\Leftrightarrow");
y("\\Harr", "\\Leftrightarrow");
y("\\hearts", "\\heartsuit");
y("\\image", "\\Im");
y("\\infin", "\\infty");
y("\\Iota", "\\mathrm{I}");
y("\\isin", "\\in");
y("\\Kappa", "\\mathrm{K}");
y("\\larr", "\\leftarrow");
y("\\lArr", "\\Leftarrow");
y("\\Larr", "\\Leftarrow");
y("\\lrarr", "\\leftrightarrow");
y("\\lrArr", "\\Leftrightarrow");
y("\\Lrarr", "\\Leftrightarrow");
y("\\Mu", "\\mathrm{M}");
y("\\natnums", "\\mathbb{N}");
y("\\Nu", "\\mathrm{N}");
y("\\Omicron", "\\mathrm{O}");
y("\\plusmn", "\\pm");
y("\\rarr", "\\rightarrow");
y("\\rArr", "\\Rightarrow");
y("\\Rarr", "\\Rightarrow");
y("\\real", "\\Re");
y("\\reals", "\\mathbb{R}");
y("\\Reals", "\\mathbb{R}");
y("\\Rho", "\\mathrm{P}");
y("\\sdot", "\\cdot");
y("\\sect", "\\S");
y("\\spades", "\\spadesuit");
y("\\sub", "\\subset");
y("\\sube", "\\subseteq");
y("\\supe", "\\supseteq");
y("\\Tau", "\\mathrm{T}");
y("\\thetasym", "\\vartheta");
y("\\weierp", "\\wp");
y("\\Zeta", "\\mathrm{Z}");
y("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}");
y("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}");
y("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits");
y("\\bra", "\\mathinner{\\langle{#1}|}");
y("\\ket", "\\mathinner{|{#1}\\rangle}");
y("\\braket", "\\mathinner{\\langle{#1}\\rangle}");
y("\\Bra", "\\left\\langle#1\\right|");
y("\\Ket", "\\left|#1\\right\\rangle");
var hf = (i) => (e) => {
  var t = e.consumeArg().tokens, a = e.consumeArg().tokens, l = e.consumeArg().tokens, o = e.consumeArg().tokens, u = e.macros.get("|"), h = e.macros.get("\\|");
  e.macros.beginGroup();
  var d = (x) => (C) => {
    i && (C.macros.set("|", u), l.length && C.macros.set("\\|", h));
    var A = x;
    if (!x && l.length) {
      var $ = C.future();
      $.text === "|" && (C.popToken(), A = !0);
    }
    return {
      tokens: A ? l : a,
      numArgs: 0
    };
  };
  e.macros.set("|", d(!1)), l.length && e.macros.set("\\|", d(!0));
  var p = e.consumeArg().tokens, _ = e.expandTokens([
    ...o,
    ...p,
    ...t
    // reversed
  ]);
  return e.macros.endGroup(), {
    tokens: _.reverse(),
    numArgs: 0
  };
};
y("\\bra@ket", hf(!1));
y("\\bra@set", hf(!0));
y("\\Braket", "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");
y("\\Set", "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");
y("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");
y("\\angln", "{\\angl n}");
y("\\blue", "\\textcolor{##6495ed}{#1}");
y("\\orange", "\\textcolor{##ffa500}{#1}");
y("\\pink", "\\textcolor{##ff00af}{#1}");
y("\\red", "\\textcolor{##df0030}{#1}");
y("\\green", "\\textcolor{##28ae7b}{#1}");
y("\\gray", "\\textcolor{gray}{#1}");
y("\\purple", "\\textcolor{##9d38bd}{#1}");
y("\\blueA", "\\textcolor{##ccfaff}{#1}");
y("\\blueB", "\\textcolor{##80f6ff}{#1}");
y("\\blueC", "\\textcolor{##63d9ea}{#1}");
y("\\blueD", "\\textcolor{##11accd}{#1}");
y("\\blueE", "\\textcolor{##0c7f99}{#1}");
y("\\tealA", "\\textcolor{##94fff5}{#1}");
y("\\tealB", "\\textcolor{##26edd5}{#1}");
y("\\tealC", "\\textcolor{##01d1c1}{#1}");
y("\\tealD", "\\textcolor{##01a995}{#1}");
y("\\tealE", "\\textcolor{##208170}{#1}");
y("\\greenA", "\\textcolor{##b6ffb0}{#1}");
y("\\greenB", "\\textcolor{##8af281}{#1}");
y("\\greenC", "\\textcolor{##74cf70}{#1}");
y("\\greenD", "\\textcolor{##1fab54}{#1}");
y("\\greenE", "\\textcolor{##0d923f}{#1}");
y("\\goldA", "\\textcolor{##ffd0a9}{#1}");
y("\\goldB", "\\textcolor{##ffbb71}{#1}");
y("\\goldC", "\\textcolor{##ff9c39}{#1}");
y("\\goldD", "\\textcolor{##e07d10}{#1}");
y("\\goldE", "\\textcolor{##a75a05}{#1}");
y("\\redA", "\\textcolor{##fca9a9}{#1}");
y("\\redB", "\\textcolor{##ff8482}{#1}");
y("\\redC", "\\textcolor{##f9685d}{#1}");
y("\\redD", "\\textcolor{##e84d39}{#1}");
y("\\redE", "\\textcolor{##bc2612}{#1}");
y("\\maroonA", "\\textcolor{##ffbde0}{#1}");
y("\\maroonB", "\\textcolor{##ff92c6}{#1}");
y("\\maroonC", "\\textcolor{##ed5fa6}{#1}");
y("\\maroonD", "\\textcolor{##ca337c}{#1}");
y("\\maroonE", "\\textcolor{##9e034e}{#1}");
y("\\purpleA", "\\textcolor{##ddd7ff}{#1}");
y("\\purpleB", "\\textcolor{##c6b9fc}{#1}");
y("\\purpleC", "\\textcolor{##aa87ff}{#1}");
y("\\purpleD", "\\textcolor{##7854ab}{#1}");
y("\\purpleE", "\\textcolor{##543b78}{#1}");
y("\\mintA", "\\textcolor{##f5f9e8}{#1}");
y("\\mintB", "\\textcolor{##edf2df}{#1}");
y("\\mintC", "\\textcolor{##e0e5cc}{#1}");
y("\\grayA", "\\textcolor{##f6f7f7}{#1}");
y("\\grayB", "\\textcolor{##f0f1f2}{#1}");
y("\\grayC", "\\textcolor{##e3e5e6}{#1}");
y("\\grayD", "\\textcolor{##d6d8da}{#1}");
y("\\grayE", "\\textcolor{##babec2}{#1}");
y("\\grayF", "\\textcolor{##888d93}{#1}");
y("\\grayG", "\\textcolor{##626569}{#1}");
y("\\grayH", "\\textcolor{##3b3e40}{#1}");
y("\\grayI", "\\textcolor{##21242c}{#1}");
y("\\kaBlue", "\\textcolor{##314453}{#1}");
y("\\kaGreen", "\\textcolor{##71B307}{#1}");
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.");
function su() {
  return {
    async: !1,
    breaks: !1,
    extensions: null,
    gfm: !0,
    hooks: null,
    pedantic: !1,
    renderer: null,
    silent: !1,
    tokenizer: null,
    walkTokens: null
  };
}
let Hr = su();
function ff(i) {
  Hr = i;
}
const df = /[&<>"']/, vg = new RegExp(df.source, "g"), mf = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, _g = new RegExp(mf.source, "g"), bg = {
  "&": "&amp;",
  "<": "&lt;",
  ">": "&gt;",
  '"': "&quot;",
  "'": "&#39;"
}, $4 = (i) => bg[i];
function p0(i, e) {
  if (e) {
    if (df.test(i))
      return i.replace(vg, $4);
  } else if (mf.test(i))
    return i.replace(_g, $4);
  return i;
}
const yg = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
function wg(i) {
  return i.replace(yg, (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 xg = /(^|[^\[])\^/g;
function Ke(i, e) {
  let t = typeof i == "string" ? i : i.source;
  e = e || "";
  const a = {
    replace: (l, o) => {
      let u = typeof o == "string" ? o : o.source;
      return u = u.replace(xg, "$1"), t = t.replace(l, u), a;
    },
    getRegex: () => new RegExp(t, e)
  };
  return a;
}
function M4(i) {
  try {
    i = encodeURI(i).replace(/%25/g, "%");
  } catch {
    return null;
  }
  return i;
}
const Xa = { exec: () => null };
function B4(i, e) {
  const t = i.replace(/\|/g, (o, u, h) => {
    let d = !1, p = u;
    for (; --p >= 0 && h[p] === "\\"; )
      d = !d;
    return d ? "|" : " |";
  }), a = t.split(/ \|/);
  let l = 0;
  if (a[0].trim() || a.shift(), a.length > 0 && !a[a.length - 1].trim() && a.pop(), e)
    if (a.length > e)
      a.splice(e);
    else
      for (; a.length < e; )
        a.push("");
  for (; l < a.length; l++)
    a[l] = a[l].trim().replace(/\\\|/g, "|");
  return a;
}
function ol(i, e, t) {
  const a = i.length;
  if (a === 0)
    return "";
  let l = 0;
  for (; l < a; ) {
    const o = i.charAt(a - l - 1);
    if (o === e && !t)
      l++;
    else if (o !== e && t)
      l++;
    else
      break;
  }
  return i.slice(0, a - l);
}
function Dg(i, e) {
  if (i.indexOf(e[1]) === -1)
    return -1;
  let t = 0;
  for (let a = 0; a < i.length; a++)
    if (i[a] === "\\")
      a++;
    else if (i[a] === e[0])
      t++;
    else if (i[a] === e[1] && (t--, t < 0))
      return a;
  return -1;
}
function z4(i, e, t, a) {
  const l = e.href, o = e.title ? p0(e.title) : null, u = i[1].replace(/\\([\[\]])/g, "$1");
  if (i[0].charAt(0) !== "!") {
    a.state.inLink = !0;
    const h = {
      type: "link",
      raw: t,
      href: l,
      title: o,
      text: u,
      tokens: a.inlineTokens(u)
    };
    return a.state.inLink = !1, h;
  }
  return {
    type: "image",
    raw: t,
    href: l,
    title: o,
    text: p0(u)
  };
}
function kg(i, e) {
  const t = i.match(/^(\s+)(?:```)/);
  if (t === null)
    return e;
  const a = t[1];
  return e.split(`
`).map((l) => {
    const o = l.match(/^\s+/);
    if (o === null)
      return l;
    const [u] = o;
    return u.length >= a.length ? l.slice(a.length) : l;
  }).join(`
`);
}
class Cl {
  // set by the lexer
  constructor(e) {
    rt(this, "options");
    rt(this, "rules");
    // set by the lexer
    rt(this, "lexer");
    this.options = e || Hr;
  }
  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 a = t[0].replace(/^ {1,4}/gm, "");
      return {
        type: "code",
        raw: t[0],
        codeBlockStyle: "indented",
        text: this.options.pedantic ? a : ol(a, `
`)
      };
    }
  }
  fences(e) {
    const t = this.rules.block.fences.exec(e);
    if (t) {
      const a = t[0], l = kg(a, t[3] || "");
      return {
        type: "code",
        raw: a,
        lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2],
        text: l
      };
    }
  }
  heading(e) {
    const t = this.rules.block.heading.exec(e);
    if (t) {
      let a = t[2].trim();
      if (/#$/.test(a)) {
        const l = ol(a, "#");
        (this.options.pedantic || !l || / $/.test(l)) && (a = l.trim());
      }
      return {
        type: "heading",
        raw: t[0],
        depth: t[1].length,
        text: a,
        tokens: this.lexer.inline(a)
      };
    }
  }
  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 a = t[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g, `
    $1`);
      a = ol(a.replace(/^ *>[ \t]?/gm, ""), `
`);
      const l = this.lexer.state.top;
      this.lexer.state.top = !0;
      const o = this.lexer.blockTokens(a);
      return this.lexer.state.top = l, {
        type: "blockquote",
        raw: t[0],
        tokens: o,
        text: a
      };
    }
  }
  list(e) {
    let t = this.rules.block.list.exec(e);
    if (t) {
      let a = t[1].trim();
      const l = a.length > 1, o = {
        type: "list",
        raw: "",
        ordered: l,
        start: l ? +a.slice(0, -1) : "",
        loose: !1,
        items: []
      };
      a = l ? `\\d{1,9}\\${a.slice(-1)}` : `\\${a}`, this.options.pedantic && (a = l ? a : "[*+-]");
      const u = new RegExp(`^( {0,3}${a})((?:[	 ][^\\n]*)?(?:\\n|$))`);
      let h = "", d = "", p = !1;
      for (; e; ) {
        let _ = !1;
        if (!(t = u.exec(e)) || this.rules.block.hr.test(e))
          break;
        h = t[0], e = e.substring(h.length);
        let x = t[2].split(`
`, 1)[0].replace(/^\t+/, (H) => " ".repeat(3 * H.length)), C = e.split(`
`, 1)[0], A = 0;
        this.options.pedantic ? (A = 2, d = x.trimStart()) : (A = t[2].search(/[^ ]/), A = A > 4 ? 1 : A, d = x.slice(A), A += t[1].length);
        let $ = !1;
        if (!x && /^ *$/.test(C) && (h += C + `
`, e = e.substring(C.length + 1), _ = !0), !_) {
          const H = new RegExp(`^ {0,${Math.min(3, A - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`), T = new RegExp(`^ {0,${Math.min(3, A - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), D = new RegExp(`^ {0,${Math.min(3, A - 1)}}(?:\`\`\`|~~~)`), R = new RegExp(`^ {0,${Math.min(3, A - 1)}}#`);
          for (; e; ) {
            const N = e.split(`
`, 1)[0];
            if (C = N, this.options.pedantic && (C = C.replace(/^ {1,4}(?=( {4})*[^ ])/g, "  ")), D.test(C) || R.test(C) || H.test(C) || T.test(e))
              break;
            if (C.search(/[^ ]/) >= A || !C.trim())
              d += `
` + C.slice(A);
            else {
              if ($ || x.search(/[^ ]/) >= 4 || D.test(x) || R.test(x) || T.test(x))
                break;
              d += `
` + C;
            }
            !$ && !C.trim() && ($ = !0), h += N + `
`, e = e.substring(N.length + 1), x = C.slice(A);
          }
        }
        o.loose || (p ? o.loose = !0 : /\n *\n *$/.test(h) && (p = !0));
        let I = null, q;
        this.options.gfm && (I = /^\[[ xX]\] /.exec(d), I && (q = I[0] !== "[ ] ", d = d.replace(/^\[[ xX]\] +/, ""))), o.items.push({
          type: "list_item",
          raw: h,
          task: !!I,
          checked: q,
          loose: !1,
          text: d,
          tokens: []
        }), o.raw += h;
      }
      o.items[o.items.length - 1].raw = h.trimEnd(), o.items[o.items.length - 1].text = d.trimEnd(), o.raw = o.raw.trimEnd();
      for (let _ = 0; _ < o.items.length; _++)
        if (this.lexer.state.top = !1, o.items[_].tokens = this.lexer.blockTokens(o.items[_].text, []), !o.loose) {
          const x = o.items[_].tokens.filter((A) => A.type === "space"), C = x.length > 0 && x.some((A) => /\n.*\n/.test(A.raw));
          o.loose = C;
        }
      if (o.loose)
        for (let _ = 0; _ < o.items.length; _++)
          o.items[_].loose = !0;
      return o;
    }
  }
  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 a = t[1].toLowerCase().replace(/\s+/g, " "), l = t[2] ? t[2].replace(/^<(.*)>$/, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", o = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3];
      return {
        type: "def",
        tag: a,
        raw: t[0],
        href: l,
        title: o
      };
    }
  }
  table(e) {
    const t = this.rules.block.table.exec(e);
    if (!t || !/[:|]/.test(t[2]))
      return;
    const a = B4(t[1]), l = t[2].replace(/^\||\| *$/g, "").split("|"), o = t[3] && t[3].trim() ? t[3].replace(/\n[ \t]*$/, "").split(`
`) : [], u = {
      type: "table",
      raw: t[0],
      header: [],
      align: [],
      rows: []
    };
    if (a.length === l.length) {
      for (const h of l)
        /^ *-+: *$/.test(h) ? u.align.push("right") : /^ *:-+: *$/.test(h) ? u.align.push("center") : /^ *:-+ *$/.test(h) ? u.align.push("left") : u.align.push(null);
      for (const h of a)
        u.header.push({
          text: h,
          tokens: this.lexer.inline(h)
        });
      for (const h of o)
        u.rows.push(B4(h, u.header.length).map((d) => ({
          text: d,
          tokens: this.lexer.inline(d)
        })));
      return u;
    }
  }
  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 a = t[1].charAt(t[1].length - 1) === `
` ? t[1].slice(0, -1) : t[1];
      return {
        type: "paragraph",
        raw: t[0],
        text: a,
        tokens: this.lexer.inline(a)
      };
    }
  }
  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: p0(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 a = t[2].trim();
      if (!this.options.pedantic && /^</.test(a)) {
        if (!/>$/.test(a))
          return;
        const u = ol(a.slice(0, -1), "\\");
        if ((a.length - u.length) % 2 === 0)
          return;
      } else {
        const u = Dg(t[2], "()");
        if (u > -1) {
          const d = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + u;
          t[2] = t[2].substring(0, u), t[0] = t[0].substring(0, d).trim(), t[3] = "";
        }
      }
      let l = t[2], o = "";
      if (this.options.pedantic) {
        const u = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(l);
        u && (l = u[1], o = u[3]);
      } else
        o = t[3] ? t[3].slice(1, -1) : "";
      return l = l.trim(), /^</.test(l) && (this.options.pedantic && !/>$/.test(a) ? l = l.slice(1) : l = l.slice(1, -1)), z4(t, {
        href: l && l.replace(this.rules.inline.anyPunctuation, "$1"),
        title: o && o.replace(this.rules.inline.anyPunctuation, "$1")
      }, t[0], this.lexer);
    }
  }
  reflink(e, t) {
    let a;
    if ((a = this.rules.inline.reflink.exec(e)) || (a = this.rules.inline.nolink.exec(e))) {
      const l = (a[2] || a[1]).replace(/\s+/g, " "), o = t[l.toLowerCase()];
      if (!o) {
        const u = a[0].charAt(0);
        return {
          type: "text",
          raw: u,
          text: u
        };
      }
      return z4(a, o, a[0], this.lexer);
    }
  }
  emStrong(e, t, a = "") {
    let l = this.rules.inline.emStrongLDelim.exec(e);
    if (!l || l[3] && a.match(/[\p{L}\p{N}]/u))
      return;
    if (!(l[1] || l[2] || "") || !a || this.rules.inline.punctuation.exec(a)) {
      const u = [...l[0]].length - 1;
      let h, d, p = u, _ = 0;
      const x = l[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
      for (x.lastIndex = 0, t = t.slice(-1 * e.length + u); (l = x.exec(t)) != null; ) {
        if (h = l[1] || l[2] || l[3] || l[4] || l[5] || l[6], !h)
          continue;
        if (d = [...h].length, l[3] || l[4]) {
          p += d;
          continue;
        } else if ((l[5] || l[6]) && u % 3 && !((u + d) % 3)) {
          _ += d;
          continue;
        }
        if (p -= d, p > 0)
          continue;
        d = Math.min(d, d + p + _);
        const C = [...l[0]][0].length, A = e.slice(0, u + l.index + C + d);
        if (Math.min(u, d) % 2) {
          const I = A.slice(1, -1);
          return {
            type: "em",
            raw: A,
            text: I,
            tokens: this.lexer.inlineTokens(I)
          };
        }
        const $ = A.slice(2, -2);
        return {
          type: "strong",
          raw: A,
          text: $,
          tokens: this.lexer.inlineTokens($)
        };
      }
    }
  }
  codespan(e) {
    const t = this.rules.inline.code.exec(e);
    if (t) {
      let a = t[2].replace(/\n/g, " ");
      const l = /[^ ]/.test(a), o = /^ /.test(a) && / $/.test(a);
      return l && o && (a = a.substring(1, a.length - 1)), a = p0(a, !0), {
        type: "codespan",
        raw: t[0],
        text: a
      };
    }
  }
  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 a, l;
      return t[2] === "@" ? (a = p0(t[1]), l = "mailto:" + a) : (a = p0(t[1]), l = a), {
        type: "link",
        raw: t[0],
        text: a,
        href: l,
        tokens: [
          {
            type: "text",
            raw: a,
            text: a
          }
        ]
      };
    }
  }
  url(e) {
    var a;
    let t;
    if (t = this.rules.inline.url.exec(e)) {
      let l, o;
      if (t[2] === "@")
        l = p0(t[0]), o = "mailto:" + l;
      else {
        let u;
        do
          u = t[0], t[0] = ((a = this.rules.inline._backpedal.exec(t[0])) == null ? void 0 : a[0]) ?? "";
        while (u !== t[0]);
        l = p0(t[0]), t[1] === "www." ? o = "http://" + t[0] : o = t[0];
      }
      return {
        type: "link",
        raw: t[0],
        text: l,
        href: o,
        tokens: [
          {
            type: "text",
            raw: l,
            text: l
          }
        ]
      };
    }
  }
  inlineText(e) {
    const t = this.rules.inline.text.exec(e);
    if (t) {
      let a;
      return this.lexer.state.inRawBlock ? a = t[0] : a = p0(t[0]), {
        type: "text",
        raw: t[0],
        text: a
      };
    }
  }
}
const Ag = /^(?: *(?:\n|$))+/, Sg = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/, Fg = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, ti = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, Cg = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, pf = /(?:[*+-]|\d{1,9}[.)])/, gf = Ke(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g, pf).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(), ou = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Eg = /^[^\n]+/, uu = /(?!\s*\])(?:\\.|[^\[\]\\])+/, Tg = Ke(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label", uu).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), $g = Ke(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, pf).getRegex(), ql = "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", cu = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, Mg = Ke("^ {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", cu).replace("tag", ql).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), vf = Ke(ou).replace("hr", ti).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", ql).getRegex(), Bg = Ke(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", vf).getRegex(), hu = {
  blockquote: Bg,
  code: Sg,
  def: Tg,
  fences: Fg,
  heading: Cg,
  hr: ti,
  html: Mg,
  lheading: gf,
  list: $g,
  newline: Ag,
  paragraph: vf,
  table: Xa,
  text: Eg
}, R4 = Ke("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", ti).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", ql).getRegex(), zg = {
  ...hu,
  table: R4,
  paragraph: Ke(ou).replace("hr", ti).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", R4).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", ql).getRegex()
}, Rg = {
  ...hu,
  html: Ke(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", cu).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: Xa,
  // fences not supported
  lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
  paragraph: Ke(ou).replace("hr", ti).replace("heading", ` *#{1,6} *[^
]`).replace("lheading", gf).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
}, _f = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, Ig = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, bf = /^( {2,}|\\)\n(?!\s*$)/, Lg = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, ni = "\\p{P}\\p{S}", Ng = Ke(/^((?![*_])[\spunctuation])/, "u").replace(/punctuation/g, ni).getRegex(), qg = /\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g, Og = Ke(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/, "u").replace(/punct/g, ni).getRegex(), Pg = Ke("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])", "gu").replace(/punct/g, ni).getRegex(), Hg = Ke("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])", "gu").replace(/punct/g, ni).getRegex(), Ug = Ke(/\\([punct])/, "gu").replace(/punct/g, ni).getRegex(), Wg = Ke(/^<(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(), Gg = Ke(cu).replace("(?:-->|$)", "-->").getRegex(), Vg = Ke("^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", Gg).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), El = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/, Yg = Ke(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label", El).replace("href", /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), yf = Ke(/^!?\[(label)\]\[(ref)\]/).replace("label", El).replace("ref", uu).getRegex(), wf = Ke(/^!?\[(ref)\](?:\[\])?/).replace("ref", uu).getRegex(), Xg = Ke("reflink|nolink(?!\\()", "g").replace("reflink", yf).replace("nolink", wf).getRegex(), fu = {
  _backpedal: Xa,
  // only used for GFM url
  anyPunctuation: Ug,
  autolink: Wg,
  blockSkip: qg,
  br: bf,
  code: Ig,
  del: Xa,
  emStrongLDelim: Og,
  emStrongRDelimAst: Pg,
  emStrongRDelimUnd: Hg,
  escape: _f,
  link: Yg,
  nolink: wf,
  punctuation: Ng,
  reflink: yf,
  reflinkSearch: Xg,
  tag: Vg,
  text: Lg,
  url: Xa
}, Zg = {
  ...fu,
  link: Ke(/^!?\[(label)\]\((.*?)\)/).replace("label", El).getRegex(),
  reflink: Ke(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", El).getRegex()
}, $o = {
  ...fu,
  escape: Ke(_f).replace("])", "~|])").getRegex(),
  url: Ke(/^((?: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.!#$%&'*+\/=?_`{\|}~-]+@)))/
}, Kg = {
  ...$o,
  br: Ke(bf).replace("{2,}", "*").getRegex(),
  text: Ke($o.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
}, ul = {
  normal: hu,
  gfm: zg,
  pedantic: Rg
}, La = {
  normal: fu,
  gfm: $o,
  breaks: Kg,
  pedantic: Zg
};
class dn {
  constructor(e) {
    rt(this, "tokens");
    rt(this, "options");
    rt(this, "state");
    rt(this, "tokenizer");
    rt(this, "inlineQueue");
    this.tokens = [], this.tokens.links = /* @__PURE__ */ Object.create(null), this.options = e || Hr, this.options.tokenizer = this.options.tokenizer || new Cl(), 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: ul.normal,
      inline: La.normal
    };
    this.options.pedantic ? (t.block = ul.pedantic, t.inline = La.pedantic) : this.options.gfm && (t.block = ul.gfm, this.options.breaks ? t.inline = La.breaks : t.inline = La.gfm), this.tokenizer.rules = t;
  }
  /**
   * Expose Rules
   */
  static get rules() {
    return {
      block: ul,
      inline: La
    };
  }
  /**
   * Static Lex Method
   */
  static lex(e, t) {
    return new dn(t).lex(e);
  }
  /**
   * Static Lex Inline Method
   */
  static lexInline(e, t) {
    return new dn(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 a = this.inlineQueue[t];
      this.inlineTokens(a.src, a.tokens);
    }
    return this.inlineQueue = [], this.tokens;
  }
  blockTokens(e, t = []) {
    this.options.pedantic ? e = e.replace(/\t/g, "    ").replace(/^ +$/gm, "") : e = e.replace(/^( *)(\t+)/gm, (h, d, p) => d + "    ".repeat(p.length));
    let a, l, o, u;
    for (; e; )
      if (!(this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((h) => (a = h.call({ lexer: this }, e, t)) ? (e = e.substring(a.raw.length), t.push(a), !0) : !1))) {
        if (a = this.tokenizer.space(e)) {
          e = e.substring(a.raw.length), a.raw.length === 1 && t.length > 0 ? t[t.length - 1].raw += `
` : t.push(a);
          continue;
        }
        if (a = this.tokenizer.code(e)) {
          e = e.substring(a.raw.length), l = t[t.length - 1], l && (l.type === "paragraph" || l.type === "text") ? (l.raw += `
` + a.raw, l.text += `
` + a.text, this.inlineQueue[this.inlineQueue.length - 1].src = l.text) : t.push(a);
          continue;
        }
        if (a = this.tokenizer.fences(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.heading(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.hr(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.blockquote(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.list(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.html(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.def(e)) {
          e = e.substring(a.raw.length), l = t[t.length - 1], l && (l.type === "paragraph" || l.type === "text") ? (l.raw += `
` + a.raw, l.text += `
` + a.raw, this.inlineQueue[this.inlineQueue.length - 1].src = l.text) : this.tokens.links[a.tag] || (this.tokens.links[a.tag] = {
            href: a.href,
            title: a.title
          });
          continue;
        }
        if (a = this.tokenizer.table(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.lheading(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (o = e, this.options.extensions && this.options.extensions.startBlock) {
          let h = 1 / 0;
          const d = e.slice(1);
          let p;
          this.options.extensions.startBlock.forEach((_) => {
            p = _.call({ lexer: this }, d), typeof p == "number" && p >= 0 && (h = Math.min(h, p));
          }), h < 1 / 0 && h >= 0 && (o = e.substring(0, h + 1));
        }
        if (this.state.top && (a = this.tokenizer.paragraph(o))) {
          l = t[t.length - 1], u && l.type === "paragraph" ? (l.raw += `
` + a.raw, l.text += `
` + a.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = l.text) : t.push(a), u = o.length !== e.length, e = e.substring(a.raw.length);
          continue;
        }
        if (a = this.tokenizer.text(e)) {
          e = e.substring(a.raw.length), l = t[t.length - 1], l && l.type === "text" ? (l.raw += `
` + a.raw, l.text += `
` + a.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = l.text) : t.push(a);
          continue;
        }
        if (e) {
          const h = "Infinite loop on byte: " + e.charCodeAt(0);
          if (this.options.silent) {
            console.error(h);
            break;
          } else
            throw new Error(h);
        }
      }
    return this.state.top = !0, t;
  }
  inline(e, t = []) {
    return this.inlineQueue.push({ src: e, tokens: t }), t;
  }
  /**
   * Lexing/Compiling
   */
  inlineTokens(e, t = []) {
    let a, l, o, u = e, h, d, p;
    if (this.tokens.links) {
      const _ = Object.keys(this.tokens.links);
      if (_.length > 0)
        for (; (h = this.tokenizer.rules.inline.reflinkSearch.exec(u)) != null; )
          _.includes(h[0].slice(h[0].lastIndexOf("[") + 1, -1)) && (u = u.slice(0, h.index) + "[" + "a".repeat(h[0].length - 2) + "]" + u.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));
    }
    for (; (h = this.tokenizer.rules.inline.blockSkip.exec(u)) != null; )
      u = u.slice(0, h.index) + "[" + "a".repeat(h[0].length - 2) + "]" + u.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
    for (; (h = this.tokenizer.rules.inline.anyPunctuation.exec(u)) != null; )
      u = u.slice(0, h.index) + "++" + u.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
    for (; e; )
      if (d || (p = ""), d = !1, !(this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some((_) => (a = _.call({ lexer: this }, e, t)) ? (e = e.substring(a.raw.length), t.push(a), !0) : !1))) {
        if (a = this.tokenizer.escape(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.tag(e)) {
          e = e.substring(a.raw.length), l = t[t.length - 1], l && a.type === "text" && l.type === "text" ? (l.raw += a.raw, l.text += a.text) : t.push(a);
          continue;
        }
        if (a = this.tokenizer.link(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.reflink(e, this.tokens.links)) {
          e = e.substring(a.raw.length), l = t[t.length - 1], l && a.type === "text" && l.type === "text" ? (l.raw += a.raw, l.text += a.text) : t.push(a);
          continue;
        }
        if (a = this.tokenizer.emStrong(e, u, p)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.codespan(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.br(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.del(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (a = this.tokenizer.autolink(e)) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (!this.state.inLink && (a = this.tokenizer.url(e))) {
          e = e.substring(a.raw.length), t.push(a);
          continue;
        }
        if (o = e, this.options.extensions && this.options.extensions.startInline) {
          let _ = 1 / 0;
          const x = e.slice(1);
          let C;
          this.options.extensions.startInline.forEach((A) => {
            C = A.call({ lexer: this }, x), typeof C == "number" && C >= 0 && (_ = Math.min(_, C));
          }), _ < 1 / 0 && _ >= 0 && (o = e.substring(0, _ + 1));
        }
        if (a = this.tokenizer.inlineText(o)) {
          e = e.substring(a.raw.length), a.raw.slice(-1) !== "_" && (p = a.raw.slice(-1)), d = !0, l = t[t.length - 1], l && l.type === "text" ? (l.raw += a.raw, l.text += a.text) : t.push(a);
          continue;
        }
        if (e) {
          const _ = "Infinite loop on byte: " + e.charCodeAt(0);
          if (this.options.silent) {
            console.error(_);
            break;
          } else
            throw new Error(_);
        }
      }
    return t;
  }
}
class Tl {
  constructor(e) {
    rt(this, "options");
    this.options = e || Hr;
  }
  code(e, t, a) {
    var o;
    const l = (o = (t || "").match(/^\S*/)) == null ? void 0 : o[0];
    return e = e.replace(/\n$/, "") + `
`, l ? '<pre><code class="language-' + p0(l) + '">' + (a ? e : p0(e, !0)) + `</code></pre>
` : "<pre><code>" + (a ? e : p0(e, !0)) + `</code></pre>
`;
  }
  blockquote(e) {
    return `<blockquote>
${e}</blockquote>
`;
  }
  html(e, t) {
    return e;
  }
  heading(e, t, a) {
    return `<h${t}>${e}</h${t}>
`;
  }
  hr() {
    return `<hr>
`;
  }
  list(e, t, a) {
    const l = t ? "ol" : "ul", o = t && a !== 1 ? ' start="' + a + '"' : "";
    return "<" + l + o + `>
` + e + "</" + l + `>
`;
  }
  listitem(e, t, a) {
    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 a = t.header ? "th" : "td";
    return (t.align ? `<${a} align="${t.align}">` : `<${a}>`) + e + `</${a}>
`;
  }
  /**
   * 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, a) {
    const l = M4(e);
    if (l === null)
      return a;
    e = l;
    let o = '<a href="' + e + '"';
    return t && (o += ' title="' + t + '"'), o += ">" + a + "</a>", o;
  }
  image(e, t, a) {
    const l = M4(e);
    if (l === null)
      return a;
    e = l;
    let o = `<img src="${e}" alt="${a}"`;
    return t && (o += ` title="${t}"`), o += ">", o;
  }
  text(e) {
    return e;
  }
}
class du {
  // 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, a) {
    return "" + a;
  }
  image(e, t, a) {
    return "" + a;
  }
  br() {
    return "";
  }
}
class mn {
  constructor(e) {
    rt(this, "options");
    rt(this, "renderer");
    rt(this, "textRenderer");
    this.options = e || Hr, this.options.renderer = this.options.renderer || new Tl(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.textRenderer = new du();
  }
  /**
   * Static Parse Method
   */
  static parse(e, t) {
    return new mn(t).parse(e);
  }
  /**
   * Static Parse Inline Method
   */
  static parseInline(e, t) {
    return new mn(t).parseInline(e);
  }
  /**
   * Parse Loop
   */
  parse(e, t = !0) {
    let a = "";
    for (let l = 0; l < e.length; l++) {
      const o = e[l];
      if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[o.type]) {
        const u = o, h = this.options.extensions.renderers[u.type].call({ parser: this }, u);
        if (h !== !1 || !["space", "hr", "heading", "code", "table", "blockquote", "list", "html", "paragraph", "text"].includes(u.type)) {
          a += h || "";
          continue;
        }
      }
      switch (o.type) {
        case "space":
          continue;
        case "hr": {
          a += this.renderer.hr();
          continue;
        }
        case "heading": {
          const u = o;
          a += this.renderer.heading(this.parseInline(u.tokens), u.depth, wg(this.parseInline(u.tokens, this.textRenderer)));
          continue;
        }
        case "code": {
          const u = o;
          a += this.renderer.code(u.text, u.lang, !!u.escaped);
          continue;
        }
        case "table": {
          const u = o;
          let h = "", d = "";
          for (let _ = 0; _ < u.header.length; _++)
            d += this.renderer.tablecell(this.parseInline(u.header[_].tokens), { header: !0, align: u.align[_] });
          h += this.renderer.tablerow(d);
          let p = "";
          for (let _ = 0; _ < u.rows.length; _++) {
            const x = u.rows[_];
            d = "";
            for (let C = 0; C < x.length; C++)
              d += this.renderer.tablecell(this.parseInline(x[C].tokens), { header: !1, align: u.align[C] });
            p += this.renderer.tablerow(d);
          }
          a += this.renderer.table(h, p);
          continue;
        }
        case "blockquote": {
          const u = o, h = this.parse(u.tokens);
          a += this.renderer.blockquote(h);
          continue;
        }
        case "list": {
          const u = o, h = u.ordered, d = u.start, p = u.loose;
          let _ = "";
          for (let x = 0; x < u.items.length; x++) {
            const C = u.items[x], A = C.checked, $ = C.task;
            let I = "";
            if (C.task) {
              const q = this.renderer.checkbox(!!A);
              p ? C.tokens.length > 0 && C.tokens[0].type === "paragraph" ? (C.tokens[0].text = q + " " + C.tokens[0].text, C.tokens[0].tokens && C.tokens[0].tokens.length > 0 && C.tokens[0].tokens[0].type === "text" && (C.tokens[0].tokens[0].text = q + " " + C.tokens[0].tokens[0].text)) : C.tokens.unshift({
                type: "text",
                text: q + " "
              }) : I += q + " ";
            }
            I += this.parse(C.tokens, p), _ += this.renderer.listitem(I, $, !!A);
          }
          a += this.renderer.list(_, h, d);
          continue;
        }
        case "html": {
          const u = o;
          a += this.renderer.html(u.text, u.block);
          continue;
        }
        case "paragraph": {
          const u = o;
          a += this.renderer.paragraph(this.parseInline(u.tokens));
          continue;
        }
        case "text": {
          let u = o, h = u.tokens ? this.parseInline(u.tokens) : u.text;
          for (; l + 1 < e.length && e[l + 1].type === "text"; )
            u = e[++l], h += `
` + (u.tokens ? this.parseInline(u.tokens) : u.text);
          a += t ? this.renderer.paragraph(h) : h;
          continue;
        }
        default: {
          const u = 'Token with "' + o.type + '" type was not found.';
          if (this.options.silent)
            return console.error(u), "";
          throw new Error(u);
        }
      }
    }
    return a;
  }
  /**
   * Parse Inline Tokens
   */
  parseInline(e, t) {
    t = t || this.renderer;
    let a = "";
    for (let l = 0; l < e.length; l++) {
      const o = e[l];
      if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[o.type]) {
        const u = this.options.extensions.renderers[o.type].call({ parser: this }, o);
        if (u !== !1 || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(o.type)) {
          a += u || "";
          continue;
        }
      }
      switch (o.type) {
        case "escape": {
          const u = o;
          a += t.text(u.text);
          break;
        }
        case "html": {
          const u = o;
          a += t.html(u.text);
          break;
        }
        case "link": {
          const u = o;
          a += t.link(u.href, u.title, this.parseInline(u.tokens, t));
          break;
        }
        case "image": {
          const u = o;
          a += t.image(u.href, u.title, u.text);
          break;
        }
        case "strong": {
          const u = o;
          a += t.strong(this.parseInline(u.tokens, t));
          break;
        }
        case "em": {
          const u = o;
          a += t.em(this.parseInline(u.tokens, t));
          break;
        }
        case "codespan": {
          const u = o;
          a += t.codespan(u.text);
          break;
        }
        case "br": {
          a += t.br();
          break;
        }
        case "del": {
          const u = o;
          a += t.del(this.parseInline(u.tokens, t));
          break;
        }
        case "text": {
          const u = o;
          a += t.text(u.text);
          break;
        }
        default: {
          const u = 'Token with "' + o.type + '" type was not found.';
          if (this.options.silent)
            return console.error(u), "";
          throw new Error(u);
        }
      }
    }
    return a;
  }
}
class Za {
  constructor(e) {
    rt(this, "options");
    this.options = e || Hr;
  }
  /**
   * 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;
  }
}
rt(Za, "passThroughHooks", /* @__PURE__ */ new Set([
  "preprocess",
  "postprocess",
  "processAllTokens"
]));
var Or, Mo, xf;
class Jg {
  constructor(...e) {
    Pc(this, Or);
    rt(this, "defaults", su());
    rt(this, "options", this.setOptions);
    rt(this, "parse", el(this, Or, Mo).call(this, dn.lex, mn.parse));
    rt(this, "parseInline", el(this, Or, Mo).call(this, dn.lexInline, mn.parseInline));
    rt(this, "Parser", mn);
    rt(this, "Renderer", Tl);
    rt(this, "TextRenderer", du);
    rt(this, "Lexer", dn);
    rt(this, "Tokenizer", Cl);
    rt(this, "Hooks", Za);
    this.use(...e);
  }
  /**
   * Run callback for every token
   */
  walkTokens(e, t) {
    var l, o;
    let a = [];
    for (const u of e)
      switch (a = a.concat(t.call(this, u)), u.type) {
        case "table": {
          const h = u;
          for (const d of h.header)
            a = a.concat(this.walkTokens(d.tokens, t));
          for (const d of h.rows)
            for (const p of d)
              a = a.concat(this.walkTokens(p.tokens, t));
          break;
        }
        case "list": {
          const h = u;
          a = a.concat(this.walkTokens(h.items, t));
          break;
        }
        default: {
          const h = u;
          (o = (l = this.defaults.extensions) == null ? void 0 : l.childTokens) != null && o[h.type] ? this.defaults.extensions.childTokens[h.type].forEach((d) => {
            const p = h[d].flat(1 / 0);
            a = a.concat(this.walkTokens(p, t));
          }) : h.tokens && (a = a.concat(this.walkTokens(h.tokens, t)));
        }
      }
    return a;
  }
  use(...e) {
    const t = this.defaults.extensions || { renderers: {}, childTokens: {} };
    return e.forEach((a) => {
      const l = { ...a };
      if (l.async = this.defaults.async || l.async || !1, a.extensions && (a.extensions.forEach((o) => {
        if (!o.name)
          throw new Error("extension name required");
        if ("renderer" in o) {
          const u = t.renderers[o.name];
          u ? t.renderers[o.name] = function(...h) {
            let d = o.renderer.apply(this, h);
            return d === !1 && (d = u.apply(this, h)), d;
          } : t.renderers[o.name] = o.renderer;
        }
        if ("tokenizer" in o) {
          if (!o.level || o.level !== "block" && o.level !== "inline")
            throw new Error("extension level must be 'block' or 'inline'");
          const u = t[o.level];
          u ? u.unshift(o.tokenizer) : t[o.level] = [o.tokenizer], o.start && (o.level === "block" ? t.startBlock ? t.startBlock.push(o.start) : t.startBlock = [o.start] : o.level === "inline" && (t.startInline ? t.startInline.push(o.start) : t.startInline = [o.start]));
        }
        "childTokens" in o && o.childTokens && (t.childTokens[o.name] = o.childTokens);
      }), l.extensions = t), a.renderer) {
        const o = this.defaults.renderer || new Tl(this.defaults);
        for (const u in a.renderer) {
          if (!(u in o))
            throw new Error(`renderer '${u}' does not exist`);
          if (u === "options")
            continue;
          const h = u, d = a.renderer[h], p = o[h];
          o[h] = (..._) => {
            let x = d.apply(o, _);
            return x === !1 && (x = p.apply(o, _)), x || "";
          };
        }
        l.renderer = o;
      }
      if (a.tokenizer) {
        const o = this.defaults.tokenizer || new Cl(this.defaults);
        for (const u in a.tokenizer) {
          if (!(u in o))
            throw new Error(`tokenizer '${u}' does not exist`);
          if (["options", "rules", "lexer"].includes(u))
            continue;
          const h = u, d = a.tokenizer[h], p = o[h];
          o[h] = (..._) => {
            let x = d.apply(o, _);
            return x === !1 && (x = p.apply(o, _)), x;
          };
        }
        l.tokenizer = o;
      }
      if (a.hooks) {
        const o = this.defaults.hooks || new Za();
        for (const u in a.hooks) {
          if (!(u in o))
            throw new Error(`hook '${u}' does not exist`);
          if (u === "options")
            continue;
          const h = u, d = a.hooks[h], p = o[h];
          Za.passThroughHooks.has(u) ? o[h] = (_) => {
            if (this.defaults.async)
              return Promise.resolve(d.call(o, _)).then((C) => p.call(o, C));
            const x = d.call(o, _);
            return p.call(o, x);
          } : o[h] = (..._) => {
            let x = d.apply(o, _);
            return x === !1 && (x = p.apply(o, _)), x;
          };
        }
        l.hooks = o;
      }
      if (a.walkTokens) {
        const o = this.defaults.walkTokens, u = a.walkTokens;
        l.walkTokens = function(h) {
          let d = [];
          return d.push(u.call(this, h)), o && (d = d.concat(o.call(this, h))), d;
        };
      }
      this.defaults = { ...this.defaults, ...l };
    }), this;
  }
  setOptions(e) {
    return this.defaults = { ...this.defaults, ...e }, this;
  }
  lexer(e, t) {
    return dn.lex(e, t ?? this.defaults);
  }
  parser(e, t) {
    return mn.parse(e, t ?? this.defaults);
  }
}
Or = new WeakSet(), Mo = function(e, t) {
  return (a, l) => {
    const o = { ...l }, u = { ...this.defaults, ...o };
    this.defaults.async === !0 && o.async === !1 && (u.silent || console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."), u.async = !0);
    const h = el(this, Or, xf).call(this, !!u.silent, !!u.async);
    if (typeof a > "u" || a === null)
      return h(new Error("marked(): input parameter is undefined or null"));
    if (typeof a != "string")
      return h(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(a) + ", string expected"));
    if (u.hooks && (u.hooks.options = u), u.async)
      return Promise.resolve(u.hooks ? u.hooks.preprocess(a) : a).then((d) => e(d, u)).then((d) => u.hooks ? u.hooks.processAllTokens(d) : d).then((d) => u.walkTokens ? Promise.all(this.walkTokens(d, u.walkTokens)).then(() => d) : d).then((d) => t(d, u)).then((d) => u.hooks ? u.hooks.postprocess(d) : d).catch(h);
    try {
      u.hooks && (a = u.hooks.preprocess(a));
      let d = e(a, u);
      u.hooks && (d = u.hooks.processAllTokens(d)), u.walkTokens && this.walkTokens(d, u.walkTokens);
      let p = t(d, u);
      return u.hooks && (p = u.hooks.postprocess(p)), p;
    } catch (d) {
      return h(d);
    }
  };
}, xf = function(e, t) {
  return (a) => {
    if (a.message += `
Please report this to https://github.com/markedjs/marked.`, e) {
      const l = "<p>An error occurred:</p><pre>" + p0(a.message + "", !0) + "</pre>";
      return t ? Promise.resolve(l) : l;
    }
    if (t)
      return Promise.reject(a);
    throw a;
  };
};
const qr = new Jg();
function Ze(i, e) {
  return qr.parse(i, e);
}
Ze.options = Ze.setOptions = function(i) {
  return qr.setOptions(i), Ze.defaults = qr.defaults, ff(Ze.defaults), Ze;
};
Ze.getDefaults = su;
Ze.defaults = Hr;
Ze.use = function(...i) {
  return qr.use(...i), Ze.defaults = qr.defaults, ff(Ze.defaults), Ze;
};
Ze.walkTokens = function(i, e) {
  return qr.walkTokens(i, e);
};
Ze.parseInline = qr.parseInline;
Ze.Parser = mn;
Ze.parser = mn.parse;
Ze.Renderer = Tl;
Ze.TextRenderer = du;
Ze.Lexer = dn;
Ze.lexer = dn.lex;
Ze.Tokenizer = Cl;
Ze.Hooks = Za;
Ze.parse = Ze;
Ze.options;
Ze.setOptions;
Ze.use;
Ze.walkTokens;
Ze.parseInline;
mn.parse;
dn.lex;
const Qg = /[\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, jg = Object.hasOwnProperty;
class Df {
  /**
   * 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 a = this;
    let l = e9(e, t === !0);
    const o = l;
    for (; jg.call(a.occurrences, l); )
      a.occurrences[o]++, l = o + "-" + a.occurrences[o];
    return a.occurrences[l] = 0, l;
  }
  /**
   * Reset - Forget all previous slugs
   *
   * @return void
   */
  reset() {
    this.occurrences = /* @__PURE__ */ Object.create(null);
  }
}
function e9(i, e) {
  return typeof i != "string" ? "" : (e || (i = i.toLowerCase()), i.replace(Qg, "").replace(/ /g, "-"));
}
new Df();
var t9 = { exports: {} };
(function(i) {
  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(a) {
    var l = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, o = 0, u = {}, h = {
      /**
       * 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: a.Prism && a.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: a.Prism && a.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 T(D) {
          return D instanceof d ? new d(D.type, T(D.content), D.alias) : Array.isArray(D) ? D.map(T) : D.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(T) {
          return Object.prototype.toString.call(T).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(T) {
          return T.__id || Object.defineProperty(T, "__id", { value: ++o }), T.__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 T(D, R) {
          R = R || {};
          var N, U;
          switch (h.util.type(D)) {
            case "Object":
              if (U = h.util.objId(D), R[U])
                return R[U];
              N = /** @type {Record<string, any>} */
              {}, R[U] = N;
              for (var G in D)
                D.hasOwnProperty(G) && (N[G] = T(D[G], R));
              return (
                /** @type {any} */
                N
              );
            case "Array":
              return U = h.util.objId(D), R[U] ? R[U] : (N = [], R[U] = N, /** @type {Array} */
              /** @type {any} */
              D.forEach(function(te, J) {
                N[J] = T(te, R);
              }), /** @type {any} */
              N);
            default:
              return D;
          }
        },
        /**
         * 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(T) {
          for (; T; ) {
            var D = l.exec(T.className);
            if (D)
              return D[1].toLowerCase();
            T = T.parentElement;
          }
          return "none";
        },
        /**
         * Sets the Prism `language-xxxx` class of the given element.
         *
         * @param {Element} element
         * @param {string} language
         * @returns {void}
         */
        setLanguage: function(T, D) {
          T.className = T.className.replace(RegExp(l, "gi"), ""), T.classList.add("language-" + D);
        },
        /**
         * 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 (N) {
            var T = (/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(N.stack) || [])[1];
            if (T) {
              var D = document.getElementsByTagName("script");
              for (var R in D)
                if (D[R].src == T)
                  return D[R];
            }
            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(T, D, R) {
          for (var N = "no-" + D; T; ) {
            var U = T.classList;
            if (U.contains(D))
              return !0;
            if (U.contains(N))
              return !1;
            T = T.parentElement;
          }
          return !!R;
        }
      },
      /**
       * 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: u,
        plaintext: u,
        text: u,
        txt: u,
        /**
         * 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(T, D) {
          var R = h.util.clone(h.languages[T]);
          for (var N in D)
            R[N] = D[N];
          return R;
        },
        /**
         * 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(T, D, R, N) {
          N = N || /** @type {any} */
          h.languages;
          var U = N[T], G = {};
          for (var te in U)
            if (U.hasOwnProperty(te)) {
              if (te == D)
                for (var J in R)
                  R.hasOwnProperty(J) && (G[J] = R[J]);
              R.hasOwnProperty(te) || (G[te] = U[te]);
            }
          var X = N[T];
          return N[T] = G, h.languages.DFS(h.languages, function(oe, Ae) {
            Ae === X && oe != T && (this[oe] = G);
          }), G;
        },
        // Traverse a language definition with Depth First Search
        DFS: function T(D, R, N, U) {
          U = U || {};
          var G = h.util.objId;
          for (var te in D)
            if (D.hasOwnProperty(te)) {
              R.call(D, te, D[te], N || te);
              var J = D[te], X = h.util.type(J);
              X === "Object" && !U[G(J)] ? (U[G(J)] = !0, T(J, R, null, U)) : X === "Array" && !U[G(J)] && (U[G(J)] = !0, T(J, R, te, U));
            }
        }
      },
      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(T, D) {
        h.highlightAllUnder(document, T, D);
      },
      /**
       * 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(T, D, R) {
        var N = {
          callback: R,
          container: T,
          selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
        };
        h.hooks.run("before-highlightall", N), N.elements = Array.prototype.slice.apply(N.container.querySelectorAll(N.selector)), h.hooks.run("before-all-elements-highlight", N);
        for (var U = 0, G; G = N.elements[U++]; )
          h.highlightElement(G, D === !0, N.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(T, D, R) {
        var N = h.util.getLanguage(T), U = h.languages[N];
        h.util.setLanguage(T, N);
        var G = T.parentElement;
        G && G.nodeName.toLowerCase() === "pre" && h.util.setLanguage(G, N);
        var te = T.textContent, J = {
          element: T,
          language: N,
          grammar: U,
          code: te
        };
        function X(Ae) {
          J.highlightedCode = Ae, h.hooks.run("before-insert", J), J.element.innerHTML = J.highlightedCode, h.hooks.run("after-highlight", J), h.hooks.run("complete", J), R && R.call(J.element);
        }
        if (h.hooks.run("before-sanity-check", J), G = J.element.parentElement, G && G.nodeName.toLowerCase() === "pre" && !G.hasAttribute("tabindex") && G.setAttribute("tabindex", "0"), !J.code) {
          h.hooks.run("complete", J), R && R.call(J.element);
          return;
        }
        if (h.hooks.run("before-highlight", J), !J.grammar) {
          X(h.util.encode(J.code));
          return;
        }
        if (D && a.Worker) {
          var oe = new Worker(h.filename);
          oe.onmessage = function(Ae) {
            X(Ae.data);
          }, oe.postMessage(JSON.stringify({
            language: J.language,
            code: J.code,
            immediateClose: !0
          }));
        } else
          X(h.highlight(J.code, J.grammar, J.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(T, D, R) {
        var N = {
          code: T,
          grammar: D,
          language: R
        };
        if (h.hooks.run("before-tokenize", N), !N.grammar)
          throw new Error('The language "' + N.language + '" has no grammar.');
        return N.tokens = h.tokenize(N.code, N.grammar), h.hooks.run("after-tokenize", N), d.stringify(h.util.encode(N.tokens), N.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(T, D) {
        var R = D.rest;
        if (R) {
          for (var N in R)
            D[N] = R[N];
          delete D.rest;
        }
        var U = new x();
        return C(U, U.head, T), _(T, U, D, U.head, 0), $(U);
      },
      /**
       * @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(T, D) {
          var R = h.hooks.all;
          R[T] = R[T] || [], R[T].push(D);
        },
        /**
         * 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(T, D) {
          var R = h.hooks.all[T];
          if (!(!R || !R.length))
            for (var N = 0, U; U = R[N++]; )
              U(D);
        }
      },
      Token: d
    };
    a.Prism = h;
    function d(T, D, R, N) {
      this.type = T, this.content = D, this.alias = R, this.length = (N || "").length | 0;
    }
    d.stringify = function T(D, R) {
      if (typeof D == "string")
        return D;
      if (Array.isArray(D)) {
        var N = "";
        return D.forEach(function(X) {
          N += T(X, R);
        }), N;
      }
      var U = {
        type: D.type,
        content: T(D.content, R),
        tag: "span",
        classes: ["token", D.type],
        attributes: {},
        language: R
      }, G = D.alias;
      G && (Array.isArray(G) ? Array.prototype.push.apply(U.classes, G) : U.classes.push(G)), h.hooks.run("wrap", U);
      var te = "";
      for (var J in U.attributes)
        te += " " + J + '="' + (U.attributes[J] || "").replace(/"/g, "&quot;") + '"';
      return "<" + U.tag + ' class="' + U.classes.join(" ") + '"' + te + ">" + U.content + "</" + U.tag + ">";
    };
    function p(T, D, R, N) {
      T.lastIndex = D;
      var U = T.exec(R);
      if (U && N && U[1]) {
        var G = U[1].length;
        U.index += G, U[0] = U[0].slice(G);
      }
      return U;
    }
    function _(T, D, R, N, U, G) {
      for (var te in R)
        if (!(!R.hasOwnProperty(te) || !R[te])) {
          var J = R[te];
          J = Array.isArray(J) ? J : [J];
          for (var X = 0; X < J.length; ++X) {
            if (G && G.cause == te + "," + X)
              return;
            var oe = J[X], Ae = oe.inside, je = !!oe.lookbehind, Me = !!oe.greedy, Ne = oe.alias;
            if (Me && !oe.pattern.global) {
              var Xe = oe.pattern.toString().match(/[imsuy]*$/)[0];
              oe.pattern = RegExp(oe.pattern.source, Xe + "g");
            }
            for (var he = oe.pattern || oe, ke = N.next, Oe = U; ke !== D.tail && !(G && Oe >= G.reach); Oe += ke.value.length, ke = ke.next) {
              var ce = ke.value;
              if (D.length > T.length)
                return;
              if (!(ce instanceof d)) {
                var le = 1, Be;
                if (Me) {
                  if (Be = p(he, Oe, T, je), !Be || Be.index >= T.length)
                    break;
                  var vt = Be.index, Pe = Be.index + Be[0].length, dt = Oe;
                  for (dt += ke.value.length; vt >= dt; )
                    ke = ke.next, dt += ke.value.length;
                  if (dt -= ke.value.length, Oe = dt, ke.value instanceof d)
                    continue;
                  for (var Q = ke; Q !== D.tail && (dt < Pe || typeof Q.value == "string"); Q = Q.next)
                    le++, dt += Q.value.length;
                  le--, ce = T.slice(Oe, dt), Be.index -= Oe;
                } else if (Be = p(he, 0, ce, je), !Be)
                  continue;
                var vt = Be.index, Dt = Be[0], at = ce.slice(0, vt), Bt = ce.slice(vt + Dt.length), l0 = Oe + ce.length;
                G && l0 > G.reach && (G.reach = l0);
                var Kt = ke.prev;
                at && (Kt = C(D, Kt, at), Oe += at.length), A(D, Kt, le);
                var Pt = new d(te, Ae ? h.tokenize(Dt, Ae) : Dt, Ne, Dt);
                if (ke = C(D, Kt, Pt), Bt && C(D, ke, Bt), le > 1) {
                  var b0 = {
                    cause: te + "," + X,
                    reach: l0
                  };
                  _(T, D, R, ke.prev, Oe, b0), G && b0.reach > G.reach && (G.reach = b0.reach);
                }
              }
            }
          }
        }
    }
    function x() {
      var T = { value: null, prev: null, next: null }, D = { value: null, prev: T, next: null };
      T.next = D, this.head = T, this.tail = D, this.length = 0;
    }
    function C(T, D, R) {
      var N = D.next, U = { value: R, prev: D, next: N };
      return D.next = U, N.prev = U, T.length++, U;
    }
    function A(T, D, R) {
      for (var N = D.next, U = 0; U < R && N !== T.tail; U++)
        N = N.next;
      D.next = N, N.prev = D, T.length -= U;
    }
    function $(T) {
      for (var D = [], R = T.head.next; R !== T.tail; )
        D.push(R.value), R = R.next;
      return D;
    }
    if (!a.document)
      return a.addEventListener && (h.disableWorkerMessageHandler || a.addEventListener("message", function(T) {
        var D = JSON.parse(T.data), R = D.language, N = D.code, U = D.immediateClose;
        a.postMessage(h.highlight(N, h.languages[R], R)), U && a.close();
      }, !1)), h;
    var I = h.util.currentScript();
    I && (h.filename = I.src, I.hasAttribute("data-manual") && (h.manual = !0));
    function q() {
      h.manual || h.highlightAll();
    }
    if (!h.manual) {
      var H = document.readyState;
      H === "loading" || H === "interactive" && I && I.defer ? document.addEventListener("DOMContentLoaded", q) : window.requestAnimationFrame ? window.requestAnimationFrame(q) : window.setTimeout(q, 16);
    }
    return h;
  }(e);
  i.exports && (i.exports = t), typeof Ir < "u" && (Ir.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(a) {
    a.type === "entity" && (a.attributes.title = a.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(l, o) {
      var u = {};
      u["language-" + o] = {
        pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
        lookbehind: !0,
        inside: t.languages[o]
      }, u.cdata = /^<!\[CDATA\[|\]\]>$/i;
      var h = {
        "included-cdata": {
          pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
          inside: u
        }
      };
      h["language-" + o] = {
        pattern: /[\s\S]+/,
        inside: t.languages[o]
      };
      var d = {};
      d[l] = {
        pattern: RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g, function() {
          return l;
        }), "i"),
        lookbehind: !0,
        greedy: !0,
        inside: h
      }, t.languages.insertBefore("markup", "cdata", d);
    }
  }), 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(a, l) {
      t.languages.markup.tag.inside["special-attr"].push({
        pattern: RegExp(
          /(^|["'\s])/.source + "(?:" + a + ")" + /\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: [l, "language-" + l],
                inside: t.languages[l]
              },
              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(a) {
    var l = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;
    a.languages.css = {
      comment: /\/\*[\s\S]*?\*\//,
      atrule: {
        pattern: RegExp("@[\\w-](?:" + /[^;{\s"']|\s+(?!\s)/.source + "|" + l.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\\((?:" + l.source + "|" + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ")\\)", "i"),
        greedy: !0,
        inside: {
          function: /^url/i,
          punctuation: /^\(|\)$/,
          string: {
            pattern: RegExp("^" + l.source + "$"),
            alias: "url"
          }
        }
      },
      selector: {
        pattern: RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|` + l.source + ")*(?=\\s*\\{)"),
        lookbehind: !0
      },
      string: {
        pattern: l,
        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: /[(){};:,]/
    }, a.languages.css.atrule.inside.rest = a.languages.css;
    var o = a.languages.markup;
    o && (o.tag.addInlined("style", "css"), o.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 a = "Loading…", l = function(I, q) {
      return "✖ Error " + I + " while fetching file: " + q;
    }, o = "✖ Error: File does not exist or is empty", u = {
      js: "javascript",
      py: "python",
      rb: "ruby",
      ps1: "powershell",
      psm1: "powershell",
      sh: "bash",
      bat: "batch",
      h: "c",
      tex: "latex"
    }, h = "data-src-status", d = "loading", p = "loaded", _ = "failed", x = "pre[data-src]:not([" + h + '="' + p + '"]):not([' + h + '="' + d + '"])';
    function C(I, q, H) {
      var T = new XMLHttpRequest();
      T.open("GET", I, !0), T.onreadystatechange = function() {
        T.readyState == 4 && (T.status < 400 && T.responseText ? q(T.responseText) : T.status >= 400 ? H(l(T.status, T.statusText)) : H(o));
      }, T.send(null);
    }
    function A(I) {
      var q = /^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(I || "");
      if (q) {
        var H = Number(q[1]), T = q[2], D = q[3];
        return T ? D ? [H, Number(D)] : [H, void 0] : [H, H];
      }
    }
    t.hooks.add("before-highlightall", function(I) {
      I.selector += ", " + x;
    }), t.hooks.add("before-sanity-check", function(I) {
      var q = (
        /** @type {HTMLPreElement} */
        I.element
      );
      if (q.matches(x)) {
        I.code = "", q.setAttribute(h, d);
        var H = q.appendChild(document.createElement("CODE"));
        H.textContent = a;
        var T = q.getAttribute("data-src"), D = I.language;
        if (D === "none") {
          var R = (/\.(\w+)$/.exec(T) || [, "none"])[1];
          D = u[R] || R;
        }
        t.util.setLanguage(H, D), t.util.setLanguage(q, D);
        var N = t.plugins.autoloader;
        N && N.loadLanguages(D), C(
          T,
          function(U) {
            q.setAttribute(h, p);
            var G = A(q.getAttribute("data-range"));
            if (G) {
              var te = U.split(/\r\n?|\n/g), J = G[0], X = G[1] == null ? te.length : G[1];
              J < 0 && (J += te.length), J = Math.max(0, Math.min(J - 1, te.length)), X < 0 && (X += te.length), X = Math.max(0, Math.min(X, te.length)), U = te.slice(J, X).join(`
`), q.hasAttribute("data-start") || q.setAttribute("data-start", String(J + 1));
            }
            H.textContent = U, t.highlightElement(H);
          },
          function(U) {
            q.setAttribute(h, _), H.textContent = U;
          }
        );
      }
    }), 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(q) {
        for (var H = (q || document).querySelectorAll(x), T = 0, D; D = H[T++]; )
          t.highlightElement(D);
      }
    };
    var $ = !1;
    t.fileHighlight = function() {
      $ || (console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."), $ = !0), t.plugins.fileHighlight.highlight.apply(this, arguments);
    };
  }();
})(t9);
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(i) {
  var e = /\\(?:[^a-z()[\]]|[a-z*]+)/i, t = {
    "equation-command": {
      pattern: e,
      alias: "regex"
    }
  };
  i.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: /[[\]{}&]/
  }, i.languages.tex = i.languages.latex, i.languages.context = i.languages.latex;
})(Prism);
(function(i) {
  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
  }, a = {
    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})/
  };
  i.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: a
      },
      // 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: a
      },
      {
        // 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: a.entity
        }
      }
    ],
    environment: {
      pattern: RegExp("\\$?" + e),
      alias: "constant"
    },
    variable: a.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 = i.languages.bash;
  for (var l = [
    "comment",
    "function-name",
    "for-or-select",
    "assign-left",
    "parameter",
    "string",
    "environment",
    "function",
    "keyword",
    "builtin",
    "boolean",
    "file-descriptor",
    "operator",
    "punctuation",
    "number"
  ], o = a.variable[1].inside, u = 0; u < l.length; u++)
    o[l[u]] = i.languages.bash[l[u]];
  i.languages.sh = i.languages.bash, i.languages.shell = i.languages.bash;
})(Prism);
new Df();
const n9 = (i) => {
  const e = {};
  for (let t = 0, a = i.length; t < a; t++) {
    const l = i[t];
    for (const o in l)
      e[o] ? e[o] = e[o].concat(l[o]) : e[o] = l[o];
  }
  return e;
}, r9 = [
  "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"
], a9 = [
  "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"
], i9 = [
  "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"
];
n9([
  Object.fromEntries(r9.map((i) => [i, ["*"]])),
  Object.fromEntries(a9.map((i) => [i, ["svg:*"]])),
  Object.fromEntries(i9.map((i) => [i, ["math:*"]]))
]);
const {
  HtmlTagHydration: Ov,
  SvelteComponent: Pv,
  attr: Hv,
  binding_callbacks: Uv,
  children: Wv,
  claim_element: Gv,
  claim_html_tag: Vv,
  detach: Yv,
  element: Xv,
  init: Zv,
  insert_hydration: Kv,
  noop: Jv,
  safe_not_equal: Qv,
  toggle_class: jv
} = window.__gradio__svelte__internal, { afterUpdate: e_ } = window.__gradio__svelte__internal, {
  SvelteComponent: t_,
  attr: n_,
  children: r_,
  claim_component: a_,
  claim_element: i_,
  create_component: l_,
  destroy_component: s_,
  detach: o_,
  element: u_,
  init: c_,
  insert_hydration: h_,
  mount_component: f_,
  safe_not_equal: d_,
  transition_in: m_,
  transition_out: p_
} = window.__gradio__svelte__internal, {
  SvelteComponent: g_,
  attr: v_,
  check_outros: __,
  children: b_,
  claim_component: y_,
  claim_element: w_,
  claim_space: x_,
  create_component: D_,
  create_slot: k_,
  destroy_component: A_,
  detach: S_,
  element: F_,
  empty: C_,
  get_all_dirty_from_scope: E_,
  get_slot_changes: T_,
  group_outros: $_,
  init: M_,
  insert_hydration: B_,
  mount_component: z_,
  safe_not_equal: R_,
  space: I_,
  toggle_class: L_,
  transition_in: N_,
  transition_out: q_,
  update_slot_base: O_
} = window.__gradio__svelte__internal, {
  SvelteComponent: P_,
  append_hydration: H_,
  attr: U_,
  children: W_,
  claim_component: G_,
  claim_element: V_,
  claim_space: Y_,
  claim_text: X_,
  create_component: Z_,
  destroy_component: K_,
  detach: J_,
  element: Q_,
  init: j_,
  insert_hydration: eb,
  mount_component: tb,
  safe_not_equal: nb,
  set_data: rb,
  space: ab,
  text: ib,
  toggle_class: lb,
  transition_in: sb,
  transition_out: ob
} = window.__gradio__svelte__internal, {
  SvelteComponent: l9,
  append_hydration: yl,
  attr: zn,
  bubble: s9,
  check_outros: o9,
  children: Bo,
  claim_component: u9,
  claim_element: zo,
  claim_space: I4,
  claim_text: c9,
  construct_svelte_component: L4,
  create_component: N4,
  create_slot: h9,
  destroy_component: q4,
  detach: Ka,
  element: Ro,
  get_all_dirty_from_scope: f9,
  get_slot_changes: d9,
  group_outros: m9,
  init: p9,
  insert_hydration: kf,
  listen: g9,
  mount_component: O4,
  safe_not_equal: v9,
  set_data: _9,
  set_style: cl,
  space: P4,
  text: b9,
  toggle_class: a0,
  transition_in: po,
  transition_out: go,
  update_slot_base: y9
} = window.__gradio__svelte__internal;
function H4(i) {
  let e, t;
  return {
    c() {
      e = Ro("span"), t = b9(
        /*label*/
        i[1]
      ), this.h();
    },
    l(a) {
      e = zo(a, "SPAN", { class: !0 });
      var l = Bo(e);
      t = c9(
        l,
        /*label*/
        i[1]
      ), l.forEach(Ka), this.h();
    },
    h() {
      zn(e, "class", "svelte-vk34kx");
    },
    m(a, l) {
      kf(a, e, l), yl(e, t);
    },
    p(a, l) {
      l & /*label*/
      2 && _9(
        t,
        /*label*/
        a[1]
      );
    },
    d(a) {
      a && Ka(e);
    }
  };
}
function w9(i) {
  let e, t, a, l, o, u, h, d, p = (
    /*show_label*/
    i[2] && H4(i)
  );
  var _ = (
    /*Icon*/
    i[0]
  );
  function x($, I) {
    return {};
  }
  _ && (l = L4(_, x()));
  const C = (
    /*#slots*/
    i[14].default
  ), A = h9(
    C,
    i,
    /*$$scope*/
    i[13],
    null
  );
  return {
    c() {
      e = Ro("button"), p && p.c(), t = P4(), a = Ro("div"), l && N4(l.$$.fragment), o = P4(), A && A.c(), this.h();
    },
    l($) {
      e = zo($, "BUTTON", {
        "aria-label": !0,
        "aria-haspopup": !0,
        title: !0,
        class: !0
      });
      var I = Bo(e);
      p && p.l(I), t = I4(I), a = zo(I, "DIV", { class: !0 });
      var q = Bo(a);
      l && u9(l.$$.fragment, q), o = I4(q), A && A.l(q), q.forEach(Ka), I.forEach(Ka), this.h();
    },
    h() {
      zn(a, "class", "svelte-vk34kx"), a0(
        a,
        "small",
        /*size*/
        i[4] === "small"
      ), a0(
        a,
        "large",
        /*size*/
        i[4] === "large"
      ), a0(
        a,
        "medium",
        /*size*/
        i[4] === "medium"
      ), e.disabled = /*disabled*/
      i[7], zn(
        e,
        "aria-label",
        /*label*/
        i[1]
      ), zn(
        e,
        "aria-haspopup",
        /*hasPopup*/
        i[8]
      ), zn(
        e,
        "title",
        /*label*/
        i[1]
      ), zn(e, "class", "svelte-vk34kx"), a0(
        e,
        "pending",
        /*pending*/
        i[3]
      ), a0(
        e,
        "padded",
        /*padded*/
        i[5]
      ), a0(
        e,
        "highlight",
        /*highlight*/
        i[6]
      ), a0(
        e,
        "transparent",
        /*transparent*/
        i[9]
      ), cl(e, "color", !/*disabled*/
      i[7] && /*_color*/
      i[11] ? (
        /*_color*/
        i[11]
      ) : "var(--block-label-text-color)"), cl(e, "--bg-color", /*disabled*/
      i[7] ? "auto" : (
        /*background*/
        i[10]
      ));
    },
    m($, I) {
      kf($, e, I), p && p.m(e, null), yl(e, t), yl(e, a), l && O4(l, a, null), yl(a, o), A && A.m(a, null), u = !0, h || (d = g9(
        e,
        "click",
        /*click_handler*/
        i[15]
      ), h = !0);
    },
    p($, [I]) {
      if (/*show_label*/
      $[2] ? p ? p.p($, I) : (p = H4($), p.c(), p.m(e, t)) : p && (p.d(1), p = null), I & /*Icon*/
      1 && _ !== (_ = /*Icon*/
      $[0])) {
        if (l) {
          m9();
          const q = l;
          go(q.$$.fragment, 1, 0, () => {
            q4(q, 1);
          }), o9();
        }
        _ ? (l = L4(_, x()), N4(l.$$.fragment), po(l.$$.fragment, 1), O4(l, a, o)) : l = null;
      }
      A && A.p && (!u || I & /*$$scope*/
      8192) && y9(
        A,
        C,
        $,
        /*$$scope*/
        $[13],
        u ? d9(
          C,
          /*$$scope*/
          $[13],
          I,
          null
        ) : f9(
          /*$$scope*/
          $[13]
        ),
        null
      ), (!u || I & /*size*/
      16) && a0(
        a,
        "small",
        /*size*/
        $[4] === "small"
      ), (!u || I & /*size*/
      16) && a0(
        a,
        "large",
        /*size*/
        $[4] === "large"
      ), (!u || I & /*size*/
      16) && a0(
        a,
        "medium",
        /*size*/
        $[4] === "medium"
      ), (!u || I & /*disabled*/
      128) && (e.disabled = /*disabled*/
      $[7]), (!u || I & /*label*/
      2) && zn(
        e,
        "aria-label",
        /*label*/
        $[1]
      ), (!u || I & /*hasPopup*/
      256) && zn(
        e,
        "aria-haspopup",
        /*hasPopup*/
        $[8]
      ), (!u || I & /*label*/
      2) && zn(
        e,
        "title",
        /*label*/
        $[1]
      ), (!u || I & /*pending*/
      8) && a0(
        e,
        "pending",
        /*pending*/
        $[3]
      ), (!u || I & /*padded*/
      32) && a0(
        e,
        "padded",
        /*padded*/
        $[5]
      ), (!u || I & /*highlight*/
      64) && a0(
        e,
        "highlight",
        /*highlight*/
        $[6]
      ), (!u || I & /*transparent*/
      512) && a0(
        e,
        "transparent",
        /*transparent*/
        $[9]
      ), I & /*disabled, _color*/
      2176 && cl(e, "color", !/*disabled*/
      $[7] && /*_color*/
      $[11] ? (
        /*_color*/
        $[11]
      ) : "var(--block-label-text-color)"), I & /*disabled, background*/
      1152 && cl(e, "--bg-color", /*disabled*/
      $[7] ? "auto" : (
        /*background*/
        $[10]
      ));
    },
    i($) {
      u || (l && po(l.$$.fragment, $), po(A, $), u = !0);
    },
    o($) {
      l && go(l.$$.fragment, $), go(A, $), u = !1;
    },
    d($) {
      $ && Ka(e), p && p.d(), l && q4(l), A && A.d($), h = !1, d();
    }
  };
}
function x9(i, e, t) {
  let a, { $$slots: l = {}, $$scope: o } = e, { Icon: u } = e, { label: h = "" } = e, { show_label: d = !1 } = e, { pending: p = !1 } = e, { size: _ = "small" } = e, { padded: x = !0 } = e, { highlight: C = !1 } = e, { disabled: A = !1 } = e, { hasPopup: $ = !1 } = e, { color: I = "var(--block-label-text-color)" } = e, { transparent: q = !1 } = e, { background: H = "var(--block-background-fill)" } = e;
  function T(D) {
    s9.call(this, i, D);
  }
  return i.$$set = (D) => {
    "Icon" in D && t(0, u = D.Icon), "label" in D && t(1, h = D.label), "show_label" in D && t(2, d = D.show_label), "pending" in D && t(3, p = D.pending), "size" in D && t(4, _ = D.size), "padded" in D && t(5, x = D.padded), "highlight" in D && t(6, C = D.highlight), "disabled" in D && t(7, A = D.disabled), "hasPopup" in D && t(8, $ = D.hasPopup), "color" in D && t(12, I = D.color), "transparent" in D && t(9, q = D.transparent), "background" in D && t(10, H = D.background), "$$scope" in D && t(13, o = D.$$scope);
  }, i.$$.update = () => {
    i.$$.dirty & /*highlight, color*/
    4160 && t(11, a = C ? "var(--color-accent)" : I);
  }, [
    u,
    h,
    d,
    p,
    _,
    x,
    C,
    A,
    $,
    q,
    H,
    a,
    I,
    o,
    l,
    T
  ];
}
class D9 extends l9 {
  constructor(e) {
    super(), p9(this, e, x9, w9, v9, {
      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
    });
  }
}
const {
  SvelteComponent: ub,
  append_hydration: cb,
  attr: hb,
  binding_callbacks: fb,
  children: db,
  claim_element: mb,
  create_slot: pb,
  detach: gb,
  element: vb,
  get_all_dirty_from_scope: _b,
  get_slot_changes: bb,
  init: yb,
  insert_hydration: wb,
  safe_not_equal: xb,
  toggle_class: Db,
  transition_in: kb,
  transition_out: Ab,
  update_slot_base: Sb
} = window.__gradio__svelte__internal, {
  SvelteComponent: Fb,
  append_hydration: Cb,
  attr: Eb,
  children: Tb,
  claim_svg_element: $b,
  detach: Mb,
  init: Bb,
  insert_hydration: zb,
  noop: Rb,
  safe_not_equal: Ib,
  svg_element: Lb
} = window.__gradio__svelte__internal, {
  SvelteComponent: Nb,
  append_hydration: qb,
  attr: Ob,
  children: Pb,
  claim_svg_element: Hb,
  detach: Ub,
  init: Wb,
  insert_hydration: Gb,
  noop: Vb,
  safe_not_equal: Yb,
  svg_element: Xb
} = window.__gradio__svelte__internal, {
  SvelteComponent: Zb,
  append_hydration: Kb,
  attr: Jb,
  children: Qb,
  claim_svg_element: jb,
  detach: ey,
  init: ty,
  insert_hydration: ny,
  noop: ry,
  safe_not_equal: ay,
  svg_element: iy
} = window.__gradio__svelte__internal, {
  SvelteComponent: ly,
  append_hydration: sy,
  attr: oy,
  children: uy,
  claim_svg_element: cy,
  detach: hy,
  init: fy,
  insert_hydration: dy,
  noop: my,
  safe_not_equal: py,
  svg_element: gy
} = window.__gradio__svelte__internal, {
  SvelteComponent: vy,
  append_hydration: _y,
  attr: by,
  children: yy,
  claim_svg_element: wy,
  detach: xy,
  init: Dy,
  insert_hydration: ky,
  noop: Ay,
  safe_not_equal: Sy,
  svg_element: Fy
} = window.__gradio__svelte__internal, {
  SvelteComponent: Cy,
  append_hydration: Ey,
  attr: Ty,
  children: $y,
  claim_svg_element: My,
  detach: By,
  init: zy,
  insert_hydration: Ry,
  noop: Iy,
  safe_not_equal: Ly,
  svg_element: Ny
} = window.__gradio__svelte__internal, {
  SvelteComponent: qy,
  append_hydration: Oy,
  attr: Py,
  children: Hy,
  claim_svg_element: Uy,
  detach: Wy,
  init: Gy,
  insert_hydration: Vy,
  noop: Yy,
  safe_not_equal: Xy,
  svg_element: Zy
} = window.__gradio__svelte__internal, {
  SvelteComponent: Ky,
  append_hydration: Jy,
  attr: Qy,
  children: jy,
  claim_svg_element: ew,
  detach: tw,
  init: nw,
  insert_hydration: rw,
  noop: aw,
  safe_not_equal: iw,
  svg_element: lw
} = window.__gradio__svelte__internal, {
  SvelteComponent: sw,
  append_hydration: ow,
  attr: uw,
  children: cw,
  claim_svg_element: hw,
  detach: fw,
  init: dw,
  insert_hydration: mw,
  noop: pw,
  safe_not_equal: gw,
  svg_element: vw
} = window.__gradio__svelte__internal, {
  SvelteComponent: _w,
  append_hydration: bw,
  attr: yw,
  children: ww,
  claim_svg_element: xw,
  detach: Dw,
  init: kw,
  insert_hydration: Aw,
  noop: Sw,
  safe_not_equal: Fw,
  svg_element: Cw
} = window.__gradio__svelte__internal, {
  SvelteComponent: k9,
  append_hydration: vo,
  attr: Q0,
  children: hl,
  claim_svg_element: fl,
  detach: Na,
  init: A9,
  insert_hydration: S9,
  noop: _o,
  safe_not_equal: F9,
  set_style: hn,
  svg_element: dl
} = window.__gradio__svelte__internal;
function C9(i) {
  let e, t, a, l;
  return {
    c() {
      e = dl("svg"), t = dl("g"), a = dl("path"), l = dl("path"), this.h();
    },
    l(o) {
      e = fl(o, "svg", {
        width: !0,
        height: !0,
        viewBox: !0,
        version: !0,
        xmlns: !0,
        "xmlns:xlink": !0,
        "xml:space": !0,
        stroke: !0,
        style: !0
      });
      var u = hl(e);
      t = fl(u, "g", { transform: !0 });
      var h = hl(t);
      a = fl(h, "path", { d: !0, style: !0 }), hl(a).forEach(Na), h.forEach(Na), l = fl(u, "path", { d: !0, style: !0 }), hl(l).forEach(Na), u.forEach(Na), this.h();
    },
    h() {
      Q0(a, "d", "M18,6L6.087,17.913"), hn(a, "fill", "none"), hn(a, "fill-rule", "nonzero"), hn(a, "stroke-width", "2px"), Q0(t, "transform", "matrix(1.14096,-0.140958,-0.140958,1.14096,-0.0559523,0.0559523)"), Q0(l, "d", "M4.364,4.364L19.636,19.636"), hn(l, "fill", "none"), hn(l, "fill-rule", "nonzero"), hn(l, "stroke-width", "2px"), Q0(e, "width", "100%"), Q0(e, "height", "100%"), Q0(e, "viewBox", "0 0 24 24"), Q0(e, "version", "1.1"), Q0(e, "xmlns", "http://www.w3.org/2000/svg"), Q0(e, "xmlns:xlink", "http://www.w3.org/1999/xlink"), Q0(e, "xml:space", "preserve"), Q0(e, "stroke", "currentColor"), hn(e, "fill-rule", "evenodd"), hn(e, "clip-rule", "evenodd"), hn(e, "stroke-linecap", "round"), hn(e, "stroke-linejoin", "round");
    },
    m(o, u) {
      S9(o, e, u), vo(e, t), vo(t, a), vo(e, l);
    },
    p: _o,
    i: _o,
    o: _o,
    d(o) {
      o && Na(e);
    }
  };
}
class E9 extends k9 {
  constructor(e) {
    super(), A9(this, e, null, C9, F9, {});
  }
}
const {
  SvelteComponent: Ew,
  append_hydration: Tw,
  attr: $w,
  children: Mw,
  claim_svg_element: Bw,
  detach: zw,
  init: Rw,
  insert_hydration: Iw,
  noop: Lw,
  safe_not_equal: Nw,
  svg_element: qw
} = window.__gradio__svelte__internal, {
  SvelteComponent: Ow,
  append_hydration: Pw,
  attr: Hw,
  children: Uw,
  claim_svg_element: Ww,
  detach: Gw,
  init: Vw,
  insert_hydration: Yw,
  noop: Xw,
  safe_not_equal: Zw,
  svg_element: Kw
} = window.__gradio__svelte__internal, {
  SvelteComponent: Jw,
  append_hydration: Qw,
  attr: jw,
  children: ex,
  claim_svg_element: tx,
  detach: nx,
  init: rx,
  insert_hydration: ax,
  noop: ix,
  safe_not_equal: lx,
  svg_element: sx
} = window.__gradio__svelte__internal, {
  SvelteComponent: ox,
  append_hydration: ux,
  attr: cx,
  children: hx,
  claim_svg_element: fx,
  detach: dx,
  init: mx,
  insert_hydration: px,
  noop: gx,
  safe_not_equal: vx,
  svg_element: _x
} = window.__gradio__svelte__internal, {
  SvelteComponent: bx,
  append_hydration: yx,
  attr: wx,
  children: xx,
  claim_svg_element: Dx,
  detach: kx,
  init: Ax,
  insert_hydration: Sx,
  noop: Fx,
  safe_not_equal: Cx,
  svg_element: Ex
} = window.__gradio__svelte__internal, {
  SvelteComponent: Tx,
  append_hydration: $x,
  attr: Mx,
  children: Bx,
  claim_svg_element: zx,
  detach: Rx,
  init: Ix,
  insert_hydration: Lx,
  noop: Nx,
  safe_not_equal: qx,
  svg_element: Ox
} = window.__gradio__svelte__internal, {
  SvelteComponent: Px,
  append_hydration: Hx,
  attr: Ux,
  children: Wx,
  claim_svg_element: Gx,
  detach: Vx,
  init: Yx,
  insert_hydration: Xx,
  noop: Zx,
  safe_not_equal: Kx,
  svg_element: Jx
} = window.__gradio__svelte__internal, {
  SvelteComponent: Qx,
  append_hydration: jx,
  attr: eD,
  children: tD,
  claim_svg_element: nD,
  detach: rD,
  init: aD,
  insert_hydration: iD,
  noop: lD,
  safe_not_equal: sD,
  svg_element: oD
} = window.__gradio__svelte__internal, {
  SvelteComponent: uD,
  append_hydration: cD,
  attr: hD,
  children: fD,
  claim_svg_element: dD,
  detach: mD,
  init: pD,
  insert_hydration: gD,
  noop: vD,
  safe_not_equal: _D,
  svg_element: bD
} = window.__gradio__svelte__internal, {
  SvelteComponent: yD,
  append_hydration: wD,
  attr: xD,
  children: DD,
  claim_svg_element: kD,
  detach: AD,
  init: SD,
  insert_hydration: FD,
  noop: CD,
  safe_not_equal: ED,
  svg_element: TD
} = window.__gradio__svelte__internal, {
  SvelteComponent: $D,
  append_hydration: MD,
  attr: BD,
  children: zD,
  claim_svg_element: RD,
  detach: ID,
  init: LD,
  insert_hydration: ND,
  noop: qD,
  safe_not_equal: OD,
  svg_element: PD
} = window.__gradio__svelte__internal, {
  SvelteComponent: HD,
  append_hydration: UD,
  attr: WD,
  children: GD,
  claim_svg_element: VD,
  detach: YD,
  init: XD,
  insert_hydration: ZD,
  noop: KD,
  safe_not_equal: JD,
  svg_element: QD
} = window.__gradio__svelte__internal, {
  SvelteComponent: jD,
  append_hydration: ek,
  attr: tk,
  children: nk,
  claim_svg_element: rk,
  detach: ak,
  init: ik,
  insert_hydration: lk,
  noop: sk,
  safe_not_equal: ok,
  svg_element: uk
} = window.__gradio__svelte__internal, {
  SvelteComponent: ck,
  append_hydration: hk,
  attr: fk,
  children: dk,
  claim_svg_element: mk,
  detach: pk,
  init: gk,
  insert_hydration: vk,
  noop: _k,
  safe_not_equal: bk,
  svg_element: yk
} = window.__gradio__svelte__internal, {
  SvelteComponent: wk,
  append_hydration: xk,
  attr: Dk,
  children: kk,
  claim_svg_element: Ak,
  detach: Sk,
  init: Fk,
  insert_hydration: Ck,
  noop: Ek,
  safe_not_equal: Tk,
  svg_element: $k
} = window.__gradio__svelte__internal, {
  SvelteComponent: Mk,
  append_hydration: Bk,
  attr: zk,
  children: Rk,
  claim_svg_element: Ik,
  detach: Lk,
  init: Nk,
  insert_hydration: qk,
  noop: Ok,
  safe_not_equal: Pk,
  svg_element: Hk
} = window.__gradio__svelte__internal, {
  SvelteComponent: Uk,
  append_hydration: Wk,
  attr: Gk,
  children: Vk,
  claim_svg_element: Yk,
  detach: Xk,
  init: Zk,
  insert_hydration: Kk,
  noop: Jk,
  safe_not_equal: Qk,
  svg_element: jk
} = window.__gradio__svelte__internal, {
  SvelteComponent: eA,
  append_hydration: tA,
  attr: nA,
  children: rA,
  claim_svg_element: aA,
  detach: iA,
  init: lA,
  insert_hydration: sA,
  noop: oA,
  safe_not_equal: uA,
  svg_element: cA
} = window.__gradio__svelte__internal, {
  SvelteComponent: hA,
  append_hydration: fA,
  attr: dA,
  children: mA,
  claim_svg_element: pA,
  detach: gA,
  init: vA,
  insert_hydration: _A,
  noop: bA,
  safe_not_equal: yA,
  svg_element: wA
} = window.__gradio__svelte__internal, {
  SvelteComponent: xA,
  append_hydration: DA,
  attr: kA,
  children: AA,
  claim_svg_element: SA,
  detach: FA,
  init: CA,
  insert_hydration: EA,
  noop: TA,
  safe_not_equal: $A,
  svg_element: MA
} = window.__gradio__svelte__internal, {
  SvelteComponent: BA,
  append_hydration: zA,
  attr: RA,
  children: IA,
  claim_svg_element: LA,
  detach: NA,
  init: qA,
  insert_hydration: OA,
  noop: PA,
  safe_not_equal: HA,
  svg_element: UA
} = window.__gradio__svelte__internal, {
  SvelteComponent: WA,
  append_hydration: GA,
  attr: VA,
  children: YA,
  claim_svg_element: XA,
  detach: ZA,
  init: KA,
  insert_hydration: JA,
  noop: QA,
  safe_not_equal: jA,
  svg_element: eS
} = window.__gradio__svelte__internal, {
  SvelteComponent: tS,
  append_hydration: nS,
  attr: rS,
  children: aS,
  claim_svg_element: iS,
  detach: lS,
  init: sS,
  insert_hydration: oS,
  noop: uS,
  safe_not_equal: cS,
  svg_element: hS
} = window.__gradio__svelte__internal, {
  SvelteComponent: fS,
  append_hydration: dS,
  attr: mS,
  children: pS,
  claim_svg_element: gS,
  detach: vS,
  init: _S,
  insert_hydration: bS,
  noop: yS,
  safe_not_equal: wS,
  svg_element: xS
} = window.__gradio__svelte__internal, {
  SvelteComponent: DS,
  append_hydration: kS,
  attr: AS,
  children: SS,
  claim_svg_element: FS,
  detach: CS,
  init: ES,
  insert_hydration: TS,
  noop: $S,
  safe_not_equal: MS,
  svg_element: BS
} = window.__gradio__svelte__internal, {
  SvelteComponent: zS,
  append_hydration: RS,
  attr: IS,
  children: LS,
  claim_svg_element: NS,
  detach: qS,
  init: OS,
  insert_hydration: PS,
  noop: HS,
  safe_not_equal: US,
  svg_element: WS
} = window.__gradio__svelte__internal, {
  SvelteComponent: GS,
  append_hydration: VS,
  attr: YS,
  children: XS,
  claim_svg_element: ZS,
  detach: KS,
  init: JS,
  insert_hydration: QS,
  noop: jS,
  safe_not_equal: eF,
  svg_element: tF
} = window.__gradio__svelte__internal, {
  SvelteComponent: nF,
  append_hydration: rF,
  attr: aF,
  children: iF,
  claim_svg_element: lF,
  detach: sF,
  init: oF,
  insert_hydration: uF,
  noop: cF,
  safe_not_equal: hF,
  svg_element: fF
} = window.__gradio__svelte__internal, {
  SvelteComponent: dF,
  append_hydration: mF,
  attr: pF,
  children: gF,
  claim_svg_element: vF,
  detach: _F,
  init: bF,
  insert_hydration: yF,
  noop: wF,
  safe_not_equal: xF,
  svg_element: DF
} = window.__gradio__svelte__internal, {
  SvelteComponent: kF,
  append_hydration: AF,
  attr: SF,
  children: FF,
  claim_svg_element: CF,
  detach: EF,
  init: TF,
  insert_hydration: $F,
  noop: MF,
  safe_not_equal: BF,
  set_style: zF,
  svg_element: RF
} = window.__gradio__svelte__internal, {
  SvelteComponent: IF,
  append_hydration: LF,
  attr: NF,
  children: qF,
  claim_svg_element: OF,
  detach: PF,
  init: HF,
  insert_hydration: UF,
  noop: WF,
  safe_not_equal: GF,
  svg_element: VF
} = window.__gradio__svelte__internal, {
  SvelteComponent: YF,
  append_hydration: XF,
  attr: ZF,
  children: KF,
  claim_svg_element: JF,
  detach: QF,
  init: jF,
  insert_hydration: eC,
  noop: tC,
  safe_not_equal: nC,
  svg_element: rC
} = window.__gradio__svelte__internal, {
  SvelteComponent: aC,
  append_hydration: iC,
  attr: lC,
  children: sC,
  claim_svg_element: oC,
  detach: uC,
  init: cC,
  insert_hydration: hC,
  noop: fC,
  safe_not_equal: dC,
  svg_element: mC
} = window.__gradio__svelte__internal, {
  SvelteComponent: pC,
  append_hydration: gC,
  attr: vC,
  children: _C,
  claim_svg_element: bC,
  detach: yC,
  init: wC,
  insert_hydration: xC,
  noop: DC,
  safe_not_equal: kC,
  svg_element: AC
} = window.__gradio__svelte__internal, {
  SvelteComponent: SC,
  append_hydration: FC,
  attr: CC,
  children: EC,
  claim_svg_element: TC,
  detach: $C,
  init: MC,
  insert_hydration: BC,
  noop: zC,
  safe_not_equal: RC,
  svg_element: IC
} = window.__gradio__svelte__internal, {
  SvelteComponent: LC,
  append_hydration: NC,
  attr: qC,
  children: OC,
  claim_svg_element: PC,
  detach: HC,
  init: UC,
  insert_hydration: WC,
  noop: GC,
  safe_not_equal: VC,
  svg_element: YC
} = window.__gradio__svelte__internal, {
  SvelteComponent: XC,
  append_hydration: ZC,
  attr: KC,
  children: JC,
  claim_svg_element: QC,
  detach: jC,
  init: eE,
  insert_hydration: tE,
  noop: nE,
  safe_not_equal: rE,
  svg_element: aE
} = window.__gradio__svelte__internal, {
  SvelteComponent: iE,
  append_hydration: lE,
  attr: sE,
  children: oE,
  claim_svg_element: uE,
  detach: cE,
  init: hE,
  insert_hydration: fE,
  noop: dE,
  safe_not_equal: mE,
  svg_element: pE
} = window.__gradio__svelte__internal, {
  SvelteComponent: gE,
  append_hydration: vE,
  attr: _E,
  children: bE,
  claim_svg_element: yE,
  claim_text: wE,
  detach: xE,
  init: DE,
  insert_hydration: kE,
  noop: AE,
  safe_not_equal: SE,
  svg_element: FE,
  text: CE
} = window.__gradio__svelte__internal, {
  SvelteComponent: EE,
  append_hydration: TE,
  attr: $E,
  children: ME,
  claim_svg_element: BE,
  detach: zE,
  init: RE,
  insert_hydration: IE,
  noop: LE,
  safe_not_equal: NE,
  svg_element: qE
} = window.__gradio__svelte__internal, {
  SvelteComponent: OE,
  append_hydration: PE,
  attr: HE,
  children: UE,
  claim_svg_element: WE,
  detach: GE,
  init: VE,
  insert_hydration: YE,
  noop: XE,
  safe_not_equal: ZE,
  svg_element: KE
} = window.__gradio__svelte__internal, {
  SvelteComponent: JE,
  append_hydration: QE,
  attr: jE,
  children: eT,
  claim_svg_element: tT,
  detach: nT,
  init: rT,
  insert_hydration: aT,
  noop: iT,
  safe_not_equal: lT,
  svg_element: sT
} = window.__gradio__svelte__internal, {
  SvelteComponent: oT,
  append_hydration: uT,
  attr: cT,
  children: hT,
  claim_svg_element: fT,
  detach: dT,
  init: mT,
  insert_hydration: pT,
  noop: gT,
  safe_not_equal: vT,
  svg_element: _T
} = window.__gradio__svelte__internal, {
  SvelteComponent: bT,
  append_hydration: yT,
  attr: wT,
  children: xT,
  claim_svg_element: DT,
  detach: kT,
  init: AT,
  insert_hydration: ST,
  noop: FT,
  safe_not_equal: CT,
  svg_element: ET
} = window.__gradio__svelte__internal, {
  SvelteComponent: TT,
  append_hydration: $T,
  attr: MT,
  children: BT,
  claim_svg_element: zT,
  claim_text: RT,
  detach: IT,
  init: LT,
  insert_hydration: NT,
  noop: qT,
  safe_not_equal: OT,
  svg_element: PT,
  text: HT
} = window.__gradio__svelte__internal, {
  SvelteComponent: UT,
  append_hydration: WT,
  attr: GT,
  children: VT,
  claim_svg_element: YT,
  claim_text: XT,
  detach: ZT,
  init: KT,
  insert_hydration: JT,
  noop: QT,
  safe_not_equal: jT,
  svg_element: e$,
  text: t$
} = window.__gradio__svelte__internal, {
  SvelteComponent: n$,
  append_hydration: r$,
  attr: a$,
  children: i$,
  claim_svg_element: l$,
  claim_text: s$,
  detach: o$,
  init: u$,
  insert_hydration: c$,
  noop: h$,
  safe_not_equal: f$,
  svg_element: d$,
  text: m$
} = window.__gradio__svelte__internal, {
  SvelteComponent: p$,
  append_hydration: g$,
  attr: v$,
  children: _$,
  claim_svg_element: b$,
  detach: y$,
  init: w$,
  insert_hydration: x$,
  noop: D$,
  safe_not_equal: k$,
  svg_element: A$
} = window.__gradio__svelte__internal, {
  SvelteComponent: S$,
  append_hydration: F$,
  attr: C$,
  children: E$,
  claim_svg_element: T$,
  detach: $$,
  init: M$,
  insert_hydration: B$,
  noop: z$,
  safe_not_equal: R$,
  svg_element: I$
} = window.__gradio__svelte__internal, {
  SvelteComponent: L$,
  append_hydration: N$,
  attr: q$,
  children: O$,
  claim_svg_element: P$,
  detach: H$,
  init: U$,
  insert_hydration: W$,
  noop: G$,
  safe_not_equal: V$,
  svg_element: Y$
} = window.__gradio__svelte__internal, {
  SvelteComponent: X$,
  append_hydration: Z$,
  attr: K$,
  children: J$,
  claim_svg_element: Q$,
  detach: j$,
  init: eM,
  insert_hydration: tM,
  noop: nM,
  safe_not_equal: rM,
  svg_element: aM
} = window.__gradio__svelte__internal, {
  SvelteComponent: iM,
  append_hydration: lM,
  attr: sM,
  children: oM,
  claim_svg_element: uM,
  detach: cM,
  init: hM,
  insert_hydration: fM,
  noop: dM,
  safe_not_equal: mM,
  svg_element: pM
} = window.__gradio__svelte__internal, T9 = [
  { color: "red", primary: 600, secondary: 100 },
  { color: "green", primary: 600, secondary: 100 },
  { color: "blue", primary: 600, secondary: 100 },
  { color: "yellow", primary: 500, secondary: 100 },
  { color: "purple", primary: 600, secondary: 100 },
  { color: "teal", primary: 600, secondary: 100 },
  { color: "orange", primary: 600, secondary: 100 },
  { color: "cyan", primary: 600, secondary: 100 },
  { color: "lime", primary: 500, secondary: 100 },
  { color: "pink", primary: 600, secondary: 100 }
], U4 = {
  inherit: "inherit",
  current: "currentColor",
  transparent: "transparent",
  black: "#000",
  white: "#fff",
  slate: {
    50: "#f8fafc",
    100: "#f1f5f9",
    200: "#e2e8f0",
    300: "#cbd5e1",
    400: "#94a3b8",
    500: "#64748b",
    600: "#475569",
    700: "#334155",
    800: "#1e293b",
    900: "#0f172a",
    950: "#020617"
  },
  gray: {
    50: "#f9fafb",
    100: "#f3f4f6",
    200: "#e5e7eb",
    300: "#d1d5db",
    400: "#9ca3af",
    500: "#6b7280",
    600: "#4b5563",
    700: "#374151",
    800: "#1f2937",
    900: "#111827",
    950: "#030712"
  },
  zinc: {
    50: "#fafafa",
    100: "#f4f4f5",
    200: "#e4e4e7",
    300: "#d4d4d8",
    400: "#a1a1aa",
    500: "#71717a",
    600: "#52525b",
    700: "#3f3f46",
    800: "#27272a",
    900: "#18181b",
    950: "#09090b"
  },
  neutral: {
    50: "#fafafa",
    100: "#f5f5f5",
    200: "#e5e5e5",
    300: "#d4d4d4",
    400: "#a3a3a3",
    500: "#737373",
    600: "#525252",
    700: "#404040",
    800: "#262626",
    900: "#171717",
    950: "#0a0a0a"
  },
  stone: {
    50: "#fafaf9",
    100: "#f5f5f4",
    200: "#e7e5e4",
    300: "#d6d3d1",
    400: "#a8a29e",
    500: "#78716c",
    600: "#57534e",
    700: "#44403c",
    800: "#292524",
    900: "#1c1917",
    950: "#0c0a09"
  },
  red: {
    50: "#fef2f2",
    100: "#fee2e2",
    200: "#fecaca",
    300: "#fca5a5",
    400: "#f87171",
    500: "#ef4444",
    600: "#dc2626",
    700: "#b91c1c",
    800: "#991b1b",
    900: "#7f1d1d",
    950: "#450a0a"
  },
  orange: {
    50: "#fff7ed",
    100: "#ffedd5",
    200: "#fed7aa",
    300: "#fdba74",
    400: "#fb923c",
    500: "#f97316",
    600: "#ea580c",
    700: "#c2410c",
    800: "#9a3412",
    900: "#7c2d12",
    950: "#431407"
  },
  amber: {
    50: "#fffbeb",
    100: "#fef3c7",
    200: "#fde68a",
    300: "#fcd34d",
    400: "#fbbf24",
    500: "#f59e0b",
    600: "#d97706",
    700: "#b45309",
    800: "#92400e",
    900: "#78350f",
    950: "#451a03"
  },
  yellow: {
    50: "#fefce8",
    100: "#fef9c3",
    200: "#fef08a",
    300: "#fde047",
    400: "#facc15",
    500: "#eab308",
    600: "#ca8a04",
    700: "#a16207",
    800: "#854d0e",
    900: "#713f12",
    950: "#422006"
  },
  lime: {
    50: "#f7fee7",
    100: "#ecfccb",
    200: "#d9f99d",
    300: "#bef264",
    400: "#a3e635",
    500: "#84cc16",
    600: "#65a30d",
    700: "#4d7c0f",
    800: "#3f6212",
    900: "#365314",
    950: "#1a2e05"
  },
  green: {
    50: "#f0fdf4",
    100: "#dcfce7",
    200: "#bbf7d0",
    300: "#86efac",
    400: "#4ade80",
    500: "#22c55e",
    600: "#16a34a",
    700: "#15803d",
    800: "#166534",
    900: "#14532d",
    950: "#052e16"
  },
  emerald: {
    50: "#ecfdf5",
    100: "#d1fae5",
    200: "#a7f3d0",
    300: "#6ee7b7",
    400: "#34d399",
    500: "#10b981",
    600: "#059669",
    700: "#047857",
    800: "#065f46",
    900: "#064e3b",
    950: "#022c22"
  },
  teal: {
    50: "#f0fdfa",
    100: "#ccfbf1",
    200: "#99f6e4",
    300: "#5eead4",
    400: "#2dd4bf",
    500: "#14b8a6",
    600: "#0d9488",
    700: "#0f766e",
    800: "#115e59",
    900: "#134e4a",
    950: "#042f2e"
  },
  cyan: {
    50: "#ecfeff",
    100: "#cffafe",
    200: "#a5f3fc",
    300: "#67e8f9",
    400: "#22d3ee",
    500: "#06b6d4",
    600: "#0891b2",
    700: "#0e7490",
    800: "#155e75",
    900: "#164e63",
    950: "#083344"
  },
  sky: {
    50: "#f0f9ff",
    100: "#e0f2fe",
    200: "#bae6fd",
    300: "#7dd3fc",
    400: "#38bdf8",
    500: "#0ea5e9",
    600: "#0284c7",
    700: "#0369a1",
    800: "#075985",
    900: "#0c4a6e",
    950: "#082f49"
  },
  blue: {
    50: "#eff6ff",
    100: "#dbeafe",
    200: "#bfdbfe",
    300: "#93c5fd",
    400: "#60a5fa",
    500: "#3b82f6",
    600: "#2563eb",
    700: "#1d4ed8",
    800: "#1e40af",
    900: "#1e3a8a",
    950: "#172554"
  },
  indigo: {
    50: "#eef2ff",
    100: "#e0e7ff",
    200: "#c7d2fe",
    300: "#a5b4fc",
    400: "#818cf8",
    500: "#6366f1",
    600: "#4f46e5",
    700: "#4338ca",
    800: "#3730a3",
    900: "#312e81",
    950: "#1e1b4b"
  },
  violet: {
    50: "#f5f3ff",
    100: "#ede9fe",
    200: "#ddd6fe",
    300: "#c4b5fd",
    400: "#a78bfa",
    500: "#8b5cf6",
    600: "#7c3aed",
    700: "#6d28d9",
    800: "#5b21b6",
    900: "#4c1d95",
    950: "#2e1065"
  },
  purple: {
    50: "#faf5ff",
    100: "#f3e8ff",
    200: "#e9d5ff",
    300: "#d8b4fe",
    400: "#c084fc",
    500: "#a855f7",
    600: "#9333ea",
    700: "#7e22ce",
    800: "#6b21a8",
    900: "#581c87",
    950: "#3b0764"
  },
  fuchsia: {
    50: "#fdf4ff",
    100: "#fae8ff",
    200: "#f5d0fe",
    300: "#f0abfc",
    400: "#e879f9",
    500: "#d946ef",
    600: "#c026d3",
    700: "#a21caf",
    800: "#86198f",
    900: "#701a75",
    950: "#4a044e"
  },
  pink: {
    50: "#fdf2f8",
    100: "#fce7f3",
    200: "#fbcfe8",
    300: "#f9a8d4",
    400: "#f472b6",
    500: "#ec4899",
    600: "#db2777",
    700: "#be185d",
    800: "#9d174d",
    900: "#831843",
    950: "#500724"
  },
  rose: {
    50: "#fff1f2",
    100: "#ffe4e6",
    200: "#fecdd3",
    300: "#fda4af",
    400: "#fb7185",
    500: "#f43f5e",
    600: "#e11d48",
    700: "#be123c",
    800: "#9f1239",
    900: "#881337",
    950: "#4c0519"
  }
};
T9.reduce(
  (i, { color: e, primary: t, secondary: a }) => ({
    ...i,
    [e]: {
      primary: U4[e][t],
      secondary: U4[e][a]
    }
  }),
  {}
);
const {
  SvelteComponent: gM,
  claim_component: vM,
  create_component: _M,
  destroy_component: bM,
  init: yM,
  mount_component: wM,
  safe_not_equal: xM,
  transition_in: DM,
  transition_out: kM
} = window.__gradio__svelte__internal, { createEventDispatcher: AM } = window.__gradio__svelte__internal, {
  SvelteComponent: SM,
  append_hydration: FM,
  attr: CM,
  check_outros: EM,
  children: TM,
  claim_component: $M,
  claim_element: MM,
  claim_space: BM,
  claim_text: zM,
  create_component: RM,
  destroy_component: IM,
  detach: LM,
  element: NM,
  empty: qM,
  group_outros: OM,
  init: PM,
  insert_hydration: HM,
  mount_component: UM,
  safe_not_equal: WM,
  set_data: GM,
  space: VM,
  text: YM,
  toggle_class: XM,
  transition_in: ZM,
  transition_out: KM
} = window.__gradio__svelte__internal, {
  SvelteComponent: JM,
  attr: QM,
  children: jM,
  claim_element: eB,
  create_slot: tB,
  detach: nB,
  element: rB,
  get_all_dirty_from_scope: aB,
  get_slot_changes: iB,
  init: lB,
  insert_hydration: sB,
  safe_not_equal: oB,
  toggle_class: uB,
  transition_in: cB,
  transition_out: hB,
  update_slot_base: fB
} = window.__gradio__svelte__internal, {
  SvelteComponent: dB,
  append_hydration: mB,
  attr: pB,
  check_outros: gB,
  children: vB,
  claim_component: _B,
  claim_element: bB,
  claim_space: yB,
  create_component: wB,
  destroy_component: xB,
  detach: DB,
  element: kB,
  empty: AB,
  group_outros: SB,
  init: FB,
  insert_hydration: CB,
  listen: EB,
  mount_component: TB,
  safe_not_equal: $B,
  space: MB,
  toggle_class: BB,
  transition_in: zB,
  transition_out: RB
} = window.__gradio__svelte__internal, {
  SvelteComponent: IB,
  attr: LB,
  children: NB,
  claim_element: qB,
  create_slot: OB,
  detach: PB,
  element: HB,
  get_all_dirty_from_scope: UB,
  get_slot_changes: WB,
  init: GB,
  insert_hydration: VB,
  null_to_empty: YB,
  safe_not_equal: XB,
  transition_in: ZB,
  transition_out: KB,
  update_slot_base: JB
} = window.__gradio__svelte__internal, {
  SvelteComponent: $9,
  append_hydration: Lr,
  attr: an,
  binding_callbacks: W4,
  check_outros: Io,
  children: pn,
  claim_component: Af,
  claim_element: gn,
  claim_space: L0,
  claim_text: ht,
  create_component: Sf,
  create_slot: Ff,
  destroy_component: Cf,
  destroy_each: Ef,
  detach: pe,
  element: vn,
  empty: O0,
  ensure_array_like: $l,
  get_all_dirty_from_scope: Tf,
  get_slot_changes: $f,
  group_outros: Lo,
  init: M9,
  insert_hydration: Fe,
  mount_component: Mf,
  noop: No,
  safe_not_equal: B9,
  set_data: P0,
  set_style: or,
  space: N0,
  text: ft,
  toggle_class: R0,
  transition_in: rn,
  transition_out: _n,
  update_slot_base: Bf
} = window.__gradio__svelte__internal, { tick: z9 } = window.__gradio__svelte__internal, { onDestroy: R9 } = window.__gradio__svelte__internal, { createEventDispatcher: I9 } = window.__gradio__svelte__internal, L9 = (i) => ({}), G4 = (i) => ({}), N9 = (i) => ({}), V4 = (i) => ({});
function Y4(i, e, t) {
  const a = i.slice();
  return a[40] = e[t], a[42] = t, a;
}
function X4(i, e, t) {
  const a = i.slice();
  return a[40] = e[t], a;
}
function q9(i) {
  let e, t, a, l, o = (
    /*i18n*/
    i[1]("common.error") + ""
  ), u, h, d;
  t = new D9({
    props: {
      Icon: E9,
      label: (
        /*i18n*/
        i[1]("common.clear")
      ),
      disabled: !1
    }
  }), t.$on(
    "click",
    /*click_handler*/
    i[32]
  );
  const p = (
    /*#slots*/
    i[30].error
  ), _ = Ff(
    p,
    i,
    /*$$scope*/
    i[29],
    G4
  );
  return {
    c() {
      e = vn("div"), Sf(t.$$.fragment), a = N0(), l = vn("span"), u = ft(o), h = N0(), _ && _.c(), this.h();
    },
    l(x) {
      e = gn(x, "DIV", { class: !0 });
      var C = pn(e);
      Af(t.$$.fragment, C), C.forEach(pe), a = L0(x), l = gn(x, "SPAN", { class: !0 });
      var A = pn(l);
      u = ht(A, o), A.forEach(pe), h = L0(x), _ && _.l(x), this.h();
    },
    h() {
      an(e, "class", "clear-status svelte-17v219f"), an(l, "class", "error svelte-17v219f");
    },
    m(x, C) {
      Fe(x, e, C), Mf(t, e, null), Fe(x, a, C), Fe(x, l, C), Lr(l, u), Fe(x, h, C), _ && _.m(x, C), d = !0;
    },
    p(x, C) {
      const A = {};
      C[0] & /*i18n*/
      2 && (A.label = /*i18n*/
      x[1]("common.clear")), t.$set(A), (!d || C[0] & /*i18n*/
      2) && o !== (o = /*i18n*/
      x[1]("common.error") + "") && P0(u, o), _ && _.p && (!d || C[0] & /*$$scope*/
      536870912) && Bf(
        _,
        p,
        x,
        /*$$scope*/
        x[29],
        d ? $f(
          p,
          /*$$scope*/
          x[29],
          C,
          L9
        ) : Tf(
          /*$$scope*/
          x[29]
        ),
        G4
      );
    },
    i(x) {
      d || (rn(t.$$.fragment, x), rn(_, x), d = !0);
    },
    o(x) {
      _n(t.$$.fragment, x), _n(_, x), d = !1;
    },
    d(x) {
      x && (pe(e), pe(a), pe(l), pe(h)), Cf(t), _ && _.d(x);
    }
  };
}
function O9(i) {
  let e, t, a, l, o, u, h, d, p, _ = (
    /*variant*/
    i[8] === "default" && /*show_eta_bar*/
    i[18] && /*show_progress*/
    i[6] === "full" && Z4(i)
  );
  function x(D, R) {
    if (
      /*progress*/
      D[7]
    ) return U9;
    if (
      /*queue_position*/
      D[2] !== null && /*queue_size*/
      D[3] !== void 0 && /*queue_position*/
      D[2] >= 0
    ) return H9;
    if (
      /*queue_position*/
      D[2] === 0
    ) return P9;
  }
  let C = x(i), A = C && C(i), $ = (
    /*timer*/
    i[5] && Q4(i)
  );
  const I = [Y9, V9], q = [];
  function H(D, R) {
    return (
      /*last_progress_level*/
      D[15] != null ? 0 : (
        /*show_progress*/
        D[6] === "full" ? 1 : -1
      )
    );
  }
  ~(o = H(i)) && (u = q[o] = I[o](i));
  let T = !/*timer*/
  i[5] && ih(i);
  return {
    c() {
      _ && _.c(), e = N0(), t = vn("div"), A && A.c(), a = N0(), $ && $.c(), l = N0(), u && u.c(), h = N0(), T && T.c(), d = O0(), this.h();
    },
    l(D) {
      _ && _.l(D), e = L0(D), t = gn(D, "DIV", { class: !0 });
      var R = pn(t);
      A && A.l(R), a = L0(R), $ && $.l(R), R.forEach(pe), l = L0(D), u && u.l(D), h = L0(D), T && T.l(D), d = O0(), this.h();
    },
    h() {
      an(t, "class", "progress-text svelte-17v219f"), R0(
        t,
        "meta-text-center",
        /*variant*/
        i[8] === "center"
      ), R0(
        t,
        "meta-text",
        /*variant*/
        i[8] === "default"
      );
    },
    m(D, R) {
      _ && _.m(D, R), Fe(D, e, R), Fe(D, t, R), A && A.m(t, null), Lr(t, a), $ && $.m(t, null), Fe(D, l, R), ~o && q[o].m(D, R), Fe(D, h, R), T && T.m(D, R), Fe(D, d, R), p = !0;
    },
    p(D, R) {
      /*variant*/
      D[8] === "default" && /*show_eta_bar*/
      D[18] && /*show_progress*/
      D[6] === "full" ? _ ? _.p(D, R) : (_ = Z4(D), _.c(), _.m(e.parentNode, e)) : _ && (_.d(1), _ = null), C === (C = x(D)) && A ? A.p(D, R) : (A && A.d(1), A = C && C(D), A && (A.c(), A.m(t, a))), /*timer*/
      D[5] ? $ ? $.p(D, R) : ($ = Q4(D), $.c(), $.m(t, null)) : $ && ($.d(1), $ = null), (!p || R[0] & /*variant*/
      256) && R0(
        t,
        "meta-text-center",
        /*variant*/
        D[8] === "center"
      ), (!p || R[0] & /*variant*/
      256) && R0(
        t,
        "meta-text",
        /*variant*/
        D[8] === "default"
      );
      let N = o;
      o = H(D), o === N ? ~o && q[o].p(D, R) : (u && (Lo(), _n(q[N], 1, 1, () => {
        q[N] = null;
      }), Io()), ~o ? (u = q[o], u ? u.p(D, R) : (u = q[o] = I[o](D), u.c()), rn(u, 1), u.m(h.parentNode, h)) : u = null), /*timer*/
      D[5] ? T && (Lo(), _n(T, 1, 1, () => {
        T = null;
      }), Io()) : T ? (T.p(D, R), R[0] & /*timer*/
      32 && rn(T, 1)) : (T = ih(D), T.c(), rn(T, 1), T.m(d.parentNode, d));
    },
    i(D) {
      p || (rn(u), rn(T), p = !0);
    },
    o(D) {
      _n(u), _n(T), p = !1;
    },
    d(D) {
      D && (pe(e), pe(t), pe(l), pe(h), pe(d)), _ && _.d(D), A && A.d(), $ && $.d(), ~o && q[o].d(D), T && T.d(D);
    }
  };
}
function Z4(i) {
  let e, t = `translateX(${/*eta_level*/
  (i[17] || 0) * 100 - 100}%)`;
  return {
    c() {
      e = vn("div"), this.h();
    },
    l(a) {
      e = gn(a, "DIV", { class: !0 }), pn(e).forEach(pe), this.h();
    },
    h() {
      an(e, "class", "eta-bar svelte-17v219f"), or(e, "transform", t);
    },
    m(a, l) {
      Fe(a, e, l);
    },
    p(a, l) {
      l[0] & /*eta_level*/
      131072 && t !== (t = `translateX(${/*eta_level*/
      (a[17] || 0) * 100 - 100}%)`) && or(e, "transform", t);
    },
    d(a) {
      a && pe(e);
    }
  };
}
function P9(i) {
  let e;
  return {
    c() {
      e = ft("processing |");
    },
    l(t) {
      e = ht(t, "processing |");
    },
    m(t, a) {
      Fe(t, e, a);
    },
    p: No,
    d(t) {
      t && pe(e);
    }
  };
}
function H9(i) {
  let e, t = (
    /*queue_position*/
    i[2] + 1 + ""
  ), a, l, o, u;
  return {
    c() {
      e = ft("queue: "), a = ft(t), l = ft("/"), o = ft(
        /*queue_size*/
        i[3]
      ), u = ft(" |");
    },
    l(h) {
      e = ht(h, "queue: "), a = ht(h, t), l = ht(h, "/"), o = ht(
        h,
        /*queue_size*/
        i[3]
      ), u = ht(h, " |");
    },
    m(h, d) {
      Fe(h, e, d), Fe(h, a, d), Fe(h, l, d), Fe(h, o, d), Fe(h, u, d);
    },
    p(h, d) {
      d[0] & /*queue_position*/
      4 && t !== (t = /*queue_position*/
      h[2] + 1 + "") && P0(a, t), d[0] & /*queue_size*/
      8 && P0(
        o,
        /*queue_size*/
        h[3]
      );
    },
    d(h) {
      h && (pe(e), pe(a), pe(l), pe(o), pe(u));
    }
  };
}
function U9(i) {
  let e, t = $l(
    /*progress*/
    i[7]
  ), a = [];
  for (let l = 0; l < t.length; l += 1)
    a[l] = J4(X4(i, t, l));
  return {
    c() {
      for (let l = 0; l < a.length; l += 1)
        a[l].c();
      e = O0();
    },
    l(l) {
      for (let o = 0; o < a.length; o += 1)
        a[o].l(l);
      e = O0();
    },
    m(l, o) {
      for (let u = 0; u < a.length; u += 1)
        a[u] && a[u].m(l, o);
      Fe(l, e, o);
    },
    p(l, o) {
      if (o[0] & /*progress*/
      128) {
        t = $l(
          /*progress*/
          l[7]
        );
        let u;
        for (u = 0; u < t.length; u += 1) {
          const h = X4(l, t, u);
          a[u] ? a[u].p(h, o) : (a[u] = J4(h), a[u].c(), a[u].m(e.parentNode, e));
        }
        for (; u < a.length; u += 1)
          a[u].d(1);
        a.length = t.length;
      }
    },
    d(l) {
      l && pe(e), Ef(a, l);
    }
  };
}
function K4(i) {
  let e, t = (
    /*p*/
    i[40].unit + ""
  ), a, l, o = " ", u;
  function h(_, x) {
    return (
      /*p*/
      _[40].length != null ? G9 : W9
    );
  }
  let d = h(i), p = d(i);
  return {
    c() {
      p.c(), e = N0(), a = ft(t), l = ft(" | "), u = ft(o);
    },
    l(_) {
      p.l(_), e = L0(_), a = ht(_, t), l = ht(_, " | "), u = ht(_, o);
    },
    m(_, x) {
      p.m(_, x), Fe(_, e, x), Fe(_, a, x), Fe(_, l, x), Fe(_, u, x);
    },
    p(_, x) {
      d === (d = h(_)) && p ? p.p(_, x) : (p.d(1), p = d(_), p && (p.c(), p.m(e.parentNode, e))), x[0] & /*progress*/
      128 && t !== (t = /*p*/
      _[40].unit + "") && P0(a, t);
    },
    d(_) {
      _ && (pe(e), pe(a), pe(l), pe(u)), p.d(_);
    }
  };
}
function W9(i) {
  let e = ha(
    /*p*/
    i[40].index || 0
  ) + "", t;
  return {
    c() {
      t = ft(e);
    },
    l(a) {
      t = ht(a, e);
    },
    m(a, l) {
      Fe(a, t, l);
    },
    p(a, l) {
      l[0] & /*progress*/
      128 && e !== (e = ha(
        /*p*/
        a[40].index || 0
      ) + "") && P0(t, e);
    },
    d(a) {
      a && pe(t);
    }
  };
}
function G9(i) {
  let e = ha(
    /*p*/
    i[40].index || 0
  ) + "", t, a, l = ha(
    /*p*/
    i[40].length
  ) + "", o;
  return {
    c() {
      t = ft(e), a = ft("/"), o = ft(l);
    },
    l(u) {
      t = ht(u, e), a = ht(u, "/"), o = ht(u, l);
    },
    m(u, h) {
      Fe(u, t, h), Fe(u, a, h), Fe(u, o, h);
    },
    p(u, h) {
      h[0] & /*progress*/
      128 && e !== (e = ha(
        /*p*/
        u[40].index || 0
      ) + "") && P0(t, e), h[0] & /*progress*/
      128 && l !== (l = ha(
        /*p*/
        u[40].length
      ) + "") && P0(o, l);
    },
    d(u) {
      u && (pe(t), pe(a), pe(o));
    }
  };
}
function J4(i) {
  let e, t = (
    /*p*/
    i[40].index != null && K4(i)
  );
  return {
    c() {
      t && t.c(), e = O0();
    },
    l(a) {
      t && t.l(a), e = O0();
    },
    m(a, l) {
      t && t.m(a, l), Fe(a, e, l);
    },
    p(a, l) {
      /*p*/
      a[40].index != null ? t ? t.p(a, l) : (t = K4(a), t.c(), t.m(e.parentNode, e)) : t && (t.d(1), t = null);
    },
    d(a) {
      a && pe(e), t && t.d(a);
    }
  };
}
function Q4(i) {
  let e, t = (
    /*eta*/
    i[0] ? `/${/*formatted_eta*/
    i[19]}` : ""
  ), a, l;
  return {
    c() {
      e = ft(
        /*formatted_timer*/
        i[20]
      ), a = ft(t), l = ft("s");
    },
    l(o) {
      e = ht(
        o,
        /*formatted_timer*/
        i[20]
      ), a = ht(o, t), l = ht(o, "s");
    },
    m(o, u) {
      Fe(o, e, u), Fe(o, a, u), Fe(o, l, u);
    },
    p(o, u) {
      u[0] & /*formatted_timer*/
      1048576 && P0(
        e,
        /*formatted_timer*/
        o[20]
      ), u[0] & /*eta, formatted_eta*/
      524289 && t !== (t = /*eta*/
      o[0] ? `/${/*formatted_eta*/
      o[19]}` : "") && P0(a, t);
    },
    d(o) {
      o && (pe(e), pe(a), pe(l));
    }
  };
}
function V9(i) {
  let e, t;
  return e = new vp({
    props: { margin: (
      /*variant*/
      i[8] === "default"
    ) }
  }), {
    c() {
      Sf(e.$$.fragment);
    },
    l(a) {
      Af(e.$$.fragment, a);
    },
    m(a, l) {
      Mf(e, a, l), t = !0;
    },
    p(a, l) {
      const o = {};
      l[0] & /*variant*/
      256 && (o.margin = /*variant*/
      a[8] === "default"), e.$set(o);
    },
    i(a) {
      t || (rn(e.$$.fragment, a), t = !0);
    },
    o(a) {
      _n(e.$$.fragment, a), t = !1;
    },
    d(a) {
      Cf(e, a);
    }
  };
}
function Y9(i) {
  let e, t, a, l, o, u = `${/*last_progress_level*/
  i[15] * 100}%`, h = (
    /*progress*/
    i[7] != null && j4(i)
  );
  return {
    c() {
      e = vn("div"), t = vn("div"), h && h.c(), a = N0(), l = vn("div"), o = vn("div"), this.h();
    },
    l(d) {
      e = gn(d, "DIV", { class: !0 });
      var p = pn(e);
      t = gn(p, "DIV", { class: !0 });
      var _ = pn(t);
      h && h.l(_), _.forEach(pe), a = L0(p), l = gn(p, "DIV", { class: !0 });
      var x = pn(l);
      o = gn(x, "DIV", { class: !0 }), pn(o).forEach(pe), x.forEach(pe), p.forEach(pe), this.h();
    },
    h() {
      an(t, "class", "progress-level-inner svelte-17v219f"), an(o, "class", "progress-bar svelte-17v219f"), or(o, "width", u), an(l, "class", "progress-bar-wrap svelte-17v219f"), an(e, "class", "progress-level svelte-17v219f");
    },
    m(d, p) {
      Fe(d, e, p), Lr(e, t), h && h.m(t, null), Lr(e, a), Lr(e, l), Lr(l, o), i[31](o);
    },
    p(d, p) {
      /*progress*/
      d[7] != null ? h ? h.p(d, p) : (h = j4(d), h.c(), h.m(t, null)) : h && (h.d(1), h = null), p[0] & /*last_progress_level*/
      32768 && u !== (u = `${/*last_progress_level*/
      d[15] * 100}%`) && or(o, "width", u);
    },
    i: No,
    o: No,
    d(d) {
      d && pe(e), h && h.d(), i[31](null);
    }
  };
}
function j4(i) {
  let e, t = $l(
    /*progress*/
    i[7]
  ), a = [];
  for (let l = 0; l < t.length; l += 1)
    a[l] = ah(Y4(i, t, l));
  return {
    c() {
      for (let l = 0; l < a.length; l += 1)
        a[l].c();
      e = O0();
    },
    l(l) {
      for (let o = 0; o < a.length; o += 1)
        a[o].l(l);
      e = O0();
    },
    m(l, o) {
      for (let u = 0; u < a.length; u += 1)
        a[u] && a[u].m(l, o);
      Fe(l, e, o);
    },
    p(l, o) {
      if (o[0] & /*progress_level, progress*/
      16512) {
        t = $l(
          /*progress*/
          l[7]
        );
        let u;
        for (u = 0; u < t.length; u += 1) {
          const h = Y4(l, t, u);
          a[u] ? a[u].p(h, o) : (a[u] = ah(h), a[u].c(), a[u].m(e.parentNode, e));
        }
        for (; u < a.length; u += 1)
          a[u].d(1);
        a.length = t.length;
      }
    },
    d(l) {
      l && pe(e), Ef(a, l);
    }
  };
}
function eh(i) {
  let e, t, a, l, o = (
    /*i*/
    i[42] !== 0 && X9()
  ), u = (
    /*p*/
    i[40].desc != null && th(i)
  ), h = (
    /*p*/
    i[40].desc != null && /*progress_level*/
    i[14] && /*progress_level*/
    i[14][
      /*i*/
      i[42]
    ] != null && nh()
  ), d = (
    /*progress_level*/
    i[14] != null && rh(i)
  );
  return {
    c() {
      o && o.c(), e = N0(), u && u.c(), t = N0(), h && h.c(), a = N0(), d && d.c(), l = O0();
    },
    l(p) {
      o && o.l(p), e = L0(p), u && u.l(p), t = L0(p), h && h.l(p), a = L0(p), d && d.l(p), l = O0();
    },
    m(p, _) {
      o && o.m(p, _), Fe(p, e, _), u && u.m(p, _), Fe(p, t, _), h && h.m(p, _), Fe(p, a, _), d && d.m(p, _), Fe(p, l, _);
    },
    p(p, _) {
      /*p*/
      p[40].desc != null ? u ? u.p(p, _) : (u = th(p), u.c(), u.m(t.parentNode, t)) : u && (u.d(1), u = null), /*p*/
      p[40].desc != null && /*progress_level*/
      p[14] && /*progress_level*/
      p[14][
        /*i*/
        p[42]
      ] != null ? h || (h = nh(), h.c(), h.m(a.parentNode, a)) : h && (h.d(1), h = null), /*progress_level*/
      p[14] != null ? d ? d.p(p, _) : (d = rh(p), d.c(), d.m(l.parentNode, l)) : d && (d.d(1), d = null);
    },
    d(p) {
      p && (pe(e), pe(t), pe(a), pe(l)), o && o.d(p), u && u.d(p), h && h.d(p), d && d.d(p);
    }
  };
}
function X9(i) {
  let e;
  return {
    c() {
      e = ft(" /");
    },
    l(t) {
      e = ht(t, " /");
    },
    m(t, a) {
      Fe(t, e, a);
    },
    d(t) {
      t && pe(e);
    }
  };
}
function th(i) {
  let e = (
    /*p*/
    i[40].desc + ""
  ), t;
  return {
    c() {
      t = ft(e);
    },
    l(a) {
      t = ht(a, e);
    },
    m(a, l) {
      Fe(a, t, l);
    },
    p(a, l) {
      l[0] & /*progress*/
      128 && e !== (e = /*p*/
      a[40].desc + "") && P0(t, e);
    },
    d(a) {
      a && pe(t);
    }
  };
}
function nh(i) {
  let e;
  return {
    c() {
      e = ft("-");
    },
    l(t) {
      e = ht(t, "-");
    },
    m(t, a) {
      Fe(t, e, a);
    },
    d(t) {
      t && pe(e);
    }
  };
}
function rh(i) {
  let e = (100 * /*progress_level*/
  (i[14][
    /*i*/
    i[42]
  ] || 0)).toFixed(1) + "", t, a;
  return {
    c() {
      t = ft(e), a = ft("%");
    },
    l(l) {
      t = ht(l, e), a = ht(l, "%");
    },
    m(l, o) {
      Fe(l, t, o), Fe(l, a, o);
    },
    p(l, o) {
      o[0] & /*progress_level*/
      16384 && e !== (e = (100 * /*progress_level*/
      (l[14][
        /*i*/
        l[42]
      ] || 0)).toFixed(1) + "") && P0(t, e);
    },
    d(l) {
      l && (pe(t), pe(a));
    }
  };
}
function ah(i) {
  let e, t = (
    /*p*/
    (i[40].desc != null || /*progress_level*/
    i[14] && /*progress_level*/
    i[14][
      /*i*/
      i[42]
    ] != null) && eh(i)
  );
  return {
    c() {
      t && t.c(), e = O0();
    },
    l(a) {
      t && t.l(a), e = O0();
    },
    m(a, l) {
      t && t.m(a, l), Fe(a, e, l);
    },
    p(a, l) {
      /*p*/
      a[40].desc != null || /*progress_level*/
      a[14] && /*progress_level*/
      a[14][
        /*i*/
        a[42]
      ] != null ? t ? t.p(a, l) : (t = eh(a), t.c(), t.m(e.parentNode, e)) : t && (t.d(1), t = null);
    },
    d(a) {
      a && pe(e), t && t.d(a);
    }
  };
}
function ih(i) {
  let e, t, a, l;
  const o = (
    /*#slots*/
    i[30]["additional-loading-text"]
  ), u = Ff(
    o,
    i,
    /*$$scope*/
    i[29],
    V4
  );
  return {
    c() {
      e = vn("p"), t = ft(
        /*loading_text*/
        i[9]
      ), a = N0(), u && u.c(), this.h();
    },
    l(h) {
      e = gn(h, "P", { class: !0 });
      var d = pn(e);
      t = ht(
        d,
        /*loading_text*/
        i[9]
      ), d.forEach(pe), a = L0(h), u && u.l(h), this.h();
    },
    h() {
      an(e, "class", "loading svelte-17v219f");
    },
    m(h, d) {
      Fe(h, e, d), Lr(e, t), Fe(h, a, d), u && u.m(h, d), l = !0;
    },
    p(h, d) {
      (!l || d[0] & /*loading_text*/
      512) && P0(
        t,
        /*loading_text*/
        h[9]
      ), u && u.p && (!l || d[0] & /*$$scope*/
      536870912) && Bf(
        u,
        o,
        h,
        /*$$scope*/
        h[29],
        l ? $f(
          o,
          /*$$scope*/
          h[29],
          d,
          N9
        ) : Tf(
          /*$$scope*/
          h[29]
        ),
        V4
      );
    },
    i(h) {
      l || (rn(u, h), l = !0);
    },
    o(h) {
      _n(u, h), l = !1;
    },
    d(h) {
      h && (pe(e), pe(a)), u && u.d(h);
    }
  };
}
function Z9(i) {
  let e, t, a, l, o;
  const u = [O9, q9], h = [];
  function d(p, _) {
    return (
      /*status*/
      p[4] === "pending" ? 0 : (
        /*status*/
        p[4] === "error" ? 1 : -1
      )
    );
  }
  return ~(t = d(i)) && (a = h[t] = u[t](i)), {
    c() {
      e = vn("div"), a && a.c(), this.h();
    },
    l(p) {
      e = gn(p, "DIV", { class: !0 });
      var _ = pn(e);
      a && a.l(_), _.forEach(pe), this.h();
    },
    h() {
      an(e, "class", l = "wrap " + /*variant*/
      i[8] + " " + /*show_progress*/
      i[6] + " svelte-17v219f"), R0(e, "hide", !/*status*/
      i[4] || /*status*/
      i[4] === "complete" || /*show_progress*/
      i[6] === "hidden" || /*status*/
      i[4] == "streaming"), R0(
        e,
        "translucent",
        /*variant*/
        i[8] === "center" && /*status*/
        (i[4] === "pending" || /*status*/
        i[4] === "error") || /*translucent*/
        i[11] || /*show_progress*/
        i[6] === "minimal"
      ), R0(
        e,
        "generating",
        /*status*/
        i[4] === "generating" && /*show_progress*/
        i[6] === "full"
      ), R0(
        e,
        "border",
        /*border*/
        i[12]
      ), or(
        e,
        "position",
        /*absolute*/
        i[10] ? "absolute" : "static"
      ), or(
        e,
        "padding",
        /*absolute*/
        i[10] ? "0" : "var(--size-8) 0"
      );
    },
    m(p, _) {
      Fe(p, e, _), ~t && h[t].m(e, null), i[33](e), o = !0;
    },
    p(p, _) {
      let x = t;
      t = d(p), t === x ? ~t && h[t].p(p, _) : (a && (Lo(), _n(h[x], 1, 1, () => {
        h[x] = null;
      }), Io()), ~t ? (a = h[t], a ? a.p(p, _) : (a = h[t] = u[t](p), a.c()), rn(a, 1), a.m(e, null)) : a = null), (!o || _[0] & /*variant, show_progress*/
      320 && l !== (l = "wrap " + /*variant*/
      p[8] + " " + /*show_progress*/
      p[6] + " svelte-17v219f")) && an(e, "class", l), (!o || _[0] & /*variant, show_progress, status, show_progress*/
      336) && R0(e, "hide", !/*status*/
      p[4] || /*status*/
      p[4] === "complete" || /*show_progress*/
      p[6] === "hidden" || /*status*/
      p[4] == "streaming"), (!o || _[0] & /*variant, show_progress, variant, status, translucent, show_progress*/
      2384) && R0(
        e,
        "translucent",
        /*variant*/
        p[8] === "center" && /*status*/
        (p[4] === "pending" || /*status*/
        p[4] === "error") || /*translucent*/
        p[11] || /*show_progress*/
        p[6] === "minimal"
      ), (!o || _[0] & /*variant, show_progress, status, show_progress*/
      336) && R0(
        e,
        "generating",
        /*status*/
        p[4] === "generating" && /*show_progress*/
        p[6] === "full"
      ), (!o || _[0] & /*variant, show_progress, border*/
      4416) && R0(
        e,
        "border",
        /*border*/
        p[12]
      ), _[0] & /*absolute*/
      1024 && or(
        e,
        "position",
        /*absolute*/
        p[10] ? "absolute" : "static"
      ), _[0] & /*absolute*/
      1024 && or(
        e,
        "padding",
        /*absolute*/
        p[10] ? "0" : "var(--size-8) 0"
      );
    },
    i(p) {
      o || (rn(a), o = !0);
    },
    o(p) {
      _n(a), o = !1;
    },
    d(p) {
      p && pe(e), ~t && h[t].d(), i[33](null);
    }
  };
}
let ml = [], bo = !1;
const K9 = typeof window < "u", zf = K9 ? window.requestAnimationFrame : (i) => {
};
async function J9(i, e = !0) {
  if (!(window.__gradio_mode__ === "website" || window.__gradio_mode__ !== "app" && e !== !0)) {
    if (ml.push(i), !bo) bo = !0;
    else return;
    await z9(), zf(() => {
      let t = [0, 0];
      for (let a = 0; a < ml.length; a++) {
        const o = ml[a].getBoundingClientRect();
        (a === 0 || o.top + window.scrollY <= t[0]) && (t[0] = o.top + window.scrollY, t[1] = a);
      }
      window.scrollTo({ top: t[0] - 20, behavior: "smooth" }), bo = !1, ml = [];
    });
  }
}
function Q9(i, e, t) {
  let a, { $$slots: l = {}, $$scope: o } = e;
  const u = I9();
  let { i18n: h } = e, { eta: d = null } = e, { queue_position: p } = e, { queue_size: _ } = e, { status: x } = e, { scroll_to_output: C = !1 } = e, { timer: A = !0 } = e, { show_progress: $ = "full" } = e, { message: I = null } = e, { progress: q = null } = e, { variant: H = "default" } = e, { loading_text: T = "Loading..." } = e, { absolute: D = !0 } = e, { translucent: R = !1 } = e, { border: N = !1 } = e, { autoscroll: U } = e, G, te = !1, J = 0, X = 0, oe = null, Ae = null, je = 0, Me = null, Ne, Xe = null, he = !0;
  const ke = () => {
    t(0, d = t(27, oe = t(19, le = null))), t(25, J = performance.now()), t(26, X = 0), te = !0, Oe();
  };
  function Oe() {
    zf(() => {
      t(26, X = (performance.now() - J) / 1e3), te && Oe();
    });
  }
  function ce() {
    t(26, X = 0), t(0, d = t(27, oe = t(19, le = null))), te && (te = !1);
  }
  R9(() => {
    te && ce();
  });
  let le = null;
  function Be(Q) {
    W4[Q ? "unshift" : "push"](() => {
      Xe = Q, t(16, Xe), t(7, q), t(14, Me), t(15, Ne);
    });
  }
  const Pe = () => {
    u("clear_status");
  };
  function dt(Q) {
    W4[Q ? "unshift" : "push"](() => {
      G = Q, t(13, G);
    });
  }
  return i.$$set = (Q) => {
    "i18n" in Q && t(1, h = Q.i18n), "eta" in Q && t(0, d = Q.eta), "queue_position" in Q && t(2, p = Q.queue_position), "queue_size" in Q && t(3, _ = Q.queue_size), "status" in Q && t(4, x = Q.status), "scroll_to_output" in Q && t(22, C = Q.scroll_to_output), "timer" in Q && t(5, A = Q.timer), "show_progress" in Q && t(6, $ = Q.show_progress), "message" in Q && t(23, I = Q.message), "progress" in Q && t(7, q = Q.progress), "variant" in Q && t(8, H = Q.variant), "loading_text" in Q && t(9, T = Q.loading_text), "absolute" in Q && t(10, D = Q.absolute), "translucent" in Q && t(11, R = Q.translucent), "border" in Q && t(12, N = Q.border), "autoscroll" in Q && t(24, U = Q.autoscroll), "$$scope" in Q && t(29, o = Q.$$scope);
  }, i.$$.update = () => {
    i.$$.dirty[0] & /*eta, old_eta, timer_start, eta_from_start*/
    436207617 && (d === null && t(0, d = oe), d != null && oe !== d && (t(28, Ae = (performance.now() - J) / 1e3 + d), t(19, le = Ae.toFixed(1)), t(27, oe = d))), i.$$.dirty[0] & /*eta_from_start, timer_diff*/
    335544320 && t(17, je = Ae === null || Ae <= 0 || !X ? null : Math.min(X / Ae, 1)), i.$$.dirty[0] & /*progress*/
    128 && q != null && t(18, he = !1), i.$$.dirty[0] & /*progress, progress_level, progress_bar, last_progress_level*/
    114816 && (q != null ? t(14, Me = q.map((Q) => {
      if (Q.index != null && Q.length != null)
        return Q.index / Q.length;
      if (Q.progress != null)
        return Q.progress;
    })) : t(14, Me = null), Me ? (t(15, Ne = Me[Me.length - 1]), Xe && (Ne === 0 ? t(16, Xe.style.transition = "0", Xe) : t(16, Xe.style.transition = "150ms", Xe))) : t(15, Ne = void 0)), i.$$.dirty[0] & /*status*/
    16 && (x === "pending" ? ke() : ce()), i.$$.dirty[0] & /*el, scroll_to_output, status, autoscroll*/
    20979728 && G && C && (x === "pending" || x === "complete") && J9(G, U), i.$$.dirty[0] & /*status, message*/
    8388624, i.$$.dirty[0] & /*timer_diff*/
    67108864 && t(20, a = X.toFixed(1));
  }, [
    d,
    h,
    p,
    _,
    x,
    A,
    $,
    q,
    H,
    T,
    D,
    R,
    N,
    G,
    Me,
    Ne,
    Xe,
    je,
    he,
    le,
    a,
    u,
    C,
    I,
    U,
    J,
    X,
    oe,
    Ae,
    o,
    l,
    Be,
    Pe,
    dt
  ];
}
class j9 extends $9 {
  constructor(e) {
    super(), M9(
      this,
      e,
      Q9,
      Z9,
      B9,
      {
        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.2.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.0/LICENSE */
const {
  entries: Rf,
  setPrototypeOf: lh,
  isFrozen: ev,
  getPrototypeOf: tv,
  getOwnPropertyDescriptor: nv
} = Object;
let {
  freeze: Xt,
  seal: H0,
  create: If
} = Object, {
  apply: qo,
  construct: Oo
} = typeof Reflect < "u" && Reflect;
Xt || (Xt = function(e) {
  return e;
});
H0 || (H0 = function(e) {
  return e;
});
qo || (qo = function(e, t, a) {
  return e.apply(t, a);
});
Oo || (Oo = function(e, t) {
  return new e(...t);
});
const pl = g0(Array.prototype.forEach), sh = g0(Array.prototype.pop), qa = g0(Array.prototype.push), wl = g0(String.prototype.toLowerCase), yo = g0(String.prototype.toString), oh = g0(String.prototype.match), Oa = g0(String.prototype.replace), rv = g0(String.prototype.indexOf), av = g0(String.prototype.trim), j0 = g0(Object.prototype.hasOwnProperty), Vt = g0(RegExp.prototype.test), Pa = iv(TypeError);
function g0(i) {
  return function(e) {
    for (var t = arguments.length, a = new Array(t > 1 ? t - 1 : 0), l = 1; l < t; l++)
      a[l - 1] = arguments[l];
    return qo(i, e, a);
  };
}
function iv(i) {
  return function() {
    for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++)
      t[a] = arguments[a];
    return Oo(i, t);
  };
}
function Ie(i, e) {
  let t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : wl;
  lh && lh(i, null);
  let a = e.length;
  for (; a--; ) {
    let l = e[a];
    if (typeof l == "string") {
      const o = t(l);
      o !== l && (ev(e) || (e[a] = o), l = o);
    }
    i[l] = !0;
  }
  return i;
}
function lv(i) {
  for (let e = 0; e < i.length; e++)
    j0(i, e) || (i[e] = null);
  return i;
}
function Br(i) {
  const e = If(null);
  for (const [t, a] of Rf(i))
    j0(i, t) && (Array.isArray(a) ? e[t] = lv(a) : a && typeof a == "object" && a.constructor === Object ? e[t] = Br(a) : e[t] = a);
  return e;
}
function Ha(i, e) {
  for (; i !== null; ) {
    const a = nv(i, e);
    if (a) {
      if (a.get)
        return g0(a.get);
      if (typeof a.value == "function")
        return g0(a.value);
    }
    i = tv(i);
  }
  function t() {
    return null;
  }
  return t;
}
const uh = Xt(["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"]), wo = Xt(["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"]), xo = Xt(["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"]), sv = Xt(["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"]), Do = Xt(["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"]), ov = Xt(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), ch = Xt(["#text"]), hh = Xt(["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"]), ko = Xt(["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"]), fh = Xt(["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"]), gl = Xt(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), uv = H0(/\{\{[\w\W]*|[\w\W]*\}\}/gm), cv = H0(/<%[\w\W]*|[\w\W]*%>/gm), hv = H0(/\${[\w\W]*}/gm), fv = H0(/^data-[\-\w.\u00B7-\uFFFF]/), dv = H0(/^aria-[\-\w]+$/), Lf = H0(
  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
  // eslint-disable-line no-useless-escape
), mv = H0(/^(?:\w+script|data):/i), pv = H0(
  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
  // eslint-disable-line no-control-regex
), Nf = H0(/^html$/i), gv = H0(/^[a-z][.\w]*(-[.\w]+)+$/i);
var dh = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  ARIA_ATTR: dv,
  ATTR_WHITESPACE: pv,
  CUSTOM_ELEMENT: gv,
  DATA_ATTR: fv,
  DOCTYPE_NAME: Nf,
  ERB_EXPR: cv,
  IS_ALLOWED_URI: Lf,
  IS_SCRIPT_OR_DATA: mv,
  MUSTACHE_EXPR: uv,
  TMPLIT_EXPR: hv
});
const Ua = {
  element: 1,
  text: 3,
  // Deprecated
  progressingInstruction: 7,
  comment: 8,
  document: 9
}, vv = function() {
  return typeof window > "u" ? null : window;
}, _v = function(e, t) {
  if (typeof e != "object" || typeof e.createPolicy != "function")
    return null;
  let a = null;
  const l = "data-tt-policy-suffix";
  t && t.hasAttribute(l) && (a = t.getAttribute(l));
  const o = "dompurify" + (a ? "#" + a : "");
  try {
    return e.createPolicy(o, {
      createHTML(u) {
        return u;
      },
      createScriptURL(u) {
        return u;
      }
    });
  } catch {
    return console.warn("TrustedTypes policy " + o + " could not be created."), null;
  }
};
function qf() {
  let i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : vv();
  const e = (fe) => qf(fe);
  if (e.version = "3.2.0", e.removed = [], !i || !i.document || i.document.nodeType !== Ua.document)
    return e.isSupported = !1, e;
  let {
    document: t
  } = i;
  const a = t, l = a.currentScript, {
    DocumentFragment: o,
    HTMLTemplateElement: u,
    Node: h,
    Element: d,
    NodeFilter: p,
    NamedNodeMap: _ = i.NamedNodeMap || i.MozNamedAttrMap,
    HTMLFormElement: x,
    DOMParser: C,
    trustedTypes: A
  } = i, $ = d.prototype, I = Ha($, "cloneNode"), q = Ha($, "remove"), H = Ha($, "nextSibling"), T = Ha($, "childNodes"), D = Ha($, "parentNode");
  if (typeof u == "function") {
    const fe = t.createElement("template");
    fe.content && fe.content.ownerDocument && (t = fe.content.ownerDocument);
  }
  let R, N = "";
  const {
    implementation: U,
    createNodeIterator: G,
    createDocumentFragment: te,
    getElementsByTagName: J
  } = t, {
    importNode: X
  } = a;
  let oe = {};
  e.isSupported = typeof Rf == "function" && typeof D == "function" && U && U.createHTMLDocument !== void 0;
  const {
    MUSTACHE_EXPR: Ae,
    ERB_EXPR: je,
    TMPLIT_EXPR: Me,
    DATA_ATTR: Ne,
    ARIA_ATTR: Xe,
    IS_SCRIPT_OR_DATA: he,
    ATTR_WHITESPACE: ke,
    CUSTOM_ELEMENT: Oe
  } = dh;
  let {
    IS_ALLOWED_URI: ce
  } = dh, le = null;
  const Be = Ie({}, [...uh, ...wo, ...xo, ...Do, ...ch]);
  let Pe = null;
  const dt = Ie({}, [...hh, ...ko, ...fh, ...gl]);
  let Q = Object.seal(If(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
    }
  })), vt = null, Dt = null, at = !0, Bt = !0, l0 = !1, Kt = !0, Pt = !1, b0 = !0, st = !1, y0 = !1, Pn = !1, kt = !1, w0 = !1, U0 = !1, Hn = !0, Jt = !1;
  const gr = "user-content-";
  let Un = !0, vr = !1, x0 = {}, Wn = null;
  const Gn = Ie({}, ["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 Dn = null;
  const Ur = Ie({}, ["audio", "video", "img", "source", "image", "track"]);
  let _r = null;
  const Wr = Ie({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), Vn = "http://www.w3.org/1998/Math/MathML", Yn = "http://www.w3.org/2000/svg", s0 = "http://www.w3.org/1999/xhtml";
  let ln = s0, br = !1, yr = null;
  const Ol = Ie({}, [Vn, Yn, s0], yo);
  let Gr = Ie({}, ["mi", "mo", "mn", "ms", "mtext"]), Vr = Ie({}, ["annotation-xml"]);
  const ri = Ie({}, ["title", "style", "font", "a", "script"]);
  let Xn = null;
  const Pl = ["application/xhtml+xml", "text/html"], Hl = "text/html";
  let At = null, Zn = null;
  const ai = t.createElement("form"), ii = function(B) {
    return B instanceof RegExp || B instanceof Function;
  }, _a = function() {
    let B = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    if (!(Zn && Zn === B)) {
      if ((!B || typeof B != "object") && (B = {}), B = Br(B), Xn = // eslint-disable-next-line unicorn/prefer-includes
      Pl.indexOf(B.PARSER_MEDIA_TYPE) === -1 ? Hl : B.PARSER_MEDIA_TYPE, At = Xn === "application/xhtml+xml" ? yo : wl, le = j0(B, "ALLOWED_TAGS") ? Ie({}, B.ALLOWED_TAGS, At) : Be, Pe = j0(B, "ALLOWED_ATTR") ? Ie({}, B.ALLOWED_ATTR, At) : dt, yr = j0(B, "ALLOWED_NAMESPACES") ? Ie({}, B.ALLOWED_NAMESPACES, yo) : Ol, _r = j0(B, "ADD_URI_SAFE_ATTR") ? Ie(Br(Wr), B.ADD_URI_SAFE_ATTR, At) : Wr, Dn = j0(B, "ADD_DATA_URI_TAGS") ? Ie(Br(Ur), B.ADD_DATA_URI_TAGS, At) : Ur, Wn = j0(B, "FORBID_CONTENTS") ? Ie({}, B.FORBID_CONTENTS, At) : Gn, vt = j0(B, "FORBID_TAGS") ? Ie({}, B.FORBID_TAGS, At) : {}, Dt = j0(B, "FORBID_ATTR") ? Ie({}, B.FORBID_ATTR, At) : {}, x0 = j0(B, "USE_PROFILES") ? B.USE_PROFILES : !1, at = B.ALLOW_ARIA_ATTR !== !1, Bt = B.ALLOW_DATA_ATTR !== !1, l0 = B.ALLOW_UNKNOWN_PROTOCOLS || !1, Kt = B.ALLOW_SELF_CLOSE_IN_ATTR !== !1, Pt = B.SAFE_FOR_TEMPLATES || !1, b0 = B.SAFE_FOR_XML !== !1, st = B.WHOLE_DOCUMENT || !1, kt = B.RETURN_DOM || !1, w0 = B.RETURN_DOM_FRAGMENT || !1, U0 = B.RETURN_TRUSTED_TYPE || !1, Pn = B.FORCE_BODY || !1, Hn = B.SANITIZE_DOM !== !1, Jt = B.SANITIZE_NAMED_PROPS || !1, Un = B.KEEP_CONTENT !== !1, vr = B.IN_PLACE || !1, ce = B.ALLOWED_URI_REGEXP || Lf, ln = B.NAMESPACE || s0, Gr = B.MATHML_TEXT_INTEGRATION_POINTS || Gr, Vr = B.HTML_INTEGRATION_POINTS || Vr, Q = B.CUSTOM_ELEMENT_HANDLING || {}, B.CUSTOM_ELEMENT_HANDLING && ii(B.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (Q.tagNameCheck = B.CUSTOM_ELEMENT_HANDLING.tagNameCheck), B.CUSTOM_ELEMENT_HANDLING && ii(B.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (Q.attributeNameCheck = B.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), B.CUSTOM_ELEMENT_HANDLING && typeof B.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (Q.allowCustomizedBuiltInElements = B.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), Pt && (Bt = !1), w0 && (kt = !0), x0 && (le = Ie({}, ch), Pe = [], x0.html === !0 && (Ie(le, uh), Ie(Pe, hh)), x0.svg === !0 && (Ie(le, wo), Ie(Pe, ko), Ie(Pe, gl)), x0.svgFilters === !0 && (Ie(le, xo), Ie(Pe, ko), Ie(Pe, gl)), x0.mathMl === !0 && (Ie(le, Do), Ie(Pe, fh), Ie(Pe, gl))), B.ADD_TAGS && (le === Be && (le = Br(le)), Ie(le, B.ADD_TAGS, At)), B.ADD_ATTR && (Pe === dt && (Pe = Br(Pe)), Ie(Pe, B.ADD_ATTR, At)), B.ADD_URI_SAFE_ATTR && Ie(_r, B.ADD_URI_SAFE_ATTR, At), B.FORBID_CONTENTS && (Wn === Gn && (Wn = Br(Wn)), Ie(Wn, B.FORBID_CONTENTS, At)), Un && (le["#text"] = !0), st && Ie(le, ["html", "head", "body"]), le.table && (Ie(le, ["tbody"]), delete vt.tbody), B.TRUSTED_TYPES_POLICY) {
        if (typeof B.TRUSTED_TYPES_POLICY.createHTML != "function")
          throw Pa('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
        if (typeof B.TRUSTED_TYPES_POLICY.createScriptURL != "function")
          throw Pa('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
        R = B.TRUSTED_TYPES_POLICY, N = R.createHTML("");
      } else
        R === void 0 && (R = _v(A, l)), R !== null && typeof N == "string" && (N = R.createHTML(""));
      Xt && Xt(B), Zn = B;
    }
  }, li = Ie({}, [...wo, ...xo, ...sv]), Yr = Ie({}, [...Do, ...ov]), Ul = function(B) {
    let ee = D(B);
    (!ee || !ee.tagName) && (ee = {
      namespaceURI: ln,
      tagName: "template"
    });
    const ue = wl(B.tagName), Ve = wl(ee.tagName);
    return yr[B.namespaceURI] ? B.namespaceURI === Yn ? ee.namespaceURI === s0 ? ue === "svg" : ee.namespaceURI === Vn ? ue === "svg" && (Ve === "annotation-xml" || Gr[Ve]) : !!li[ue] : B.namespaceURI === Vn ? ee.namespaceURI === s0 ? ue === "math" : ee.namespaceURI === Yn ? ue === "math" && Vr[Ve] : !!Yr[ue] : B.namespaceURI === s0 ? ee.namespaceURI === Yn && !Vr[Ve] || ee.namespaceURI === Vn && !Gr[Ve] ? !1 : !Yr[ue] && (ri[ue] || !li[ue]) : !!(Xn === "application/xhtml+xml" && yr[B.namespaceURI]) : !1;
  }, Qt = function(B) {
    qa(e.removed, {
      element: B
    });
    try {
      D(B).removeChild(B);
    } catch {
      q(B);
    }
  }, Xr = function(B, ee) {
    try {
      qa(e.removed, {
        attribute: ee.getAttributeNode(B),
        from: ee
      });
    } catch {
      qa(e.removed, {
        attribute: null,
        from: ee
      });
    }
    if (ee.removeAttribute(B), B === "is" && !Pe[B])
      if (kt || w0)
        try {
          Qt(ee);
        } catch {
        }
      else
        try {
          ee.setAttribute(B, "");
        } catch {
        }
  }, si = function(B) {
    let ee = null, ue = null;
    if (Pn)
      B = "<remove></remove>" + B;
    else {
      const mt = oh(B, /^[\r\n\t ]+/);
      ue = mt && mt[0];
    }
    Xn === "application/xhtml+xml" && ln === s0 && (B = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + B + "</body></html>");
    const Ve = R ? R.createHTML(B) : B;
    if (ln === s0)
      try {
        ee = new C().parseFromString(Ve, Xn);
      } catch {
      }
    if (!ee || !ee.documentElement) {
      ee = U.createDocument(ln, "template", null);
      try {
        ee.documentElement.innerHTML = br ? N : Ve;
      } catch {
      }
    }
    const Et = ee.body || ee.documentElement;
    return B && ue && Et.insertBefore(t.createTextNode(ue), Et.childNodes[0] || null), ln === s0 ? J.call(ee, st ? "html" : "body")[0] : st ? ee.documentElement : Et;
  }, oi = function(B) {
    return G.call(
      B.ownerDocument || B,
      B,
      // eslint-disable-next-line no-bitwise
      p.SHOW_ELEMENT | p.SHOW_COMMENT | p.SHOW_TEXT | p.SHOW_PROCESSING_INSTRUCTION | p.SHOW_CDATA_SECTION,
      null
    );
  }, ui = function(B) {
    return B instanceof x && (typeof B.nodeName != "string" || typeof B.textContent != "string" || typeof B.removeChild != "function" || !(B.attributes instanceof _) || typeof B.removeAttribute != "function" || typeof B.setAttribute != "function" || typeof B.namespaceURI != "string" || typeof B.insertBefore != "function" || typeof B.hasChildNodes != "function");
  }, ci = function(B) {
    return typeof h == "function" && B instanceof h;
  };
  function W0(fe, B, ee) {
    oe[fe] && pl(oe[fe], (ue) => {
      ue.call(e, B, ee, Zn);
    });
  }
  const hi = function(B) {
    let ee = null;
    if (W0("beforeSanitizeElements", B, null), ui(B))
      return Qt(B), !0;
    const ue = At(B.nodeName);
    if (W0("uponSanitizeElement", B, {
      tagName: ue,
      allowedTags: le
    }), B.hasChildNodes() && !ci(B.firstElementChild) && Vt(/<[/\w]/g, B.innerHTML) && Vt(/<[/\w]/g, B.textContent) || B.nodeType === Ua.progressingInstruction || b0 && B.nodeType === Ua.comment && Vt(/<[/\w]/g, B.data))
      return Qt(B), !0;
    if (!le[ue] || vt[ue]) {
      if (!vt[ue] && ba(ue) && (Q.tagNameCheck instanceof RegExp && Vt(Q.tagNameCheck, ue) || Q.tagNameCheck instanceof Function && Q.tagNameCheck(ue)))
        return !1;
      if (Un && !Wn[ue]) {
        const Ve = D(B) || B.parentNode, Et = T(B) || B.childNodes;
        if (Et && Ve) {
          const mt = Et.length;
          for (let Nt = mt - 1; Nt >= 0; --Nt) {
            const D0 = I(Et[Nt], !0);
            D0.__removalCount = (B.__removalCount || 0) + 1, Ve.insertBefore(D0, H(B));
          }
        }
      }
      return Qt(B), !0;
    }
    return B instanceof d && !Ul(B) || (ue === "noscript" || ue === "noembed" || ue === "noframes") && Vt(/<\/no(script|embed|frames)/i, B.innerHTML) ? (Qt(B), !0) : (Pt && B.nodeType === Ua.text && (ee = B.textContent, pl([Ae, je, Me], (Ve) => {
      ee = Oa(ee, Ve, " ");
    }), B.textContent !== ee && (qa(e.removed, {
      element: B.cloneNode()
    }), B.textContent = ee)), W0("afterSanitizeElements", B, null), !1);
  }, fi = function(B, ee, ue) {
    if (Hn && (ee === "id" || ee === "name") && (ue in t || ue in ai))
      return !1;
    if (!(Bt && !Dt[ee] && Vt(Ne, ee))) {
      if (!(at && Vt(Xe, ee))) {
        if (!Pe[ee] || Dt[ee]) {
          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
            !(ba(B) && (Q.tagNameCheck instanceof RegExp && Vt(Q.tagNameCheck, B) || Q.tagNameCheck instanceof Function && Q.tagNameCheck(B)) && (Q.attributeNameCheck instanceof RegExp && Vt(Q.attributeNameCheck, ee) || Q.attributeNameCheck instanceof Function && Q.attributeNameCheck(ee)) || // Alternative, second condition checks if it's an `is`-attribute, AND
            // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
            ee === "is" && Q.allowCustomizedBuiltInElements && (Q.tagNameCheck instanceof RegExp && Vt(Q.tagNameCheck, ue) || Q.tagNameCheck instanceof Function && Q.tagNameCheck(ue)))
          ) return !1;
        } else if (!_r[ee]) {
          if (!Vt(ce, Oa(ue, ke, ""))) {
            if (!((ee === "src" || ee === "xlink:href" || ee === "href") && B !== "script" && rv(ue, "data:") === 0 && Dn[B])) {
              if (!(l0 && !Vt(he, Oa(ue, ke, "")))) {
                if (ue)
                  return !1;
              }
            }
          }
        }
      }
    }
    return !0;
  }, ba = function(B) {
    return B !== "annotation-xml" && oh(B, Oe);
  }, di = function(B) {
    W0("beforeSanitizeAttributes", B, null);
    const {
      attributes: ee
    } = B;
    if (!ee)
      return;
    const ue = {
      attrName: "",
      attrValue: "",
      keepAttr: !0,
      allowedAttributes: Pe,
      forceKeepAttr: void 0
    };
    let Ve = ee.length;
    for (; Ve--; ) {
      const Et = ee[Ve], {
        name: mt,
        namespaceURI: Nt,
        value: D0
      } = Et, wr = At(mt);
      let Tt = mt === "value" ? D0 : av(D0);
      if (ue.attrName = wr, ue.attrValue = Tt, ue.keepAttr = !0, ue.forceKeepAttr = void 0, W0("uponSanitizeAttribute", B, ue), Tt = ue.attrValue, Jt && (wr === "id" || wr === "name") && (Xr(mt, B), Tt = gr + Tt), b0 && Vt(/((--!?|])>)|<\/(style|title)/i, Tt)) {
        Xr(mt, B);
        continue;
      }
      if (ue.forceKeepAttr || (Xr(mt, B), !ue.keepAttr))
        continue;
      if (!Kt && Vt(/\/>/i, Tt)) {
        Xr(mt, B);
        continue;
      }
      Pt && pl([Ae, je, Me], (wa) => {
        Tt = Oa(Tt, wa, " ");
      });
      const ya = At(B.nodeName);
      if (fi(ya, wr, Tt)) {
        if (R && typeof A == "object" && typeof A.getAttributeType == "function" && !Nt)
          switch (A.getAttributeType(ya, wr)) {
            case "TrustedHTML": {
              Tt = R.createHTML(Tt);
              break;
            }
            case "TrustedScriptURL": {
              Tt = R.createScriptURL(Tt);
              break;
            }
          }
        try {
          Nt ? B.setAttributeNS(Nt, mt, Tt) : B.setAttribute(mt, Tt), ui(B) ? Qt(B) : sh(e.removed);
        } catch {
        }
      }
    }
    W0("afterSanitizeAttributes", B, null);
  }, Wl = function fe(B) {
    let ee = null;
    const ue = oi(B);
    for (W0("beforeSanitizeShadowDOM", B, null); ee = ue.nextNode(); )
      W0("uponSanitizeShadowNode", ee, null), !hi(ee) && (ee.content instanceof o && fe(ee.content), di(ee));
    W0("afterSanitizeShadowDOM", B, null);
  };
  return e.sanitize = function(fe) {
    let B = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, ee = null, ue = null, Ve = null, Et = null;
    if (br = !fe, br && (fe = "<!-->"), typeof fe != "string" && !ci(fe))
      if (typeof fe.toString == "function") {
        if (fe = fe.toString(), typeof fe != "string")
          throw Pa("dirty is not a string, aborting");
      } else
        throw Pa("toString is not a function");
    if (!e.isSupported)
      return fe;
    if (y0 || _a(B), e.removed = [], typeof fe == "string" && (vr = !1), vr) {
      if (fe.nodeName) {
        const D0 = At(fe.nodeName);
        if (!le[D0] || vt[D0])
          throw Pa("root node is forbidden and cannot be sanitized in-place");
      }
    } else if (fe instanceof h)
      ee = si("<!---->"), ue = ee.ownerDocument.importNode(fe, !0), ue.nodeType === Ua.element && ue.nodeName === "BODY" || ue.nodeName === "HTML" ? ee = ue : ee.appendChild(ue);
    else {
      if (!kt && !Pt && !st && // eslint-disable-next-line unicorn/prefer-includes
      fe.indexOf("<") === -1)
        return R && U0 ? R.createHTML(fe) : fe;
      if (ee = si(fe), !ee)
        return kt ? null : U0 ? N : "";
    }
    ee && Pn && Qt(ee.firstChild);
    const mt = oi(vr ? fe : ee);
    for (; Ve = mt.nextNode(); )
      hi(Ve) || (Ve.content instanceof o && Wl(Ve.content), di(Ve));
    if (vr)
      return fe;
    if (kt) {
      if (w0)
        for (Et = te.call(ee.ownerDocument); ee.firstChild; )
          Et.appendChild(ee.firstChild);
      else
        Et = ee;
      return (Pe.shadowroot || Pe.shadowrootmode) && (Et = X.call(a, Et, !0)), Et;
    }
    let Nt = st ? ee.outerHTML : ee.innerHTML;
    return st && le["!doctype"] && ee.ownerDocument && ee.ownerDocument.doctype && ee.ownerDocument.doctype.name && Vt(Nf, ee.ownerDocument.doctype.name) && (Nt = "<!DOCTYPE " + ee.ownerDocument.doctype.name + `>
` + Nt), Pt && pl([Ae, je, Me], (D0) => {
      Nt = Oa(Nt, D0, " ");
    }), R && U0 ? R.createHTML(Nt) : Nt;
  }, e.setConfig = function() {
    let fe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    _a(fe), y0 = !0;
  }, e.clearConfig = function() {
    Zn = null, y0 = !1;
  }, e.isValidAttribute = function(fe, B, ee) {
    Zn || _a({});
    const ue = At(fe), Ve = At(B);
    return fi(ue, Ve, ee);
  }, e.addHook = function(fe, B) {
    typeof B == "function" && (oe[fe] = oe[fe] || [], qa(oe[fe], B));
  }, e.removeHook = function(fe) {
    if (oe[fe])
      return sh(oe[fe]);
  }, e.removeHooks = function(fe) {
    oe[fe] && (oe[fe] = []);
  }, e.removeAllHooks = function() {
    oe = {};
  }, e;
}
qf();
const {
  HtmlTagHydration: QB,
  SvelteComponent: jB,
  add_render_callback: ez,
  append_hydration: tz,
  attr: nz,
  bubble: rz,
  check_outros: az,
  children: iz,
  claim_component: lz,
  claim_element: sz,
  claim_html_tag: oz,
  claim_space: uz,
  claim_text: cz,
  create_component: hz,
  create_in_transition: fz,
  create_out_transition: dz,
  destroy_component: mz,
  detach: pz,
  element: gz,
  get_svelte_dataset: vz,
  group_outros: _z,
  init: bz,
  insert_hydration: yz,
  listen: wz,
  mount_component: xz,
  run_all: Dz,
  safe_not_equal: kz,
  set_data: Az,
  space: Sz,
  stop_propagation: Fz,
  text: Cz,
  toggle_class: Ez,
  transition_in: Tz,
  transition_out: $z
} = window.__gradio__svelte__internal, { createEventDispatcher: Mz, onMount: Bz } = window.__gradio__svelte__internal, {
  SvelteComponent: zz,
  append_hydration: Rz,
  attr: Iz,
  bubble: Lz,
  check_outros: Nz,
  children: qz,
  claim_component: Oz,
  claim_element: Pz,
  claim_space: Hz,
  create_animation: Uz,
  create_component: Wz,
  destroy_component: Gz,
  detach: Vz,
  element: Yz,
  ensure_array_like: Xz,
  fix_and_outro_and_destroy_block: Zz,
  fix_position: Kz,
  group_outros: Jz,
  init: Qz,
  insert_hydration: jz,
  mount_component: eR,
  noop: tR,
  safe_not_equal: nR,
  set_style: rR,
  space: aR,
  transition_in: iR,
  transition_out: lR,
  update_keyed_each: sR
} = window.__gradio__svelte__internal, {
  SvelteComponent: oR,
  attr: uR,
  children: cR,
  claim_element: hR,
  detach: fR,
  element: dR,
  empty: mR,
  init: pR,
  insert_hydration: gR,
  noop: vR,
  safe_not_equal: _R,
  set_style: bR
} = window.__gradio__svelte__internal, {
  SvelteComponent: bv,
  append_hydration: yt,
  assign: yv,
  attr: me,
  binding_callbacks: wv,
  check_outros: Po,
  children: Mt,
  claim_component: mu,
  claim_element: B0,
  claim_space: zr,
  claim_svg_element: fr,
  claim_text: xv,
  create_component: pu,
  destroy_component: gu,
  detach: tt,
  element: z0,
  empty: mh,
  get_spread_object: Dv,
  get_spread_update: kv,
  get_svelte_dataset: ph,
  group_outros: Ho,
  init: Av,
  insert_hydration: dr,
  listen: Wa,
  mount_component: vu,
  noop: Sv,
  null_to_empty: sr,
  prevent_default: Fv,
  run_all: Cv,
  safe_not_equal: Of,
  set_data: Ev,
  space: Rr,
  svg_element: mr,
  text: Tv,
  toggle_class: vl,
  transition_in: tn,
  transition_out: In
} = window.__gradio__svelte__internal, { onMount: $v } = window.__gradio__svelte__internal;
function gh(i) {
  let e, t;
  const a = [
    { autoscroll: (
      /*gradio*/
      i[6].autoscroll
    ) },
    { i18n: (
      /*gradio*/
      i[6].i18n
    ) },
    /*loading_status*/
    i[4],
    { variant: "center" }
  ];
  let l = {};
  for (let o = 0; o < a.length; o += 1)
    l = yv(l, a[o]);
  return e = new j9({ props: l }), {
    c() {
      pu(e.$$.fragment);
    },
    l(o) {
      mu(e.$$.fragment, o);
    },
    m(o, u) {
      vu(e, o, u), t = !0;
    },
    p(o, u) {
      const h = u[0] & /*gradio, loading_status*/
      80 ? kv(a, [
        u[0] & /*gradio*/
        64 && { autoscroll: (
          /*gradio*/
          o[6].autoscroll
        ) },
        u[0] & /*gradio*/
        64 && { i18n: (
          /*gradio*/
          o[6].i18n
        ) },
        u[0] & /*loading_status*/
        16 && Dv(
          /*loading_status*/
          o[4]
        ),
        a[3]
      ]) : {};
      e.$set(h);
    },
    i(o) {
      t || (tn(e.$$.fragment, o), t = !0);
    },
    o(o) {
      In(e.$$.fragment, o), t = !1;
    },
    d(o) {
      gu(e, o);
    }
  };
}
function vh(i) {
  let e, t, a, l, o, u, h, d, p, _, x = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" class="size-5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z"></path></svg>', C, A, $, I, q, H, T = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-5"><path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"></path></svg>', D, R, N, U = (
    /*iframeKey*/
    i[8]
  ), G, te, J, X, oe, Ae;
  function je(ce, le) {
    return (
      /*isDarkMode*/
      ce[11] ? Bv : Mv
    );
  }
  let Me = je(i), Ne = Me(i);
  function Xe(ce, le) {
    return (
      /*isFullScreen*/
      ce[10] ? Rv : zv
    );
  }
  let he = Xe(i), ke = he(i), Oe = _h(i);
  return {
    c() {
      e = z0("div"), t = z0("div"), a = z0("div"), l = z0("span"), o = Tv(
        /*sandboxUrl*/
        i[7]
      ), d = Rr(), p = z0("div"), _ = z0("button"), _.innerHTML = x, C = Rr(), A = z0("button"), Ne.c(), $ = Rr(), I = z0("button"), ke.c(), q = Rr(), H = z0("button"), H.innerHTML = T, R = Rr(), N = z0("div"), Oe.c(), G = Rr(), te = z0("div"), this.h();
    },
    l(ce) {
      e = B0(ce, "DIV", { class: !0 });
      var le = Mt(e);
      t = B0(le, "DIV", { class: !0 });
      var Be = Mt(t);
      a = B0(Be, "DIV", { class: !0 });
      var Pe = Mt(a);
      l = B0(Pe, "SPAN", { class: !0 });
      var dt = Mt(l);
      o = xv(
        dt,
        /*sandboxUrl*/
        i[7]
      ), dt.forEach(tt), Pe.forEach(tt), d = zr(Be), p = B0(Be, "DIV", {});
      var Q = Mt(p);
      _ = B0(Q, "BUTTON", { class: !0, "data-svelte-h": !0 }), ph(_) !== "svelte-pgk8h8" && (_.innerHTML = x), C = zr(Q), A = B0(Q, "BUTTON", { class: !0 });
      var vt = Mt(A);
      Ne.l(vt), vt.forEach(tt), $ = zr(Q), I = B0(Q, "BUTTON", { class: !0 });
      var Dt = Mt(I);
      ke.l(Dt), Dt.forEach(tt), q = zr(Q), H = B0(Q, "BUTTON", { class: !0, "data-svelte-h": !0 }), ph(H) !== "svelte-pndfow" && (H.innerHTML = T), Q.forEach(tt), Be.forEach(tt), R = zr(le), N = B0(le, "DIV", { class: !0, style: !0 });
      var at = Mt(N);
      Oe.l(at), G = zr(at), te = B0(at, "DIV", {
        id: !0,
        class: !0,
        "aria-hidden": !0
      }), Mt(te).forEach(tt), at.forEach(tt), le.forEach(tt), this.h();
    },
    h() {
      var ce;
      me(l, "class", u = sr(`px-3 py-1 rounded-r-md flex-1 ${/*isDarkMode*/
      i[11] ? "text-white bg-gray-800" : "text-black bg-gray-200"}`) + " svelte-1t198jr"), me(a, "class", h = sr(`p-2 rounded-t-md flex items-center mr-10 ${/*isDarkMode*/
      i[11] ? "bg-gray-900" : "bg-gray-100"}`) + " svelte-1t198jr"), me(_, "class", "px-2 py-1 bg-green-500 text-white rounded cursor-pointer ml-2"), me(A, "class", "px-2 py-1 bg-blue-500 text-white rounded cursor-pointer ml-2"), me(I, "class", "px-2 py-1 bg-red-500 text-white rounded cursor-pointer"), me(H, "class", "px-2 py-1 bg-blue-500 text-white rounded cursor-pointer"), me(t, "class", D = sr(`flex items-center justify-between border border-gray-300 rounded px-2 py-1 font-mono w-full ${/*isDarkMode*/
      i[11] ? "bg-black text-white" : "bg-white text-black"}`) + " svelte-1t198jr"), me(te, "id", "resizer"), me(te, "class", "w-[15px] h-[15px] bg-gray-500 absolute right-0 bottom-0 cursor-[se-resize]"), me(te, "aria-hidden", "true"), me(N, "class", "relative w-full flex flex-col"), me(N, "style", J = /*isFullScreen*/
      i[10] || !/*width*/
      i[0] || !/*height*/
      i[1] ? "height: 100%; width: 100%; max-width: 100%; max-height: 100%; min-height: 400px;" : `height: ${/*height*/
      i[1]}px; width: ${/*width*/
      i[0]}px; max-width: 100%; max-height: 100%; min-height: 400px;`), vl(
        N,
        "pending",
        /*loading_status*/
        ((ce = i[4]) == null ? void 0 : ce.status) === "pending"
      ), me(e, "class", "svelte-1t198jr"), vl(
        e,
        "full-screen",
        /*isFullScreen*/
        i[10]
      );
    },
    m(ce, le) {
      dr(ce, e, le), yt(e, t), yt(t, a), yt(a, l), yt(l, o), yt(t, d), yt(t, p), yt(p, _), yt(p, C), yt(p, A), Ne.m(A, null), yt(p, $), yt(p, I), ke.m(I, null), yt(p, q), yt(p, H), yt(e, R), yt(e, N), Oe.m(N, null), yt(N, G), yt(N, te), i[21](N), X = !0, oe || (Ae = [
        Wa(
          _,
          "click",
          /*click_handler*/
          i[20]
        ),
        Wa(
          A,
          "click",
          /*toggleDarkMode*/
          i[16]
        ),
        Wa(
          I,
          "click",
          /*toggleFullScreen*/
          i[15]
        ),
        Wa(
          H,
          "click",
          /*refreshHTML*/
          i[13]
        ),
        Wa(te, "mousedown", Fv(
          /*onClickResize*/
          i[14]
        ))
      ], oe = !0);
    },
    p(ce, le) {
      var Be;
      (!X || le[0] & /*sandboxUrl*/
      128) && Ev(
        o,
        /*sandboxUrl*/
        ce[7]
      ), (!X || le[0] & /*isDarkMode*/
      2048 && u !== (u = sr(`px-3 py-1 rounded-r-md flex-1 ${/*isDarkMode*/
      ce[11] ? "text-white bg-gray-800" : "text-black bg-gray-200"}`) + " svelte-1t198jr")) && me(l, "class", u), (!X || le[0] & /*isDarkMode*/
      2048 && h !== (h = sr(`p-2 rounded-t-md flex items-center mr-10 ${/*isDarkMode*/
      ce[11] ? "bg-gray-900" : "bg-gray-100"}`) + " svelte-1t198jr")) && me(a, "class", h), Me !== (Me = je(ce)) && (Ne.d(1), Ne = Me(ce), Ne && (Ne.c(), Ne.m(A, null))), he !== (he = Xe(ce)) && (ke.d(1), ke = he(ce), ke && (ke.c(), ke.m(I, null))), (!X || le[0] & /*isDarkMode*/
      2048 && D !== (D = sr(`flex items-center justify-between border border-gray-300 rounded px-2 py-1 font-mono w-full ${/*isDarkMode*/
      ce[11] ? "bg-black text-white" : "bg-white text-black"}`) + " svelte-1t198jr")) && me(t, "class", D), le[0] & /*iframeKey*/
      256 && Of(U, U = /*iframeKey*/
      ce[8]) ? (Ho(), In(Oe, 1, 1, Sv), Po(), Oe = _h(ce), Oe.c(), tn(Oe, 1), Oe.m(N, G)) : Oe.p(ce, le), (!X || le[0] & /*isFullScreen, width, height*/
      1027 && J !== (J = /*isFullScreen*/
      ce[10] || !/*width*/
      ce[0] || !/*height*/
      ce[1] ? "height: 100%; width: 100%; max-width: 100%; max-height: 100%; min-height: 400px;" : `height: ${/*height*/
      ce[1]}px; width: ${/*width*/
      ce[0]}px; max-width: 100%; max-height: 100%; min-height: 400px;`)) && me(N, "style", J), (!X || le[0] & /*loading_status*/
      16) && vl(
        N,
        "pending",
        /*loading_status*/
        ((Be = ce[4]) == null ? void 0 : Be.status) === "pending"
      ), (!X || le[0] & /*isFullScreen*/
      1024) && vl(
        e,
        "full-screen",
        /*isFullScreen*/
        ce[10]
      );
    },
    i(ce) {
      X || (tn(Oe), X = !0);
    },
    o(ce) {
      In(Oe), X = !1;
    },
    d(ce) {
      ce && tt(e), Ne.d(), ke.d(), Oe.d(ce), i[21](null), oe = !1, Cv(Ae);
    }
  };
}
function Mv(i) {
  let e, t;
  return {
    c() {
      e = mr("svg"), t = mr("path"), this.h();
    },
    l(a) {
      e = fr(a, "svg", {
        xmlns: !0,
        fill: !0,
        viewBox: !0,
        "stroke-width": !0,
        stroke: !0,
        class: !0
      });
      var l = Mt(e);
      t = fr(l, "path", {
        "stroke-linecap": !0,
        "stroke-linejoin": !0,
        d: !0
      }), Mt(t).forEach(tt), l.forEach(tt), this.h();
    },
    h() {
      me(t, "stroke-linecap", "round"), me(t, "stroke-linejoin", "round"), me(t, "d", "M12 3v1.5M12 19.5V21M4.22 4.22l1.06 1.06M17.72 17.72l1.06 1.06M3 12h1.5M19.5 12H21M4.22 19.78l1.06-1.06M17.72 6.28l1.06-1.06M12 6.75A5.25 5.25 0 1 0 17.25 12 5.25 5.25 0 0 0 12 6.75z"), me(e, "xmlns", "http://www.w3.org/2000/svg"), me(e, "fill", "none"), me(e, "viewBox", "0 0 24 24"), me(e, "stroke-width", "1.5"), me(e, "stroke", "currentColor"), me(e, "class", "size-5");
    },
    m(a, l) {
      dr(a, e, l), yt(e, t);
    },
    d(a) {
      a && tt(e);
    }
  };
}
function Bv(i) {
  let e, t;
  return {
    c() {
      e = mr("svg"), t = mr("path"), this.h();
    },
    l(a) {
      e = fr(a, "svg", {
        xmlns: !0,
        fill: !0,
        viewBox: !0,
        "stroke-width": !0,
        stroke: !0,
        class: !0
      });
      var l = Mt(e);
      t = fr(l, "path", {
        "stroke-linecap": !0,
        "stroke-linejoin": !0,
        d: !0
      }), Mt(t).forEach(tt), l.forEach(tt), this.h();
    },
    h() {
      me(t, "stroke-linecap", "round"), me(t, "stroke-linejoin", "round"), me(t, "d", "M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"), me(e, "xmlns", "http://www.w3.org/2000/svg"), me(e, "fill", "none"), me(e, "viewBox", "0 0 24 24"), me(e, "stroke-width", "1.5"), me(e, "stroke", "currentColor"), me(e, "class", "size-5");
    },
    m(a, l) {
      dr(a, e, l), yt(e, t);
    },
    d(a) {
      a && tt(e);
    }
  };
}
function zv(i) {
  let e, t;
  return {
    c() {
      e = mr("svg"), t = mr("path"), this.h();
    },
    l(a) {
      e = fr(a, "svg", {
        xmlns: !0,
        fill: !0,
        viewBox: !0,
        "stroke-width": !0,
        stroke: !0,
        class: !0
      });
      var l = Mt(e);
      t = fr(l, "path", {
        "stroke-linecap": !0,
        "stroke-linejoin": !0,
        d: !0
      }), Mt(t).forEach(tt), l.forEach(tt), this.h();
    },
    h() {
      me(t, "stroke-linecap", "round"), me(t, "stroke-linejoin", "round"), me(t, "d", "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"), me(e, "xmlns", "http://www.w3.org/2000/svg"), me(e, "fill", "none"), me(e, "viewBox", "0 0 24 24"), me(e, "stroke-width", "1.5"), me(e, "stroke", "currentColor"), me(e, "class", "size-5");
    },
    m(a, l) {
      dr(a, e, l), yt(e, t);
    },
    d(a) {
      a && tt(e);
    }
  };
}
function Rv(i) {
  let e, t;
  return {
    c() {
      e = mr("svg"), t = mr("path"), this.h();
    },
    l(a) {
      e = fr(a, "svg", {
        xmlns: !0,
        fill: !0,
        viewBox: !0,
        "stroke-width": !0,
        stroke: !0,
        class: !0
      });
      var l = Mt(e);
      t = fr(l, "path", {
        "stroke-linecap": !0,
        "stroke-linejoin": !0,
        d: !0
      }), Mt(t).forEach(tt), l.forEach(tt), this.h();
    },
    h() {
      me(t, "stroke-linecap", "round"), me(t, "stroke-linejoin", "round"), me(t, "d", "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25"), me(e, "xmlns", "http://www.w3.org/2000/svg"), me(e, "fill", "none"), me(e, "viewBox", "0 0 24 24"), me(e, "stroke-width", "1.5"), me(e, "stroke", "currentColor"), me(e, "class", "size-5");
    },
    m(a, l) {
      dr(a, e, l), yt(e, t);
    },
    d(a) {
      a && tt(e);
    }
  };
}
function _h(i) {
  var o;
  let e, t, a, l;
  return t = new ap({
    props: {
      min_height: (
        /*loading_status*/
        i[4] && /*loading_status*/
        ((o = i[4]) == null ? void 0 : o.status) !== "complete"
      ),
      value: (
        /*sandboxUrl*/
        i[7]
      ),
      isDarkMode: (
        /*isDarkMode*/
        i[11]
      ),
      elem_classes: (
        /*elem_classes*/
        i[3]
      ),
      visible: (
        /*visible*/
        i[5]
      ),
      updateUserInteractions: (
        /*updateUserInteractions*/
        i[12]
      )
    }
  }), {
    c() {
      e = z0("div"), pu(t.$$.fragment), this.h();
    },
    l(u) {
      e = B0(u, "DIV", { class: !0 });
      var h = Mt(e);
      mu(t.$$.fragment, h), h.forEach(tt), this.h();
    },
    h() {
      me(e, "class", a = sr(`flex flex-col flex-1 p-10 ${/*isDarkMode*/
      i[11] ? "bg-slate-800" : "bg-slate-100"} backdrop-blur`) + " svelte-1t198jr");
    },
    m(u, h) {
      dr(u, e, h), vu(t, e, null), l = !0;
    },
    p(u, h) {
      var p;
      const d = {};
      h[0] & /*loading_status*/
      16 && (d.min_height = /*loading_status*/
      u[4] && /*loading_status*/
      ((p = u[4]) == null ? void 0 : p.status) !== "complete"), h[0] & /*sandboxUrl*/
      128 && (d.value = /*sandboxUrl*/
      u[7]), h[0] & /*isDarkMode*/
      2048 && (d.isDarkMode = /*isDarkMode*/
      u[11]), h[0] & /*elem_classes*/
      8 && (d.elem_classes = /*elem_classes*/
      u[3]), h[0] & /*visible*/
      32 && (d.visible = /*visible*/
      u[5]), h[0] & /*updateUserInteractions*/
      4096 && (d.updateUserInteractions = /*updateUserInteractions*/
      u[12]), t.$set(d), (!l || h[0] & /*isDarkMode*/
      2048 && a !== (a = sr(`flex flex-col flex-1 p-10 ${/*isDarkMode*/
      u[11] ? "bg-slate-800" : "bg-slate-100"} backdrop-blur`) + " svelte-1t198jr")) && me(e, "class", a);
    },
    i(u) {
      l || (tn(t.$$.fragment, u), l = !0);
    },
    o(u) {
      In(t.$$.fragment, u), l = !1;
    },
    d(u) {
      u && tt(e), gu(t);
    }
  };
}
function Iv(i) {
  let e, t, a, l = (
    /*loading_status*/
    i[4] && gh(i)
  ), o = (
    /*sandboxUrl*/
    i[7] && /*sandboxUrl*/
    i[7].length > 0 && vh(i)
  );
  return {
    c() {
      l && l.c(), e = Rr(), o && o.c(), t = mh();
    },
    l(u) {
      l && l.l(u), e = zr(u), o && o.l(u), t = mh();
    },
    m(u, h) {
      l && l.m(u, h), dr(u, e, h), o && o.m(u, h), dr(u, t, h), a = !0;
    },
    p(u, h) {
      /*loading_status*/
      u[4] ? l ? (l.p(u, h), h[0] & /*loading_status*/
      16 && tn(l, 1)) : (l = gh(u), l.c(), tn(l, 1), l.m(e.parentNode, e)) : l && (Ho(), In(l, 1, 1, () => {
        l = null;
      }), Po()), /*sandboxUrl*/
      u[7] && /*sandboxUrl*/
      u[7].length > 0 ? o ? (o.p(u, h), h[0] & /*sandboxUrl*/
      128 && tn(o, 1)) : (o = vh(u), o.c(), tn(o, 1), o.m(t.parentNode, t)) : o && (Ho(), In(o, 1, 1, () => {
        o = null;
      }), Po());
    },
    i(u) {
      a || (tn(l), tn(o), a = !0);
    },
    o(u) {
      In(l), In(o), a = !1;
    },
    d(u) {
      u && (tt(e), tt(t)), l && l.d(u), o && o.d(u);
    }
  };
}
function Lv(i) {
  let e, t;
  return e = new zp({
    props: {
      visible: (
        /*visible*/
        i[5]
      ),
      elem_id: (
        /*elem_id*/
        i[2]
      ),
      elem_classes: (
        /*elem_classes*/
        i[3]
      ),
      container: !1,
      $$slots: { default: [Iv] },
      $$scope: { ctx: i }
    }
  }), {
    c() {
      pu(e.$$.fragment);
    },
    l(a) {
      mu(e.$$.fragment, a);
    },
    m(a, l) {
      vu(e, a, l), t = !0;
    },
    p(a, l) {
      const o = {};
      l[0] & /*visible*/
      32 && (o.visible = /*visible*/
      a[5]), l[0] & /*elem_id*/
      4 && (o.elem_id = /*elem_id*/
      a[2]), l[0] & /*elem_classes*/
      8 && (o.elem_classes = /*elem_classes*/
      a[3]), l[0] & /*isFullScreen, width, height, divElement, loading_status, iframeKey, isDarkMode, sandboxUrl, elem_classes, visible, updateUserInteractions, gradio*/
      8187 | l[1] & /*$$scope*/
      1 && (o.$$scope = { dirty: l, ctx: a }), e.$set(o);
    },
    i(a) {
      t || (tn(e.$$.fragment, a), t = !0);
    },
    o(a) {
      In(e.$$.fragment, a), t = !1;
    },
    d(a) {
      gu(e, a);
    }
  };
}
function Nv(i, e, t) {
  let a, { value: l } = e, { elem_id: o = "" } = e, { elem_classes: u = [] } = e, { min_width: h = void 0 } = e, { loading_status: d } = e, { label: p } = e, { visible: _ = !0 } = e, { gradio: x } = e, C = l == null ? void 0 : l.sandboxUrl;
  l == null || l.userInteractionRecords;
  const A = X7.debounce(
    () => {
      x.dispatch("change");
    },
    5 * 1e3
  );
  let $ = 0;
  function I() {
    t(8, $ += 1);
  }
  let { width: q = null } = e, { height: H = 400 } = e, T = !1, D, R, N, U, G;
  function te(he) {
    T = !0, D = he.clientY, R = he.clientX, N = (G == null ? void 0 : G.clientHeight) ?? 0, U = (G == null ? void 0 : G.clientWidth) ?? 0, window.addEventListener("mousemove", X);
  }
  function J() {
    T = !1, window.removeEventListener("mousemove", X);
  }
  function X(he) {
    T && (he.buttons === 0 ? J() : (t(1, H = Math.max(100, N + (he.clientY - D))), t(0, q = Math.max(h ?? 100, U + (he.clientX - R)))));
  }
  let oe = !1;
  function Ae() {
    t(10, oe = !oe), oe ? document.documentElement.requestFullscreen() : document.exitFullscreen();
  }
  let je = !1;
  function Me() {
    t(11, je = !je);
  }
  $v(() => {
    document.addEventListener("fullscreenchange", () => {
      document.fullscreenElement || t(10, oe = !1);
    });
  });
  const Ne = () => navigator.clipboard.writeText(C ?? "");
  function Xe(he) {
    wv[he ? "unshift" : "push"](() => {
      G = he, t(9, G);
    });
  }
  return i.$$set = (he) => {
    "value" in he && t(17, l = he.value), "elem_id" in he && t(2, o = he.elem_id), "elem_classes" in he && t(3, u = he.elem_classes), "min_width" in he && t(18, h = he.min_width), "loading_status" in he && t(4, d = he.loading_status), "label" in he && t(19, p = he.label), "visible" in he && t(5, _ = he.visible), "gradio" in he && t(6, x = he.gradio), "width" in he && t(0, q = he.width), "height" in he && t(1, H = he.height);
  }, i.$$.update = () => {
    i.$$.dirty[0] & /*value*/
    131072 && t(12, a = (he) => {
      l && l.enableTelemetry && (t(17, l.userInteractionRecords = [...l.userInteractionRecords, he], l), A());
    }), i.$$.dirty[0] & /*value*/
    131072 && l && (t(7, C = l.sandboxUrl), l.userInteractionRecords);
  }, [
    q,
    H,
    o,
    u,
    d,
    _,
    x,
    C,
    $,
    G,
    oe,
    je,
    a,
    I,
    te,
    Ae,
    Me,
    l,
    h,
    p,
    Ne,
    Xe
  ];
}
class yR extends bv {
  constructor(e) {
    super(), Av(
      this,
      e,
      Nv,
      Lv,
      Of,
      {
        value: 17,
        elem_id: 2,
        elem_classes: 3,
        min_width: 18,
        loading_status: 4,
        label: 19,
        visible: 5,
        gradio: 6,
        width: 0,
        height: 1
      },
      null,
      [-1, -1]
    );
  }
}
export {
  yR as default
};
