diff --git "a/src/backend/gradio_modal/templates/component/index.js" "b/src/backend/gradio_modal/templates/component/index.js" --- "a/src/backend/gradio_modal/templates/component/index.js" +++ "b/src/backend/gradio_modal/templates/component/index.js" @@ -1,299 +1,389 @@ const { - SvelteComponent: V, - assign: W, - create_slot: X, - detach: Y, - element: Z, - get_all_dirty_from_scope: p, - get_slot_changes: x, - get_spread_update: $, - init: ee, - insert: le, - safe_not_equal: te, - set_dynamic_element_data: z, - set_style: m, - toggle_class: g, - transition_in: F, - transition_out: G, - update_slot_base: fe + SvelteComponent: Ts, + assign: Cs, + children: Ms, + claim_element: Bs, + create_slot: zs, + detach: xn, + element: Rs, + get_all_dirty_from_scope: Ns, + get_slot_changes: Is, + get_spread_update: Ls, + init: Os, + insert_hydration: qs, + safe_not_equal: Ps, + set_dynamic_element_data: An, + set_style: ze, + toggle_class: a0, + transition_in: Qi, + transition_out: Ji, + update_slot_base: Hs } = window.__gradio__svelte__internal; -function ne(f) { - let e, l, a; +function Us(a) { + let e, t, r; const n = ( /*#slots*/ - f[18].default - ), i = X( + a[22].default + ), i = zs( n, - f, + a, /*$$scope*/ - f[17], + a[21], null ); - let d = [ + let l = [ { "data-testid": ( /*test_id*/ - f[7] + a[9] ) }, { id: ( /*elem_id*/ - f[2] + a[4] ) }, { - class: l = "block " + /*elem_classes*/ - f[3].join(" ") + " svelte-1t38q2d" + class: t = "block " + /*elem_classes*/ + a[5].join(" ") + " svelte-1ezsyiy" } - ], s = {}; - for (let t = 0; t < d.length; t += 1) - s = W(s, d[t]); + ], o = {}; + for (let u = 0; u < l.length; u += 1) + o = Cs(o, l[u]); return { c() { - e = Z( + e = Rs( + /*tag*/ + a[18] + ), i && i.c(), this.h(); + }, + l(u) { + e = Bs( + u, /*tag*/ - f[14] - ), i && i.c(), z( + (a[18] || "null").toUpperCase(), + { + "data-testid": !0, + id: !0, + class: !0 + } + ); + var h = Ms(e); + i && i.l(h), h.forEach(xn), this.h(); + }, + h() { + An( /*tag*/ - f[14] - )(e, s), g( + a[18] + )(e, o), a0( e, "hidden", /*visible*/ - f[10] === !1 - ), g( + a[12] === !1 + ), a0( e, "padded", /*padding*/ - f[6] - ), g( + a[8] + ), a0( + e, + "flex", + /*flex*/ + a[17] + ), a0( e, "border_focus", /*border_mode*/ - f[5] === "focus" - ), g(e, "hide-container", !/*explicit_call*/ - f[8] && !/*container*/ - f[9]), m( + a[7] === "focus" + ), a0( + e, + "border_contrast", + /*border_mode*/ + a[7] === "contrast" + ), a0(e, "hide-container", !/*explicit_call*/ + a[10] && !/*container*/ + a[11]), ze( e, "height", /*get_dimension*/ - f[15]( + a[19]( /*height*/ - f[0] + a[0] + ) + ), ze( + e, + "min-height", + /*get_dimension*/ + a[19]( + /*min_height*/ + a[1] ) - ), m(e, "width", typeof /*width*/ - f[1] == "number" ? `calc(min(${/*width*/ - f[1]}px, 100%))` : ( + ), ze( + e, + "max-height", + /*get_dimension*/ + a[19]( + /*max_height*/ + a[2] + ) + ), ze(e, "width", typeof /*width*/ + a[3] == "number" ? `calc(min(${/*width*/ + a[3]}px, 100%))` : ( /*get_dimension*/ - f[15]( + a[19]( /*width*/ - f[1] + a[3] ) - )), m( + )), ze( e, "border-style", /*variant*/ - f[4] - ), m( + a[6] + ), ze( e, "overflow", /*allow_overflow*/ - f[11] ? "visible" : "hidden" - ), m( + a[13] ? ( + /*overflow_behavior*/ + a[14] + ) : "hidden" + ), ze( e, "flex-grow", /*scale*/ - f[12] - ), m(e, "min-width", `calc(min(${/*min_width*/ - f[13]}px, 100%))`), m(e, "border-width", "var(--block-border-width)"); + a[15] + ), ze(e, "min-width", `calc(min(${/*min_width*/ + a[16]}px, 100%))`), ze(e, "border-width", "var(--block-border-width)"); }, - m(t, o) { - le(t, e, o), i && i.m(e, null), a = !0; + m(u, h) { + qs(u, e, h), i && i.m(e, null), r = !0; }, - p(t, o) { - i && i.p && (!a || o & /*$$scope*/ - 131072) && fe( + p(u, h) { + i && i.p && (!r || h & /*$$scope*/ + 2097152) && Hs( i, n, - t, + u, /*$$scope*/ - t[17], - a ? x( + u[21], + r ? Is( n, /*$$scope*/ - t[17], - o, + u[21], + h, null - ) : p( + ) : Ns( /*$$scope*/ - t[17] + u[21] ), null - ), z( + ), An( /*tag*/ - t[14] - )(e, s = $(d, [ - (!a || o & /*test_id*/ - 128) && { "data-testid": ( + u[18] + )(e, o = Ls(l, [ + (!r || h & /*test_id*/ + 512) && { "data-testid": ( /*test_id*/ - t[7] + u[9] ) }, - (!a || o & /*elem_id*/ - 4) && { id: ( + (!r || h & /*elem_id*/ + 16) && { id: ( /*elem_id*/ - t[2] + u[4] ) }, - (!a || o & /*elem_classes*/ - 8 && l !== (l = "block " + /*elem_classes*/ - t[3].join(" ") + " svelte-1t38q2d")) && { class: l } - ])), g( + (!r || h & /*elem_classes*/ + 32 && t !== (t = "block " + /*elem_classes*/ + u[5].join(" ") + " svelte-1ezsyiy")) && { class: t } + ])), a0( e, "hidden", /*visible*/ - t[10] === !1 - ), g( + u[12] === !1 + ), a0( e, "padded", /*padding*/ - t[6] - ), g( + u[8] + ), a0( + e, + "flex", + /*flex*/ + u[17] + ), a0( e, "border_focus", /*border_mode*/ - t[5] === "focus" - ), g(e, "hide-container", !/*explicit_call*/ - t[8] && !/*container*/ - t[9]), o & /*height*/ - 1 && m( + u[7] === "focus" + ), a0( + e, + "border_contrast", + /*border_mode*/ + u[7] === "contrast" + ), a0(e, "hide-container", !/*explicit_call*/ + u[10] && !/*container*/ + u[11]), h & /*height*/ + 1 && ze( e, "height", /*get_dimension*/ - t[15]( + u[19]( /*height*/ - t[0] + u[0] + ) + ), h & /*min_height*/ + 2 && ze( + e, + "min-height", + /*get_dimension*/ + u[19]( + /*min_height*/ + u[1] + ) + ), h & /*max_height*/ + 4 && ze( + e, + "max-height", + /*get_dimension*/ + u[19]( + /*max_height*/ + u[2] ) - ), o & /*width*/ - 2 && m(e, "width", typeof /*width*/ - t[1] == "number" ? `calc(min(${/*width*/ - t[1]}px, 100%))` : ( + ), h & /*width*/ + 8 && ze(e, "width", typeof /*width*/ + u[3] == "number" ? `calc(min(${/*width*/ + u[3]}px, 100%))` : ( /*get_dimension*/ - t[15]( + u[19]( /*width*/ - t[1] + u[3] ) - )), o & /*variant*/ - 16 && m( + )), h & /*variant*/ + 64 && ze( e, "border-style", /*variant*/ - t[4] - ), o & /*allow_overflow*/ - 2048 && m( + u[6] + ), h & /*allow_overflow, overflow_behavior*/ + 24576 && ze( e, "overflow", /*allow_overflow*/ - t[11] ? "visible" : "hidden" - ), o & /*scale*/ - 4096 && m( + u[13] ? ( + /*overflow_behavior*/ + u[14] + ) : "hidden" + ), h & /*scale*/ + 32768 && ze( e, "flex-grow", /*scale*/ - t[12] - ), o & /*min_width*/ - 8192 && m(e, "min-width", `calc(min(${/*min_width*/ - t[13]}px, 100%))`); + u[15] + ), h & /*min_width*/ + 65536 && ze(e, "min-width", `calc(min(${/*min_width*/ + u[16]}px, 100%))`); }, - i(t) { - a || (F(i, t), a = !0); + i(u) { + r || (Qi(i, u), r = !0); }, - o(t) { - G(i, t), a = !1; + o(u) { + Ji(i, u), r = !1; }, - d(t) { - t && Y(e), i && i.d(t); + d(u) { + u && xn(e), i && i.d(u); } }; } -function ae(f) { - let e, l = ( +function Vs(a) { + let e, t = ( /*tag*/ - f[14] && ne(f) + a[18] && Us(a) ); return { c() { - l && l.c(); + t && t.c(); + }, + l(r) { + t && t.l(r); }, - m(a, n) { - l && l.m(a, n), e = !0; + m(r, n) { + t && t.m(r, n), e = !0; }, - p(a, [n]) { + p(r, [n]) { /*tag*/ - a[14] && l.p(a, n); + r[18] && t.p(r, n); }, - i(a) { - e || (F(l, a), e = !0); + i(r) { + e || (Qi(t, r), e = !0); }, - o(a) { - G(l, a), e = !1; + o(r) { + Ji(t, r), e = !1; }, - d(a) { - l && l.d(a); + d(r) { + t && t.d(r); } }; } -function ie(f, e, l) { - let { $$slots: a = {}, $$scope: n } = e, { height: i = void 0 } = e, { width: d = void 0 } = e, { elem_id: s = "" } = e, { elem_classes: t = [] } = e, { variant: o = "solid" } = e, { border_mode: u = "base" } = e, { padding: b = !0 } = e, { type: r = "normal" } = e, { test_id: v = void 0 } = e, { explicit_call: y = !1 } = e, { container: k = !0 } = e, { visible: c = !0 } = e, { allow_overflow: T = !0 } = e, { scale: E = null } = e, { min_width: M = 0 } = e, Q = r === "fieldset" ? "fieldset" : "div"; - const R = (_) => { - if (_ !== void 0) { - if (typeof _ == "number") - return _ + "px"; - if (typeof _ == "string") - return _; +function Gs(a, e, t) { + let { $$slots: r = {}, $$scope: n } = e, { height: i = void 0 } = e, { min_height: l = void 0 } = e, { max_height: o = void 0 } = e, { width: u = void 0 } = e, { elem_id: h = "" } = e, { elem_classes: f = [] } = e, { variant: p = "solid" } = e, { border_mode: v = "base" } = e, { padding: w = !0 } = e, { type: E = "normal" } = e, { test_id: F = void 0 } = e, { explicit_call: _ = !1 } = e, { container: T = !0 } = e, { visible: D = !0 } = e, { allow_overflow: y = !0 } = e, { overflow_behavior: A = "auto" } = e, { scale: C = null } = e, { min_width: M = 0 } = e, { flex: B = !1 } = e, H = E === "fieldset" ? "fieldset" : "div"; + const N = (I) => { + if (I !== void 0) { + if (typeof I == "number") + return I + "px"; + if (typeof I == "string") + return I; } }; - return f.$$set = (_) => { - "height" in _ && l(0, i = _.height), "width" in _ && l(1, d = _.width), "elem_id" in _ && l(2, s = _.elem_id), "elem_classes" in _ && l(3, t = _.elem_classes), "variant" in _ && l(4, o = _.variant), "border_mode" in _ && l(5, u = _.border_mode), "padding" in _ && l(6, b = _.padding), "type" in _ && l(16, r = _.type), "test_id" in _ && l(7, v = _.test_id), "explicit_call" in _ && l(8, y = _.explicit_call), "container" in _ && l(9, k = _.container), "visible" in _ && l(10, c = _.visible), "allow_overflow" in _ && l(11, T = _.allow_overflow), "scale" in _ && l(12, E = _.scale), "min_width" in _ && l(13, M = _.min_width), "$$scope" in _ && l(17, n = _.$$scope); + return a.$$set = (I) => { + "height" in I && t(0, i = I.height), "min_height" in I && t(1, l = I.min_height), "max_height" in I && t(2, o = I.max_height), "width" in I && t(3, u = I.width), "elem_id" in I && t(4, h = I.elem_id), "elem_classes" in I && t(5, f = I.elem_classes), "variant" in I && t(6, p = I.variant), "border_mode" in I && t(7, v = I.border_mode), "padding" in I && t(8, w = I.padding), "type" in I && t(20, E = I.type), "test_id" in I && t(9, F = I.test_id), "explicit_call" in I && t(10, _ = I.explicit_call), "container" in I && t(11, T = I.container), "visible" in I && t(12, D = I.visible), "allow_overflow" in I && t(13, y = I.allow_overflow), "overflow_behavior" in I && t(14, A = I.overflow_behavior), "scale" in I && t(15, C = I.scale), "min_width" in I && t(16, M = I.min_width), "flex" in I && t(17, B = I.flex), "$$scope" in I && t(21, n = I.$$scope); }, [ i, - d, - s, - t, + l, o, u, - b, + h, + f, + p, v, - y, - k, - c, + w, + F, + _, T, - E, + D, + y, + A, + C, M, - Q, - R, - r, + B, + H, + N, + E, n, - a + r ]; } -class se extends V { +class Ws extends Ts { constructor(e) { - super(), ee(this, e, ie, ae, te, { + super(), Os(this, e, Gs, Vs, Ps, { height: 0, - width: 1, - elem_id: 2, - elem_classes: 3, - variant: 4, - border_mode: 5, - padding: 6, - type: 16, - test_id: 7, - explicit_call: 8, - container: 9, - visible: 10, - allow_overflow: 11, - scale: 12, - min_width: 13 + min_height: 1, + max_height: 2, + width: 3, + elem_id: 4, + elem_classes: 5, + variant: 6, + border_mode: 7, + padding: 8, + type: 20, + test_id: 9, + explicit_call: 10, + container: 11, + visible: 12, + allow_overflow: 13, + overflow_behavior: 14, + scale: 15, + min_width: 16, + flex: 17 }); } } -const _e = [ +const Ys = [ { color: "red", primary: 600, secondary: 100 }, { color: "green", primary: 600, secondary: 100 }, { color: "blue", primary: 600, secondary: 100 }, @@ -304,7 +394,7 @@ const _e = [ { color: "cyan", primary: 600, secondary: 100 }, { color: "lime", primary: 500, secondary: 100 }, { color: "pink", primary: 600, secondary: 100 } -], A = { +], Fn = { inherit: "inherit", current: "currentColor", transparent: "transparent", @@ -597,398 +687,15986 @@ const _e = [ 950: "#4c0519" } }; -_e.reduce( - (f, { color: e, primary: l, secondary: a }) => ({ - ...f, +Ys.reduce( + (a, { color: e, primary: t, secondary: r }) => ({ + ...a, [e]: { - primary: A[e][l], - secondary: A[e][a] + primary: Fn[e][t], + secondary: Fn[e][r] } }), {} ); const { - SvelteComponent: de, - attr: j, - create_slot: oe, - detach: ce, - element: re, - get_all_dirty_from_scope: ue, - get_slot_changes: me, - init: be, - insert: ge, - null_to_empty: D, - safe_not_equal: he, - set_style: C, - toggle_class: h, - transition_in: we, - transition_out: ve, - update_slot_base: ye + SvelteComponent: js, + append_hydration: Vr, + attr: d0, + children: Jt, + claim_svg_element: $t, + detach: Tt, + init: Xs, + insert_hydration: Zs, + noop: Gr, + safe_not_equal: Ks, + set_style: S0, + svg_element: er } = window.__gradio__svelte__internal; -function ke(f) { - let e, l, a = `calc(min(${/*min_width*/ - f[2]}px, 100%))`, n; - const i = ( - /*#slots*/ - f[8].default - ), d = oe( - i, - f, - /*$$scope*/ - f[7], - null - ); +function Qs(a) { + let e, t, r, n; return { c() { - e = re("div"), d && d.c(), j( - e, - "id", - /*elem_id*/ - f[3] - ), j(e, "class", l = D( - /*elem_classes*/ - f[4].join(" ") - ) + " svelte-1m1obck"), h( - e, - "gap", - /*gap*/ - f[1] - ), h( - e, - "compact", - /*variant*/ - f[6] === "compact" - ), h( - e, - "panel", - /*variant*/ - f[6] === "panel" - ), h(e, "hide", !/*visible*/ - f[5]), C( - e, - "flex-grow", - /*scale*/ - f[0] - ), C(e, "min-width", a); + e = er("svg"), t = er("g"), r = er("path"), n = er("path"), this.h(); }, - m(s, t) { - ge(s, e, t), d && d.m(e, null), n = !0; - }, - p(s, [t]) { - d && d.p && (!n || t & /*$$scope*/ - 128) && ye( - d, - i, - s, - /*$$scope*/ - s[7], - n ? me( - i, - /*$$scope*/ - s[7], - t, - null - ) : ue( - /*$$scope*/ - s[7] - ), - null - ), (!n || t & /*elem_id*/ - 8) && j( - e, - "id", - /*elem_id*/ - s[3] - ), (!n || t & /*elem_classes*/ - 16 && l !== (l = D( - /*elem_classes*/ - s[4].join(" ") - ) + " svelte-1m1obck")) && j(e, "class", l), (!n || t & /*elem_classes, gap*/ - 18) && h( - e, - "gap", - /*gap*/ - s[1] - ), (!n || t & /*elem_classes, variant*/ - 80) && h( - e, - "compact", - /*variant*/ - s[6] === "compact" - ), (!n || t & /*elem_classes, variant*/ - 80) && h( - e, - "panel", - /*variant*/ - s[6] === "panel" - ), (!n || t & /*elem_classes, visible*/ - 48) && h(e, "hide", !/*visible*/ - s[5]), t & /*scale*/ - 1 && C( - e, - "flex-grow", - /*scale*/ - s[0] - ), t & /*min_width*/ - 4 && a !== (a = `calc(min(${/*min_width*/ - s[2]}px, 100%))`) && C(e, "min-width", a); + l(i) { + e = $t(i, "svg", { + width: !0, + height: !0, + viewBox: !0, + version: !0, + xmlns: !0, + "xmlns:xlink": !0, + "xml:space": !0, + stroke: !0, + style: !0 + }); + var l = Jt(e); + t = $t(l, "g", { transform: !0 }); + var o = Jt(t); + r = $t(o, "path", { d: !0, style: !0 }), Jt(r).forEach(Tt), o.forEach(Tt), n = $t(l, "path", { d: !0, style: !0 }), Jt(n).forEach(Tt), l.forEach(Tt), this.h(); }, - i(s) { - n || (we(d, s), n = !0); + h() { + d0(r, "d", "M18,6L6.087,17.913"), S0(r, "fill", "none"), S0(r, "fill-rule", "nonzero"), S0(r, "stroke-width", "2px"), d0(t, "transform", "matrix(1.14096,-0.140958,-0.140958,1.14096,-0.0559523,0.0559523)"), d0(n, "d", "M4.364,4.364L19.636,19.636"), S0(n, "fill", "none"), S0(n, "fill-rule", "nonzero"), S0(n, "stroke-width", "2px"), d0(e, "width", "100%"), d0(e, "height", "100%"), d0(e, "viewBox", "0 0 24 24"), d0(e, "version", "1.1"), d0(e, "xmlns", "http://www.w3.org/2000/svg"), d0(e, "xmlns:xlink", "http://www.w3.org/1999/xlink"), d0(e, "xml:space", "preserve"), d0(e, "stroke", "currentColor"), S0(e, "fill-rule", "evenodd"), S0(e, "clip-rule", "evenodd"), S0(e, "stroke-linecap", "round"), S0(e, "stroke-linejoin", "round"); }, - o(s) { - ve(d, s), n = !1; + m(i, l) { + Zs(i, e, l), Vr(e, t), Vr(t, r), Vr(e, n); }, - d(s) { - s && ce(e), d && d.d(s); + p: Gr, + i: Gr, + o: Gr, + d(i) { + i && Tt(e); } }; } -function je(f, e, l) { - let { $$slots: a = {}, $$scope: n } = e, { scale: i = null } = e, { gap: d = !0 } = e, { min_width: s = 0 } = e, { elem_id: t = "" } = e, { elem_classes: o = [] } = e, { visible: u = !0 } = e, { variant: b = "default" } = e; - return f.$$set = (r) => { - "scale" in r && l(0, i = r.scale), "gap" in r && l(1, d = r.gap), "min_width" in r && l(2, s = r.min_width), "elem_id" in r && l(3, t = r.elem_id), "elem_classes" in r && l(4, o = r.elem_classes), "visible" in r && l(5, u = r.visible), "variant" in r && l(6, b = r.variant), "$$scope" in r && l(7, n = r.$$scope); - }, [i, d, s, t, o, u, b, n, a]; -} -let Ce = class extends de { +class Js extends js { constructor(e) { - super(), be(this, e, je, ke, he, { - scale: 0, - gap: 1, - min_width: 2, - elem_id: 3, - elem_classes: 4, - visible: 5, - variant: 6 - }); + super(), Xs(this, e, null, Qs, Ks, {}); } -}; -const { - SvelteComponent: qe, - append: Ie, - attr: w, - binding_callbacks: H, - create_component: J, - create_slot: Se, - destroy_component: K, - detach: I, - element: q, - get_all_dirty_from_scope: Be, - get_slot_changes: Le, - init: Te, - insert: S, - listen: O, - mount_component: P, - noop: Ee, - safe_not_equal: Me, - space: ze, - toggle_class: N, - transition_in: B, - transition_out: L, - update_slot_base: Ae -} = window.__gradio__svelte__internal; -function U(f) { - let e, l, a; - return { - c() { - e = q("div"), e.innerHTML = '', w(e, "class", "close svelte-7knbu5"); - }, - m(n, i) { - S(n, e, i), l || (a = O( - e, - "click", - /*close*/ - f[6] - ), l = !0); - }, - p: Ee, - d(n) { - n && I(e), l = !1, a(); - } - }; } -function De(f) { - let e; - const l = ( - /*#slots*/ - f[8].default - ), a = Se( - l, - f, - /*$$scope*/ - f[12], - null - ); - return { - c() { - a && a.c(); - }, - m(n, i) { - a && a.m(n, i), e = !0; - }, - p(n, i) { - a && a.p && (!e || i & /*$$scope*/ - 4096) && Ae( - a, - l, - n, - /*$$scope*/ - n[12], - e ? Le( - l, - /*$$scope*/ - n[12], - i, - null - ) : Be( - /*$$scope*/ - n[12] - ), - null - ); - }, - i(n) { - e || (B(a, n), e = !0); - }, - o(n) { - L(a, n), e = !1; - }, - d(n) { - a && a.d(n); - } - }; +class Sa { + // The + prefix indicates that these fields aren't writeable + // Lexer holding the input string. + // Start offset, zero-based inclusive. + // End offset, zero-based exclusive. + constructor(e, t, r) { + this.lexer = void 0, this.start = void 0, this.end = void 0, this.lexer = e, this.start = t, this.end = r; + } + /** + * 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 Sa(e.loc.lexer, e.loc.start, t.loc.end) : e && e.loc; + } } -function He(f) { - let e, l, a, n = ( - /*allow_user_close*/ - f[3] && U(f) - ); - return l = new Ce({ - props: { - $$slots: { default: [De] }, - $$scope: { ctx: f } - } - }), { - c() { - n && n.c(), e = ze(), J(l.$$.fragment); - }, - m(i, d) { - n && n.m(i, d), S(i, e, d), P(l, i, d), a = !0; - }, - p(i, d) { - /*allow_user_close*/ - i[3] ? n ? n.p(i, d) : (n = U(i), n.c(), n.m(e.parentNode, e)) : n && (n.d(1), n = null); - const s = {}; - d & /*$$scope*/ - 4096 && (s.$$scope = { dirty: d, ctx: i }), l.$set(s); - }, - i(i) { - a || (B(l.$$.fragment, i), a = !0); - }, - o(i) { - L(l.$$.fragment, i), a = !1; - }, - d(i) { - i && I(e), n && n.d(i), K(l, i); - } - }; +class Ea { + // 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 Ea(t, Sa.range(this, e)); + } } -function Ne(f) { - let e, l, a, n, i, d, s; - return a = new se({ - props: { - allow_overflow: !1, - elem_classes: ["modal-block"], - $$slots: { default: [He] }, - $$scope: { ctx: f } +class Y { + // Error start position based on passed-in Token or ParseNode. + // Length of affected text based on passed-in Token or ParseNode. + // The underlying error message without any context added. + constructor(e, t) { + this.name = void 0, this.position = void 0, this.length = void 0, this.rawMessage = void 0; + var r = "KaTeX parse error: " + e, n, i, l = t && t.loc; + if (l && l.start <= l.end) { + var o = l.lexer.input; + n = l.start, i = l.end, n === o.length ? r += " at end of input: " : r += " at position " + (n + 1) + ": "; + var u = o.slice(n, i).replace(/[^]/g, "$&̲"), h; + n > 15 ? h = "…" + o.slice(n - 15, n) : h = o.slice(0, n); + var f; + i + 15 < o.length ? f = o.slice(i, i + 15) + "…" : f = o.slice(i), r += h + u + f; } - }), { - c() { - e = q("div"), l = q("div"), J(a.$$.fragment), w(l, "class", "modal-container svelte-7knbu5"), w(e, "class", n = "modal " + /*elem_classes*/ - f[2].join(" ") + " svelte-7knbu5"), w( - e, - "id", - /*elem_id*/ - f[1] - ), N(e, "hide", !/*visible*/ - f[0]); - }, - m(t, o) { - S(t, e, o), Ie(e, l), P(a, l, null), f[9](l), f[10](e), i = !0, d || (s = O( - e, - "click", - /*click_handler*/ - f[11] - ), d = !0); - }, - p(t, [o]) { - const u = {}; - o & /*$$scope, allow_user_close*/ - 4104 && (u.$$scope = { dirty: o, ctx: t }), a.$set(u), (!i || o & /*elem_classes*/ - 4 && n !== (n = "modal " + /*elem_classes*/ - t[2].join(" ") + " svelte-7knbu5")) && w(e, "class", n), (!i || o & /*elem_id*/ - 2) && w( - e, - "id", - /*elem_id*/ - t[1] - ), (!i || o & /*elem_classes, visible*/ - 5) && N(e, "hide", !/*visible*/ - t[0]); - }, - i(t) { - i || (B(a.$$.fragment, t), i = !0); - }, - o(t) { - L(a.$$.fragment, t), i = !1; - }, - d(t) { - t && I(e), K(a), f[9](null), f[10](null), d = !1, s(); + var p = new Error(r); + return p.name = "ParseError", p.__proto__ = Y.prototype, p.position = n, n != null && i != null && (p.length = i - n), p.rawMessage = e, p; + } +} +Y.prototype.__proto__ = Error.prototype; +var $s = function(e, t) { + return e.indexOf(t) !== -1; +}, e1 = function(e, t) { + return e === void 0 ? t : e; +}, t1 = /([A-Z])/g, r1 = function(e) { + return e.replace(t1, "-$1").toLowerCase(); +}, a1 = { + "&": "&", + ">": ">", + "<": "<", + '"': """, + "'": "'" +}, n1 = /[&><"']/g; +function i1(a) { + return String(a).replace(n1, (e) => a1[e]); +} +var $i = function a(e) { + return e.type === "ordgroup" || e.type === "color" ? e.body.length === 1 ? a(e.body[0]) : e : e.type === "font" ? a(e.body) : e; +}, l1 = function(e) { + var t = $i(e); + return t.type === "mathord" || t.type === "textord" || t.type === "atom"; +}, s1 = function(e) { + if (!e) + throw new Error("Expected non-null, but got " + String(e)); + return e; +}, o1 = function(e) { + var t = /^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e); + return t ? t[2] !== ":" || !/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1]) ? null : t[1].toLowerCase() : "_relative"; +}, X = { + contains: $s, + deflt: e1, + escape: i1, + hyphenate: r1, + getBaseElem: $i, + isCharacterBox: l1, + protocolFromUrl: o1 +}; +class K0 { + constructor(e, t, r) { + this.id = void 0, this.size = void 0, this.cramped = void 0, this.id = e, this.size = t, this.cramped = r; + } + /** + * Get the style of a superscript given a base in the current style. + */ + sup() { + return E0[u1[this.id]]; + } + /** + * Get the style of a subscript given a base in the current style. + */ + sub() { + return E0[c1[this.id]]; + } + /** + * Get the style of a fraction numerator given the fraction in the current + * style. + */ + fracNum() { + return E0[h1[this.id]]; + } + /** + * Get the style of a fraction denominator given the fraction in the current + * style. + */ + fracDen() { + return E0[m1[this.id]]; + } + /** + * Get the cramped version of a style (in particular, cramping a cramped style + * doesn't change the style). + */ + cramp() { + return E0[f1[this.id]]; + } + /** + * Get a text or display version of this style. + */ + text() { + return E0[d1[this.id]]; + } + /** + * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle) + */ + isTight() { + return this.size >= 2; + } +} +var Ta = 0, kr = 1, wt = 2, Y0 = 3, Vt = 4, l0 = 5, Dt = 6, He = 7, E0 = [new K0(Ta, 0, !1), new K0(kr, 0, !0), new K0(wt, 1, !1), new K0(Y0, 1, !0), new K0(Vt, 2, !1), new K0(l0, 2, !0), new K0(Dt, 3, !1), new K0(He, 3, !0)], u1 = [Vt, l0, Vt, l0, Dt, He, Dt, He], c1 = [l0, l0, l0, l0, He, He, He, He], h1 = [wt, Y0, Vt, l0, Dt, He, Dt, He], m1 = [Y0, Y0, l0, l0, He, He, He, He], f1 = [kr, kr, Y0, Y0, l0, l0, He, He], d1 = [Ta, kr, wt, Y0, wt, Y0, wt, Y0], K = { + DISPLAY: E0[Ta], + TEXT: E0[wt], + SCRIPT: E0[Vt], + SCRIPTSCRIPT: E0[Dt] +}, ua = [{ + // 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 p1(a) { + for (var e = 0; e < ua.length; e++) + for (var t = ua[e], r = 0; r < t.blocks.length; r++) { + var n = t.blocks[r]; + if (a >= n[0] && a <= n[1]) + return t.name; } - }; + return null; } -function Ue(f, e, l) { - let { $$slots: a = {}, $$scope: n } = e, { elem_id: i = "" } = e, { elem_classes: d = [] } = e, { visible: s = !1 } = e, { allow_user_close: t = !0 } = e, { gradio: o } = e, u = null, b = null; - const r = () => { - l(0, s = !1), o.dispatch("blur"); - }; - document.addEventListener("keydown", (c) => { - t && c.key === "Escape" && r(); - }); - function v(c) { - H[c ? "unshift" : "push"](() => { - b = c, l(5, b); - }); +var gr = []; +ua.forEach((a) => a.blocks.forEach((e) => gr.push(...e))); +function g1(a) { + for (var e = 0; e < gr.length; e += 2) + if (a >= gr[e] && a <= gr[e + 1]) + return !0; + return !1; +} +var gt = 80, v1 = 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"; +}, b1 = 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"; +}, y1 = 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"; +}, w1 = 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"; +}, k1 = 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"; +}, D1 = function(e) { + var t = e / 2; + return "M400000 " + e + " H0 L" + t + " 0 l65 45 L145 " + (e - 80) + " H400000z"; +}, x1 = function(e, t, r) { + var n = r - 54 - t - e; + return "M702 " + (e + t) + "H400000" + (40 + e) + ` +H742v` + n + `l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 ` + t + "H400000v" + (40 + e) + "H742z"; +}, A1 = function(e, t, r) { + t = 1e3 * t; + var n = ""; + switch (e) { + case "sqrtMain": + n = v1(t, gt); + break; + case "sqrtSize1": + n = b1(t, gt); + break; + case "sqrtSize2": + n = y1(t, gt); + break; + case "sqrtSize3": + n = w1(t, gt); + break; + case "sqrtSize4": + n = k1(t, gt); + break; + case "sqrtTall": + n = x1(t, gt, r); } - function y(c) { - H[c ? "unshift" : "push"](() => { - u = c, l(4, u); - }); + return n; +}, F1 = 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 ""; } - const k = (c) => { - t && (c.target === u || c.target === b) && r(); - }; - return f.$$set = (c) => { - "elem_id" in c && l(1, i = c.elem_id), "elem_classes" in c && l(2, d = c.elem_classes), "visible" in c && l(0, s = c.visible), "allow_user_close" in c && l(3, t = c.allow_user_close), "gradio" in c && l(7, o = c.gradio), "$$scope" in c && l(12, n = c.$$scope); - }, [ - s, - i, - d, - t, - u, - b, - r, - o, - a, - v, - y, - k, +}, _n = { + // 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` +}, _1 = 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 Wt { + // 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 X.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 W0 = { + "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] + } +}, Sn = { + // 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 Ca(a, e, t) { + if (!W0[e]) + throw new Error("Font metrics not found for font: " + e + "."); + var r = a.charCodeAt(0), n = W0[e][r]; + if (!n && a[0] in Sn && (r = Sn[a[0]].charCodeAt(0), n = W0[e][r]), !n && t === "text" && g1(r) && (n = W0[e][77]), n) + return { + depth: n[0], + height: n[1], + italic: n[2], + skew: n[3], + width: n[4] + }; +} +var ca = { + // 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 +}, S1 = { + ex: !0, + em: !0, + mu: !0 +}, E1 = function(e) { + return typeof e != "string" && (e = e.unit), e in ca || e in S1 || e === "ex"; +}, pe = function(e, t) { + var r; + if (e.unit in ca) + r = ca[e.unit] / t.fontMetrics().ptPerEm / t.sizeMultiplier; + else if (e.unit === "mu") + r = t.fontMetrics().cssEmPerMu; + else { + var n; + if (t.style.isTight() ? n = t.havingStyle(t.style.text()) : n = t, e.unit === "ex") + r = n.fontMetrics().xHeight; + else if (e.unit === "em") + r = n.fontMetrics().quad; + else + throw new Y("Invalid unit: '" + e.unit + "'"); + n !== t && (r *= n.sizeMultiplier / t.sizeMultiplier); + } + return Math.min(e.number * r, t.maxSize); +}, q = function(e) { + return +e.toFixed(4) + "em"; +}, et = function(e) { + return e.filter((t) => t).join(" "); +}, el = function(e, t, r) { + if (this.classes = e || [], this.attributes = {}, this.height = 0, this.depth = 0, this.maxFontSize = 0, this.style = r || {}, t) { + t.style.isTight() && this.classes.push("mtight"); + var n = t.getColor(); + n && (this.style.color = n); + } +}, tl = function(e) { + var t = document.createElement(e); + t.className = et(this.classes); + for (var r in this.style) + this.style.hasOwnProperty(r) && (t.style[r] = this.style[r]); + for (var n in this.attributes) + this.attributes.hasOwnProperty(n) && t.setAttribute(n, this.attributes[n]); + for (var i = 0; i < this.children.length; i++) + t.appendChild(this.children[i].toNode()); + return t; +}, rl = function(e) { + var t = "<" + e; + this.classes.length && (t += ' class="' + X.escape(et(this.classes)) + '"'); + var r = ""; + for (var n in this.style) + this.style.hasOwnProperty(n) && (r += X.hyphenate(n) + ":" + this.style[n] + ";"); + r && (t += ' style="' + X.escape(r) + '"'); + for (var i in this.attributes) + this.attributes.hasOwnProperty(i) && (t += " " + i + '="' + X.escape(this.attributes[i]) + '"'); + t += ">"; + for (var l = 0; l < this.children.length; l++) + t += this.children[l].toMarkup(); + return t += "", t; +}; +class Cr { + constructor(e, t, r, n) { + this.children = void 0, this.attributes = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.width = void 0, this.maxFontSize = void 0, this.style = void 0, el.call(this, e, r, n), this.children = t || []; + } + /** + * Sets an arbitrary attribute on the span. Warning: use this wisely. Not + * all browsers support attributes the same, and having too many custom + * attributes is probably bad. + */ + setAttribute(e, t) { + this.attributes[e] = t; + } + hasClass(e) { + return X.contains(this.classes, e); + } + toNode() { + return tl.call(this, "span"); + } + toMarkup() { + return rl.call(this, "span"); + } +} +class al { + constructor(e, t, r, n) { + this.children = void 0, this.attributes = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.maxFontSize = void 0, this.style = void 0, el.call(this, t, n), this.children = r || [], this.setAttribute("href", e); + } + setAttribute(e, t) { + this.attributes[e] = t; + } + hasClass(e) { + return X.contains(this.classes, e); + } + toNode() { + return tl.call(this, "a"); + } + toMarkup() { + return rl.call(this, "a"); + } +} +class T1 { + constructor(e, t, r) { + this.src = void 0, this.alt = void 0, this.classes = void 0, this.height = void 0, this.depth = void 0, this.maxFontSize = void 0, this.style = void 0, this.alt = t, this.src = e, this.classes = ["mord"], this.style = r; + } + hasClass(e) { + return X.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 = '' + X.escape(this.alt) + ' 0 && (t = document.createElement("span"), t.style.marginRight = q(this.italic)), this.classes.length > 0 && (t = t || document.createElement("span"), t.className = et(this.classes)); + for (var r in this.style) + this.style.hasOwnProperty(r) && (t = t || document.createElement("span"), t.style[r] = this.style[r]); + return t ? (t.appendChild(e), t) : e; + } + /** + * Creates markup for a symbol node. + */ + toMarkup() { + var e = !1, t = " 0 && (r += "margin-right:" + this.italic + "em;"); + for (var n in this.style) + this.style.hasOwnProperty(n) && (r += X.hyphenate(n) + ":" + this.style[n] + ";"); + r && (e = !0, t += ' style="' + X.escape(r) + '"'); + var i = X.escape(this.text); + return e ? (t += ">", t += i, t += "", t) : i; + } +} +class tt { + constructor(e, t) { + this.children = void 0, this.attributes = void 0, this.children = e || [], this.attributes = t || {}; + } + toNode() { + var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "svg"); + for (var r in this.attributes) + Object.prototype.hasOwnProperty.call(this.attributes, r) && t.setAttribute(r, this.attributes[r]); + for (var n = 0; n < this.children.length; n++) + t.appendChild(this.children[n].toNode()); + return t; + } + toMarkup() { + var e = '' : ''; + } +} +class En { + constructor(e) { + this.attributes = void 0, this.attributes = e || {}; + } + toNode() { + var e = "http://www.w3.org/2000/svg", t = document.createElementNS(e, "line"); + for (var r in this.attributes) + Object.prototype.hasOwnProperty.call(this.attributes, r) && t.setAttribute(r, this.attributes[r]); + return t; + } + toMarkup() { + var e = " but got " + String(a) + "."); +} +var B1 = { + "accent-token": 1, + mathord: 1, + "op-token": 1, + spacing: 1, + textord: 1 +}, xe = { + math: {}, + text: {} +}; +function s(a, e, t, r, n, i) { + xe[a][n] = { + font: e, + group: t, + replace: r + }, i && r && (xe[a][r] = xe[a][n]); +} +var c = "math", z = "text", m = "main", g = "ams", fe = "accent-token", U = "bin", Ve = "close", At = "inner", j = "mathord", Fe = "op-token", e0 = "open", Mr = "punct", b = "rel", Z0 = "spacing", k = "textord"; +s(c, m, b, "≡", "\\equiv", !0); +s(c, m, b, "≺", "\\prec", !0); +s(c, m, b, "≻", "\\succ", !0); +s(c, m, b, "∼", "\\sim", !0); +s(c, m, b, "⊥", "\\perp"); +s(c, m, b, "⪯", "\\preceq", !0); +s(c, m, b, "⪰", "\\succeq", !0); +s(c, m, b, "≃", "\\simeq", !0); +s(c, m, b, "∣", "\\mid", !0); +s(c, m, b, "≪", "\\ll", !0); +s(c, m, b, "≫", "\\gg", !0); +s(c, m, b, "≍", "\\asymp", !0); +s(c, m, b, "∥", "\\parallel"); +s(c, m, b, "⋈", "\\bowtie", !0); +s(c, m, b, "⌣", "\\smile", !0); +s(c, m, b, "⊑", "\\sqsubseteq", !0); +s(c, m, b, "⊒", "\\sqsupseteq", !0); +s(c, m, b, "≐", "\\doteq", !0); +s(c, m, b, "⌢", "\\frown", !0); +s(c, m, b, "∋", "\\ni", !0); +s(c, m, b, "∝", "\\propto", !0); +s(c, m, b, "⊢", "\\vdash", !0); +s(c, m, b, "⊣", "\\dashv", !0); +s(c, m, b, "∋", "\\owns"); +s(c, m, Mr, ".", "\\ldotp"); +s(c, m, Mr, "⋅", "\\cdotp"); +s(c, m, k, "#", "\\#"); +s(z, m, k, "#", "\\#"); +s(c, m, k, "&", "\\&"); +s(z, m, k, "&", "\\&"); +s(c, m, k, "ℵ", "\\aleph", !0); +s(c, m, k, "∀", "\\forall", !0); +s(c, m, k, "ℏ", "\\hbar", !0); +s(c, m, k, "∃", "\\exists", !0); +s(c, m, k, "∇", "\\nabla", !0); +s(c, m, k, "♭", "\\flat", !0); +s(c, m, k, "ℓ", "\\ell", !0); +s(c, m, k, "♮", "\\natural", !0); +s(c, m, k, "♣", "\\clubsuit", !0); +s(c, m, k, "℘", "\\wp", !0); +s(c, m, k, "♯", "\\sharp", !0); +s(c, m, k, "♢", "\\diamondsuit", !0); +s(c, m, k, "ℜ", "\\Re", !0); +s(c, m, k, "♡", "\\heartsuit", !0); +s(c, m, k, "ℑ", "\\Im", !0); +s(c, m, k, "♠", "\\spadesuit", !0); +s(c, m, k, "§", "\\S", !0); +s(z, m, k, "§", "\\S"); +s(c, m, k, "¶", "\\P", !0); +s(z, m, k, "¶", "\\P"); +s(c, m, k, "†", "\\dag"); +s(z, m, k, "†", "\\dag"); +s(z, m, k, "†", "\\textdagger"); +s(c, m, k, "‡", "\\ddag"); +s(z, m, k, "‡", "\\ddag"); +s(z, m, k, "‡", "\\textdaggerdbl"); +s(c, m, Ve, "⎱", "\\rmoustache", !0); +s(c, m, e0, "⎰", "\\lmoustache", !0); +s(c, m, Ve, "⟯", "\\rgroup", !0); +s(c, m, e0, "⟮", "\\lgroup", !0); +s(c, m, U, "∓", "\\mp", !0); +s(c, m, U, "⊖", "\\ominus", !0); +s(c, m, U, "⊎", "\\uplus", !0); +s(c, m, U, "⊓", "\\sqcap", !0); +s(c, m, U, "∗", "\\ast"); +s(c, m, U, "⊔", "\\sqcup", !0); +s(c, m, U, "◯", "\\bigcirc", !0); +s(c, m, U, "∙", "\\bullet", !0); +s(c, m, U, "‡", "\\ddagger"); +s(c, m, U, "≀", "\\wr", !0); +s(c, m, U, "⨿", "\\amalg"); +s(c, m, U, "&", "\\And"); +s(c, m, b, "⟵", "\\longleftarrow", !0); +s(c, m, b, "⇐", "\\Leftarrow", !0); +s(c, m, b, "⟸", "\\Longleftarrow", !0); +s(c, m, b, "⟶", "\\longrightarrow", !0); +s(c, m, b, "⇒", "\\Rightarrow", !0); +s(c, m, b, "⟹", "\\Longrightarrow", !0); +s(c, m, b, "↔", "\\leftrightarrow", !0); +s(c, m, b, "⟷", "\\longleftrightarrow", !0); +s(c, m, b, "⇔", "\\Leftrightarrow", !0); +s(c, m, b, "⟺", "\\Longleftrightarrow", !0); +s(c, m, b, "↦", "\\mapsto", !0); +s(c, m, b, "⟼", "\\longmapsto", !0); +s(c, m, b, "↗", "\\nearrow", !0); +s(c, m, b, "↩", "\\hookleftarrow", !0); +s(c, m, b, "↪", "\\hookrightarrow", !0); +s(c, m, b, "↘", "\\searrow", !0); +s(c, m, b, "↼", "\\leftharpoonup", !0); +s(c, m, b, "⇀", "\\rightharpoonup", !0); +s(c, m, b, "↙", "\\swarrow", !0); +s(c, m, b, "↽", "\\leftharpoondown", !0); +s(c, m, b, "⇁", "\\rightharpoondown", !0); +s(c, m, b, "↖", "\\nwarrow", !0); +s(c, m, b, "⇌", "\\rightleftharpoons", !0); +s(c, g, b, "≮", "\\nless", !0); +s(c, g, b, "", "\\@nleqslant"); +s(c, g, b, "", "\\@nleqq"); +s(c, g, b, "⪇", "\\lneq", !0); +s(c, g, b, "≨", "\\lneqq", !0); +s(c, g, b, "", "\\@lvertneqq"); +s(c, g, b, "⋦", "\\lnsim", !0); +s(c, g, b, "⪉", "\\lnapprox", !0); +s(c, g, b, "⊀", "\\nprec", !0); +s(c, g, b, "⋠", "\\npreceq", !0); +s(c, g, b, "⋨", "\\precnsim", !0); +s(c, g, b, "⪹", "\\precnapprox", !0); +s(c, g, b, "≁", "\\nsim", !0); +s(c, g, b, "", "\\@nshortmid"); +s(c, g, b, "∤", "\\nmid", !0); +s(c, g, b, "⊬", "\\nvdash", !0); +s(c, g, b, "⊭", "\\nvDash", !0); +s(c, g, b, "⋪", "\\ntriangleleft"); +s(c, g, b, "⋬", "\\ntrianglelefteq", !0); +s(c, g, b, "⊊", "\\subsetneq", !0); +s(c, g, b, "", "\\@varsubsetneq"); +s(c, g, b, "⫋", "\\subsetneqq", !0); +s(c, g, b, "", "\\@varsubsetneqq"); +s(c, g, b, "≯", "\\ngtr", !0); +s(c, g, b, "", "\\@ngeqslant"); +s(c, g, b, "", "\\@ngeqq"); +s(c, g, b, "⪈", "\\gneq", !0); +s(c, g, b, "≩", "\\gneqq", !0); +s(c, g, b, "", "\\@gvertneqq"); +s(c, g, b, "⋧", "\\gnsim", !0); +s(c, g, b, "⪊", "\\gnapprox", !0); +s(c, g, b, "⊁", "\\nsucc", !0); +s(c, g, b, "⋡", "\\nsucceq", !0); +s(c, g, b, "⋩", "\\succnsim", !0); +s(c, g, b, "⪺", "\\succnapprox", !0); +s(c, g, b, "≆", "\\ncong", !0); +s(c, g, b, "", "\\@nshortparallel"); +s(c, g, b, "∦", "\\nparallel", !0); +s(c, g, b, "⊯", "\\nVDash", !0); +s(c, g, b, "⋫", "\\ntriangleright"); +s(c, g, b, "⋭", "\\ntrianglerighteq", !0); +s(c, g, b, "", "\\@nsupseteqq"); +s(c, g, b, "⊋", "\\supsetneq", !0); +s(c, g, b, "", "\\@varsupsetneq"); +s(c, g, b, "⫌", "\\supsetneqq", !0); +s(c, g, b, "", "\\@varsupsetneqq"); +s(c, g, b, "⊮", "\\nVdash", !0); +s(c, g, b, "⪵", "\\precneqq", !0); +s(c, g, b, "⪶", "\\succneqq", !0); +s(c, g, b, "", "\\@nsubseteqq"); +s(c, g, U, "⊴", "\\unlhd"); +s(c, g, U, "⊵", "\\unrhd"); +s(c, g, b, "↚", "\\nleftarrow", !0); +s(c, g, b, "↛", "\\nrightarrow", !0); +s(c, g, b, "⇍", "\\nLeftarrow", !0); +s(c, g, b, "⇏", "\\nRightarrow", !0); +s(c, g, b, "↮", "\\nleftrightarrow", !0); +s(c, g, b, "⇎", "\\nLeftrightarrow", !0); +s(c, g, b, "△", "\\vartriangle"); +s(c, g, k, "ℏ", "\\hslash"); +s(c, g, k, "▽", "\\triangledown"); +s(c, g, k, "◊", "\\lozenge"); +s(c, g, k, "Ⓢ", "\\circledS"); +s(c, g, k, "®", "\\circledR"); +s(z, g, k, "®", "\\circledR"); +s(c, g, k, "∡", "\\measuredangle", !0); +s(c, g, k, "∄", "\\nexists"); +s(c, g, k, "℧", "\\mho"); +s(c, g, k, "Ⅎ", "\\Finv", !0); +s(c, g, k, "⅁", "\\Game", !0); +s(c, g, k, "‵", "\\backprime"); +s(c, g, k, "▲", "\\blacktriangle"); +s(c, g, k, "▼", "\\blacktriangledown"); +s(c, g, k, "■", "\\blacksquare"); +s(c, g, k, "⧫", "\\blacklozenge"); +s(c, g, k, "★", "\\bigstar"); +s(c, g, k, "∢", "\\sphericalangle", !0); +s(c, g, k, "∁", "\\complement", !0); +s(c, g, k, "ð", "\\eth", !0); +s(z, m, k, "ð", "ð"); +s(c, g, k, "╱", "\\diagup"); +s(c, g, k, "╲", "\\diagdown"); +s(c, g, k, "□", "\\square"); +s(c, g, k, "□", "\\Box"); +s(c, g, k, "◊", "\\Diamond"); +s(c, g, k, "¥", "\\yen", !0); +s(z, g, k, "¥", "\\yen", !0); +s(c, g, k, "✓", "\\checkmark", !0); +s(z, g, k, "✓", "\\checkmark"); +s(c, g, k, "ℶ", "\\beth", !0); +s(c, g, k, "ℸ", "\\daleth", !0); +s(c, g, k, "ℷ", "\\gimel", !0); +s(c, g, k, "ϝ", "\\digamma", !0); +s(c, g, k, "ϰ", "\\varkappa"); +s(c, g, e0, "┌", "\\@ulcorner", !0); +s(c, g, Ve, "┐", "\\@urcorner", !0); +s(c, g, e0, "└", "\\@llcorner", !0); +s(c, g, Ve, "┘", "\\@lrcorner", !0); +s(c, g, b, "≦", "\\leqq", !0); +s(c, g, b, "⩽", "\\leqslant", !0); +s(c, g, b, "⪕", "\\eqslantless", !0); +s(c, g, b, "≲", "\\lesssim", !0); +s(c, g, b, "⪅", "\\lessapprox", !0); +s(c, g, b, "≊", "\\approxeq", !0); +s(c, g, U, "⋖", "\\lessdot"); +s(c, g, b, "⋘", "\\lll", !0); +s(c, g, b, "≶", "\\lessgtr", !0); +s(c, g, b, "⋚", "\\lesseqgtr", !0); +s(c, g, b, "⪋", "\\lesseqqgtr", !0); +s(c, g, b, "≑", "\\doteqdot"); +s(c, g, b, "≓", "\\risingdotseq", !0); +s(c, g, b, "≒", "\\fallingdotseq", !0); +s(c, g, b, "∽", "\\backsim", !0); +s(c, g, b, "⋍", "\\backsimeq", !0); +s(c, g, b, "⫅", "\\subseteqq", !0); +s(c, g, b, "⋐", "\\Subset", !0); +s(c, g, b, "⊏", "\\sqsubset", !0); +s(c, g, b, "≼", "\\preccurlyeq", !0); +s(c, g, b, "⋞", "\\curlyeqprec", !0); +s(c, g, b, "≾", "\\precsim", !0); +s(c, g, b, "⪷", "\\precapprox", !0); +s(c, g, b, "⊲", "\\vartriangleleft"); +s(c, g, b, "⊴", "\\trianglelefteq"); +s(c, g, b, "⊨", "\\vDash", !0); +s(c, g, b, "⊪", "\\Vvdash", !0); +s(c, g, b, "⌣", "\\smallsmile"); +s(c, g, b, "⌢", "\\smallfrown"); +s(c, g, b, "≏", "\\bumpeq", !0); +s(c, g, b, "≎", "\\Bumpeq", !0); +s(c, g, b, "≧", "\\geqq", !0); +s(c, g, b, "⩾", "\\geqslant", !0); +s(c, g, b, "⪖", "\\eqslantgtr", !0); +s(c, g, b, "≳", "\\gtrsim", !0); +s(c, g, b, "⪆", "\\gtrapprox", !0); +s(c, g, U, "⋗", "\\gtrdot"); +s(c, g, b, "⋙", "\\ggg", !0); +s(c, g, b, "≷", "\\gtrless", !0); +s(c, g, b, "⋛", "\\gtreqless", !0); +s(c, g, b, "⪌", "\\gtreqqless", !0); +s(c, g, b, "≖", "\\eqcirc", !0); +s(c, g, b, "≗", "\\circeq", !0); +s(c, g, b, "≜", "\\triangleq", !0); +s(c, g, b, "∼", "\\thicksim"); +s(c, g, b, "≈", "\\thickapprox"); +s(c, g, b, "⫆", "\\supseteqq", !0); +s(c, g, b, "⋑", "\\Supset", !0); +s(c, g, b, "⊐", "\\sqsupset", !0); +s(c, g, b, "≽", "\\succcurlyeq", !0); +s(c, g, b, "⋟", "\\curlyeqsucc", !0); +s(c, g, b, "≿", "\\succsim", !0); +s(c, g, b, "⪸", "\\succapprox", !0); +s(c, g, b, "⊳", "\\vartriangleright"); +s(c, g, b, "⊵", "\\trianglerighteq"); +s(c, g, b, "⊩", "\\Vdash", !0); +s(c, g, b, "∣", "\\shortmid"); +s(c, g, b, "∥", "\\shortparallel"); +s(c, g, b, "≬", "\\between", !0); +s(c, g, b, "⋔", "\\pitchfork", !0); +s(c, g, b, "∝", "\\varpropto"); +s(c, g, b, "◀", "\\blacktriangleleft"); +s(c, g, b, "∴", "\\therefore", !0); +s(c, g, b, "∍", "\\backepsilon"); +s(c, g, b, "▶", "\\blacktriangleright"); +s(c, g, b, "∵", "\\because", !0); +s(c, g, b, "⋘", "\\llless"); +s(c, g, b, "⋙", "\\gggtr"); +s(c, g, U, "⊲", "\\lhd"); +s(c, g, U, "⊳", "\\rhd"); +s(c, g, b, "≂", "\\eqsim", !0); +s(c, m, b, "⋈", "\\Join"); +s(c, g, b, "≑", "\\Doteq", !0); +s(c, g, U, "∔", "\\dotplus", !0); +s(c, g, U, "∖", "\\smallsetminus"); +s(c, g, U, "⋒", "\\Cap", !0); +s(c, g, U, "⋓", "\\Cup", !0); +s(c, g, U, "⩞", "\\doublebarwedge", !0); +s(c, g, U, "⊟", "\\boxminus", !0); +s(c, g, U, "⊞", "\\boxplus", !0); +s(c, g, U, "⋇", "\\divideontimes", !0); +s(c, g, U, "⋉", "\\ltimes", !0); +s(c, g, U, "⋊", "\\rtimes", !0); +s(c, g, U, "⋋", "\\leftthreetimes", !0); +s(c, g, U, "⋌", "\\rightthreetimes", !0); +s(c, g, U, "⋏", "\\curlywedge", !0); +s(c, g, U, "⋎", "\\curlyvee", !0); +s(c, g, U, "⊝", "\\circleddash", !0); +s(c, g, U, "⊛", "\\circledast", !0); +s(c, g, U, "⋅", "\\centerdot"); +s(c, g, U, "⊺", "\\intercal", !0); +s(c, g, U, "⋒", "\\doublecap"); +s(c, g, U, "⋓", "\\doublecup"); +s(c, g, U, "⊠", "\\boxtimes", !0); +s(c, g, b, "⇢", "\\dashrightarrow", !0); +s(c, g, b, "⇠", "\\dashleftarrow", !0); +s(c, g, b, "⇇", "\\leftleftarrows", !0); +s(c, g, b, "⇆", "\\leftrightarrows", !0); +s(c, g, b, "⇚", "\\Lleftarrow", !0); +s(c, g, b, "↞", "\\twoheadleftarrow", !0); +s(c, g, b, "↢", "\\leftarrowtail", !0); +s(c, g, b, "↫", "\\looparrowleft", !0); +s(c, g, b, "⇋", "\\leftrightharpoons", !0); +s(c, g, b, "↶", "\\curvearrowleft", !0); +s(c, g, b, "↺", "\\circlearrowleft", !0); +s(c, g, b, "↰", "\\Lsh", !0); +s(c, g, b, "⇈", "\\upuparrows", !0); +s(c, g, b, "↿", "\\upharpoonleft", !0); +s(c, g, b, "⇃", "\\downharpoonleft", !0); +s(c, m, b, "⊶", "\\origof", !0); +s(c, m, b, "⊷", "\\imageof", !0); +s(c, g, b, "⊸", "\\multimap", !0); +s(c, g, b, "↭", "\\leftrightsquigarrow", !0); +s(c, g, b, "⇉", "\\rightrightarrows", !0); +s(c, g, b, "⇄", "\\rightleftarrows", !0); +s(c, g, b, "↠", "\\twoheadrightarrow", !0); +s(c, g, b, "↣", "\\rightarrowtail", !0); +s(c, g, b, "↬", "\\looparrowright", !0); +s(c, g, b, "↷", "\\curvearrowright", !0); +s(c, g, b, "↻", "\\circlearrowright", !0); +s(c, g, b, "↱", "\\Rsh", !0); +s(c, g, b, "⇊", "\\downdownarrows", !0); +s(c, g, b, "↾", "\\upharpoonright", !0); +s(c, g, b, "⇂", "\\downharpoonright", !0); +s(c, g, b, "⇝", "\\rightsquigarrow", !0); +s(c, g, b, "⇝", "\\leadsto"); +s(c, g, b, "⇛", "\\Rrightarrow", !0); +s(c, g, b, "↾", "\\restriction"); +s(c, m, k, "‘", "`"); +s(c, m, k, "$", "\\$"); +s(z, m, k, "$", "\\$"); +s(z, m, k, "$", "\\textdollar"); +s(c, m, k, "%", "\\%"); +s(z, m, k, "%", "\\%"); +s(c, m, k, "_", "\\_"); +s(z, m, k, "_", "\\_"); +s(z, m, k, "_", "\\textunderscore"); +s(c, m, k, "∠", "\\angle", !0); +s(c, m, k, "∞", "\\infty", !0); +s(c, m, k, "′", "\\prime"); +s(c, m, k, "△", "\\triangle"); +s(c, m, k, "Γ", "\\Gamma", !0); +s(c, m, k, "Δ", "\\Delta", !0); +s(c, m, k, "Θ", "\\Theta", !0); +s(c, m, k, "Λ", "\\Lambda", !0); +s(c, m, k, "Ξ", "\\Xi", !0); +s(c, m, k, "Π", "\\Pi", !0); +s(c, m, k, "Σ", "\\Sigma", !0); +s(c, m, k, "Υ", "\\Upsilon", !0); +s(c, m, k, "Φ", "\\Phi", !0); +s(c, m, k, "Ψ", "\\Psi", !0); +s(c, m, k, "Ω", "\\Omega", !0); +s(c, m, k, "A", "Α"); +s(c, m, k, "B", "Β"); +s(c, m, k, "E", "Ε"); +s(c, m, k, "Z", "Ζ"); +s(c, m, k, "H", "Η"); +s(c, m, k, "I", "Ι"); +s(c, m, k, "K", "Κ"); +s(c, m, k, "M", "Μ"); +s(c, m, k, "N", "Ν"); +s(c, m, k, "O", "Ο"); +s(c, m, k, "P", "Ρ"); +s(c, m, k, "T", "Τ"); +s(c, m, k, "X", "Χ"); +s(c, m, k, "¬", "\\neg", !0); +s(c, m, k, "¬", "\\lnot"); +s(c, m, k, "⊤", "\\top"); +s(c, m, k, "⊥", "\\bot"); +s(c, m, k, "∅", "\\emptyset"); +s(c, g, k, "∅", "\\varnothing"); +s(c, m, j, "α", "\\alpha", !0); +s(c, m, j, "β", "\\beta", !0); +s(c, m, j, "γ", "\\gamma", !0); +s(c, m, j, "δ", "\\delta", !0); +s(c, m, j, "ϵ", "\\epsilon", !0); +s(c, m, j, "ζ", "\\zeta", !0); +s(c, m, j, "η", "\\eta", !0); +s(c, m, j, "θ", "\\theta", !0); +s(c, m, j, "ι", "\\iota", !0); +s(c, m, j, "κ", "\\kappa", !0); +s(c, m, j, "λ", "\\lambda", !0); +s(c, m, j, "μ", "\\mu", !0); +s(c, m, j, "ν", "\\nu", !0); +s(c, m, j, "ξ", "\\xi", !0); +s(c, m, j, "ο", "\\omicron", !0); +s(c, m, j, "π", "\\pi", !0); +s(c, m, j, "ρ", "\\rho", !0); +s(c, m, j, "σ", "\\sigma", !0); +s(c, m, j, "τ", "\\tau", !0); +s(c, m, j, "υ", "\\upsilon", !0); +s(c, m, j, "ϕ", "\\phi", !0); +s(c, m, j, "χ", "\\chi", !0); +s(c, m, j, "ψ", "\\psi", !0); +s(c, m, j, "ω", "\\omega", !0); +s(c, m, j, "ε", "\\varepsilon", !0); +s(c, m, j, "ϑ", "\\vartheta", !0); +s(c, m, j, "ϖ", "\\varpi", !0); +s(c, m, j, "ϱ", "\\varrho", !0); +s(c, m, j, "ς", "\\varsigma", !0); +s(c, m, j, "φ", "\\varphi", !0); +s(c, m, U, "∗", "*", !0); +s(c, m, U, "+", "+"); +s(c, m, U, "−", "-", !0); +s(c, m, U, "⋅", "\\cdot", !0); +s(c, m, U, "∘", "\\circ", !0); +s(c, m, U, "÷", "\\div", !0); +s(c, m, U, "±", "\\pm", !0); +s(c, m, U, "×", "\\times", !0); +s(c, m, U, "∩", "\\cap", !0); +s(c, m, U, "∪", "\\cup", !0); +s(c, m, U, "∖", "\\setminus", !0); +s(c, m, U, "∧", "\\land"); +s(c, m, U, "∨", "\\lor"); +s(c, m, U, "∧", "\\wedge", !0); +s(c, m, U, "∨", "\\vee", !0); +s(c, m, k, "√", "\\surd"); +s(c, m, e0, "⟨", "\\langle", !0); +s(c, m, e0, "∣", "\\lvert"); +s(c, m, e0, "∥", "\\lVert"); +s(c, m, Ve, "?", "?"); +s(c, m, Ve, "!", "!"); +s(c, m, Ve, "⟩", "\\rangle", !0); +s(c, m, Ve, "∣", "\\rvert"); +s(c, m, Ve, "∥", "\\rVert"); +s(c, m, b, "=", "="); +s(c, m, b, ":", ":"); +s(c, m, b, "≈", "\\approx", !0); +s(c, m, b, "≅", "\\cong", !0); +s(c, m, b, "≥", "\\ge"); +s(c, m, b, "≥", "\\geq", !0); +s(c, m, b, "←", "\\gets"); +s(c, m, b, ">", "\\gt", !0); +s(c, m, b, "∈", "\\in", !0); +s(c, m, b, "", "\\@not"); +s(c, m, b, "⊂", "\\subset", !0); +s(c, m, b, "⊃", "\\supset", !0); +s(c, m, b, "⊆", "\\subseteq", !0); +s(c, m, b, "⊇", "\\supseteq", !0); +s(c, g, b, "⊈", "\\nsubseteq", !0); +s(c, g, b, "⊉", "\\nsupseteq", !0); +s(c, m, b, "⊨", "\\models"); +s(c, m, b, "←", "\\leftarrow", !0); +s(c, m, b, "≤", "\\le"); +s(c, m, b, "≤", "\\leq", !0); +s(c, m, b, "<", "\\lt", !0); +s(c, m, b, "→", "\\rightarrow", !0); +s(c, m, b, "→", "\\to"); +s(c, g, b, "≱", "\\ngeq", !0); +s(c, g, b, "≰", "\\nleq", !0); +s(c, m, Z0, " ", "\\ "); +s(c, m, Z0, " ", "\\space"); +s(c, m, Z0, " ", "\\nobreakspace"); +s(z, m, Z0, " ", "\\ "); +s(z, m, Z0, " ", " "); +s(z, m, Z0, " ", "\\space"); +s(z, m, Z0, " ", "\\nobreakspace"); +s(c, m, Z0, null, "\\nobreak"); +s(c, m, Z0, null, "\\allowbreak"); +s(c, m, Mr, ",", ","); +s(c, m, Mr, ";", ";"); +s(c, g, U, "⊼", "\\barwedge", !0); +s(c, g, U, "⊻", "\\veebar", !0); +s(c, m, U, "⊙", "\\odot", !0); +s(c, m, U, "⊕", "\\oplus", !0); +s(c, m, U, "⊗", "\\otimes", !0); +s(c, m, k, "∂", "\\partial", !0); +s(c, m, U, "⊘", "\\oslash", !0); +s(c, g, U, "⊚", "\\circledcirc", !0); +s(c, g, U, "⊡", "\\boxdot", !0); +s(c, m, U, "△", "\\bigtriangleup"); +s(c, m, U, "▽", "\\bigtriangledown"); +s(c, m, U, "†", "\\dagger"); +s(c, m, U, "⋄", "\\diamond"); +s(c, m, U, "⋆", "\\star"); +s(c, m, U, "◃", "\\triangleleft"); +s(c, m, U, "▹", "\\triangleright"); +s(c, m, e0, "{", "\\{"); +s(z, m, k, "{", "\\{"); +s(z, m, k, "{", "\\textbraceleft"); +s(c, m, Ve, "}", "\\}"); +s(z, m, k, "}", "\\}"); +s(z, m, k, "}", "\\textbraceright"); +s(c, m, e0, "{", "\\lbrace"); +s(c, m, Ve, "}", "\\rbrace"); +s(c, m, e0, "[", "\\lbrack", !0); +s(z, m, k, "[", "\\lbrack", !0); +s(c, m, Ve, "]", "\\rbrack", !0); +s(z, m, k, "]", "\\rbrack", !0); +s(c, m, e0, "(", "\\lparen", !0); +s(c, m, Ve, ")", "\\rparen", !0); +s(z, m, k, "<", "\\textless", !0); +s(z, m, k, ">", "\\textgreater", !0); +s(c, m, e0, "⌊", "\\lfloor", !0); +s(c, m, Ve, "⌋", "\\rfloor", !0); +s(c, m, e0, "⌈", "\\lceil", !0); +s(c, m, Ve, "⌉", "\\rceil", !0); +s(c, m, k, "\\", "\\backslash"); +s(c, m, k, "∣", "|"); +s(c, m, k, "∣", "\\vert"); +s(z, m, k, "|", "\\textbar", !0); +s(c, m, k, "∥", "\\|"); +s(c, m, k, "∥", "\\Vert"); +s(z, m, k, "∥", "\\textbardbl"); +s(z, m, k, "~", "\\textasciitilde"); +s(z, m, k, "\\", "\\textbackslash"); +s(z, m, k, "^", "\\textasciicircum"); +s(c, m, b, "↑", "\\uparrow", !0); +s(c, m, b, "⇑", "\\Uparrow", !0); +s(c, m, b, "↓", "\\downarrow", !0); +s(c, m, b, "⇓", "\\Downarrow", !0); +s(c, m, b, "↕", "\\updownarrow", !0); +s(c, m, b, "⇕", "\\Updownarrow", !0); +s(c, m, Fe, "∐", "\\coprod"); +s(c, m, Fe, "⋁", "\\bigvee"); +s(c, m, Fe, "⋀", "\\bigwedge"); +s(c, m, Fe, "⨄", "\\biguplus"); +s(c, m, Fe, "⋂", "\\bigcap"); +s(c, m, Fe, "⋃", "\\bigcup"); +s(c, m, Fe, "∫", "\\int"); +s(c, m, Fe, "∫", "\\intop"); +s(c, m, Fe, "∬", "\\iint"); +s(c, m, Fe, "∭", "\\iiint"); +s(c, m, Fe, "∏", "\\prod"); +s(c, m, Fe, "∑", "\\sum"); +s(c, m, Fe, "⨂", "\\bigotimes"); +s(c, m, Fe, "⨁", "\\bigoplus"); +s(c, m, Fe, "⨀", "\\bigodot"); +s(c, m, Fe, "∮", "\\oint"); +s(c, m, Fe, "∯", "\\oiint"); +s(c, m, Fe, "∰", "\\oiiint"); +s(c, m, Fe, "⨆", "\\bigsqcup"); +s(c, m, Fe, "∫", "\\smallint"); +s(z, m, At, "…", "\\textellipsis"); +s(c, m, At, "…", "\\mathellipsis"); +s(z, m, At, "…", "\\ldots", !0); +s(c, m, At, "…", "\\ldots", !0); +s(c, m, At, "⋯", "\\@cdots", !0); +s(c, m, At, "⋱", "\\ddots", !0); +s(c, m, k, "⋮", "\\varvdots"); +s(c, m, fe, "ˊ", "\\acute"); +s(c, m, fe, "ˋ", "\\grave"); +s(c, m, fe, "¨", "\\ddot"); +s(c, m, fe, "~", "\\tilde"); +s(c, m, fe, "ˉ", "\\bar"); +s(c, m, fe, "˘", "\\breve"); +s(c, m, fe, "ˇ", "\\check"); +s(c, m, fe, "^", "\\hat"); +s(c, m, fe, "⃗", "\\vec"); +s(c, m, fe, "˙", "\\dot"); +s(c, m, fe, "˚", "\\mathring"); +s(c, m, j, "", "\\@imath"); +s(c, m, j, "", "\\@jmath"); +s(c, m, k, "ı", "ı"); +s(c, m, k, "ȷ", "ȷ"); +s(z, m, k, "ı", "\\i", !0); +s(z, m, k, "ȷ", "\\j", !0); +s(z, m, k, "ß", "\\ss", !0); +s(z, m, k, "æ", "\\ae", !0); +s(z, m, k, "œ", "\\oe", !0); +s(z, m, k, "ø", "\\o", !0); +s(z, m, k, "Æ", "\\AE", !0); +s(z, m, k, "Œ", "\\OE", !0); +s(z, m, k, "Ø", "\\O", !0); +s(z, m, fe, "ˊ", "\\'"); +s(z, m, fe, "ˋ", "\\`"); +s(z, m, fe, "ˆ", "\\^"); +s(z, m, fe, "˜", "\\~"); +s(z, m, fe, "ˉ", "\\="); +s(z, m, fe, "˘", "\\u"); +s(z, m, fe, "˙", "\\."); +s(z, m, fe, "¸", "\\c"); +s(z, m, fe, "˚", "\\r"); +s(z, m, fe, "ˇ", "\\v"); +s(z, m, fe, "¨", '\\"'); +s(z, m, fe, "˝", "\\H"); +s(z, m, fe, "◯", "\\textcircled"); +var nl = { + "--": !0, + "---": !0, + "``": !0, + "''": !0 +}; +s(z, m, k, "–", "--", !0); +s(z, m, k, "–", "\\textendash"); +s(z, m, k, "—", "---", !0); +s(z, m, k, "—", "\\textemdash"); +s(z, m, k, "‘", "`", !0); +s(z, m, k, "‘", "\\textquoteleft"); +s(z, m, k, "’", "'", !0); +s(z, m, k, "’", "\\textquoteright"); +s(z, m, k, "“", "``", !0); +s(z, m, k, "“", "\\textquotedblleft"); +s(z, m, k, "”", "''", !0); +s(z, m, k, "”", "\\textquotedblright"); +s(c, m, k, "°", "\\degree", !0); +s(z, m, k, "°", "\\degree"); +s(z, m, k, "°", "\\textdegree", !0); +s(c, m, k, "£", "\\pounds"); +s(c, m, k, "£", "\\mathsterling", !0); +s(z, m, k, "£", "\\pounds"); +s(z, m, k, "£", "\\textsterling", !0); +s(c, g, k, "✠", "\\maltese"); +s(z, g, k, "✠", "\\maltese"); +var Cn = '0123456789/@."'; +for (var Wr = 0; Wr < Cn.length; Wr++) { + var Mn = Cn.charAt(Wr); + s(c, m, k, Mn, Mn); +} +var Bn = '0123456789!@*()-=+";:?/.,'; +for (var Yr = 0; Yr < Bn.length; Yr++) { + var zn = Bn.charAt(Yr); + s(z, m, k, zn, zn); +} +var Dr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; +for (var jr = 0; jr < Dr.length; jr++) { + var tr = Dr.charAt(jr); + s(c, m, j, tr, tr), s(z, m, k, tr, tr); +} +s(c, g, k, "C", "ℂ"); +s(z, g, k, "C", "ℂ"); +s(c, g, k, "H", "ℍ"); +s(z, g, k, "H", "ℍ"); +s(c, g, k, "N", "ℕ"); +s(z, g, k, "N", "ℕ"); +s(c, g, k, "P", "ℙ"); +s(z, g, k, "P", "ℙ"); +s(c, g, k, "Q", "ℚ"); +s(z, g, k, "Q", "ℚ"); +s(c, g, k, "R", "ℝ"); +s(z, g, k, "R", "ℝ"); +s(c, g, k, "Z", "ℤ"); +s(z, g, k, "Z", "ℤ"); +s(c, m, j, "h", "ℎ"); +s(z, m, j, "h", "ℎ"); +var Q = ""; +for (var qe = 0; qe < Dr.length; qe++) { + var be = Dr.charAt(qe); + Q = String.fromCharCode(55349, 56320 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56372 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56424 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56580 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56684 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56736 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56788 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56840 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56944 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), qe < 26 && (Q = String.fromCharCode(55349, 56632 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q), Q = String.fromCharCode(55349, 56476 + qe), s(c, m, j, be, Q), s(z, m, k, be, Q)); +} +Q = "𝕜"; +s(c, m, j, "k", Q); +s(z, m, k, "k", Q); +for (var nt = 0; nt < 10; nt++) { + var Q0 = nt.toString(); + Q = String.fromCharCode(55349, 57294 + nt), s(c, m, j, Q0, Q), s(z, m, k, Q0, Q), Q = String.fromCharCode(55349, 57314 + nt), s(c, m, j, Q0, Q), s(z, m, k, Q0, Q), Q = String.fromCharCode(55349, 57324 + nt), s(c, m, j, Q0, Q), s(z, m, k, Q0, Q), Q = String.fromCharCode(55349, 57334 + nt), s(c, m, j, Q0, Q), s(z, m, k, Q0, Q); +} +var Rn = "ÐÞþ"; +for (var Xr = 0; Xr < Rn.length; Xr++) { + var rr = Rn.charAt(Xr); + s(c, m, j, rr, rr), s(z, m, k, rr, rr); +} +var ar = [ + ["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 +], Nn = [ + ["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 +], z1 = function(e, t) { + var r = e.charCodeAt(0), n = e.charCodeAt(1), i = (r - 55296) * 1024 + (n - 56320) + 65536, l = t === "math" ? 0 : 1; + if (119808 <= i && i < 120484) { + var o = Math.floor((i - 119808) / 26); + return [ar[o][2], ar[o][l]]; + } else if (120782 <= i && i <= 120831) { + var u = Math.floor((i - 120782) / 10); + return [Nn[u][2], Nn[u][l]]; + } else { + if (i === 120485 || i === 120486) + return [ar[0][2], ar[0][l]]; + if (120486 < i && i < 120782) + return ["", ""]; + throw new Y("Unsupported character: " + e); + } +}, Br = function(e, t, r) { + return xe[r][e] && xe[r][e].replace && (e = xe[r][e].replace), { + value: e, + metrics: Ca(e, t, r) + }; +}, y0 = function(e, t, r, n, i) { + var l = Br(e, t, r), o = l.metrics; + e = l.value; + var u; + if (o) { + var h = o.italic; + (r === "text" || n && n.font === "mathit") && (h = 0), u = new N0(e, o.height, o.depth, h, o.skew, o.width, i); + } else + typeof console < "u" && console.warn("No character metrics " + ("for '" + e + "' in style '" + t + "' and mode '" + r + "'")), u = new N0(e, 0, 0, 0, 0, 0, i); + if (n) { + u.maxFontSize = n.sizeMultiplier, n.style.isTight() && u.classes.push("mtight"); + var f = n.getColor(); + f && (u.style.color = f); + } + return u; +}, R1 = function(e, t, r, n) { + return n === void 0 && (n = []), r.font === "boldsymbol" && Br(e, "Main-Bold", t).metrics ? y0(e, "Main-Bold", t, r, n.concat(["mathbf"])) : e === "\\" || xe[t][e].font === "main" ? y0(e, "Main-Regular", t, r, n) : y0(e, "AMS-Regular", t, r, n.concat(["amsrm"])); +}, N1 = function(e, t, r, n, i) { + return i !== "textord" && Br(e, "Math-BoldItalic", t).metrics ? { + fontName: "Math-BoldItalic", + fontClass: "boldsymbol" + } : { + fontName: "Main-Bold", + fontClass: "mathbf" + }; +}, I1 = function(e, t, r) { + var n = e.mode, i = e.text, l = ["mord"], o = n === "math" || n === "text" && t.font, u = o ? t.font : t.fontFamily, h = "", f = ""; + if (i.charCodeAt(0) === 55349 && ([h, f] = z1(i, n)), h.length > 0) + return y0(i, h, n, t, l.concat(f)); + if (u) { + var p, v; + if (u === "boldsymbol") { + var w = N1(i, n, t, l, r); + p = w.fontName, v = [w.fontClass]; + } else o ? (p = sl[u].fontName, v = [u]) : (p = nr(u, t.fontWeight, t.fontShape), v = [u, t.fontWeight, t.fontShape]); + if (Br(i, p, n).metrics) + return y0(i, p, n, t, l.concat(v)); + if (nl.hasOwnProperty(i) && p.slice(0, 10) === "Typewriter") { + for (var E = [], F = 0; F < i.length; F++) + E.push(y0(i[F], p, n, t, l.concat(v))); + return ll(E); + } + } + if (r === "mathord") + return y0(i, "Math-Italic", n, t, l.concat(["mathnormal"])); + if (r === "textord") { + var _ = xe[n][i] && xe[n][i].font; + if (_ === "ams") { + var T = nr("amsrm", t.fontWeight, t.fontShape); + return y0(i, T, n, t, l.concat("amsrm", t.fontWeight, t.fontShape)); + } else if (_ === "main" || !_) { + var D = nr("textrm", t.fontWeight, t.fontShape); + return y0(i, D, n, t, l.concat(t.fontWeight, t.fontShape)); + } else { + var y = nr(_, t.fontWeight, t.fontShape); + return y0(i, y, n, t, l.concat(y, t.fontWeight, t.fontShape)); + } + } else + throw new Error("unexpected type: " + r + " in makeOrd"); +}, L1 = (a, e) => { + if (et(a.classes) !== et(e.classes) || a.skew !== e.skew || a.maxFontSize !== e.maxFontSize) + return !1; + if (a.classes.length === 1) { + var t = a.classes[0]; + if (t === "mbin" || t === "mord") + return !1; + } + for (var r in a.style) + if (a.style.hasOwnProperty(r) && a.style[r] !== e.style[r]) + return !1; + for (var n in e.style) + if (e.style.hasOwnProperty(n) && a.style[n] !== e.style[n]) + return !1; + return !0; +}, O1 = (a) => { + for (var e = 0; e < a.length - 1; e++) { + var t = a[e], r = a[e + 1]; + t instanceof N0 && r instanceof N0 && L1(t, r) && (t.text += r.text, t.height = Math.max(t.height, r.height), t.depth = Math.max(t.depth, r.depth), t.italic = r.italic, a.splice(e + 1, 1), e--); + } + return a; +}, Ma = function(e) { + for (var t = 0, r = 0, n = 0, i = 0; i < e.children.length; i++) { + var l = e.children[i]; + l.height > t && (t = l.height), l.depth > r && (r = l.depth), l.maxFontSize > n && (n = l.maxFontSize); + } + e.height = t, e.depth = r, e.maxFontSize = n; +}, Ze = function(e, t, r, n) { + var i = new Cr(e, t, r, n); + return Ma(i), i; +}, il = (a, e, t, r) => new Cr(a, e, t, r), q1 = function(e, t, r) { + var n = Ze([e], [], t); + return n.height = Math.max(r || t.fontMetrics().defaultRuleThickness, t.minRuleThickness), n.style.borderBottomWidth = q(n.height), n.maxFontSize = 1, n; +}, P1 = function(e, t, r, n) { + var i = new al(e, t, r, n); + return Ma(i), i; +}, ll = function(e) { + var t = new Wt(e); + return Ma(t), t; +}, H1 = function(e, t) { + return e instanceof Wt ? Ze([], [e], t) : e; +}, U1 = function(e) { + if (e.positionType === "individualShift") { + for (var t = e.children, r = [t[0]], n = -t[0].shift - t[0].elem.depth, i = n, l = 1; l < t.length; l++) { + var o = -t[l].shift - i - t[l].elem.depth, u = o - (t[l - 1].elem.height + t[l - 1].elem.depth); + i = i + o, r.push({ + type: "kern", + size: u + }), r.push(t[l]); + } + return { + children: r, + depth: n + }; + } + var h; + if (e.positionType === "top") { + for (var f = e.positionData, p = 0; p < e.children.length; p++) { + var v = e.children[p]; + f -= v.type === "kern" ? v.size : v.elem.height + v.elem.depth; + } + h = f; + } else if (e.positionType === "bottom") + h = -e.positionData; + else { + var w = e.children[0]; + if (w.type !== "elem") + throw new Error('First child must have type "elem".'); + if (e.positionType === "shift") + h = -w.elem.depth - e.positionData; + else if (e.positionType === "firstBaseline") + h = -w.elem.depth; + else + throw new Error("Invalid positionType " + e.positionType + "."); + } + return { + children: e.children, + depth: h + }; +}, V1 = function(e, t) { + for (var { + children: r, + depth: n + } = U1(e), i = 0, l = 0; l < r.length; l++) { + var o = r[l]; + if (o.type === "elem") { + var u = o.elem; + i = Math.max(i, u.maxFontSize, u.height); + } + } + i += 2; + var h = Ze(["pstrut"], []); + h.style.height = q(i); + for (var f = [], p = n, v = n, w = n, E = 0; E < r.length; E++) { + var F = r[E]; + if (F.type === "kern") + w += F.size; + else { + var _ = F.elem, T = F.wrapperClasses || [], D = F.wrapperStyle || {}, y = Ze(T, [h, _], void 0, D); + y.style.top = q(-i - w - _.depth), F.marginLeft && (y.style.marginLeft = F.marginLeft), F.marginRight && (y.style.marginRight = F.marginRight), f.push(y), w += _.height + _.depth; + } + p = Math.min(p, w), v = Math.max(v, w); + } + var A = Ze(["vlist"], f); + A.style.height = q(v); + var C; + if (p < 0) { + var M = Ze([], []), B = Ze(["vlist"], [M]); + B.style.height = q(-p); + var H = Ze(["vlist-s"], [new N0("​")]); + C = [Ze(["vlist-r"], [A, H]), Ze(["vlist-r"], [B])]; + } else + C = [Ze(["vlist-r"], [A])]; + var N = Ze(["vlist-t"], C); + return C.length === 2 && N.classes.push("vlist-t2"), N.height = v, N.depth = -p, N; +}, G1 = (a, e) => { + var t = Ze(["mspace"], [], e), r = pe(a, e); + return t.style.marginRight = q(r), t; +}, nr = function(e, t, r) { + var n = ""; + switch (e) { + case "amsrm": + n = "AMS"; + break; + case "textrm": + n = "Main"; + break; + case "textsf": + n = "SansSerif"; + break; + case "texttt": + n = "Typewriter"; + break; + default: + n = e; + } + var i; + return t === "textbf" && r === "textit" ? i = "BoldItalic" : t === "textbf" ? i = "Bold" : t === "textit" ? i = "Italic" : i = "Regular", n + "-" + i; +}, sl = { + // 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" + } +}, ol = { + // 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] +}, W1 = function(e, t) { + var [r, n, i] = ol[e], l = new ot(r), o = new tt([l], { + width: q(n), + height: q(i), + // Override CSS rule `.katex svg { width: 100% }` + style: "width:" + q(n), + viewBox: "0 0 " + 1e3 * n + " " + 1e3 * i, + preserveAspectRatio: "xMinYMin" + }), u = il(["overlay"], [o], t); + return u.height = i, u.style.height = q(i), u.style.width = q(n), u; +}, S = { + fontMap: sl, + makeSymbol: y0, + mathsym: R1, + makeSpan: Ze, + makeSvgSpan: il, + makeLineSpan: q1, + makeAnchor: P1, + makeFragment: ll, + wrapFragment: H1, + makeVList: V1, + makeOrd: I1, + makeGlue: G1, + staticSvg: W1, + svgData: ol, + tryCombineChars: O1 +}, de = { + number: 3, + unit: "mu" +}, it = { + number: 4, + unit: "mu" +}, V0 = { + number: 5, + unit: "mu" +}, Y1 = { + mord: { + mop: de, + mbin: it, + mrel: V0, + minner: de + }, + mop: { + mord: de, + mop: de, + mrel: V0, + minner: de + }, + mbin: { + mord: it, + mop: it, + mopen: it, + minner: it + }, + mrel: { + mord: V0, + mop: V0, + mopen: V0, + minner: V0 + }, + mopen: {}, + mclose: { + mop: de, + mbin: it, + mrel: V0, + minner: de + }, + mpunct: { + mord: de, + mop: de, + mrel: V0, + mopen: de, + mclose: de, + mpunct: de, + minner: de + }, + minner: { + mord: de, + mop: de, + mbin: it, + mrel: V0, + mopen: de, + mpunct: de, + minner: de + } +}, j1 = { + mord: { + mop: de + }, + mop: { + mord: de, + mop: de + }, + mbin: {}, + mrel: {}, + mopen: {}, + mclose: { + mop: de + }, + mpunct: {}, + minner: { + mop: de + } +}, ul = {}, xr = {}, Ar = {}; +function P(a) { + for (var { + type: e, + names: t, + props: r, + handler: n, + htmlBuilder: i, + mathmlBuilder: l + } = a, o = { + type: e, + numArgs: r.numArgs, + argTypes: r.argTypes, + allowedInArgument: !!r.allowedInArgument, + allowedInText: !!r.allowedInText, + allowedInMath: r.allowedInMath === void 0 ? !0 : r.allowedInMath, + numOptionalArgs: r.numOptionalArgs || 0, + infix: !!r.infix, + primitive: !!r.primitive, + handler: n + }, u = 0; u < t.length; ++u) + ul[t[u]] = o; + e && (i && (xr[e] = i), l && (Ar[e] = l)); +} +function ct(a) { + var { + type: e, + htmlBuilder: t, + mathmlBuilder: r + } = a; + P({ + type: e, + names: [], + props: { + numArgs: 0 + }, + handler() { + throw new Error("Should never be called."); + }, + htmlBuilder: t, + mathmlBuilder: r + }); +} +var Fr = function(e) { + return e.type === "ordgroup" && e.body.length === 1 ? e.body[0] : e; +}, De = function(e) { + return e.type === "ordgroup" ? e.body : [e]; +}, xt = S.makeSpan, X1 = ["leftmost", "mbin", "mopen", "mrel", "mop", "mpunct"], Z1 = ["rightmost", "mrel", "mclose", "mpunct"], K1 = { + display: K.DISPLAY, + text: K.TEXT, + script: K.SCRIPT, + scriptscript: K.SCRIPTSCRIPT +}, Q1 = { + mord: "mord", + mop: "mop", + mbin: "mbin", + mrel: "mrel", + mopen: "mopen", + mclose: "mclose", + mpunct: "mpunct", + minner: "minner" +}, Re = function(e, t, r, n) { + n === void 0 && (n = [null, null]); + for (var i = [], l = 0; l < e.length; l++) { + var o = ne(e[l], t); + if (o instanceof Wt) { + var u = o.children; + i.push(...u); + } else + i.push(o); + } + if (S.tryCombineChars(i), !r) + return i; + var h = t; + if (e.length === 1) { + var f = e[0]; + f.type === "sizing" ? h = t.havingSize(f.size) : f.type === "styling" && (h = t.havingStyle(K1[f.style])); + } + var p = xt([n[0] || "leftmost"], [], t), v = xt([n[1] || "rightmost"], [], t), w = r === "root"; + return In(i, (E, F) => { + var _ = F.classes[0], T = E.classes[0]; + _ === "mbin" && X.contains(Z1, T) ? F.classes[0] = "mord" : T === "mbin" && X.contains(X1, _) && (E.classes[0] = "mord"); + }, { + node: p + }, v, w), In(i, (E, F) => { + var _ = ha(F), T = ha(E), D = _ && T ? E.hasClass("mtight") ? j1[_][T] : Y1[_][T] : null; + if (D) + return S.makeGlue(D, h); + }, { + node: p + }, v, w), i; +}, In = function a(e, t, r, n, i) { + n && e.push(n); + for (var l = 0; l < e.length; l++) { + var o = e[l], u = cl(o); + if (u) { + a(u.children, t, r, null, i); + continue; + } + var h = !o.hasClass("mspace"); + if (h) { + var f = t(o, r.node); + f && (r.insertAfter ? r.insertAfter(f) : (e.unshift(f), l++)); + } + h ? r.node = o : i && o.hasClass("newline") && (r.node = xt(["leftmost"])), r.insertAfter = /* @__PURE__ */ ((p) => (v) => { + e.splice(p + 1, 0, v), l++; + })(l); + } + n && e.pop(); +}, cl = function(e) { + return e instanceof Wt || e instanceof al || e instanceof Cr && e.hasClass("enclosing") ? e : null; +}, J1 = function a(e, t) { + var r = cl(e); + if (r) { + var n = r.children; + if (n.length) { + if (t === "right") + return a(n[n.length - 1], "right"); + if (t === "left") + return a(n[0], "left"); + } + } + return e; +}, ha = function(e, t) { + return e ? (t && (e = J1(e, t)), Q1[e.classes[0]] || null) : null; +}, Gt = function(e, t) { + var r = ["nulldelimiter"].concat(e.baseSizingClasses()); + return xt(t.concat(r)); +}, ne = function(e, t, r) { + if (!e) + return xt(); + if (xr[e.type]) { + var n = xr[e.type](e, t); + if (r && t.size !== r.size) { + n = xt(t.sizingClasses(r), [n], t); + var i = t.sizeMultiplier / r.sizeMultiplier; + n.height *= i, n.depth *= i; + } + return n; + } else + throw new Y("Got group of unknown type: '" + e.type + "'"); +}; +function hl(a) { + return new Wt(a); +} +class w0 { + constructor(e, t, r) { + this.type = void 0, this.attributes = void 0, this.children = void 0, this.classes = void 0, this.type = e, this.attributes = {}, this.children = t || [], this.classes = r || []; + } + /** + * Sets an attribute on a MathML node. MathML depends on attributes to convey a + * semantic content, so this is used heavily. + */ + setAttribute(e, t) { + this.attributes[e] = t; + } + /** + * Gets an attribute on a MathML node. + */ + getAttribute(e) { + return this.attributes[e]; + } + /** + * Converts the math node into a MathML-namespaced DOM element. + */ + toNode() { + var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", this.type); + for (var t in this.attributes) + Object.prototype.hasOwnProperty.call(this.attributes, t) && e.setAttribute(t, this.attributes[t]); + this.classes.length > 0 && (e.className = et(this.classes)); + for (var r = 0; r < this.children.length; r++) + e.appendChild(this.children[r].toNode()); + return e; + } + /** + * Converts the math node into an HTML markup string. + */ + toMarkup() { + var e = "<" + this.type; + for (var t in this.attributes) + Object.prototype.hasOwnProperty.call(this.attributes, t) && (e += " " + t + '="', e += X.escape(this.attributes[t]), e += '"'); + this.classes.length > 0 && (e += ' class ="' + X.escape(et(this.classes)) + '"'), e += ">"; + for (var r = 0; r < this.children.length; r++) + e += this.children[r].toMarkup(); + return e += "", e; + } + /** + * Converts the math node into a string, similar to innerText, but escaped. + */ + toText() { + return this.children.map((e) => e.toText()).join(""); + } +} +class Ot { + 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 X.escape(this.toText()); + } + /** + * Converts the text node into a string + * (representing the text itself). + */ + toText() { + return this.text; + } +} +class $1 { + /** + * Create a Space node with width given in CSS ems. + */ + constructor(e) { + this.width = void 0, this.character = void 0, this.width = e, e >= 0.05555 && e <= 0.05556 ? this.character = " " : e >= 0.1666 && e <= 0.1667 ? this.character = " " : e >= 0.2222 && e <= 0.2223 ? this.character = " " : e >= 0.2777 && e <= 0.2778 ? this.character = "  " : e >= -0.05556 && e <= -0.05555 ? this.character = " ⁣" : e >= -0.1667 && e <= -0.1666 ? this.character = " ⁣" : e >= -0.2223 && e <= -0.2222 ? this.character = " ⁣" : e >= -0.2778 && e <= -0.2777 ? this.character = " ⁣" : this.character = null; + } + /** + * Converts the math node into a MathML-namespaced DOM element. + */ + toNode() { + if (this.character) + return document.createTextNode(this.character); + var e = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mspace"); + return e.setAttribute("width", q(this.width)), e; + } + /** + * Converts the math node into an HTML markup string. + */ + toMarkup() { + return this.character ? "" + this.character + "" : ''; + } + /** + * Converts the math node into a string, similar to innerText. + */ + toText() { + return this.character ? this.character : " "; + } +} +var R = { + MathNode: w0, + TextNode: Ot, + SpaceNode: $1, + newDocumentFragment: hl +}, u0 = function(e, t, r) { + return xe[t][e] && xe[t][e].replace && e.charCodeAt(0) !== 55349 && !(nl.hasOwnProperty(e) && r && (r.fontFamily && r.fontFamily.slice(4, 6) === "tt" || r.font && r.font.slice(4, 6) === "tt")) && (e = xe[t][e].replace), new R.TextNode(e); +}, Ba = function(e) { + return e.length === 1 ? e[0] : new R.MathNode("mrow", e); +}, za = function(e, t) { + if (t.fontFamily === "texttt") + return "monospace"; + if (t.fontFamily === "textsf") + return t.fontShape === "textit" && t.fontWeight === "textbf" ? "sans-serif-bold-italic" : t.fontShape === "textit" ? "sans-serif-italic" : t.fontWeight === "textbf" ? "bold-sans-serif" : "sans-serif"; + if (t.fontShape === "textit" && t.fontWeight === "textbf") + return "bold-italic"; + if (t.fontShape === "textit") + return "italic"; + if (t.fontWeight === "textbf") + return "bold"; + var r = t.font; + if (!r || r === "mathnormal") + return null; + var n = e.mode; + if (r === "mathit") + return "italic"; + if (r === "boldsymbol") + return e.type === "textord" ? "bold" : "bold-italic"; + if (r === "mathbf") + return "bold"; + if (r === "mathbb") + return "double-struck"; + if (r === "mathfrak") + return "fraktur"; + if (r === "mathscr" || r === "mathcal") + return "script"; + if (r === "mathsf") + return "sans-serif"; + if (r === "mathtt") + return "monospace"; + var i = e.text; + if (X.contains(["\\imath", "\\jmath"], i)) + return null; + xe[n][i] && xe[n][i].replace && (i = xe[n][i].replace); + var l = S.fontMap[r].fontName; + return Ca(i, l, n) ? S.fontMap[r].variant : null; +}, t0 = function(e, t, r) { + if (e.length === 1) { + var n = he(e[0], t); + return r && n instanceof w0 && n.type === "mo" && (n.setAttribute("lspace", "0em"), n.setAttribute("rspace", "0em")), [n]; + } + for (var i = [], l, o = 0; o < e.length; o++) { + var u = he(e[o], t); + if (u instanceof w0 && l instanceof w0) { + if (u.type === "mtext" && l.type === "mtext" && u.getAttribute("mathvariant") === l.getAttribute("mathvariant")) { + l.children.push(...u.children); + continue; + } else if (u.type === "mn" && l.type === "mn") { + l.children.push(...u.children); + continue; + } else if (u.type === "mi" && u.children.length === 1 && l.type === "mn") { + var h = u.children[0]; + if (h instanceof Ot && h.text === ".") { + l.children.push(...u.children); + continue; + } + } else if (l.type === "mi" && l.children.length === 1) { + var f = l.children[0]; + if (f instanceof Ot && f.text === "̸" && (u.type === "mo" || u.type === "mi" || u.type === "mn")) { + var p = u.children[0]; + p instanceof Ot && p.text.length > 0 && (p.text = p.text.slice(0, 1) + "̸" + p.text.slice(1), i.pop()); + } + } + } + i.push(u), l = u; + } + return i; +}, rt = function(e, t, r) { + return Ba(t0(e, t, r)); +}, he = function(e, t) { + if (!e) + return new R.MathNode("mrow"); + if (Ar[e.type]) { + var r = Ar[e.type](e, t); + return r; + } else + throw new Y("Got group of unknown type: '" + e.type + "'"); +}, eo = { + 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": "=" +}, to = function(e) { + var t = new R.MathNode("mo", [new R.TextNode(eo[e.replace(/^\\/, "")])]); + return t.setAttribute("stretchy", "true"), t; +}, ro = { + // 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] +}, ao = function(e) { + return e.type === "ordgroup" ? e.body.length : 1; +}, no = function(e, t) { + function r() { + var o = 4e5, u = e.label.slice(1); + if (X.contains(["widehat", "widecheck", "widetilde", "utilde"], u)) { + var h = e, f = ao(h.base), p, v, w; + if (f > 5) + u === "widehat" || u === "widecheck" ? (p = 420, o = 2364, w = 0.42, v = u + "4") : (p = 312, o = 2340, w = 0.34, v = "tilde4"); + else { + var E = [1, 1, 2, 2, 3, 3][f]; + u === "widehat" || u === "widecheck" ? (o = [0, 1062, 2364, 2364, 2364][E], p = [0, 239, 300, 360, 420][E], w = [0, 0.24, 0.3, 0.3, 0.36, 0.42][E], v = u + E) : (o = [0, 600, 1033, 2339, 2340][E], p = [0, 260, 286, 306, 312][E], w = [0, 0.26, 0.286, 0.3, 0.306, 0.34][E], v = "tilde" + E); + } + var F = new ot(v), _ = new tt([F], { + width: "100%", + height: q(w), + viewBox: "0 0 " + o + " " + p, + preserveAspectRatio: "none" + }); + return { + span: S.makeSvgSpan([], [_], t), + minWidth: 0, + height: w + }; + } else { + var T = [], D = ro[u], [y, A, C] = D, M = C / 1e3, B = y.length, H, N; + if (B === 1) { + var I = D[3]; + H = ["hide-tail"], N = [I]; + } else if (B === 2) + H = ["halfarrow-left", "halfarrow-right"], N = ["xMinYMin", "xMaxYMin"]; + else if (B === 3) + H = ["brace-left", "brace-center", "brace-right"], N = ["xMinYMin", "xMidYMin", "xMaxYMin"]; + else + throw new Error(`Correct katexImagesData or update code here to support + ` + B + " children."); + for (var Z = 0; Z < B; Z++) { + var ee = new ot(y[Z]), Te = new tt([ee], { + width: "400em", + height: q(M), + viewBox: "0 0 " + o + " " + C, + preserveAspectRatio: N[Z] + " slice" + }), ie = S.makeSvgSpan([H[Z]], [Te], t); + if (B === 1) + return { + span: ie, + minWidth: A, + height: M + }; + ie.style.height = q(M), T.push(ie); + } + return { + span: S.makeSpan(["stretchy"], T, t), + minWidth: A, + height: M + }; + } + } + var { + span: n, + minWidth: i, + height: l + } = r(); + return n.height = l, n.style.height = q(l), i > 0 && (n.style.minWidth = q(i)), n; +}, io = function(e, t, r, n, i) { + var l, o = e.height + e.depth + r + n; + if (/fbox|color|angl/.test(t)) { + if (l = S.makeSpan(["stretchy", t], [], i), t === "fbox") { + var u = i.color && i.getColor(); + u && (l.style.borderColor = u); + } + } else { + var h = []; + /^[bx]cancel$/.test(t) && h.push(new En({ + x1: "0", + y1: "0", + x2: "100%", + y2: "100%", + "stroke-width": "0.046em" + })), /^x?cancel$/.test(t) && h.push(new En({ + x1: "0", + y1: "100%", + x2: "100%", + y2: "0", + "stroke-width": "0.046em" + })); + var f = new tt(h, { + width: "100%", + height: q(o) + }); + l = S.makeSvgSpan([], [f], i); + } + return l.height = o, l.style.height = q(o), l; +}, X0 = { + encloseSpan: io, + mathMLnode: to, + svgSpan: no +}; +function $(a, e) { + if (!a || a.type !== e) + throw new Error("Expected node of type " + e + ", but got " + (a ? "node of type " + a.type : String(a))); + return a; +} +function Ra(a) { + var e = zr(a); + if (!e) + throw new Error("Expected node of symbol group type, but got " + (a ? "node of type " + a.type : String(a))); + return e; +} +function zr(a) { + return a && (a.type === "atom" || B1.hasOwnProperty(a.type)) ? a : null; +} +var Na = (a, e) => { + var t, r, n; + a && a.type === "supsub" ? (r = $(a.base, "accent"), t = r.base, a.base = t, n = M1(ne(a, e)), a.base = r) : (r = $(a, "accent"), t = r.base); + var i = ne(t, e.havingCrampedStyle()), l = r.isShifty && X.isCharacterBox(t), o = 0; + if (l) { + var u = X.getBaseElem(t), h = ne(u, e.havingCrampedStyle()); + o = Tn(h).skew; + } + var f = r.label === "\\c", p = f ? i.height + i.depth : Math.min(i.height, e.fontMetrics().xHeight), v; + if (r.isStretchy) + v = X0.svgSpan(r, e), v = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: i + }, { + type: "elem", + elem: v, + wrapperClasses: ["svg-align"], + wrapperStyle: o > 0 ? { + width: "calc(100% - " + q(2 * o) + ")", + marginLeft: q(2 * o) + } : void 0 + }] + }, e); + else { + var w, E; + r.label === "\\vec" ? (w = S.staticSvg("vec", e), E = S.svgData.vec[1]) : (w = S.makeOrd({ + mode: r.mode, + text: r.label + }, e, "textord"), w = Tn(w), w.italic = 0, E = w.width, f && (p += w.depth)), v = S.makeSpan(["accent-body"], [w]); + var F = r.label === "\\textcircled"; + F && (v.classes.push("accent-full"), p = i.height); + var _ = o; + F || (_ -= E / 2), v.style.left = q(_), r.label === "\\textcircled" && (v.style.top = ".2em"), v = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: i + }, { + type: "kern", + size: -p + }, { + type: "elem", + elem: v + }] + }, e); + } + var T = S.makeSpan(["mord", "accent"], [v], e); + return n ? (n.children[0] = T, n.height = Math.max(T.height, n.height), n.classes[0] = "mord", n) : T; +}, ml = (a, e) => { + var t = a.isStretchy ? X0.mathMLnode(a.label) : new R.MathNode("mo", [u0(a.label, a.mode)]), r = new R.MathNode("mover", [he(a.base, e), t]); + return r.setAttribute("accent", "true"), r; +}, lo = new RegExp(["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring"].map((a) => "\\" + a).join("|")); +P({ + type: "accent", + names: ["\\acute", "\\grave", "\\ddot", "\\tilde", "\\bar", "\\breve", "\\check", "\\hat", "\\vec", "\\dot", "\\mathring", "\\widecheck", "\\widehat", "\\widetilde", "\\overrightarrow", "\\overleftarrow", "\\Overrightarrow", "\\overleftrightarrow", "\\overgroup", "\\overlinesegment", "\\overleftharpoon", "\\overrightharpoon"], + props: { + numArgs: 1 + }, + handler: (a, e) => { + var t = Fr(e[0]), r = !lo.test(a.funcName), n = !r || a.funcName === "\\widehat" || a.funcName === "\\widetilde" || a.funcName === "\\widecheck"; + return { + type: "accent", + mode: a.parser.mode, + label: a.funcName, + isStretchy: r, + isShifty: n, + base: t + }; + }, + htmlBuilder: Na, + mathmlBuilder: ml +}); +P({ + type: "accent", + names: ["\\'", "\\`", "\\^", "\\~", "\\=", "\\u", "\\.", '\\"', "\\c", "\\r", "\\H", "\\v", "\\textcircled"], + props: { + numArgs: 1, + allowedInText: !0, + allowedInMath: !0, + // unless in strict mode + argTypes: ["primitive"] + }, + handler: (a, e) => { + var t = e[0], r = a.parser.mode; + return r === "math" && (a.parser.settings.reportNonstrict("mathVsTextAccents", "LaTeX's accent " + a.funcName + " works only in text mode"), r = "text"), { + type: "accent", + mode: r, + label: a.funcName, + isStretchy: !1, + isShifty: !0, + base: t + }; + }, + htmlBuilder: Na, + mathmlBuilder: ml +}); +P({ + type: "accentUnder", + names: ["\\underleftarrow", "\\underrightarrow", "\\underleftrightarrow", "\\undergroup", "\\underlinesegment", "\\utilde"], + props: { + numArgs: 1 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = e[0]; + return { + type: "accentUnder", + mode: t.mode, + label: r, + base: n + }; + }, + htmlBuilder: (a, e) => { + var t = ne(a.base, e), r = X0.svgSpan(a, e), n = a.label === "\\utilde" ? 0.12 : 0, i = S.makeVList({ + positionType: "top", + positionData: t.height, + children: [{ + type: "elem", + elem: r, + wrapperClasses: ["svg-align"] + }, { + type: "kern", + size: n + }, { + type: "elem", + elem: t + }] + }, e); + return S.makeSpan(["mord", "accentunder"], [i], e); + }, + mathmlBuilder: (a, e) => { + var t = X0.mathMLnode(a.label), r = new R.MathNode("munder", [he(a.base, e), t]); + return r.setAttribute("accentunder", "true"), r; + } +}); +var ir = (a) => { + var e = new R.MathNode("mpadded", a ? [a] : []); + return e.setAttribute("width", "+0.6em"), e.setAttribute("lspace", "0.3em"), e; +}; +P({ + type: "xArrow", + names: [ + "\\xleftarrow", + "\\xrightarrow", + "\\xLeftarrow", + "\\xRightarrow", + "\\xleftrightarrow", + "\\xLeftrightarrow", + "\\xhookleftarrow", + "\\xhookrightarrow", + "\\xmapsto", + "\\xrightharpoondown", + "\\xrightharpoonup", + "\\xleftharpoondown", + "\\xleftharpoonup", + "\\xrightleftharpoons", + "\\xleftrightharpoons", + "\\xlongequal", + "\\xtwoheadrightarrow", + "\\xtwoheadleftarrow", + "\\xtofrom", + // The next 3 functions are here to support the mhchem extension. + // Direct use of these functions is discouraged and may break someday. + "\\xrightleftarrows", + "\\xrightequilibrium", + "\\xleftequilibrium", + // The next 3 functions are here only to support the {CD} environment. + "\\\\cdrightarrow", + "\\\\cdleftarrow", + "\\\\cdlongequal" + ], + props: { + numArgs: 1, + numOptionalArgs: 1 + }, + handler(a, e, t) { + var { + parser: r, + funcName: n + } = a; + return { + type: "xArrow", + mode: r.mode, + label: n, + body: e[0], + below: t[0] + }; + }, + // Flow is unable to correctly infer the type of `group`, even though it's + // unambiguously determined from the passed-in `type` above. + htmlBuilder(a, e) { + var t = e.style, r = e.havingStyle(t.sup()), n = S.wrapFragment(ne(a.body, r, e), e), i = a.label.slice(0, 2) === "\\x" ? "x" : "cd"; + n.classes.push(i + "-arrow-pad"); + var l; + a.below && (r = e.havingStyle(t.sub()), l = S.wrapFragment(ne(a.below, r, e), e), l.classes.push(i + "-arrow-pad")); + var o = X0.svgSpan(a, e), u = -e.fontMetrics().axisHeight + 0.5 * o.height, h = -e.fontMetrics().axisHeight - 0.5 * o.height - 0.111; + (n.depth > 0.25 || a.label === "\\xleftequilibrium") && (h -= n.depth); + var f; + if (l) { + var p = -e.fontMetrics().axisHeight + l.height + 0.5 * o.height + 0.111; + f = S.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: n, + shift: h + }, { + type: "elem", + elem: o, + shift: u + }, { + type: "elem", + elem: l, + shift: p + }] + }, e); + } else + f = S.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: n, + shift: h + }, { + type: "elem", + elem: o, + shift: u + }] + }, e); + return f.children[0].children[0].children[1].classes.push("svg-align"), S.makeSpan(["mrel", "x-arrow"], [f], e); + }, + mathmlBuilder(a, e) { + var t = X0.mathMLnode(a.label); + t.setAttribute("minsize", a.label.charAt(0) === "x" ? "1.75em" : "3.0em"); + var r; + if (a.body) { + var n = ir(he(a.body, e)); + if (a.below) { + var i = ir(he(a.below, e)); + r = new R.MathNode("munderover", [t, i, n]); + } else + r = new R.MathNode("mover", [t, n]); + } else if (a.below) { + var l = ir(he(a.below, e)); + r = new R.MathNode("munder", [t, l]); + } else + r = ir(), r = new R.MathNode("mover", [t, r]); + return r; + } +}); +var so = S.makeSpan; +function fl(a, e) { + var t = Re(a.body, e, !0); + return so([a.mclass], t, e); +} +function dl(a, e) { + var t, r = t0(a.body, e); + return a.mclass === "minner" ? t = new R.MathNode("mpadded", r) : a.mclass === "mord" ? a.isCharacterBox ? (t = r[0], t.type = "mi") : t = new R.MathNode("mi", r) : (a.isCharacterBox ? (t = r[0], t.type = "mo") : t = new R.MathNode("mo", r), a.mclass === "mbin" ? (t.attributes.lspace = "0.22em", t.attributes.rspace = "0.22em") : a.mclass === "mpunct" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0.17em") : a.mclass === "mopen" || a.mclass === "mclose" ? (t.attributes.lspace = "0em", t.attributes.rspace = "0em") : a.mclass === "minner" && (t.attributes.lspace = "0.0556em", t.attributes.width = "+0.1111em")), t; +} +P({ + type: "mclass", + names: ["\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", "\\mathclose", "\\mathpunct", "\\mathinner"], + props: { + numArgs: 1, + primitive: !0 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a, n = e[0]; + return { + type: "mclass", + mode: t.mode, + mclass: "m" + r.slice(5), + // TODO(kevinb): don't prefix with 'm' + body: De(n), + isCharacterBox: X.isCharacterBox(n) + }; + }, + htmlBuilder: fl, + mathmlBuilder: dl +}); +var Rr = (a) => { + var e = a.type === "ordgroup" && a.body.length ? a.body[0] : a; + return e.type === "atom" && (e.family === "bin" || e.family === "rel") ? "m" + e.family : "mord"; +}; +P({ + type: "mclass", + names: ["\\@binrel"], + props: { + numArgs: 2 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "mclass", + mode: t.mode, + mclass: Rr(e[0]), + body: De(e[1]), + isCharacterBox: X.isCharacterBox(e[1]) + }; + } +}); +P({ + type: "mclass", + names: ["\\stackrel", "\\overset", "\\underset"], + props: { + numArgs: 2 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a, n = e[1], i = e[0], l; + r !== "\\stackrel" ? l = Rr(n) : l = "mrel"; + var o = { + type: "op", + mode: n.mode, + limits: !0, + alwaysHandleSupSub: !0, + parentIsSupSub: !1, + symbol: !1, + suppressBaseShift: r !== "\\stackrel", + body: De(n) + }, u = { + type: "supsub", + mode: i.mode, + base: o, + sup: r === "\\underset" ? null : i, + sub: r === "\\underset" ? i : null + }; + return { + type: "mclass", + mode: t.mode, + mclass: l, + body: [u], + isCharacterBox: X.isCharacterBox(u) + }; + }, + htmlBuilder: fl, + mathmlBuilder: dl +}); +P({ + type: "pmb", + names: ["\\pmb"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "pmb", + mode: t.mode, + mclass: Rr(e[0]), + body: De(e[0]) + }; + }, + htmlBuilder(a, e) { + var t = Re(a.body, e, !0), r = S.makeSpan([a.mclass], t, e); + return r.style.textShadow = "0.02em 0.01em 0.04px", r; + }, + mathmlBuilder(a, e) { + var t = t0(a.body, e), r = new R.MathNode("mstyle", t); + return r.setAttribute("style", "text-shadow: 0.02em 0.01em 0.04px"), r; + } +}); +var oo = { + ">": "\\\\cdrightarrow", + "<": "\\\\cdleftarrow", + "=": "\\\\cdlongequal", + A: "\\uparrow", + V: "\\downarrow", + "|": "\\Vert", + ".": "no arrow" +}, Ln = () => ({ + type: "styling", + body: [], + mode: "math", + style: "display" +}), On = (a) => a.type === "textord" && a.text === "@", uo = (a, e) => (a.type === "mathord" || a.type === "atom") && a.text === e; +function co(a, e, t) { + var r = oo[a]; + switch (r) { + case "\\\\cdrightarrow": + case "\\\\cdleftarrow": + return t.callFunction(r, [e[0]], [e[1]]); + case "\\uparrow": + case "\\downarrow": { + var n = t.callFunction("\\\\cdleft", [e[0]], []), i = { + type: "atom", + text: r, + mode: "math", + family: "rel" + }, l = t.callFunction("\\Big", [i], []), o = t.callFunction("\\\\cdright", [e[1]], []), u = { + type: "ordgroup", + mode: "math", + body: [n, l, o] + }; + return t.callFunction("\\\\cdparent", [u], []); + } + case "\\\\cdlongequal": + return t.callFunction("\\\\cdlongequal", [], []); + case "\\Vert": { + var h = { + type: "textord", + text: "\\Vert", + mode: "math" + }; + return t.callFunction("\\Big", [h], []); + } + default: + return { + type: "textord", + text: " ", + mode: "math" + }; + } +} +function ho(a) { + var e = []; + for (a.gullet.beginGroup(), a.gullet.macros.set("\\cr", "\\\\\\relax"), a.gullet.beginGroup(); ; ) { + e.push(a.parseExpression(!1, "\\\\")), a.gullet.endGroup(), a.gullet.beginGroup(); + var t = a.fetch().text; + if (t === "&" || t === "\\\\") + a.consume(); + else if (t === "\\end") { + e[e.length - 1].length === 0 && e.pop(); + break; + } else + throw new Y("Expected \\\\ or \\cr or \\end", a.nextToken); + } + for (var r = [], n = [r], i = 0; i < e.length; i++) { + for (var l = e[i], o = Ln(), u = 0; u < l.length; u++) + if (!On(l[u])) + o.body.push(l[u]); + else { + r.push(o), u += 1; + var h = Ra(l[u]).text, f = new Array(2); + if (f[0] = { + type: "ordgroup", + mode: "math", + body: [] + }, f[1] = { + type: "ordgroup", + mode: "math", + body: [] + }, !("=|.".indexOf(h) > -1)) if ("<>AV".indexOf(h) > -1) + for (var p = 0; p < 2; p++) { + for (var v = !0, w = u + 1; w < l.length; w++) { + if (uo(l[w], h)) { + v = !1, u = w; + break; + } + if (On(l[w])) + throw new Y("Missing a " + h + " character to complete a CD arrow.", l[w]); + f[p].body.push(l[w]); + } + if (v) + throw new Y("Missing a " + h + " character to complete a CD arrow.", l[u]); + } + else + throw new Y('Expected one of "<>AV=|." after @', l[u]); + var E = co(h, f, a), F = { + type: "styling", + body: [E], + mode: "math", + style: "display" + // CD is always displaystyle. + }; + r.push(F), o = Ln(); + } + i % 2 === 0 ? r.push(o) : r.shift(), r = [], n.push(r); + } + a.gullet.endGroup(), a.gullet.endGroup(); + var _ = new Array(n[0].length).fill({ + type: "align", + align: "c", + pregap: 0.25, + // CD package sets \enskip between columns. + postgap: 0.25 + // So pre and post each get half an \enskip, i.e. 0.25em. + }); + return { + type: "array", + mode: "math", + body: n, + arraystretch: 1, + addJot: !0, + rowGaps: [null], + cols: _, + colSeparationType: "CD", + hLinesBeforeRow: new Array(n.length + 1).fill([]) + }; +} +P({ + type: "cdlabel", + names: ["\\\\cdleft", "\\\\cdright"], + props: { + numArgs: 1 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a; + return { + type: "cdlabel", + mode: t.mode, + side: r.slice(4), + label: e[0] + }; + }, + htmlBuilder(a, e) { + var t = e.havingStyle(e.style.sup()), r = S.wrapFragment(ne(a.label, t, e), e); + return r.classes.push("cd-label-" + a.side), r.style.bottom = q(0.8 - r.depth), r.height = 0, r.depth = 0, r; + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mrow", [he(a.label, e)]); + return t = new R.MathNode("mpadded", [t]), t.setAttribute("width", "0"), a.side === "left" && t.setAttribute("lspace", "-1width"), t.setAttribute("voffset", "0.7em"), t = new R.MathNode("mstyle", [t]), t.setAttribute("displaystyle", "false"), t.setAttribute("scriptlevel", "1"), t; + } +}); +P({ + type: "cdlabelparent", + names: ["\\\\cdparent"], + props: { + numArgs: 1 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "cdlabelparent", + mode: t.mode, + fragment: e[0] + }; + }, + htmlBuilder(a, e) { + var t = S.wrapFragment(ne(a.fragment, e), e); + return t.classes.push("cd-vert-arrow"), t; + }, + mathmlBuilder(a, e) { + return new R.MathNode("mrow", [he(a.fragment, e)]); + } +}); +P({ + type: "textord", + names: ["\\@char"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler(a, e) { + for (var { + parser: t + } = a, r = $(e[0], "ordgroup"), n = r.body, i = "", l = 0; l < n.length; l++) { + var o = $(n[l], "textord"); + i += o.text; + } + var u = parseInt(i), h; + if (isNaN(u)) + throw new Y("\\@char has non-numeric argument " + i); + if (u < 0 || u >= 1114111) + throw new Y("\\@char with invalid code point " + i); + return u <= 65535 ? h = String.fromCharCode(u) : (u -= 65536, h = String.fromCharCode((u >> 10) + 55296, (u & 1023) + 56320)), { + type: "textord", + mode: t.mode, + text: h + }; + } +}); +var pl = (a, e) => { + var t = Re(a.body, e.withColor(a.color), !1); + return S.makeFragment(t); +}, gl = (a, e) => { + var t = t0(a.body, e.withColor(a.color)), r = new R.MathNode("mstyle", t); + return r.setAttribute("mathcolor", a.color), r; +}; +P({ + type: "color", + names: ["\\textcolor"], + props: { + numArgs: 2, + allowedInText: !0, + argTypes: ["color", "original"] + }, + handler(a, e) { + var { + parser: t + } = a, r = $(e[0], "color-token").color, n = e[1]; + return { + type: "color", + mode: t.mode, + color: r, + body: De(n) + }; + }, + htmlBuilder: pl, + mathmlBuilder: gl +}); +P({ + type: "color", + names: ["\\color"], + props: { + numArgs: 1, + allowedInText: !0, + argTypes: ["color"] + }, + handler(a, e) { + var { + parser: t, + breakOnTokenText: r + } = a, n = $(e[0], "color-token").color; + t.gullet.macros.set("\\current@color", n); + var i = t.parseExpression(!0, r); + return { + type: "color", + mode: t.mode, + color: n, + body: i + }; + }, + htmlBuilder: pl, + mathmlBuilder: gl +}); +P({ + type: "cr", + names: ["\\\\"], + props: { + numArgs: 0, + numOptionalArgs: 0, + allowedInText: !0 + }, + handler(a, e, t) { + var { + parser: r + } = a, n = r.gullet.future().text === "[" ? r.parseSizeGroup(!0) : null, i = !r.settings.displayMode || !r.settings.useStrictBehavior("newLineInDisplayMode", "In LaTeX, \\\\ or \\newline does nothing in display mode"); + return { + type: "cr", + mode: r.mode, + newLine: i, + size: n && $(n, "size").value + }; + }, + // The following builders are called only at the top level, + // not within tabular/array environments. + htmlBuilder(a, e) { + var t = S.makeSpan(["mspace"], [], e); + return a.newLine && (t.classes.push("newline"), a.size && (t.style.marginTop = q(pe(a.size, e)))), t; + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mspace"); + return a.newLine && (t.setAttribute("linebreak", "newline"), a.size && t.setAttribute("height", q(pe(a.size, e)))), t; + } +}); +var ma = { + "\\global": "\\global", + "\\long": "\\\\globallong", + "\\\\globallong": "\\\\globallong", + "\\def": "\\gdef", + "\\gdef": "\\gdef", + "\\edef": "\\xdef", + "\\xdef": "\\xdef", + "\\let": "\\\\globallet", + "\\futurelet": "\\\\globalfuture" +}, vl = (a) => { + var e = a.text; + if (/^(?:[\\{}$&#^_]|EOF)$/.test(e)) + throw new Y("Expected a control sequence", a); + return e; +}, mo = (a) => { + var e = a.gullet.popToken(); + return e.text === "=" && (e = a.gullet.popToken(), e.text === " " && (e = a.gullet.popToken())), e; +}, bl = (a, e, t, r) => { + var n = a.gullet.macros.get(t.text); + n == null && (t.noexpand = !0, n = { + tokens: [t], + numArgs: 0, + // reproduce the same behavior in expansion + unexpandable: !a.gullet.isExpandable(t.text) + }), a.gullet.macros.set(e, n, r); +}; +P({ + type: "internal", + names: [ + "\\global", + "\\long", + "\\\\globallong" + // can’t be entered directly + ], + props: { + numArgs: 0, + allowedInText: !0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a; + e.consumeSpaces(); + var r = e.fetch(); + if (ma[r.text]) + return (t === "\\global" || t === "\\\\globallong") && (r.text = ma[r.text]), $(e.parseFunction(), "internal"); + throw new Y("Invalid token after macro prefix", r); + } +}); +P({ + type: "internal", + names: ["\\def", "\\gdef", "\\edef", "\\xdef"], + props: { + numArgs: 0, + allowedInText: !0, + primitive: !0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a, r = e.gullet.popToken(), n = r.text; + if (/^(?:[\\{}$&#^_]|EOF)$/.test(n)) + throw new Y("Expected a control sequence", r); + for (var i = 0, l, o = [[]]; e.gullet.future().text !== "{"; ) + if (r = e.gullet.popToken(), r.text === "#") { + if (e.gullet.future().text === "{") { + l = e.gullet.future(), o[i].push("{"); + break; + } + if (r = e.gullet.popToken(), !/^[1-9]$/.test(r.text)) + throw new Y('Invalid argument number "' + r.text + '"'); + if (parseInt(r.text) !== i + 1) + throw new Y('Argument number "' + r.text + '" out of order'); + i++, o.push([]); + } else { + if (r.text === "EOF") + throw new Y("Expected a macro definition"); + o[i].push(r.text); + } + var { + tokens: u + } = e.gullet.consumeArg(); + return l && u.unshift(l), (t === "\\edef" || t === "\\xdef") && (u = e.gullet.expandTokens(u), u.reverse()), e.gullet.macros.set(n, { + tokens: u, + numArgs: i, + delimiters: o + }, t === ma[t]), { + type: "internal", + mode: e.mode + }; + } +}); +P({ + type: "internal", + names: [ + "\\let", + "\\\\globallet" + // can’t be entered directly + ], + props: { + numArgs: 0, + allowedInText: !0, + primitive: !0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a, r = vl(e.gullet.popToken()); + e.gullet.consumeSpaces(); + var n = mo(e); + return bl(e, r, n, t === "\\\\globallet"), { + type: "internal", + mode: e.mode + }; + } +}); +P({ + type: "internal", + names: [ + "\\futurelet", + "\\\\globalfuture" + // can’t be entered directly + ], + props: { + numArgs: 0, + allowedInText: !0, + primitive: !0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a, r = vl(e.gullet.popToken()), n = e.gullet.popToken(), i = e.gullet.popToken(); + return bl(e, r, i, t === "\\\\globalfuture"), e.gullet.pushToken(i), e.gullet.pushToken(n), { + type: "internal", + mode: e.mode + }; + } +}); +var It = function(e, t, r) { + var n = xe.math[e] && xe.math[e].replace, i = Ca(n || e, t, r); + if (!i) + throw new Error("Unsupported symbol " + e + " and font size " + t + "."); + return i; +}, Ia = function(e, t, r, n) { + var i = r.havingBaseStyle(t), l = S.makeSpan(n.concat(i.sizingClasses(r)), [e], r), o = i.sizeMultiplier / r.sizeMultiplier; + return l.height *= o, l.depth *= o, l.maxFontSize = i.sizeMultiplier, l; +}, yl = function(e, t, r) { + var n = t.havingBaseStyle(r), i = (1 - t.sizeMultiplier / n.sizeMultiplier) * t.fontMetrics().axisHeight; + e.classes.push("delimcenter"), e.style.top = q(i), e.height -= i, e.depth += i; +}, fo = function(e, t, r, n, i, l) { + var o = S.makeSymbol(e, "Main-Regular", i, n), u = Ia(o, t, n, l); + return r && yl(u, n, t), u; +}, po = function(e, t, r, n) { + return S.makeSymbol(e, "Size" + t + "-Regular", r, n); +}, wl = function(e, t, r, n, i, l) { + var o = po(e, t, i, n), u = Ia(S.makeSpan(["delimsizing", "size" + t], [o], n), K.TEXT, n, l); + return r && yl(u, n, K.TEXT), u; +}, Zr = function(e, t, r) { + var n; + t === "Size1-Regular" ? n = "delim-size1" : n = "delim-size4"; + var i = S.makeSpan(["delimsizinginner", n], [S.makeSpan([], [S.makeSymbol(e, t, r)])]); + return { + type: "elem", + elem: i + }; +}, Kr = function(e, t, r) { + var n = W0["Size4-Regular"][e.charCodeAt(0)] ? W0["Size4-Regular"][e.charCodeAt(0)][4] : W0["Size1-Regular"][e.charCodeAt(0)][4], i = new ot("inner", F1(e, Math.round(1e3 * t))), l = new tt([i], { + width: q(n), + height: q(t), + // Override CSS rule `.katex svg { width: 100% }` + style: "width:" + q(n), + viewBox: "0 0 " + 1e3 * n + " " + Math.round(1e3 * t), + preserveAspectRatio: "xMinYMin" + }), o = S.makeSvgSpan([], [l], r); + return o.height = t, o.style.height = q(t), o.style.width = q(n), { + type: "elem", + elem: o + }; +}, fa = 8e-3, lr = { + type: "kern", + size: -1 * fa +}, go = ["|", "\\lvert", "\\rvert", "\\vert"], vo = ["\\|", "\\lVert", "\\rVert", "\\Vert"], kl = function(e, t, r, n, i, l) { + var o, u, h, f, p = "", v = 0; + o = h = f = e, u = null; + var w = "Size1-Regular"; + e === "\\uparrow" ? h = f = "⏐" : e === "\\Uparrow" ? h = f = "‖" : e === "\\downarrow" ? o = h = "⏐" : e === "\\Downarrow" ? o = h = "‖" : e === "\\updownarrow" ? (o = "\\uparrow", h = "⏐", f = "\\downarrow") : e === "\\Updownarrow" ? (o = "\\Uparrow", h = "‖", f = "\\Downarrow") : X.contains(go, e) ? (h = "∣", p = "vert", v = 333) : X.contains(vo, e) ? (h = "∥", p = "doublevert", v = 556) : e === "[" || e === "\\lbrack" ? (o = "⎡", h = "⎢", f = "⎣", w = "Size4-Regular", p = "lbrack", v = 667) : e === "]" || e === "\\rbrack" ? (o = "⎤", h = "⎥", f = "⎦", w = "Size4-Regular", p = "rbrack", v = 667) : e === "\\lfloor" || e === "⌊" ? (h = o = "⎢", f = "⎣", w = "Size4-Regular", p = "lfloor", v = 667) : e === "\\lceil" || e === "⌈" ? (o = "⎡", h = f = "⎢", w = "Size4-Regular", p = "lceil", v = 667) : e === "\\rfloor" || e === "⌋" ? (h = o = "⎥", f = "⎦", w = "Size4-Regular", p = "rfloor", v = 667) : e === "\\rceil" || e === "⌉" ? (o = "⎤", h = f = "⎥", w = "Size4-Regular", p = "rceil", v = 667) : e === "(" || e === "\\lparen" ? (o = "⎛", h = "⎜", f = "⎝", w = "Size4-Regular", p = "lparen", v = 875) : e === ")" || e === "\\rparen" ? (o = "⎞", h = "⎟", f = "⎠", w = "Size4-Regular", p = "rparen", v = 875) : e === "\\{" || e === "\\lbrace" ? (o = "⎧", u = "⎨", f = "⎩", h = "⎪", w = "Size4-Regular") : e === "\\}" || e === "\\rbrace" ? (o = "⎫", u = "⎬", f = "⎭", h = "⎪", w = "Size4-Regular") : e === "\\lgroup" || e === "⟮" ? (o = "⎧", f = "⎩", h = "⎪", w = "Size4-Regular") : e === "\\rgroup" || e === "⟯" ? (o = "⎫", f = "⎭", h = "⎪", w = "Size4-Regular") : e === "\\lmoustache" || e === "⎰" ? (o = "⎧", f = "⎭", h = "⎪", w = "Size4-Regular") : (e === "\\rmoustache" || e === "⎱") && (o = "⎫", f = "⎩", h = "⎪", w = "Size4-Regular"); + var E = It(o, w, i), F = E.height + E.depth, _ = It(h, w, i), T = _.height + _.depth, D = It(f, w, i), y = D.height + D.depth, A = 0, C = 1; + if (u !== null) { + var M = It(u, w, i); + A = M.height + M.depth, C = 2; + } + var B = F + y + A, H = Math.max(0, Math.ceil((t - B) / (C * T))), N = B + H * C * T, I = n.fontMetrics().axisHeight; + r && (I *= n.sizeMultiplier); + var Z = N / 2 - I, ee = []; + if (p.length > 0) { + var Te = N - F - y, ie = Math.round(N * 1e3), ye = _1(p, Math.round(Te * 1e3)), we = new ot(p, ye), Ge = (v / 1e3).toFixed(3) + "em", se = (ie / 1e3).toFixed(3) + "em", _e = new tt([we], { + width: Ge, + height: se, + viewBox: "0 0 " + v + " " + ie + }), ke = S.makeSvgSpan([], [_e], n); + ke.height = ie / 1e3, ke.style.width = Ge, ke.style.height = se, ee.push({ + type: "elem", + elem: ke + }); + } else { + if (ee.push(Zr(f, w, i)), ee.push(lr), u === null) { + var te = N - F - y + 2 * fa; + ee.push(Kr(h, te, n)); + } else { + var le = (N - F - y - A) / 2 + 2 * fa; + ee.push(Kr(h, le, n)), ee.push(lr), ee.push(Zr(u, w, i)), ee.push(lr), ee.push(Kr(h, le, n)); + } + ee.push(lr), ee.push(Zr(o, w, i)); + } + var oe = n.havingBaseStyle(K.TEXT), Ce = S.makeVList({ + positionType: "bottom", + positionData: Z, + children: ee + }, oe); + return Ia(S.makeSpan(["delimsizing", "mult"], [Ce], oe), K.TEXT, n, l); +}, Qr = 80, Jr = 0.08, $r = function(e, t, r, n, i) { + var l = A1(e, n, r), o = new ot(e, l), u = new tt([o], { + // Note: 1000:1 ratio of viewBox to document em width. + width: "400em", + height: q(t), + viewBox: "0 0 400000 " + r, + preserveAspectRatio: "xMinYMin slice" + }); + return S.makeSvgSpan(["hide-tail"], [u], i); +}, bo = function(e, t) { + var r = t.havingBaseSizing(), n = Fl("\\surd", e * r.sizeMultiplier, Al, r), i = r.sizeMultiplier, l = Math.max(0, t.minRuleThickness - t.fontMetrics().sqrtRuleThickness), o, u = 0, h = 0, f = 0, p; + return n.type === "small" ? (f = 1e3 + 1e3 * l + Qr, e < 1 ? i = 1 : e < 1.4 && (i = 0.7), u = (1 + l + Jr) / i, h = (1 + l) / i, o = $r("sqrtMain", u, f, l, t), o.style.minWidth = "0.853em", p = 0.833 / i) : n.type === "large" ? (f = (1e3 + Qr) * qt[n.size], h = (qt[n.size] + l) / i, u = (qt[n.size] + l + Jr) / i, o = $r("sqrtSize" + n.size, u, f, l, t), o.style.minWidth = "1.02em", p = 1 / i) : (u = e + l + Jr, h = e + l, f = Math.floor(1e3 * e + l) + Qr, o = $r("sqrtTall", u, f, l, t), o.style.minWidth = "0.742em", p = 1.056), o.height = h, o.style.height = q(u), { + span: o, + advanceWidth: p, + // 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 + l) * i + }; +}, Dl = ["(", "\\lparen", ")", "\\rparen", "[", "\\lbrack", "]", "\\rbrack", "\\{", "\\lbrace", "\\}", "\\rbrace", "\\lfloor", "\\rfloor", "⌊", "⌋", "\\lceil", "\\rceil", "⌈", "⌉", "\\surd"], yo = ["\\uparrow", "\\downarrow", "\\updownarrow", "\\Uparrow", "\\Downarrow", "\\Updownarrow", "|", "\\|", "\\vert", "\\Vert", "\\lvert", "\\rvert", "\\lVert", "\\rVert", "\\lgroup", "\\rgroup", "⟮", "⟯", "\\lmoustache", "\\rmoustache", "⎰", "⎱"], xl = ["<", ">", "\\langle", "\\rangle", "/", "\\backslash", "\\lt", "\\gt"], qt = [0, 1.2, 1.8, 2.4, 3], wo = function(e, t, r, n, i) { + if (e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle"), X.contains(Dl, e) || X.contains(xl, e)) + return wl(e, t, !1, r, n, i); + if (X.contains(yo, e)) + return kl(e, qt[t], !1, r, n, i); + throw new Y("Illegal delimiter: '" + e + "'"); +}, ko = [{ + type: "small", + style: K.SCRIPTSCRIPT +}, { + type: "small", + style: K.SCRIPT +}, { + type: "small", + style: K.TEXT +}, { + type: "large", + size: 1 +}, { + type: "large", + size: 2 +}, { + type: "large", + size: 3 +}, { + type: "large", + size: 4 +}], Do = [{ + type: "small", + style: K.SCRIPTSCRIPT +}, { + type: "small", + style: K.SCRIPT +}, { + type: "small", + style: K.TEXT +}, { + type: "stack" +}], Al = [{ + type: "small", + style: K.SCRIPTSCRIPT +}, { + type: "small", + style: K.SCRIPT +}, { + type: "small", + style: K.TEXT +}, { + type: "large", + size: 1 +}, { + type: "large", + size: 2 +}, { + type: "large", + size: 3 +}, { + type: "large", + size: 4 +}, { + type: "stack" +}], xo = 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."); +}, Fl = function(e, t, r, n) { + for (var i = Math.min(2, 3 - n.style.size), l = i; l < r.length && r[l].type !== "stack"; l++) { + var o = It(e, xo(r[l]), "math"), u = o.height + o.depth; + if (r[l].type === "small") { + var h = n.havingBaseStyle(r[l].style); + u *= h.sizeMultiplier; + } + if (u > t) + return r[l]; + } + return r[r.length - 1]; +}, _l = function(e, t, r, n, i, l) { + e === "<" || e === "\\lt" || e === "⟨" ? e = "\\langle" : (e === ">" || e === "\\gt" || e === "⟩") && (e = "\\rangle"); + var o; + X.contains(xl, e) ? o = ko : X.contains(Dl, e) ? o = Al : o = Do; + var u = Fl(e, t, o, n); + return u.type === "small" ? fo(e, u.style, r, n, i, l) : u.type === "large" ? wl(e, u.size, r, n, i, l) : kl(e, t, r, n, i, l); +}, Ao = function(e, t, r, n, i, l) { + var o = n.fontMetrics().axisHeight * n.sizeMultiplier, u = 901, h = 5 / n.fontMetrics().ptPerEm, f = Math.max(t - o, r + o), p = 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) + f / 500 * u, + 2 * f - h + ); + return _l(e, p, !0, n, i, l); +}, j0 = { + sqrtImage: bo, + sizedDelim: wo, + sizeToMaxHeight: qt, + customSizedDelim: _l, + leftRightDelim: Ao +}, qn = { + "\\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 + } +}, Fo = ["(", "\\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 Nr(a, e) { + var t = zr(a); + if (t && X.contains(Fo, t.text)) + return t; + throw t ? new Y("Invalid delimiter '" + t.text + "' after '" + e.funcName + "'", a) : new Y("Invalid delimiter type '" + a.type + "'", a); +} +P({ + type: "delimsizing", + names: ["\\bigl", "\\Bigl", "\\biggl", "\\Biggl", "\\bigr", "\\Bigr", "\\biggr", "\\Biggr", "\\bigm", "\\Bigm", "\\biggm", "\\Biggm", "\\big", "\\Big", "\\bigg", "\\Bigg"], + props: { + numArgs: 1, + argTypes: ["primitive"] + }, + handler: (a, e) => { + var t = Nr(e[0], a); + return { + type: "delimsizing", + mode: a.parser.mode, + size: qn[a.funcName].size, + mclass: qn[a.funcName].mclass, + delim: t.text + }; + }, + htmlBuilder: (a, e) => a.delim === "." ? S.makeSpan([a.mclass]) : j0.sizedDelim(a.delim, a.size, e, a.mode, [a.mclass]), + mathmlBuilder: (a) => { + var e = []; + a.delim !== "." && e.push(u0(a.delim, a.mode)); + var t = new R.MathNode("mo", e); + a.mclass === "mopen" || a.mclass === "mclose" ? t.setAttribute("fence", "true") : t.setAttribute("fence", "false"), t.setAttribute("stretchy", "true"); + var r = q(j0.sizeToMaxHeight[a.size]); + return t.setAttribute("minsize", r), t.setAttribute("maxsize", r), t; + } +}); +function Pn(a) { + if (!a.body) + throw new Error("Bug: The leftright ParseNode wasn't fully parsed."); +} +P({ + type: "leftright-right", + names: ["\\right"], + props: { + numArgs: 1, + primitive: !0 + }, + handler: (a, e) => { + var t = a.parser.gullet.macros.get("\\current@color"); + if (t && typeof t != "string") + throw new Y("\\current@color set to non-string in \\right"); + return { + type: "leftright-right", + mode: a.parser.mode, + delim: Nr(e[0], a).text, + color: t + // undefined if not set via \color + }; + } +}); +P({ + type: "leftright", + names: ["\\left"], + props: { + numArgs: 1, + primitive: !0 + }, + handler: (a, e) => { + var t = Nr(e[0], a), r = a.parser; + ++r.leftrightDepth; + var n = r.parseExpression(!1); + --r.leftrightDepth, r.expect("\\right", !1); + var i = $(r.parseFunction(), "leftright-right"); + return { + type: "leftright", + mode: r.mode, + body: n, + left: t.text, + right: i.delim, + rightColor: i.color + }; + }, + htmlBuilder: (a, e) => { + Pn(a); + for (var t = Re(a.body, e, !0, ["mopen", "mclose"]), r = 0, n = 0, i = !1, l = 0; l < t.length; l++) + t[l].isMiddle ? i = !0 : (r = Math.max(t[l].height, r), n = Math.max(t[l].depth, n)); + r *= e.sizeMultiplier, n *= e.sizeMultiplier; + var o; + if (a.left === "." ? o = Gt(e, ["mopen"]) : o = j0.leftRightDelim(a.left, r, n, e, a.mode, ["mopen"]), t.unshift(o), i) + for (var u = 1; u < t.length; u++) { + var h = t[u], f = h.isMiddle; + f && (t[u] = j0.leftRightDelim(f.delim, r, n, f.options, a.mode, [])); + } + var p; + if (a.right === ".") + p = Gt(e, ["mclose"]); + else { + var v = a.rightColor ? e.withColor(a.rightColor) : e; + p = j0.leftRightDelim(a.right, r, n, v, a.mode, ["mclose"]); + } + return t.push(p), S.makeSpan(["minner"], t, e); + }, + mathmlBuilder: (a, e) => { + Pn(a); + var t = t0(a.body, e); + if (a.left !== ".") { + var r = new R.MathNode("mo", [u0(a.left, a.mode)]); + r.setAttribute("fence", "true"), t.unshift(r); + } + if (a.right !== ".") { + var n = new R.MathNode("mo", [u0(a.right, a.mode)]); + n.setAttribute("fence", "true"), a.rightColor && n.setAttribute("mathcolor", a.rightColor), t.push(n); + } + return Ba(t); + } +}); +P({ + type: "middle", + names: ["\\middle"], + props: { + numArgs: 1, + primitive: !0 + }, + handler: (a, e) => { + var t = Nr(e[0], a); + if (!a.parser.leftrightDepth) + throw new Y("\\middle without preceding \\left", t); + return { + type: "middle", + mode: a.parser.mode, + delim: t.text + }; + }, + htmlBuilder: (a, e) => { + var t; + if (a.delim === ".") + t = Gt(e, []); + else { + t = j0.sizedDelim(a.delim, 1, e, a.mode, []); + var r = { + delim: a.delim, + options: e + }; + t.isMiddle = r; + } + return t; + }, + mathmlBuilder: (a, e) => { + var t = a.delim === "\\vert" || a.delim === "|" ? u0("|", "text") : u0(a.delim, a.mode), r = new R.MathNode("mo", [t]); + return r.setAttribute("fence", "true"), r.setAttribute("lspace", "0.05em"), r.setAttribute("rspace", "0.05em"), r; + } +}); +var La = (a, e) => { + var t = S.wrapFragment(ne(a.body, e), e), r = a.label.slice(1), n = e.sizeMultiplier, i, l = 0, o = X.isCharacterBox(a.body); + if (r === "sout") + i = S.makeSpan(["stretchy", "sout"]), i.height = e.fontMetrics().defaultRuleThickness / n, l = -0.5 * e.fontMetrics().xHeight; + else if (r === "phase") { + var u = pe({ + number: 0.6, + unit: "pt" + }, e), h = pe({ + number: 0.35, + unit: "ex" + }, e), f = e.havingBaseSizing(); + n = n / f.sizeMultiplier; + var p = t.height + t.depth + u + h; + t.style.paddingLeft = q(p / 2 + u); + var v = Math.floor(1e3 * p * n), w = D1(v), E = new tt([new ot("phase", w)], { + width: "400em", + height: q(v / 1e3), + viewBox: "0 0 400000 " + v, + preserveAspectRatio: "xMinYMin slice" + }); + i = S.makeSvgSpan(["hide-tail"], [E], e), i.style.height = q(p), l = t.depth + u + h; + } else { + /cancel/.test(r) ? o || t.classes.push("cancel-pad") : r === "angl" ? t.classes.push("anglpad") : t.classes.push("boxpad"); + var F = 0, _ = 0, T = 0; + /box/.test(r) ? (T = Math.max( + e.fontMetrics().fboxrule, + // default + e.minRuleThickness + // User override. + ), F = e.fontMetrics().fboxsep + (r === "colorbox" ? 0 : T), _ = F) : r === "angl" ? (T = Math.max(e.fontMetrics().defaultRuleThickness, e.minRuleThickness), F = 4 * T, _ = Math.max(0, 0.25 - t.depth)) : (F = o ? 0.2 : 0, _ = F), i = X0.encloseSpan(t, r, F, _, e), /fbox|boxed|fcolorbox/.test(r) ? (i.style.borderStyle = "solid", i.style.borderWidth = q(T)) : r === "angl" && T !== 0.049 && (i.style.borderTopWidth = q(T), i.style.borderRightWidth = q(T)), l = t.depth + _, a.backgroundColor && (i.style.backgroundColor = a.backgroundColor, a.borderColor && (i.style.borderColor = a.borderColor)); + } + var D; + if (a.backgroundColor) + D = S.makeVList({ + positionType: "individualShift", + children: [ + // Put the color background behind inner; + { + type: "elem", + elem: i, + shift: l + }, + { + type: "elem", + elem: t, + shift: 0 + } + ] + }, e); + else { + var y = /cancel|phase/.test(r) ? ["svg-align"] : []; + D = S.makeVList({ + positionType: "individualShift", + children: [ + // Write the \cancel stroke on top of inner. + { + type: "elem", + elem: t, + shift: 0 + }, + { + type: "elem", + elem: i, + shift: l, + wrapperClasses: y + } + ] + }, e); + } + return /cancel/.test(r) && (D.height = t.height, D.depth = t.depth), /cancel/.test(r) && !o ? S.makeSpan(["mord", "cancel-lap"], [D], e) : S.makeSpan(["mord"], [D], e); +}, Oa = (a, e) => { + var t = 0, r = new R.MathNode(a.label.indexOf("colorbox") > -1 ? "mpadded" : "menclose", [he(a.body, e)]); + switch (a.label) { + case "\\cancel": + r.setAttribute("notation", "updiagonalstrike"); + break; + case "\\bcancel": + r.setAttribute("notation", "downdiagonalstrike"); + break; + case "\\phase": + r.setAttribute("notation", "phasorangle"); + break; + case "\\sout": + r.setAttribute("notation", "horizontalstrike"); + break; + case "\\fbox": + r.setAttribute("notation", "box"); + break; + case "\\angl": + r.setAttribute("notation", "actuarial"); + break; + case "\\fcolorbox": + case "\\colorbox": + if (t = e.fontMetrics().fboxsep * e.fontMetrics().ptPerEm, r.setAttribute("width", "+" + 2 * t + "pt"), r.setAttribute("height", "+" + 2 * t + "pt"), r.setAttribute("lspace", t + "pt"), r.setAttribute("voffset", t + "pt"), a.label === "\\fcolorbox") { + var n = Math.max( + e.fontMetrics().fboxrule, + // default + e.minRuleThickness + // user override + ); + r.setAttribute("style", "border: " + n + "em solid " + String(a.borderColor)); + } + break; + case "\\xcancel": + r.setAttribute("notation", "updiagonalstrike downdiagonalstrike"); + break; + } + return a.backgroundColor && r.setAttribute("mathbackground", a.backgroundColor), r; +}; +P({ + type: "enclose", + names: ["\\colorbox"], + props: { + numArgs: 2, + allowedInText: !0, + argTypes: ["color", "text"] + }, + handler(a, e, t) { + var { + parser: r, + funcName: n + } = a, i = $(e[0], "color-token").color, l = e[1]; + return { + type: "enclose", + mode: r.mode, + label: n, + backgroundColor: i, + body: l + }; + }, + htmlBuilder: La, + mathmlBuilder: Oa +}); +P({ + type: "enclose", + names: ["\\fcolorbox"], + props: { + numArgs: 3, + allowedInText: !0, + argTypes: ["color", "color", "text"] + }, + handler(a, e, t) { + var { + parser: r, + funcName: n + } = a, i = $(e[0], "color-token").color, l = $(e[1], "color-token").color, o = e[2]; + return { + type: "enclose", + mode: r.mode, + label: n, + backgroundColor: l, + borderColor: i, + body: o + }; + }, + htmlBuilder: La, + mathmlBuilder: Oa +}); +P({ + type: "enclose", + names: ["\\fbox"], + props: { + numArgs: 1, + argTypes: ["hbox"], + allowedInText: !0 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "enclose", + mode: t.mode, + label: "\\fbox", + body: e[0] + }; + } +}); +P({ + type: "enclose", + names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"], + props: { + numArgs: 1 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a, n = e[0]; + return { + type: "enclose", + mode: t.mode, + label: r, + body: n + }; + }, + htmlBuilder: La, + mathmlBuilder: Oa +}); +P({ + type: "enclose", + names: ["\\angl"], + props: { + numArgs: 1, + argTypes: ["hbox"], + allowedInText: !1 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "enclose", + mode: t.mode, + label: "\\angl", + body: e[0] + }; + } +}); +var Sl = {}; +function I0(a) { + for (var { + type: e, + names: t, + props: r, + handler: n, + htmlBuilder: i, + mathmlBuilder: l + } = a, o = { + type: e, + numArgs: r.numArgs || 0, + allowedInText: !1, + numOptionalArgs: 0, + handler: n + }, u = 0; u < t.length; ++u) + Sl[t[u]] = o; + i && (xr[e] = i), l && (Ar[e] = l); +} +var _o = {}; +function d(a, e) { + _o[a] = e; +} +function Hn(a) { + var e = []; + a.consumeSpaces(); + var t = a.fetch().text; + for (t === "\\relax" && (a.consume(), a.consumeSpaces(), t = a.fetch().text); t === "\\hline" || t === "\\hdashline"; ) + a.consume(), e.push(t === "\\hdashline"), a.consumeSpaces(), t = a.fetch().text; + return e; +} +var Ir = (a) => { + var e = a.parser.settings; + if (!e.displayMode) + throw new Y("{" + a.envName + "} can be used only in display mode."); +}; +function qa(a) { + if (a.indexOf("ed") === -1) + return a.indexOf("*") === -1; +} +function at(a, e, t) { + var { + hskipBeforeAndAfter: r, + addJot: n, + cols: i, + arraystretch: l, + colSeparationType: o, + autoTag: u, + singleRow: h, + emptySingleRow: f, + maxNumCols: p, + leqno: v + } = e; + if (a.gullet.beginGroup(), h || a.gullet.macros.set("\\cr", "\\\\\\relax"), !l) { + var w = a.gullet.expandMacroAsText("\\arraystretch"); + if (w == null) + l = 1; + else if (l = parseFloat(w), !l || l < 0) + throw new Y("Invalid \\arraystretch: " + w); + } + a.gullet.beginGroup(); + var E = [], F = [E], _ = [], T = [], D = u != null ? [] : void 0; + function y() { + u && a.gullet.macros.set("\\@eqnsw", "1", !0); + } + function A() { + D && (a.gullet.macros.get("\\df@tag") ? (D.push(a.subparse([new Ea("\\df@tag")])), a.gullet.macros.set("\\df@tag", void 0, !0)) : D.push(!!u && a.gullet.macros.get("\\@eqnsw") === "1")); + } + for (y(), T.push(Hn(a)); ; ) { + var C = a.parseExpression(!1, h ? "\\end" : "\\\\"); + a.gullet.endGroup(), a.gullet.beginGroup(), C = { + type: "ordgroup", + mode: a.mode, + body: C + }, t && (C = { + type: "styling", + mode: a.mode, + style: t, + body: [C] + }), E.push(C); + var M = a.fetch().text; + if (M === "&") { + if (p && E.length === p) { + if (h || o) + throw new Y("Too many tab characters: &", a.nextToken); + a.settings.reportNonstrict("textEnv", "Too few columns specified in the {array} column argument."); + } + a.consume(); + } else if (M === "\\end") { + A(), E.length === 1 && C.type === "styling" && C.body[0].body.length === 0 && (F.length > 1 || !f) && F.pop(), T.length < F.length + 1 && T.push([]); + break; + } else if (M === "\\\\") { + a.consume(); + var B = void 0; + a.gullet.future().text !== " " && (B = a.parseSizeGroup(!0)), _.push(B ? B.value : null), A(), T.push(Hn(a)), E = [], F.push(E), y(); + } else + throw new Y("Expected & or \\\\ or \\cr or \\end", a.nextToken); + } + return a.gullet.endGroup(), a.gullet.endGroup(), { + type: "array", + mode: a.mode, + addJot: n, + arraystretch: l, + body: F, + cols: i, + rowGaps: _, + hskipBeforeAndAfter: r, + hLinesBeforeRow: T, + colSeparationType: o, + tags: D, + leqno: v + }; +} +function Pa(a) { + return a.slice(0, 1) === "d" ? "display" : "text"; +} +var L0 = function(e, t) { + var r, n, i = e.body.length, l = e.hLinesBeforeRow, o = 0, u = new Array(i), h = [], f = Math.max( + // From LaTeX \showthe\arrayrulewidth. Equals 0.04 em. + t.fontMetrics().arrayRuleWidth, + t.minRuleThickness + // User override. + ), p = 1 / t.fontMetrics().ptPerEm, v = 5 * p; + if (e.colSeparationType && e.colSeparationType === "small") { + var w = t.havingStyle(K.SCRIPT).sizeMultiplier; + v = 0.2778 * (w / t.sizeMultiplier); + } + var E = e.colSeparationType === "CD" ? pe({ + number: 3, + unit: "ex" + }, t) : 12 * p, F = 3 * p, _ = e.arraystretch * E, T = 0.7 * _, D = 0.3 * _, y = 0; + function A(q0) { + for (var P0 = 0; P0 < q0.length; ++P0) + P0 > 0 && (y += 0.25), h.push({ + pos: y, + isDashed: q0[P0] + }); + } + for (A(l[0]), r = 0; r < e.body.length; ++r) { + var C = e.body[r], M = T, B = D; + o < C.length && (o = C.length); + var H = new Array(C.length); + for (n = 0; n < C.length; ++n) { + var N = ne(C[n], t); + B < N.depth && (B = N.depth), M < N.height && (M = N.height), H[n] = N; + } + var I = e.rowGaps[r], Z = 0; + I && (Z = pe(I, t), Z > 0 && (Z += D, B < Z && (B = Z), Z = 0)), e.addJot && (B += F), H.height = M, H.depth = B, y += M, H.pos = y, y += B + Z, u[r] = H, A(l[r + 1]); + } + var ee = y / 2 + t.fontMetrics().axisHeight, Te = e.cols || [], ie = [], ye, we, Ge = []; + if (e.tags && e.tags.some((q0) => q0)) + for (r = 0; r < i; ++r) { + var se = u[r], _e = se.pos - ee, ke = e.tags[r], te = void 0; + ke === !0 ? te = S.makeSpan(["eqn-num"], [], t) : ke === !1 ? te = S.makeSpan([], [], t) : te = S.makeSpan([], Re(ke, t, !0), t), te.depth = se.depth, te.height = se.height, Ge.push({ + type: "elem", + elem: te, + shift: _e + }); + } + for ( + n = 0, we = 0; + // Continue while either there are more columns or more column + // descriptions, so trailing separators don't get lost. + n < o || we < Te.length; + ++n, ++we + ) { + for (var le = Te[we] || {}, oe = !0; le.type === "separator"; ) { + if (oe || (ye = S.makeSpan(["arraycolsep"], []), ye.style.width = q(t.fontMetrics().doubleRuleSep), ie.push(ye)), le.separator === "|" || le.separator === ":") { + var Ce = le.separator === "|" ? "solid" : "dashed", O = S.makeSpan(["vertical-separator"], [], t); + O.style.height = q(y), O.style.borderRightWidth = q(f), O.style.borderRightStyle = Ce, O.style.margin = "0 " + q(-f / 2); + var Ie = y - ee; + Ie && (O.style.verticalAlign = q(-Ie)), ie.push(O); + } else + throw new Y("Invalid separator type: " + le.separator); + we++, le = Te[we] || {}, oe = !1; + } + if (!(n >= o)) { + var Ae = void 0; + (n > 0 || e.hskipBeforeAndAfter) && (Ae = X.deflt(le.pregap, v), Ae !== 0 && (ye = S.makeSpan(["arraycolsep"], []), ye.style.width = q(Ae), ie.push(ye))); + var Se = []; + for (r = 0; r < i; ++r) { + var Ke = u[r], Me = Ke[n]; + if (Me) { + var We = Ke.pos - ee; + Me.depth = Ke.depth, Me.height = Ke.height, Se.push({ + type: "elem", + elem: Me, + shift: We + }); + } + } + Se = S.makeVList({ + positionType: "individualShift", + children: Se + }, t), Se = S.makeSpan(["col-align-" + (le.align || "c")], [Se]), ie.push(Se), (n < o - 1 || e.hskipBeforeAndAfter) && (Ae = X.deflt(le.postgap, v), Ae !== 0 && (ye = S.makeSpan(["arraycolsep"], []), ye.style.width = q(Ae), ie.push(ye))); + } + } + if (u = S.makeSpan(["mtable"], ie), h.length > 0) { + for (var r0 = S.makeLineSpan("hline", t, f), f0 = S.makeLineSpan("hdashline", t, f), Le = [{ + type: "elem", + elem: u, + shift: 0 + }]; h.length > 0; ) { + var Ye = h.pop(), x0 = Ye.pos - ee; + Ye.isDashed ? Le.push({ + type: "elem", + elem: f0, + shift: x0 + }) : Le.push({ + type: "elem", + elem: r0, + shift: x0 + }); + } + u = S.makeVList({ + positionType: "individualShift", + children: Le + }, t); + } + if (Ge.length === 0) + return S.makeSpan(["mord"], [u], t); + var A0 = S.makeVList({ + positionType: "individualShift", + children: Ge + }, t); + return A0 = S.makeSpan(["tag"], [A0], t), S.makeFragment([u, A0]); +}, So = { + c: "center ", + l: "left ", + r: "right " +}, O0 = function(e, t) { + for (var r = [], n = new R.MathNode("mtd", [], ["mtr-glue"]), i = new R.MathNode("mtd", [], ["mml-eqn-num"]), l = 0; l < e.body.length; l++) { + for (var o = e.body[l], u = [], h = 0; h < o.length; h++) + u.push(new R.MathNode("mtd", [he(o[h], t)])); + e.tags && e.tags[l] && (u.unshift(n), u.push(n), e.leqno ? u.unshift(i) : u.push(i)), r.push(new R.MathNode("mtr", u)); + } + var f = new R.MathNode("mtable", r), p = e.arraystretch === 0.5 ? 0.1 : 0.16 + e.arraystretch - 1 + (e.addJot ? 0.09 : 0); + f.setAttribute("rowspacing", q(p)); + var v = "", w = ""; + if (e.cols && e.cols.length > 0) { + var E = e.cols, F = "", _ = !1, T = 0, D = E.length; + E[0].type === "separator" && (v += "top ", T = 1), E[E.length - 1].type === "separator" && (v += "bottom ", D -= 1); + for (var y = T; y < D; y++) + E[y].type === "align" ? (w += So[E[y].align], _ && (F += "none "), _ = !0) : E[y].type === "separator" && _ && (F += E[y].separator === "|" ? "solid " : "dashed ", _ = !1); + f.setAttribute("columnalign", w.trim()), /[sd]/.test(F) && f.setAttribute("columnlines", F.trim()); + } + if (e.colSeparationType === "align") { + for (var A = e.cols || [], C = "", M = 1; M < A.length; M++) + C += M % 2 ? "0em " : "1em "; + f.setAttribute("columnspacing", C.trim()); + } else e.colSeparationType === "alignat" || e.colSeparationType === "gather" ? f.setAttribute("columnspacing", "0em") : e.colSeparationType === "small" ? f.setAttribute("columnspacing", "0.2778em") : e.colSeparationType === "CD" ? f.setAttribute("columnspacing", "0.5em") : f.setAttribute("columnspacing", "1em"); + var B = "", H = e.hLinesBeforeRow; + v += H[0].length > 0 ? "left " : "", v += H[H.length - 1].length > 0 ? "right " : ""; + for (var N = 1; N < H.length - 1; N++) + B += H[N].length === 0 ? "none " : H[N][0] ? "dashed " : "solid "; + return /[sd]/.test(B) && f.setAttribute("rowlines", B.trim()), v !== "" && (f = new R.MathNode("menclose", [f]), f.setAttribute("notation", v.trim())), e.arraystretch && e.arraystretch < 1 && (f = new R.MathNode("mstyle", [f]), f.setAttribute("scriptlevel", "1")), f; +}, El = function(e, t) { + e.envName.indexOf("ed") === -1 && Ir(e); + var r = [], n = e.envName.indexOf("at") > -1 ? "alignat" : "align", i = e.envName === "split", l = at(e.parser, { + cols: r, + addJot: !0, + autoTag: i ? void 0 : qa(e.envName), + emptySingleRow: !0, + colSeparationType: n, + maxNumCols: i ? 2 : void 0, + leqno: e.parser.settings.leqno + }, "display"), o, u = 0, h = { + type: "ordgroup", + mode: e.mode, + body: [] + }; + if (t[0] && t[0].type === "ordgroup") { + for (var f = "", p = 0; p < t[0].body.length; p++) { + var v = $(t[0].body[p], "textord"); + f += v.text; + } + o = Number(f), u = o * 2; + } + var w = !u; + l.body.forEach(function(T) { + for (var D = 1; D < T.length; D += 2) { + var y = $(T[D], "styling"), A = $(y.body[0], "ordgroup"); + A.body.unshift(h); + } + if (w) + u < T.length && (u = T.length); + else { + var C = T.length / 2; + if (o < C) + throw new Y("Too many math in a row: " + ("expected " + o + ", but got " + C), T[0]); + } + }); + for (var E = 0; E < u; ++E) { + var F = "r", _ = 0; + E % 2 === 1 ? F = "l" : E > 0 && w && (_ = 1), r[E] = { + type: "align", + align: F, + pregap: _, + postgap: 0 + }; + } + return l.colSeparationType = w ? "align" : "alignat", l; +}; +I0({ + type: "array", + names: ["array", "darray"], + props: { + numArgs: 1 + }, + handler(a, e) { + var t = zr(e[0]), r = t ? [e[0]] : $(e[0], "ordgroup").body, n = r.map(function(l) { + var o = Ra(l), u = o.text; + if ("lcr".indexOf(u) !== -1) + return { + type: "align", + align: u + }; + if (u === "|") + return { + type: "separator", + separator: "|" + }; + if (u === ":") + return { + type: "separator", + separator: ":" + }; + throw new Y("Unknown column alignment: " + u, l); + }), i = { + cols: n, + hskipBeforeAndAfter: !0, + // \@preamble in lttab.dtx + maxNumCols: n.length + }; + return at(a.parser, i, Pa(a.envName)); + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix", "Vmatrix", "matrix*", "pmatrix*", "bmatrix*", "Bmatrix*", "vmatrix*", "Vmatrix*"], + props: { + numArgs: 0 + }, + handler(a) { + var e = { + matrix: null, + pmatrix: ["(", ")"], + bmatrix: ["[", "]"], + Bmatrix: ["\\{", "\\}"], + vmatrix: ["|", "|"], + Vmatrix: ["\\Vert", "\\Vert"] + }[a.envName.replace("*", "")], t = "c", r = { + hskipBeforeAndAfter: !1, + cols: [{ + type: "align", + align: t + }] + }; + if (a.envName.charAt(a.envName.length - 1) === "*") { + var n = a.parser; + if (n.consumeSpaces(), n.fetch().text === "[") { + if (n.consume(), n.consumeSpaces(), t = n.fetch().text, "lcr".indexOf(t) === -1) + throw new Y("Expected l or c or r", n.nextToken); + n.consume(), n.consumeSpaces(), n.expect("]"), n.consume(), r.cols = [{ + type: "align", + align: t + }]; + } + } + var i = at(a.parser, r, Pa(a.envName)), l = Math.max(0, ...i.body.map((o) => o.length)); + return i.cols = new Array(l).fill({ + type: "align", + align: t + }), e ? { + type: "leftright", + mode: a.mode, + body: [i], + left: e[0], + right: e[1], + rightColor: void 0 + // \right uninfluenced by \color in array + } : i; + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["smallmatrix"], + props: { + numArgs: 0 + }, + handler(a) { + var e = { + arraystretch: 0.5 + }, t = at(a.parser, e, "script"); + return t.colSeparationType = "small", t; + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["subarray"], + props: { + numArgs: 1 + }, + handler(a, e) { + var t = zr(e[0]), r = t ? [e[0]] : $(e[0], "ordgroup").body, n = r.map(function(l) { + var o = Ra(l), u = o.text; + if ("lc".indexOf(u) !== -1) + return { + type: "align", + align: u + }; + throw new Y("Unknown column alignment: " + u, l); + }); + if (n.length > 1) + throw new Y("{subarray} can contain only one column"); + var i = { + cols: n, + hskipBeforeAndAfter: !1, + arraystretch: 0.5 + }; + if (i = at(a.parser, i, "script"), i.body.length > 0 && i.body[0].length > 1) + throw new Y("{subarray} can contain only one column"); + return i; + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["cases", "dcases", "rcases", "drcases"], + props: { + numArgs: 0 + }, + handler(a) { + var e = { + arraystretch: 1.2, + cols: [{ + type: "align", + align: "l", + pregap: 0, + // TODO(kevinb) get the current style. + // For now we use the metrics for TEXT style which is what we were + // doing before. Before attempting to get the current style we + // should look at TeX's behavior especially for \over and matrices. + postgap: 1 + /* 1em quad */ + }, { + type: "align", + align: "l", + pregap: 0, + postgap: 0 + }] + }, t = at(a.parser, e, Pa(a.envName)); + return { + type: "leftright", + mode: a.mode, + body: [t], + left: a.envName.indexOf("r") > -1 ? "." : "\\{", + right: a.envName.indexOf("r") > -1 ? "\\}" : ".", + rightColor: void 0 + }; + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["align", "align*", "aligned", "split"], + props: { + numArgs: 0 + }, + handler: El, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["gathered", "gather", "gather*"], + props: { + numArgs: 0 + }, + handler(a) { + X.contains(["gather", "gather*"], a.envName) && Ir(a); + var e = { + cols: [{ + type: "align", + align: "c" + }], + addJot: !0, + colSeparationType: "gather", + autoTag: qa(a.envName), + emptySingleRow: !0, + leqno: a.parser.settings.leqno + }; + return at(a.parser, e, "display"); + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["alignat", "alignat*", "alignedat"], + props: { + numArgs: 1 + }, + handler: El, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["equation", "equation*"], + props: { + numArgs: 0 + }, + handler(a) { + Ir(a); + var e = { + autoTag: qa(a.envName), + emptySingleRow: !0, + singleRow: !0, + maxNumCols: 1, + leqno: a.parser.settings.leqno + }; + return at(a.parser, e, "display"); + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +I0({ + type: "array", + names: ["CD"], + props: { + numArgs: 0 + }, + handler(a) { + return Ir(a), ho(a.parser); + }, + htmlBuilder: L0, + mathmlBuilder: O0 +}); +d("\\nonumber", "\\gdef\\@eqnsw{0}"); +d("\\notag", "\\nonumber"); +P({ + type: "text", + // Doesn't matter what this is. + names: ["\\hline", "\\hdashline"], + props: { + numArgs: 0, + allowedInText: !0, + allowedInMath: !0 + }, + handler(a, e) { + throw new Y(a.funcName + " valid only within array environment"); + } +}); +var Un = Sl; +P({ + type: "environment", + names: ["\\begin", "\\end"], + props: { + numArgs: 1, + argTypes: ["text"] + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a, n = e[0]; + if (n.type !== "ordgroup") + throw new Y("Invalid environment name", n); + for (var i = "", l = 0; l < n.body.length; ++l) + i += $(n.body[l], "textord").text; + if (r === "\\begin") { + if (!Un.hasOwnProperty(i)) + throw new Y("No such environment: " + i, n); + var o = Un[i], { + args: u, + optArgs: h + } = t.parseArguments("\\begin{" + i + "}", o), f = { + mode: t.mode, + envName: i, + parser: t + }, p = o.handler(f, u, h); + t.expect("\\end", !1); + var v = t.nextToken, w = $(t.parseFunction(), "environment"); + if (w.name !== i) + throw new Y("Mismatch: \\begin{" + i + "} matched by \\end{" + w.name + "}", v); + return p; + } + return { + type: "environment", + mode: t.mode, + name: i, + nameGroup: n + }; + } +}); +var Tl = (a, e) => { + var t = a.font, r = e.withFont(t); + return ne(a.body, r); +}, Cl = (a, e) => { + var t = a.font, r = e.withFont(t); + return he(a.body, r); +}, Vn = { + "\\Bbb": "\\mathbb", + "\\bold": "\\mathbf", + "\\frak": "\\mathfrak", + "\\bm": "\\boldsymbol" +}; +P({ + type: "font", + names: [ + // styles, except \boldsymbol defined below + "\\mathrm", + "\\mathit", + "\\mathbf", + "\\mathnormal", + // families + "\\mathbb", + "\\mathcal", + "\\mathfrak", + "\\mathscr", + "\\mathsf", + "\\mathtt", + // aliases, except \bm defined below + "\\Bbb", + "\\bold", + "\\frak" + ], + props: { + numArgs: 1, + allowedInArgument: !0 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = Fr(e[0]), i = r; + return i in Vn && (i = Vn[i]), { + type: "font", + mode: t.mode, + font: i.slice(1), + body: n + }; + }, + htmlBuilder: Tl, + mathmlBuilder: Cl +}); +P({ + type: "mclass", + names: ["\\boldsymbol", "\\bm"], + props: { + numArgs: 1 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = e[0], n = X.isCharacterBox(r); + return { + type: "mclass", + mode: t.mode, + mclass: Rr(r), + body: [{ + type: "font", + mode: t.mode, + font: "boldsymbol", + body: r + }], + isCharacterBox: n + }; + } +}); +P({ + type: "font", + names: ["\\rm", "\\sf", "\\tt", "\\bf", "\\it", "\\cal"], + props: { + numArgs: 0, + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r, + breakOnTokenText: n + } = a, { + mode: i + } = t, l = t.parseExpression(!0, n), o = "math" + r.slice(1); + return { + type: "font", + mode: i, + font: o, + body: { + type: "ordgroup", + mode: t.mode, + body: l + } + }; + }, + htmlBuilder: Tl, + mathmlBuilder: Cl +}); +var Ml = (a, e) => { + var t = e; + return a === "display" ? t = t.id >= K.SCRIPT.id ? t.text() : K.DISPLAY : a === "text" && t.size === K.DISPLAY.size ? t = K.TEXT : a === "script" ? t = K.SCRIPT : a === "scriptscript" && (t = K.SCRIPTSCRIPT), t; +}, Ha = (a, e) => { + var t = Ml(a.size, e.style), r = t.fracNum(), n = t.fracDen(), i; + i = e.havingStyle(r); + var l = ne(a.numer, i, e); + if (a.continued) { + var o = 8.5 / e.fontMetrics().ptPerEm, u = 3.5 / e.fontMetrics().ptPerEm; + l.height = l.height < o ? o : l.height, l.depth = l.depth < u ? u : l.depth; + } + i = e.havingStyle(n); + var h = ne(a.denom, i, e), f, p, v; + a.hasBarLine ? (a.barSize ? (p = pe(a.barSize, e), f = S.makeLineSpan("frac-line", e, p)) : f = S.makeLineSpan("frac-line", e), p = f.height, v = f.height) : (f = null, p = 0, v = e.fontMetrics().defaultRuleThickness); + var w, E, F; + t.size === K.DISPLAY.size || a.size === "display" ? (w = e.fontMetrics().num1, p > 0 ? E = 3 * v : E = 7 * v, F = e.fontMetrics().denom1) : (p > 0 ? (w = e.fontMetrics().num2, E = v) : (w = e.fontMetrics().num3, E = 3 * v), F = e.fontMetrics().denom2); + var _; + if (f) { + var D = e.fontMetrics().axisHeight; + w - l.depth - (D + 0.5 * p) < E && (w += E - (w - l.depth - (D + 0.5 * p))), D - 0.5 * p - (h.height - F) < E && (F += E - (D - 0.5 * p - (h.height - F))); + var y = -(D - 0.5 * p); + _ = S.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: h, + shift: F + }, { + type: "elem", + elem: f, + shift: y + }, { + type: "elem", + elem: l, + shift: -w + }] + }, e); + } else { + var T = w - l.depth - (h.height - F); + T < E && (w += 0.5 * (E - T), F += 0.5 * (E - T)), _ = S.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: h, + shift: F + }, { + type: "elem", + elem: l, + shift: -w + }] + }, e); + } + i = e.havingStyle(t), _.height *= i.sizeMultiplier / e.sizeMultiplier, _.depth *= i.sizeMultiplier / e.sizeMultiplier; + var A; + t.size === K.DISPLAY.size ? A = e.fontMetrics().delim1 : t.size === K.SCRIPTSCRIPT.size ? A = e.havingStyle(K.SCRIPT).fontMetrics().delim2 : A = e.fontMetrics().delim2; + var C, M; + return a.leftDelim == null ? C = Gt(e, ["mopen"]) : C = j0.customSizedDelim(a.leftDelim, A, !0, e.havingStyle(t), a.mode, ["mopen"]), a.continued ? M = S.makeSpan([]) : a.rightDelim == null ? M = Gt(e, ["mclose"]) : M = j0.customSizedDelim(a.rightDelim, A, !0, e.havingStyle(t), a.mode, ["mclose"]), S.makeSpan(["mord"].concat(i.sizingClasses(e)), [C, S.makeSpan(["mfrac"], [_]), M], e); +}, Ua = (a, e) => { + var t = new R.MathNode("mfrac", [he(a.numer, e), he(a.denom, e)]); + if (!a.hasBarLine) + t.setAttribute("linethickness", "0px"); + else if (a.barSize) { + var r = pe(a.barSize, e); + t.setAttribute("linethickness", q(r)); + } + var n = Ml(a.size, e.style); + if (n.size !== e.style.size) { + t = new R.MathNode("mstyle", [t]); + var i = n.size === K.DISPLAY.size ? "true" : "false"; + t.setAttribute("displaystyle", i), t.setAttribute("scriptlevel", "0"); + } + if (a.leftDelim != null || a.rightDelim != null) { + var l = []; + if (a.leftDelim != null) { + var o = new R.MathNode("mo", [new R.TextNode(a.leftDelim.replace("\\", ""))]); + o.setAttribute("fence", "true"), l.push(o); + } + if (l.push(t), a.rightDelim != null) { + var u = new R.MathNode("mo", [new R.TextNode(a.rightDelim.replace("\\", ""))]); + u.setAttribute("fence", "true"), l.push(u); + } + return Ba(l); + } + return t; +}; +P({ + type: "genfrac", + names: [ + "\\dfrac", + "\\frac", + "\\tfrac", + "\\dbinom", + "\\binom", + "\\tbinom", + "\\\\atopfrac", + // can’t be entered directly + "\\\\bracefrac", + "\\\\brackfrac" + // ditto + ], + props: { + numArgs: 2, + allowedInArgument: !0 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = e[0], i = e[1], l, o = null, u = null, h = "auto"; + switch (r) { + case "\\dfrac": + case "\\frac": + case "\\tfrac": + l = !0; + break; + case "\\\\atopfrac": + l = !1; + break; + case "\\dbinom": + case "\\binom": + case "\\tbinom": + l = !1, o = "(", u = ")"; + break; + case "\\\\bracefrac": + l = !1, o = "\\{", u = "\\}"; + break; + case "\\\\brackfrac": + l = !1, o = "[", u = "]"; + break; + default: + throw new Error("Unrecognized genfrac command"); + } + switch (r) { + case "\\dfrac": + case "\\dbinom": + h = "display"; + break; + case "\\tfrac": + case "\\tbinom": + h = "text"; + break; + } + return { + type: "genfrac", + mode: t.mode, + continued: !1, + numer: n, + denom: i, + hasBarLine: l, + leftDelim: o, + rightDelim: u, + size: h, + barSize: null + }; + }, + htmlBuilder: Ha, + mathmlBuilder: Ua +}); +P({ + type: "genfrac", + names: ["\\cfrac"], + props: { + numArgs: 2 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = e[0], i = e[1]; + return { + type: "genfrac", + mode: t.mode, + continued: !0, + numer: n, + denom: i, + hasBarLine: !0, + leftDelim: null, + rightDelim: null, + size: "display", + barSize: null + }; + } +}); +P({ + type: "infix", + names: ["\\over", "\\choose", "\\atop", "\\brace", "\\brack"], + props: { + numArgs: 0, + infix: !0 + }, + handler(a) { + var { + parser: e, + funcName: t, + token: r + } = a, n; + switch (t) { + case "\\over": + n = "\\frac"; + break; + case "\\choose": + n = "\\binom"; + break; + case "\\atop": + n = "\\\\atopfrac"; + break; + case "\\brace": + n = "\\\\bracefrac"; + break; + case "\\brack": + n = "\\\\brackfrac"; + break; + default: + throw new Error("Unrecognized infix genfrac command"); + } + return { + type: "infix", + mode: e.mode, + replaceWith: n, + token: r + }; + } +}); +var Gn = ["display", "text", "script", "scriptscript"], Wn = function(e) { + var t = null; + return e.length > 0 && (t = e, t = t === "." ? null : t), t; +}; +P({ + type: "genfrac", + names: ["\\genfrac"], + props: { + numArgs: 6, + allowedInArgument: !0, + argTypes: ["math", "math", "size", "text", "math", "math"] + }, + handler(a, e) { + var { + parser: t + } = a, r = e[4], n = e[5], i = Fr(e[0]), l = i.type === "atom" && i.family === "open" ? Wn(i.text) : null, o = Fr(e[1]), u = o.type === "atom" && o.family === "close" ? Wn(o.text) : null, h = $(e[2], "size"), f, p = null; + h.isBlank ? f = !0 : (p = h.value, f = p.number > 0); + var v = "auto", w = e[3]; + if (w.type === "ordgroup") { + if (w.body.length > 0) { + var E = $(w.body[0], "textord"); + v = Gn[Number(E.text)]; + } + } else + w = $(w, "textord"), v = Gn[Number(w.text)]; + return { + type: "genfrac", + mode: t.mode, + numer: r, + denom: n, + continued: !1, + hasBarLine: f, + barSize: p, + leftDelim: l, + rightDelim: u, + size: v + }; + }, + htmlBuilder: Ha, + mathmlBuilder: Ua +}); +P({ + type: "infix", + names: ["\\above"], + props: { + numArgs: 1, + argTypes: ["size"], + infix: !0 + }, + handler(a, e) { + var { + parser: t, + funcName: r, + token: n + } = a; + return { + type: "infix", + mode: t.mode, + replaceWith: "\\\\abovefrac", + size: $(e[0], "size").value, + token: n + }; + } +}); +P({ + type: "genfrac", + names: ["\\\\abovefrac"], + props: { + numArgs: 3, + argTypes: ["math", "size", "math"] + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = e[0], i = s1($(e[1], "infix").size), l = e[2], o = i.number > 0; + return { + type: "genfrac", + mode: t.mode, + numer: n, + denom: l, + continued: !1, + hasBarLine: o, + barSize: i, + leftDelim: null, + rightDelim: null, + size: "auto" + }; + }, + htmlBuilder: Ha, + mathmlBuilder: Ua +}); +var Bl = (a, e) => { + var t = e.style, r, n; + a.type === "supsub" ? (r = a.sup ? ne(a.sup, e.havingStyle(t.sup()), e) : ne(a.sub, e.havingStyle(t.sub()), e), n = $(a.base, "horizBrace")) : n = $(a, "horizBrace"); + var i = ne(n.base, e.havingBaseStyle(K.DISPLAY)), l = X0.svgSpan(n, e), o; + if (n.isOver ? (o = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: i + }, { + type: "kern", + size: 0.1 + }, { + type: "elem", + elem: l + }] + }, e), o.children[0].children[0].children[1].classes.push("svg-align")) : (o = S.makeVList({ + positionType: "bottom", + positionData: i.depth + 0.1 + l.height, + children: [{ + type: "elem", + elem: l + }, { + type: "kern", + size: 0.1 + }, { + type: "elem", + elem: i + }] + }, e), o.children[0].children[0].children[0].classes.push("svg-align")), r) { + var u = S.makeSpan(["mord", n.isOver ? "mover" : "munder"], [o], e); + n.isOver ? o = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: u + }, { + type: "kern", + size: 0.2 + }, { + type: "elem", + elem: r + }] + }, e) : o = S.makeVList({ + positionType: "bottom", + positionData: u.depth + 0.2 + r.height + r.depth, + children: [{ + type: "elem", + elem: r + }, { + type: "kern", + size: 0.2 + }, { + type: "elem", + elem: u + }] + }, e); + } + return S.makeSpan(["mord", n.isOver ? "mover" : "munder"], [o], e); +}, Eo = (a, e) => { + var t = X0.mathMLnode(a.label); + return new R.MathNode(a.isOver ? "mover" : "munder", [he(a.base, e), t]); +}; +P({ + type: "horizBrace", + names: ["\\overbrace", "\\underbrace"], + props: { + numArgs: 1 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a; + return { + type: "horizBrace", + mode: t.mode, + label: r, + isOver: /^\\over/.test(r), + base: e[0] + }; + }, + htmlBuilder: Bl, + mathmlBuilder: Eo +}); +P({ + type: "href", + names: ["\\href"], + props: { + numArgs: 2, + argTypes: ["url", "original"], + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = e[1], n = $(e[0], "url").url; + return t.settings.isTrusted({ + command: "\\href", + url: n + }) ? { + type: "href", + mode: t.mode, + href: n, + body: De(r) + } : t.formatUnsupportedCmd("\\href"); + }, + htmlBuilder: (a, e) => { + var t = Re(a.body, e, !1); + return S.makeAnchor(a.href, [], t, e); + }, + mathmlBuilder: (a, e) => { + var t = rt(a.body, e); + return t instanceof w0 || (t = new w0("mrow", [t])), t.setAttribute("href", a.href), t; + } +}); +P({ + type: "href", + names: ["\\url"], + props: { + numArgs: 1, + argTypes: ["url"], + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = $(e[0], "url").url; + if (!t.settings.isTrusted({ + command: "\\url", + url: r + })) + return t.formatUnsupportedCmd("\\url"); + for (var n = [], i = 0; i < r.length; i++) { + var l = r[i]; + l === "~" && (l = "\\textasciitilde"), n.push({ + type: "textord", + mode: "text", + text: l + }); + } + var o = { + type: "text", + mode: t.mode, + font: "\\texttt", + body: n + }; + return { + type: "href", + mode: t.mode, + href: r, + body: De(o) + }; + } +}); +P({ + type: "hbox", + names: ["\\hbox"], + props: { + numArgs: 1, + argTypes: ["text"], + allowedInText: !0, + primitive: !0 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "hbox", + mode: t.mode, + body: De(e[0]) + }; + }, + htmlBuilder(a, e) { + var t = Re(a.body, e, !1); + return S.makeFragment(t); + }, + mathmlBuilder(a, e) { + return new R.MathNode("mrow", t0(a.body, e)); + } +}); +P({ + type: "html", + names: ["\\htmlClass", "\\htmlId", "\\htmlStyle", "\\htmlData"], + props: { + numArgs: 2, + argTypes: ["raw", "original"], + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r, + token: n + } = a, i = $(e[0], "raw").string, l = e[1]; + t.settings.strict && t.settings.reportNonstrict("htmlExtension", "HTML extension is disabled on strict mode"); + var o, u = {}; + switch (r) { + case "\\htmlClass": + u.class = i, o = { + command: "\\htmlClass", + class: i + }; + break; + case "\\htmlId": + u.id = i, o = { + command: "\\htmlId", + id: i + }; + break; + case "\\htmlStyle": + u.style = i, o = { + command: "\\htmlStyle", + style: i + }; + break; + case "\\htmlData": { + for (var h = i.split(","), f = 0; f < h.length; f++) { + var p = h[f].split("="); + if (p.length !== 2) + throw new Y("Error parsing key-value for \\htmlData"); + u["data-" + p[0].trim()] = p[1].trim(); + } + o = { + command: "\\htmlData", + attributes: u + }; + break; + } + default: + throw new Error("Unrecognized html command"); + } + return t.settings.isTrusted(o) ? { + type: "html", + mode: t.mode, + attributes: u, + body: De(l) + } : t.formatUnsupportedCmd(r); + }, + htmlBuilder: (a, e) => { + var t = Re(a.body, e, !1), r = ["enclosing"]; + a.attributes.class && r.push(...a.attributes.class.trim().split(/\s+/)); + var n = S.makeSpan(r, t, e); + for (var i in a.attributes) + i !== "class" && a.attributes.hasOwnProperty(i) && n.setAttribute(i, a.attributes[i]); + return n; + }, + mathmlBuilder: (a, e) => rt(a.body, e) +}); +P({ + type: "htmlmathml", + names: ["\\html@mathml"], + props: { + numArgs: 2, + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a; + return { + type: "htmlmathml", + mode: t.mode, + html: De(e[0]), + mathml: De(e[1]) + }; + }, + htmlBuilder: (a, e) => { + var t = Re(a.html, e, !1); + return S.makeFragment(t); + }, + mathmlBuilder: (a, e) => rt(a.mathml, e) +}); +var ea = 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 Y("Invalid size: '" + e + "' in \\includegraphics"); + var r = { + number: +(t[1] + t[2]), + // sign + magnitude, cast to number + unit: t[3] + }; + if (!E1(r)) + throw new Y("Invalid unit: '" + r.unit + "' in \\includegraphics."); + return r; +}; +P({ + type: "includegraphics", + names: ["\\includegraphics"], + props: { + numArgs: 1, + numOptionalArgs: 1, + argTypes: ["raw", "url"], + allowedInText: !1 + }, + handler: (a, e, t) => { + var { + parser: r + } = a, n = { + number: 0, + unit: "em" + }, i = { + number: 0.9, + unit: "em" + }, l = { + number: 0, + unit: "em" + }, o = ""; + if (t[0]) + for (var u = $(t[0], "raw").string, h = u.split(","), f = 0; f < h.length; f++) { + var p = h[f].split("="); + if (p.length === 2) { + var v = p[1].trim(); + switch (p[0].trim()) { + case "alt": + o = v; + break; + case "width": + n = ea(v); + break; + case "height": + i = ea(v); + break; + case "totalheight": + l = ea(v); + break; + default: + throw new Y("Invalid key: '" + p[0] + "' in \\includegraphics."); + } + } + } + var w = $(e[0], "url").url; + return o === "" && (o = w, o = o.replace(/^.*[\\/]/, ""), o = o.substring(0, o.lastIndexOf("."))), r.settings.isTrusted({ + command: "\\includegraphics", + url: w + }) ? { + type: "includegraphics", + mode: r.mode, + alt: o, + width: n, + height: i, + totalheight: l, + src: w + } : r.formatUnsupportedCmd("\\includegraphics"); + }, + htmlBuilder: (a, e) => { + var t = pe(a.height, e), r = 0; + a.totalheight.number > 0 && (r = pe(a.totalheight, e) - t); + var n = 0; + a.width.number > 0 && (n = pe(a.width, e)); + var i = { + height: q(t + r) + }; + n > 0 && (i.width = q(n)), r > 0 && (i.verticalAlign = q(-r)); + var l = new T1(a.src, a.alt, i); + return l.height = t, l.depth = r, l; + }, + mathmlBuilder: (a, e) => { + var t = new R.MathNode("mglyph", []); + t.setAttribute("alt", a.alt); + var r = pe(a.height, e), n = 0; + if (a.totalheight.number > 0 && (n = pe(a.totalheight, e) - r, t.setAttribute("valign", q(-n))), t.setAttribute("height", q(r + n)), a.width.number > 0) { + var i = pe(a.width, e); + t.setAttribute("width", q(i)); + } + return t.setAttribute("src", a.src), t; + } +}); +P({ + type: "kern", + names: ["\\kern", "\\mkern", "\\hskip", "\\mskip"], + props: { + numArgs: 1, + argTypes: ["size"], + primitive: !0, + allowedInText: !0 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a, n = $(e[0], "size"); + if (t.settings.strict) { + var i = r[1] === "m", l = n.value.unit === "mu"; + i ? (l || t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " supports only mu units, " + ("not " + n.value.unit + " units")), t.mode !== "math" && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " works only in math mode")) : l && t.settings.reportNonstrict("mathVsTextUnits", "LaTeX's " + r + " doesn't support mu units"); + } + return { + type: "kern", + mode: t.mode, + dimension: n.value + }; + }, + htmlBuilder(a, e) { + return S.makeGlue(a.dimension, e); + }, + mathmlBuilder(a, e) { + var t = pe(a.dimension, e); + return new R.SpaceNode(t); + } +}); +P({ + type: "lap", + names: ["\\mathllap", "\\mathrlap", "\\mathclap"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = e[0]; + return { + type: "lap", + mode: t.mode, + alignment: r.slice(5), + body: n + }; + }, + htmlBuilder: (a, e) => { + var t; + a.alignment === "clap" ? (t = S.makeSpan([], [ne(a.body, e)]), t = S.makeSpan(["inner"], [t], e)) : t = S.makeSpan(["inner"], [ne(a.body, e)]); + var r = S.makeSpan(["fix"], []), n = S.makeSpan([a.alignment], [t, r], e), i = S.makeSpan(["strut"]); + return i.style.height = q(n.height + n.depth), n.depth && (i.style.verticalAlign = q(-n.depth)), n.children.unshift(i), n = S.makeSpan(["thinbox"], [n], e), S.makeSpan(["mord", "vbox"], [n], e); + }, + mathmlBuilder: (a, e) => { + var t = new R.MathNode("mpadded", [he(a.body, e)]); + if (a.alignment !== "rlap") { + var r = a.alignment === "llap" ? "-1" : "-0.5"; + t.setAttribute("lspace", r + "width"); + } + return t.setAttribute("width", "0px"), t; + } +}); +P({ + type: "styling", + names: ["\\(", "$"], + props: { + numArgs: 0, + allowedInText: !0, + allowedInMath: !1 + }, + handler(a, e) { + var { + funcName: t, + parser: r + } = a, n = r.mode; + r.switchMode("math"); + var i = t === "\\(" ? "\\)" : "$", l = r.parseExpression(!1, i); + return r.expect(i), r.switchMode(n), { + type: "styling", + mode: r.mode, + style: "text", + body: l + }; + } +}); +P({ + type: "text", + // Doesn't matter what this is. + names: ["\\)", "\\]"], + props: { + numArgs: 0, + allowedInText: !0, + allowedInMath: !1 + }, + handler(a, e) { + throw new Y("Mismatched " + a.funcName); + } +}); +var Yn = (a, e) => { + switch (e.style.size) { + case K.DISPLAY.size: + return a.display; + case K.TEXT.size: + return a.text; + case K.SCRIPT.size: + return a.script; + case K.SCRIPTSCRIPT.size: + return a.scriptscript; + default: + return a.text; + } +}; +P({ + type: "mathchoice", + names: ["\\mathchoice"], + props: { + numArgs: 4, + primitive: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a; + return { + type: "mathchoice", + mode: t.mode, + display: De(e[0]), + text: De(e[1]), + script: De(e[2]), + scriptscript: De(e[3]) + }; + }, + htmlBuilder: (a, e) => { + var t = Yn(a, e), r = Re(t, e, !1); + return S.makeFragment(r); + }, + mathmlBuilder: (a, e) => { + var t = Yn(a, e); + return rt(t, e); + } +}); +var zl = (a, e, t, r, n, i, l) => { + a = S.makeSpan([], [a]); + var o = t && X.isCharacterBox(t), u, h; + if (e) { + var f = ne(e, r.havingStyle(n.sup()), r); + h = { + elem: f, + kern: Math.max(r.fontMetrics().bigOpSpacing1, r.fontMetrics().bigOpSpacing3 - f.depth) + }; + } + if (t) { + var p = ne(t, r.havingStyle(n.sub()), r); + u = { + elem: p, + kern: Math.max(r.fontMetrics().bigOpSpacing2, r.fontMetrics().bigOpSpacing4 - p.height) + }; + } + var v; + if (h && u) { + var w = r.fontMetrics().bigOpSpacing5 + u.elem.height + u.elem.depth + u.kern + a.depth + l; + v = S.makeVList({ + positionType: "bottom", + positionData: w, + children: [{ + type: "kern", + size: r.fontMetrics().bigOpSpacing5 + }, { + type: "elem", + elem: u.elem, + marginLeft: q(-i) + }, { + type: "kern", + size: u.kern + }, { + type: "elem", + elem: a + }, { + type: "kern", + size: h.kern + }, { + type: "elem", + elem: h.elem, + marginLeft: q(i) + }, { + type: "kern", + size: r.fontMetrics().bigOpSpacing5 + }] + }, r); + } else if (u) { + var E = a.height - l; + v = S.makeVList({ + positionType: "top", + positionData: E, + children: [{ + type: "kern", + size: r.fontMetrics().bigOpSpacing5 + }, { + type: "elem", + elem: u.elem, + marginLeft: q(-i) + }, { + type: "kern", + size: u.kern + }, { + type: "elem", + elem: a + }] + }, r); + } else if (h) { + var F = a.depth + l; + v = S.makeVList({ + positionType: "bottom", + positionData: F, + children: [{ + type: "elem", + elem: a + }, { + type: "kern", + size: h.kern + }, { + type: "elem", + elem: h.elem, + marginLeft: q(i) + }, { + type: "kern", + size: r.fontMetrics().bigOpSpacing5 + }] + }, r); + } else + return a; + var _ = [v]; + if (u && i !== 0 && !o) { + var T = S.makeSpan(["mspace"], [], r); + T.style.marginRight = q(i), _.unshift(T); + } + return S.makeSpan(["mop", "op-limits"], _, r); +}, Rl = ["\\smallint"], Ft = (a, e) => { + var t, r, n = !1, i; + a.type === "supsub" ? (t = a.sup, r = a.sub, i = $(a.base, "op"), n = !0) : i = $(a, "op"); + var l = e.style, o = !1; + l.size === K.DISPLAY.size && i.symbol && !X.contains(Rl, i.name) && (o = !0); + var u; + if (i.symbol) { + var h = o ? "Size2-Regular" : "Size1-Regular", f = ""; + if ((i.name === "\\oiint" || i.name === "\\oiiint") && (f = i.name.slice(1), i.name = f === "oiint" ? "\\iint" : "\\iiint"), u = S.makeSymbol(i.name, h, "math", e, ["mop", "op-symbol", o ? "large-op" : "small-op"]), f.length > 0) { + var p = u.italic, v = S.staticSvg(f + "Size" + (o ? "2" : "1"), e); + u = S.makeVList({ + positionType: "individualShift", + children: [{ + type: "elem", + elem: u, + shift: 0 + }, { + type: "elem", + elem: v, + shift: o ? 0.08 : 0 + }] + }, e), i.name = "\\" + f, u.classes.unshift("mop"), u.italic = p; + } + } else if (i.body) { + var w = Re(i.body, e, !0); + w.length === 1 && w[0] instanceof N0 ? (u = w[0], u.classes[0] = "mop") : u = S.makeSpan(["mop"], w, e); + } else { + for (var E = [], F = 1; F < i.name.length; F++) + E.push(S.mathsym(i.name[F], i.mode, e)); + u = S.makeSpan(["mop"], E, e); + } + var _ = 0, T = 0; + return (u instanceof N0 || i.name === "\\oiint" || i.name === "\\oiiint") && !i.suppressBaseShift && (_ = (u.height - u.depth) / 2 - e.fontMetrics().axisHeight, T = u.italic), n ? zl(u, t, r, e, l, T, _) : (_ && (u.style.position = "relative", u.style.top = q(_)), u); +}, Yt = (a, e) => { + var t; + if (a.symbol) + t = new w0("mo", [u0(a.name, a.mode)]), X.contains(Rl, a.name) && t.setAttribute("largeop", "false"); + else if (a.body) + t = new w0("mo", t0(a.body, e)); + else { + t = new w0("mi", [new Ot(a.name.slice(1))]); + var r = new w0("mo", [u0("⁡", "text")]); + a.parentIsSupSub ? t = new w0("mrow", [t, r]) : t = hl([t, r]); + } + return t; +}, To = { + "∏": "\\prod", + "∐": "\\coprod", + "∑": "\\sum", + "⋀": "\\bigwedge", + "⋁": "\\bigvee", + "⋂": "\\bigcap", + "⋃": "\\bigcup", + "⨀": "\\bigodot", + "⨁": "\\bigoplus", + "⨂": "\\bigotimes", + "⨄": "\\biguplus", + "⨆": "\\bigsqcup" +}; +P({ + type: "op", + names: ["\\coprod", "\\bigvee", "\\bigwedge", "\\biguplus", "\\bigcap", "\\bigcup", "\\intop", "\\prod", "\\sum", "\\bigotimes", "\\bigoplus", "\\bigodot", "\\bigsqcup", "\\smallint", "∏", "∐", "∑", "⋀", "⋁", "⋂", "⋃", "⨀", "⨁", "⨂", "⨄", "⨆"], + props: { + numArgs: 0 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = r; + return n.length === 1 && (n = To[n]), { + type: "op", + mode: t.mode, + limits: !0, + parentIsSupSub: !1, + symbol: !0, + name: n + }; + }, + htmlBuilder: Ft, + mathmlBuilder: Yt +}); +P({ + type: "op", + names: ["\\mathop"], + props: { + numArgs: 1, + primitive: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = e[0]; + return { + type: "op", + mode: t.mode, + limits: !1, + parentIsSupSub: !1, + symbol: !1, + body: De(r) + }; + }, + htmlBuilder: Ft, + mathmlBuilder: Yt +}); +var Co = { + "∫": "\\int", + "∬": "\\iint", + "∭": "\\iiint", + "∮": "\\oint", + "∯": "\\oiint", + "∰": "\\oiiint" +}; +P({ + type: "op", + names: ["\\arcsin", "\\arccos", "\\arctan", "\\arctg", "\\arcctg", "\\arg", "\\ch", "\\cos", "\\cosec", "\\cosh", "\\cot", "\\cotg", "\\coth", "\\csc", "\\ctg", "\\cth", "\\deg", "\\dim", "\\exp", "\\hom", "\\ker", "\\lg", "\\ln", "\\log", "\\sec", "\\sin", "\\sinh", "\\sh", "\\tan", "\\tanh", "\\tg", "\\th"], + props: { + numArgs: 0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a; + return { + type: "op", + mode: e.mode, + limits: !1, + parentIsSupSub: !1, + symbol: !1, + name: t + }; + }, + htmlBuilder: Ft, + mathmlBuilder: Yt +}); +P({ + type: "op", + names: ["\\det", "\\gcd", "\\inf", "\\lim", "\\max", "\\min", "\\Pr", "\\sup"], + props: { + numArgs: 0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a; + return { + type: "op", + mode: e.mode, + limits: !0, + parentIsSupSub: !1, + symbol: !1, + name: t + }; + }, + htmlBuilder: Ft, + mathmlBuilder: Yt +}); +P({ + type: "op", + names: ["\\int", "\\iint", "\\iiint", "\\oint", "\\oiint", "\\oiiint", "∫", "∬", "∭", "∮", "∯", "∰"], + props: { + numArgs: 0 + }, + handler(a) { + var { + parser: e, + funcName: t + } = a, r = t; + return r.length === 1 && (r = Co[r]), { + type: "op", + mode: e.mode, + limits: !1, + parentIsSupSub: !1, + symbol: !0, + name: r + }; + }, + htmlBuilder: Ft, + mathmlBuilder: Yt +}); +var Nl = (a, e) => { + var t, r, n = !1, i; + a.type === "supsub" ? (t = a.sup, r = a.sub, i = $(a.base, "operatorname"), n = !0) : i = $(a, "operatorname"); + var l; + if (i.body.length > 0) { + for (var o = i.body.map((p) => { + var v = p.text; + return typeof v == "string" ? { + type: "textord", + mode: p.mode, + text: v + } : p; + }), u = Re(o, e.withFont("mathrm"), !0), h = 0; h < u.length; h++) { + var f = u[h]; + f instanceof N0 && (f.text = f.text.replace(/\u2212/, "-").replace(/\u2217/, "*")); + } + l = S.makeSpan(["mop"], u, e); + } else + l = S.makeSpan(["mop"], [], e); + return n ? zl(l, t, r, e, e.style, 0, 0) : l; +}, Mo = (a, e) => { + for (var t = t0(a.body, e.withFont("mathrm")), r = !0, n = 0; n < t.length; n++) { + var i = t[n]; + if (!(i instanceof R.SpaceNode)) if (i instanceof R.MathNode) + switch (i.type) { + case "mi": + case "mn": + case "ms": + case "mspace": + case "mtext": + break; + case "mo": { + var l = i.children[0]; + i.children.length === 1 && l instanceof R.TextNode ? l.text = l.text.replace(/\u2212/, "-").replace(/\u2217/, "*") : r = !1; + break; + } + default: + r = !1; + } + else + r = !1; + } + if (r) { + var o = t.map((f) => f.toText()).join(""); + t = [new R.TextNode(o)]; + } + var u = new R.MathNode("mi", t); + u.setAttribute("mathvariant", "normal"); + var h = new R.MathNode("mo", [u0("⁡", "text")]); + return a.parentIsSupSub ? new R.MathNode("mrow", [u, h]) : R.newDocumentFragment([u, h]); +}; +P({ + type: "operatorname", + names: ["\\operatorname@", "\\operatornamewithlimits"], + props: { + numArgs: 1 + }, + handler: (a, e) => { + var { + parser: t, + funcName: r + } = a, n = e[0]; + return { + type: "operatorname", + mode: t.mode, + body: De(n), + alwaysHandleSupSub: r === "\\operatornamewithlimits", + limits: !1, + parentIsSupSub: !1 + }; + }, + htmlBuilder: Nl, + mathmlBuilder: Mo +}); +d("\\operatorname", "\\@ifstar\\operatornamewithlimits\\operatorname@"); +ct({ + type: "ordgroup", + htmlBuilder(a, e) { + return a.semisimple ? S.makeFragment(Re(a.body, e, !1)) : S.makeSpan(["mord"], Re(a.body, e, !0), e); + }, + mathmlBuilder(a, e) { + return rt(a.body, e, !0); + } +}); +P({ + type: "overline", + names: ["\\overline"], + props: { + numArgs: 1 + }, + handler(a, e) { + var { + parser: t + } = a, r = e[0]; + return { + type: "overline", + mode: t.mode, + body: r + }; + }, + htmlBuilder(a, e) { + var t = ne(a.body, e.havingCrampedStyle()), r = S.makeLineSpan("overline-line", e), n = e.fontMetrics().defaultRuleThickness, i = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: t + }, { + type: "kern", + size: 3 * n + }, { + type: "elem", + elem: r + }, { + type: "kern", + size: n + }] + }, e); + return S.makeSpan(["mord", "overline"], [i], e); + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mo", [new R.TextNode("‾")]); + t.setAttribute("stretchy", "true"); + var r = new R.MathNode("mover", [he(a.body, e), t]); + return r.setAttribute("accent", "true"), r; + } +}); +P({ + type: "phantom", + names: ["\\phantom"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = e[0]; + return { + type: "phantom", + mode: t.mode, + body: De(r) + }; + }, + htmlBuilder: (a, e) => { + var t = Re(a.body, e.withPhantom(), !1); + return S.makeFragment(t); + }, + mathmlBuilder: (a, e) => { + var t = t0(a.body, e); + return new R.MathNode("mphantom", t); + } +}); +P({ + type: "hphantom", + names: ["\\hphantom"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = e[0]; + return { + type: "hphantom", + mode: t.mode, + body: r + }; + }, + htmlBuilder: (a, e) => { + var t = S.makeSpan([], [ne(a.body, e.withPhantom())]); + if (t.height = 0, t.depth = 0, t.children) + for (var r = 0; r < t.children.length; r++) + t.children[r].height = 0, t.children[r].depth = 0; + return t = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: t + }] + }, e), S.makeSpan(["mord"], [t], e); + }, + mathmlBuilder: (a, e) => { + var t = t0(De(a.body), e), r = new R.MathNode("mphantom", t), n = new R.MathNode("mpadded", [r]); + return n.setAttribute("height", "0px"), n.setAttribute("depth", "0px"), n; + } +}); +P({ + type: "vphantom", + names: ["\\vphantom"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler: (a, e) => { + var { + parser: t + } = a, r = e[0]; + return { + type: "vphantom", + mode: t.mode, + body: r + }; + }, + htmlBuilder: (a, e) => { + var t = S.makeSpan(["inner"], [ne(a.body, e.withPhantom())]), r = S.makeSpan(["fix"], []); + return S.makeSpan(["mord", "rlap"], [t, r], e); + }, + mathmlBuilder: (a, e) => { + var t = t0(De(a.body), e), r = new R.MathNode("mphantom", t), n = new R.MathNode("mpadded", [r]); + return n.setAttribute("width", "0px"), n; + } +}); +P({ + type: "raisebox", + names: ["\\raisebox"], + props: { + numArgs: 2, + argTypes: ["size", "hbox"], + allowedInText: !0 + }, + handler(a, e) { + var { + parser: t + } = a, r = $(e[0], "size").value, n = e[1]; + return { + type: "raisebox", + mode: t.mode, + dy: r, + body: n + }; + }, + htmlBuilder(a, e) { + var t = ne(a.body, e), r = pe(a.dy, e); + return S.makeVList({ + positionType: "shift", + positionData: -r, + children: [{ + type: "elem", + elem: t + }] + }, e); + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mpadded", [he(a.body, e)]), r = a.dy.number + a.dy.unit; + return t.setAttribute("voffset", r), t; + } +}); +P({ + type: "internal", + names: ["\\relax"], + props: { + numArgs: 0, + allowedInText: !0 + }, + handler(a) { + var { + parser: e + } = a; + return { + type: "internal", + mode: e.mode + }; + } +}); +P({ + type: "rule", + names: ["\\rule"], + props: { + numArgs: 2, + numOptionalArgs: 1, + argTypes: ["size", "size", "size"] + }, + handler(a, e, t) { + var { + parser: r + } = a, n = t[0], i = $(e[0], "size"), l = $(e[1], "size"); + return { + type: "rule", + mode: r.mode, + shift: n && $(n, "size").value, + width: i.value, + height: l.value + }; + }, + htmlBuilder(a, e) { + var t = S.makeSpan(["mord", "rule"], [], e), r = pe(a.width, e), n = pe(a.height, e), i = a.shift ? pe(a.shift, e) : 0; + return t.style.borderRightWidth = q(r), t.style.borderTopWidth = q(n), t.style.bottom = q(i), t.width = r, t.height = n + i, t.depth = -i, t.maxFontSize = n * 1.125 * e.sizeMultiplier, t; + }, + mathmlBuilder(a, e) { + var t = pe(a.width, e), r = pe(a.height, e), n = a.shift ? pe(a.shift, e) : 0, i = e.color && e.getColor() || "black", l = new R.MathNode("mspace"); + l.setAttribute("mathbackground", i), l.setAttribute("width", q(t)), l.setAttribute("height", q(r)); + var o = new R.MathNode("mpadded", [l]); + return n >= 0 ? o.setAttribute("height", q(n)) : (o.setAttribute("height", q(n)), o.setAttribute("depth", q(-n))), o.setAttribute("voffset", q(n)), o; + } +}); +function Il(a, e, t) { + for (var r = Re(a, e, !1), n = e.sizeMultiplier / t.sizeMultiplier, i = 0; i < r.length; i++) { + var l = r[i].classes.indexOf("sizing"); + l < 0 ? Array.prototype.push.apply(r[i].classes, e.sizingClasses(t)) : r[i].classes[l + 1] === "reset-size" + e.size && (r[i].classes[l + 1] = "reset-size" + t.size), r[i].height *= n, r[i].depth *= n; + } + return S.makeFragment(r); +} +var jn = ["\\tiny", "\\sixptsize", "\\scriptsize", "\\footnotesize", "\\small", "\\normalsize", "\\large", "\\Large", "\\LARGE", "\\huge", "\\Huge"], Bo = (a, e) => { + var t = e.havingSize(a.size); + return Il(a.body, t, e); +}; +P({ + type: "sizing", + names: jn, + props: { + numArgs: 0, + allowedInText: !0 + }, + handler: (a, e) => { + var { + breakOnTokenText: t, + funcName: r, + parser: n + } = a, i = n.parseExpression(!1, t); + return { + type: "sizing", + mode: n.mode, + // Figure out what size to use based on the list of functions above + size: jn.indexOf(r) + 1, + body: i + }; + }, + htmlBuilder: Bo, + mathmlBuilder: (a, e) => { + var t = e.havingSize(a.size), r = t0(a.body, t), n = new R.MathNode("mstyle", r); + return n.setAttribute("mathsize", q(t.sizeMultiplier)), n; + } +}); +P({ + type: "smash", + names: ["\\smash"], + props: { + numArgs: 1, + numOptionalArgs: 1, + allowedInText: !0 + }, + handler: (a, e, t) => { + var { + parser: r + } = a, n = !1, i = !1, l = t[0] && $(t[0], "ordgroup"); + if (l) + for (var o = "", u = 0; u < l.body.length; ++u) { + var h = l.body[u]; + if (o = h.text, o === "t") + n = !0; + else if (o === "b") + i = !0; + else { + n = !1, i = !1; + break; + } + } + else + n = !0, i = !0; + var f = e[0]; + return { + type: "smash", + mode: r.mode, + body: f, + smashHeight: n, + smashDepth: i + }; + }, + htmlBuilder: (a, e) => { + var t = S.makeSpan([], [ne(a.body, e)]); + if (!a.smashHeight && !a.smashDepth) + return t; + if (a.smashHeight && (t.height = 0, t.children)) + for (var r = 0; r < t.children.length; r++) + t.children[r].height = 0; + if (a.smashDepth && (t.depth = 0, t.children)) + for (var n = 0; n < t.children.length; n++) + t.children[n].depth = 0; + var i = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: t + }] + }, e); + return S.makeSpan(["mord"], [i], e); + }, + mathmlBuilder: (a, e) => { + var t = new R.MathNode("mpadded", [he(a.body, e)]); + return a.smashHeight && t.setAttribute("height", "0px"), a.smashDepth && t.setAttribute("depth", "0px"), t; + } +}); +P({ + type: "sqrt", + names: ["\\sqrt"], + props: { + numArgs: 1, + numOptionalArgs: 1 + }, + handler(a, e, t) { + var { + parser: r + } = a, n = t[0], i = e[0]; + return { + type: "sqrt", + mode: r.mode, + body: i, + index: n + }; + }, + htmlBuilder(a, e) { + var t = ne(a.body, e.havingCrampedStyle()); + t.height === 0 && (t.height = e.fontMetrics().xHeight), t = S.wrapFragment(t, e); + var r = e.fontMetrics(), n = r.defaultRuleThickness, i = n; + e.style.id < K.TEXT.id && (i = e.fontMetrics().xHeight); + var l = n + i / 4, o = t.height + t.depth + l + n, { + span: u, + ruleWidth: h, + advanceWidth: f + } = j0.sqrtImage(o, e), p = u.height - h; + p > t.height + t.depth + l && (l = (l + p - t.height - t.depth) / 2); + var v = u.height - t.height - l - h; + t.style.paddingLeft = q(f); + var w = S.makeVList({ + positionType: "firstBaseline", + children: [{ + type: "elem", + elem: t, + wrapperClasses: ["svg-align"] + }, { + type: "kern", + size: -(t.height + v) + }, { + type: "elem", + elem: u + }, { + type: "kern", + size: h + }] + }, e); + if (a.index) { + var E = e.havingStyle(K.SCRIPTSCRIPT), F = ne(a.index, E, e), _ = 0.6 * (w.height - w.depth), T = S.makeVList({ + positionType: "shift", + positionData: -_, + children: [{ + type: "elem", + elem: F + }] + }, e), D = S.makeSpan(["root"], [T]); + return S.makeSpan(["mord", "sqrt"], [D, w], e); + } else + return S.makeSpan(["mord", "sqrt"], [w], e); + }, + mathmlBuilder(a, e) { + var { + body: t, + index: r + } = a; + return r ? new R.MathNode("mroot", [he(t, e), he(r, e)]) : new R.MathNode("msqrt", [he(t, e)]); + } +}); +var Xn = { + display: K.DISPLAY, + text: K.TEXT, + script: K.SCRIPT, + scriptscript: K.SCRIPTSCRIPT +}; +P({ + type: "styling", + names: ["\\displaystyle", "\\textstyle", "\\scriptstyle", "\\scriptscriptstyle"], + props: { + numArgs: 0, + allowedInText: !0, + primitive: !0 + }, + handler(a, e) { + var { + breakOnTokenText: t, + funcName: r, + parser: n + } = a, i = n.parseExpression(!0, t), l = r.slice(1, r.length - 5); + return { + type: "styling", + mode: n.mode, + // Figure out what style to use by pulling out the style from + // the function name + style: l, + body: i + }; + }, + htmlBuilder(a, e) { + var t = Xn[a.style], r = e.havingStyle(t).withFont(""); + return Il(a.body, r, e); + }, + mathmlBuilder(a, e) { + var t = Xn[a.style], r = e.havingStyle(t), n = t0(a.body, r), i = new R.MathNode("mstyle", n), l = { + display: ["0", "true"], + text: ["0", "false"], + script: ["1", "false"], + scriptscript: ["2", "false"] + }, o = l[a.style]; + return i.setAttribute("scriptlevel", o[0]), i.setAttribute("displaystyle", o[1]), i; + } +}); +var zo = function(e, t) { + var r = e.base; + if (r) + if (r.type === "op") { + var n = r.limits && (t.style.size === K.DISPLAY.size || r.alwaysHandleSupSub); + return n ? Ft : null; + } else if (r.type === "operatorname") { + var i = r.alwaysHandleSupSub && (t.style.size === K.DISPLAY.size || r.limits); + return i ? Nl : null; + } else { + if (r.type === "accent") + return X.isCharacterBox(r.base) ? Na : null; + if (r.type === "horizBrace") { + var l = !e.sub; + return l === r.isOver ? Bl : null; + } else + return null; + } + else return null; +}; +ct({ + type: "supsub", + htmlBuilder(a, e) { + var t = zo(a, e); + if (t) + return t(a, e); + var { + base: r, + sup: n, + sub: i + } = a, l = ne(r, e), o, u, h = e.fontMetrics(), f = 0, p = 0, v = r && X.isCharacterBox(r); + if (n) { + var w = e.havingStyle(e.style.sup()); + o = ne(n, w, e), v || (f = l.height - w.fontMetrics().supDrop * w.sizeMultiplier / e.sizeMultiplier); + } + if (i) { + var E = e.havingStyle(e.style.sub()); + u = ne(i, E, e), v || (p = l.depth + E.fontMetrics().subDrop * E.sizeMultiplier / e.sizeMultiplier); + } + var F; + e.style === K.DISPLAY ? F = h.sup1 : e.style.cramped ? F = h.sup3 : F = h.sup2; + var _ = e.sizeMultiplier, T = q(0.5 / h.ptPerEm / _), D = null; + if (u) { + var y = a.base && a.base.type === "op" && a.base.name && (a.base.name === "\\oiint" || a.base.name === "\\oiiint"); + (l instanceof N0 || y) && (D = q(-l.italic)); + } + var A; + if (o && u) { + f = Math.max(f, F, o.depth + 0.25 * h.xHeight), p = Math.max(p, h.sub2); + var C = h.defaultRuleThickness, M = 4 * C; + if (f - o.depth - (u.height - p) < M) { + p = M - (f - o.depth) + u.height; + var B = 0.8 * h.xHeight - (f - o.depth); + B > 0 && (f += B, p -= B); + } + var H = [{ + type: "elem", + elem: u, + shift: p, + marginRight: T, + marginLeft: D + }, { + type: "elem", + elem: o, + shift: -f, + marginRight: T + }]; + A = S.makeVList({ + positionType: "individualShift", + children: H + }, e); + } else if (u) { + p = Math.max(p, h.sub1, u.height - 0.8 * h.xHeight); + var N = [{ + type: "elem", + elem: u, + marginLeft: D, + marginRight: T + }]; + A = S.makeVList({ + positionType: "shift", + positionData: p, + children: N + }, e); + } else if (o) + f = Math.max(f, F, o.depth + 0.25 * h.xHeight), A = S.makeVList({ + positionType: "shift", + positionData: -f, + children: [{ + type: "elem", + elem: o, + marginRight: T + }] + }, e); + else + throw new Error("supsub must have either sup or sub."); + var I = ha(l, "right") || "mord"; + return S.makeSpan([I], [l, S.makeSpan(["msupsub"], [A])], e); + }, + mathmlBuilder(a, e) { + var t = !1, r, n; + a.base && a.base.type === "horizBrace" && (n = !!a.sup, n === a.base.isOver && (t = !0, r = a.base.isOver)), a.base && (a.base.type === "op" || a.base.type === "operatorname") && (a.base.parentIsSupSub = !0); + var i = [he(a.base, e)]; + a.sub && i.push(he(a.sub, e)), a.sup && i.push(he(a.sup, e)); + var l; + if (t) + l = r ? "mover" : "munder"; + else if (a.sub) + if (a.sup) { + var h = a.base; + h && h.type === "op" && h.limits && e.style === K.DISPLAY || h && h.type === "operatorname" && h.alwaysHandleSupSub && (e.style === K.DISPLAY || h.limits) ? l = "munderover" : l = "msubsup"; + } else { + var u = a.base; + u && u.type === "op" && u.limits && (e.style === K.DISPLAY || u.alwaysHandleSupSub) || u && u.type === "operatorname" && u.alwaysHandleSupSub && (u.limits || e.style === K.DISPLAY) ? l = "munder" : l = "msub"; + } + else { + var o = a.base; + o && o.type === "op" && o.limits && (e.style === K.DISPLAY || o.alwaysHandleSupSub) || o && o.type === "operatorname" && o.alwaysHandleSupSub && (o.limits || e.style === K.DISPLAY) ? l = "mover" : l = "msup"; + } + return new R.MathNode(l, i); + } +}); +ct({ + type: "atom", + htmlBuilder(a, e) { + return S.mathsym(a.text, a.mode, e, ["m" + a.family]); + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mo", [u0(a.text, a.mode)]); + if (a.family === "bin") { + var r = za(a, e); + r === "bold-italic" && t.setAttribute("mathvariant", r); + } else a.family === "punct" ? t.setAttribute("separator", "true") : (a.family === "open" || a.family === "close") && t.setAttribute("stretchy", "false"); + return t; + } +}); +var Ll = { + mi: "italic", + mn: "normal", + mtext: "normal" +}; +ct({ + type: "mathord", + htmlBuilder(a, e) { + return S.makeOrd(a, e, "mathord"); + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mi", [u0(a.text, a.mode, e)]), r = za(a, e) || "italic"; + return r !== Ll[t.type] && t.setAttribute("mathvariant", r), t; + } +}); +ct({ + type: "textord", + htmlBuilder(a, e) { + return S.makeOrd(a, e, "textord"); + }, + mathmlBuilder(a, e) { + var t = u0(a.text, a.mode, e), r = za(a, e) || "normal", n; + return a.mode === "text" ? n = new R.MathNode("mtext", [t]) : /[0-9]/.test(a.text) ? n = new R.MathNode("mn", [t]) : a.text === "\\prime" ? n = new R.MathNode("mo", [t]) : n = new R.MathNode("mi", [t]), r !== Ll[n.type] && n.setAttribute("mathvariant", r), n; + } +}); +var ta = { + "\\nobreak": "nobreak", + "\\allowbreak": "allowbreak" +}, ra = { + " ": {}, + "\\ ": {}, + "~": { + className: "nobreak" + }, + "\\space": {}, + "\\nobreakspace": { + className: "nobreak" + } +}; +ct({ + type: "spacing", + htmlBuilder(a, e) { + if (ra.hasOwnProperty(a.text)) { + var t = ra[a.text].className || ""; + if (a.mode === "text") { + var r = S.makeOrd(a, e, "textord"); + return r.classes.push(t), r; + } else + return S.makeSpan(["mspace", t], [S.mathsym(a.text, a.mode, e)], e); + } else { + if (ta.hasOwnProperty(a.text)) + return S.makeSpan(["mspace", ta[a.text]], [], e); + throw new Y('Unknown type of space "' + a.text + '"'); + } + }, + mathmlBuilder(a, e) { + var t; + if (ra.hasOwnProperty(a.text)) + t = new R.MathNode("mtext", [new R.TextNode(" ")]); + else { + if (ta.hasOwnProperty(a.text)) + return new R.MathNode("mspace"); + throw new Y('Unknown type of space "' + a.text + '"'); + } + return t; + } +}); +var Zn = () => { + var a = new R.MathNode("mtd", []); + return a.setAttribute("width", "50%"), a; +}; +ct({ + type: "tag", + mathmlBuilder(a, e) { + var t = new R.MathNode("mtable", [new R.MathNode("mtr", [Zn(), new R.MathNode("mtd", [rt(a.body, e)]), Zn(), new R.MathNode("mtd", [rt(a.tag, e)])])]); + return t.setAttribute("width", "100%"), t; + } +}); +var Kn = { + "\\text": void 0, + "\\textrm": "textrm", + "\\textsf": "textsf", + "\\texttt": "texttt", + "\\textnormal": "textrm" +}, Qn = { + "\\textbf": "textbf", + "\\textmd": "textmd" +}, Ro = { + "\\textit": "textit", + "\\textup": "textup" +}, Jn = (a, e) => { + var t = a.font; + if (t) { + if (Kn[t]) + return e.withTextFontFamily(Kn[t]); + if (Qn[t]) + return e.withTextFontWeight(Qn[t]); + if (t === "\\emph") + return e.fontShape === "textit" ? e.withTextFontShape("textup") : e.withTextFontShape("textit"); + } else return e; + return e.withTextFontShape(Ro[t]); +}; +P({ + type: "text", + names: [ + // Font families + "\\text", + "\\textrm", + "\\textsf", + "\\texttt", + "\\textnormal", + // Font weights + "\\textbf", + "\\textmd", + // Font Shapes + "\\textit", + "\\textup", + "\\emph" + ], + props: { + numArgs: 1, + argTypes: ["text"], + allowedInArgument: !0, + allowedInText: !0 + }, + handler(a, e) { + var { + parser: t, + funcName: r + } = a, n = e[0]; + return { + type: "text", + mode: t.mode, + body: De(n), + font: r + }; + }, + htmlBuilder(a, e) { + var t = Jn(a, e), r = Re(a.body, t, !0); + return S.makeSpan(["mord", "text"], r, t); + }, + mathmlBuilder(a, e) { + var t = Jn(a, e); + return rt(a.body, t); + } +}); +P({ + type: "underline", + names: ["\\underline"], + props: { + numArgs: 1, + allowedInText: !0 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "underline", + mode: t.mode, + body: e[0] + }; + }, + htmlBuilder(a, e) { + var t = ne(a.body, e), r = S.makeLineSpan("underline-line", e), n = e.fontMetrics().defaultRuleThickness, i = S.makeVList({ + positionType: "top", + positionData: t.height, + children: [{ + type: "kern", + size: n + }, { + type: "elem", + elem: r + }, { + type: "kern", + size: 3 * n + }, { + type: "elem", + elem: t + }] + }, e); + return S.makeSpan(["mord", "underline"], [i], e); + }, + mathmlBuilder(a, e) { + var t = new R.MathNode("mo", [new R.TextNode("‾")]); + t.setAttribute("stretchy", "true"); + var r = new R.MathNode("munder", [he(a.body, e), t]); + return r.setAttribute("accentunder", "true"), r; + } +}); +P({ + type: "vcenter", + names: ["\\vcenter"], + props: { + numArgs: 1, + argTypes: ["original"], + // In LaTeX, \vcenter can act only on a box. + allowedInText: !1 + }, + handler(a, e) { + var { + parser: t + } = a; + return { + type: "vcenter", + mode: t.mode, + body: e[0] + }; + }, + htmlBuilder(a, e) { + var t = ne(a.body, e), r = e.fontMetrics().axisHeight, n = 0.5 * (t.height - r - (t.depth + r)); + return S.makeVList({ + positionType: "shift", + positionData: n, + children: [{ + type: "elem", + elem: t + }] + }, e); + }, + mathmlBuilder(a, e) { + return new R.MathNode("mpadded", [he(a.body, e)], ["vcenter"]); + } +}); +P({ + type: "verb", + names: ["\\verb"], + props: { + numArgs: 0, + allowedInText: !0 + }, + handler(a, e, t) { + throw new Y("\\verb ended by end of line instead of matching delimiter"); + }, + htmlBuilder(a, e) { + for (var t = $n(a), r = [], n = e.havingStyle(e.style.text()), i = 0; i < t.length; i++) { + var l = t[i]; + l === "~" && (l = "\\textasciitilde"), r.push(S.makeSymbol(l, "Typewriter-Regular", a.mode, n, ["mord", "texttt"])); + } + return S.makeSpan(["mord", "text"].concat(n.sizingClasses(e)), S.tryCombineChars(r), n); + }, + mathmlBuilder(a, e) { + var t = new R.TextNode($n(a)), r = new R.MathNode("mtext", [t]); + return r.setAttribute("mathvariant", "monospace"), r; + } +}); +var $n = (a) => a.body.replace(/ /g, a.star ? "␣" : " "), No = ul; +d("\\noexpand", function(a) { + var e = a.popToken(); + return a.isExpandable(e.text) && (e.noexpand = !0, e.treatAsRelax = !0), { + tokens: [e], + numArgs: 0 + }; +}); +d("\\expandafter", function(a) { + var e = a.popToken(); + return a.expandOnce(!0), { + tokens: [e], + numArgs: 0 + }; +}); +d("\\@firstoftwo", function(a) { + var e = a.consumeArgs(2); + return { + tokens: e[0], + numArgs: 0 + }; +}); +d("\\@secondoftwo", function(a) { + var e = a.consumeArgs(2); + return { + tokens: e[1], + numArgs: 0 + }; +}); +d("\\@ifnextchar", function(a) { + var e = a.consumeArgs(3); + a.consumeSpaces(); + var t = a.future(); + return e[0].length === 1 && e[0][0].text === t.text ? { + tokens: e[1], + numArgs: 0 + } : { + tokens: e[2], + numArgs: 0 + }; +}); +d("\\@ifstar", "\\@ifnextchar *{\\@firstoftwo{#1}}"); +d("\\TextOrMath", function(a) { + var e = a.consumeArgs(2); + return a.mode === "text" ? { + tokens: e[0], + numArgs: 0 + } : { + tokens: e[1], + numArgs: 0 + }; +}); +var ei = { + 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 +}; +d("\\char", function(a) { + var e = a.popToken(), t, r = ""; + if (e.text === "'") + t = 8, e = a.popToken(); + else if (e.text === '"') + t = 16, e = a.popToken(); + else if (e.text === "`") + if (e = a.popToken(), e.text[0] === "\\") + r = e.text.charCodeAt(1); + else { + if (e.text === "EOF") + throw new Y("\\char` missing argument"); + r = e.text.charCodeAt(0); + } + else + t = 10; + if (t) { + if (r = ei[e.text], r == null || r >= t) + throw new Y("Invalid base-" + t + " digit " + e.text); + for (var n; (n = ei[a.future().text]) != null && n < t; ) + r *= t, r += n, a.popToken(); + } + return "\\@char{" + r + "}"; +}); +var Va = (a, e, t) => { + var r = a.consumeArg().tokens; + if (r.length !== 1) + throw new Y("\\newcommand's first argument must be a macro name"); + var n = r[0].text, i = a.isDefined(n); + if (i && !e) + throw new Y("\\newcommand{" + n + "} attempting to redefine " + (n + "; use \\renewcommand")); + if (!i && !t) + throw new Y("\\renewcommand{" + n + "} when command " + n + " does not yet exist; use \\newcommand"); + var l = 0; + if (r = a.consumeArg().tokens, r.length === 1 && r[0].text === "[") { + for (var o = "", u = a.expandNextToken(); u.text !== "]" && u.text !== "EOF"; ) + o += u.text, u = a.expandNextToken(); + if (!o.match(/^\s*[0-9]+\s*$/)) + throw new Y("Invalid number of arguments: " + o); + l = parseInt(o), r = a.consumeArg().tokens; + } + return a.macros.set(n, { + tokens: r, + numArgs: l + }), ""; +}; +d("\\newcommand", (a) => Va(a, !1, !0)); +d("\\renewcommand", (a) => Va(a, !0, !1)); +d("\\providecommand", (a) => Va(a, !0, !0)); +d("\\message", (a) => { + var e = a.consumeArgs(1)[0]; + return console.log(e.reverse().map((t) => t.text).join("")), ""; +}); +d("\\errmessage", (a) => { + var e = a.consumeArgs(1)[0]; + return console.error(e.reverse().map((t) => t.text).join("")), ""; +}); +d("\\show", (a) => { + var e = a.popToken(), t = e.text; + return console.log(e, a.macros.get(t), No[t], xe.math[t], xe.text[t]), ""; +}); +d("\\bgroup", "{"); +d("\\egroup", "}"); +d("~", "\\nobreakspace"); +d("\\lq", "`"); +d("\\rq", "'"); +d("\\aa", "\\r a"); +d("\\AA", "\\r A"); +d("\\textcopyright", "\\html@mathml{\\textcircled{c}}{\\char`©}"); +d("\\copyright", "\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"); +d("\\textregistered", "\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"); +d("ℬ", "\\mathscr{B}"); +d("ℰ", "\\mathscr{E}"); +d("ℱ", "\\mathscr{F}"); +d("ℋ", "\\mathscr{H}"); +d("ℐ", "\\mathscr{I}"); +d("ℒ", "\\mathscr{L}"); +d("ℳ", "\\mathscr{M}"); +d("ℛ", "\\mathscr{R}"); +d("ℭ", "\\mathfrak{C}"); +d("ℌ", "\\mathfrak{H}"); +d("ℨ", "\\mathfrak{Z}"); +d("\\Bbbk", "\\Bbb{k}"); +d("·", "\\cdotp"); +d("\\llap", "\\mathllap{\\textrm{#1}}"); +d("\\rlap", "\\mathrlap{\\textrm{#1}}"); +d("\\clap", "\\mathclap{\\textrm{#1}}"); +d("\\mathstrut", "\\vphantom{(}"); +d("\\underbar", "\\underline{\\text{#1}}"); +d("\\not", '\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'); +d("\\neq", "\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"); +d("\\ne", "\\neq"); +d("≠", "\\neq"); +d("\\notin", "\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"); +d("∉", "\\notin"); +d("≘", "\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"); +d("≙", "\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"); +d("≚", "\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"); +d("≛", "\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"); +d("≝", "\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"); +d("≞", "\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"); +d("≟", "\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"); +d("⟂", "\\perp"); +d("‼", "\\mathclose{!\\mkern-0.8mu!}"); +d("∌", "\\notni"); +d("⌜", "\\ulcorner"); +d("⌝", "\\urcorner"); +d("⌞", "\\llcorner"); +d("⌟", "\\lrcorner"); +d("©", "\\copyright"); +d("®", "\\textregistered"); +d("️", "\\textregistered"); +d("\\ulcorner", '\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'); +d("\\urcorner", '\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'); +d("\\llcorner", '\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'); +d("\\lrcorner", '\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'); +d("\\vdots", "\\mathord{\\varvdots\\rule{0pt}{15pt}}"); +d("⋮", "\\vdots"); +d("\\varGamma", "\\mathit{\\Gamma}"); +d("\\varDelta", "\\mathit{\\Delta}"); +d("\\varTheta", "\\mathit{\\Theta}"); +d("\\varLambda", "\\mathit{\\Lambda}"); +d("\\varXi", "\\mathit{\\Xi}"); +d("\\varPi", "\\mathit{\\Pi}"); +d("\\varSigma", "\\mathit{\\Sigma}"); +d("\\varUpsilon", "\\mathit{\\Upsilon}"); +d("\\varPhi", "\\mathit{\\Phi}"); +d("\\varPsi", "\\mathit{\\Psi}"); +d("\\varOmega", "\\mathit{\\Omega}"); +d("\\substack", "\\begin{subarray}{c}#1\\end{subarray}"); +d("\\colon", "\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"); +d("\\boxed", "\\fbox{$\\displaystyle{#1}$}"); +d("\\iff", "\\DOTSB\\;\\Longleftrightarrow\\;"); +d("\\implies", "\\DOTSB\\;\\Longrightarrow\\;"); +d("\\impliedby", "\\DOTSB\\;\\Longleftarrow\\;"); +var ti = { + ",": "\\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" +}; +d("\\dots", function(a) { + var e = "\\dotso", t = a.expandAfterFuture().text; + return t in ti ? e = ti[t] : (t.slice(0, 4) === "\\not" || t in xe.math && X.contains(["bin", "rel"], xe.math[t].group)) && (e = "\\dotsb"), e; +}); +var Ga = { + // \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 +}; +d("\\dotso", function(a) { + var e = a.future().text; + return e in Ga ? "\\ldots\\," : "\\ldots"; +}); +d("\\dotsc", function(a) { + var e = a.future().text; + return e in Ga && e !== "," ? "\\ldots\\," : "\\ldots"; +}); +d("\\cdots", function(a) { + var e = a.future().text; + return e in Ga ? "\\@cdots\\," : "\\@cdots"; +}); +d("\\dotsb", "\\cdots"); +d("\\dotsm", "\\cdots"); +d("\\dotsi", "\\!\\cdots"); +d("\\dotsx", "\\ldots\\,"); +d("\\DOTSI", "\\relax"); +d("\\DOTSB", "\\relax"); +d("\\DOTSX", "\\relax"); +d("\\tmspace", "\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"); +d("\\,", "\\tmspace+{3mu}{.1667em}"); +d("\\thinspace", "\\,"); +d("\\>", "\\mskip{4mu}"); +d("\\:", "\\tmspace+{4mu}{.2222em}"); +d("\\medspace", "\\:"); +d("\\;", "\\tmspace+{5mu}{.2777em}"); +d("\\thickspace", "\\;"); +d("\\!", "\\tmspace-{3mu}{.1667em}"); +d("\\negthinspace", "\\!"); +d("\\negmedspace", "\\tmspace-{4mu}{.2222em}"); +d("\\negthickspace", "\\tmspace-{5mu}{.277em}"); +d("\\enspace", "\\kern.5em "); +d("\\enskip", "\\hskip.5em\\relax"); +d("\\quad", "\\hskip1em\\relax"); +d("\\qquad", "\\hskip2em\\relax"); +d("\\tag", "\\@ifstar\\tag@literal\\tag@paren"); +d("\\tag@paren", "\\tag@literal{({#1})}"); +d("\\tag@literal", (a) => { + if (a.macros.get("\\df@tag")) + throw new Y("Multiple \\tag"); + return "\\gdef\\df@tag{\\text{#1}}"; +}); +d("\\bmod", "\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"); +d("\\pod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"); +d("\\pmod", "\\pod{{\\rm mod}\\mkern6mu#1}"); +d("\\mod", "\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"); +d("\\newline", "\\\\\\relax"); +d("\\TeX", "\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"); +var Ol = q(W0["Main-Regular"][84][1] - 0.7 * W0["Main-Regular"][65][1]); +d("\\LaTeX", "\\textrm{\\html@mathml{" + ("L\\kern-.36em\\raisebox{" + Ol + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{LaTeX}}"); +d("\\KaTeX", "\\textrm{\\html@mathml{" + ("K\\kern-.17em\\raisebox{" + Ol + "}{\\scriptstyle A}") + "\\kern-.15em\\TeX}{KaTeX}}"); +d("\\hspace", "\\@ifstar\\@hspacer\\@hspace"); +d("\\@hspace", "\\hskip #1\\relax"); +d("\\@hspacer", "\\rule{0pt}{0pt}\\hskip #1\\relax"); +d("\\ordinarycolon", ":"); +d("\\vcentcolon", "\\mathrel{\\mathop\\ordinarycolon}"); +d("\\dblcolon", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'); +d("\\coloneqq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'); +d("\\Coloneqq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'); +d("\\coloneq", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'); +d("\\Coloneq", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'); +d("\\eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'); +d("\\Eqqcolon", '\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'); +d("\\eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'); +d("\\Eqcolon", '\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'); +d("\\colonapprox", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'); +d("\\Colonapprox", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'); +d("\\colonsim", '\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'); +d("\\Colonsim", '\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'); +d("∷", "\\dblcolon"); +d("∹", "\\eqcolon"); +d("≔", "\\coloneqq"); +d("≕", "\\eqqcolon"); +d("⩴", "\\Coloneqq"); +d("\\ratio", "\\vcentcolon"); +d("\\coloncolon", "\\dblcolon"); +d("\\colonequals", "\\coloneqq"); +d("\\coloncolonequals", "\\Coloneqq"); +d("\\equalscolon", "\\eqqcolon"); +d("\\equalscoloncolon", "\\Eqqcolon"); +d("\\colonminus", "\\coloneq"); +d("\\coloncolonminus", "\\Coloneq"); +d("\\minuscolon", "\\eqcolon"); +d("\\minuscoloncolon", "\\Eqcolon"); +d("\\coloncolonapprox", "\\Colonapprox"); +d("\\coloncolonsim", "\\Colonsim"); +d("\\simcolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"); +d("\\simcoloncolon", "\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"); +d("\\approxcolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"); +d("\\approxcoloncolon", "\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"); +d("\\notni", "\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"); +d("\\limsup", "\\DOTSB\\operatorname*{lim\\,sup}"); +d("\\liminf", "\\DOTSB\\operatorname*{lim\\,inf}"); +d("\\injlim", "\\DOTSB\\operatorname*{inj\\,lim}"); +d("\\projlim", "\\DOTSB\\operatorname*{proj\\,lim}"); +d("\\varlimsup", "\\DOTSB\\operatorname*{\\overline{lim}}"); +d("\\varliminf", "\\DOTSB\\operatorname*{\\underline{lim}}"); +d("\\varinjlim", "\\DOTSB\\operatorname*{\\underrightarrow{lim}}"); +d("\\varprojlim", "\\DOTSB\\operatorname*{\\underleftarrow{lim}}"); +d("\\gvertneqq", "\\html@mathml{\\@gvertneqq}{≩}"); +d("\\lvertneqq", "\\html@mathml{\\@lvertneqq}{≨}"); +d("\\ngeqq", "\\html@mathml{\\@ngeqq}{≱}"); +d("\\ngeqslant", "\\html@mathml{\\@ngeqslant}{≱}"); +d("\\nleqq", "\\html@mathml{\\@nleqq}{≰}"); +d("\\nleqslant", "\\html@mathml{\\@nleqslant}{≰}"); +d("\\nshortmid", "\\html@mathml{\\@nshortmid}{∤}"); +d("\\nshortparallel", "\\html@mathml{\\@nshortparallel}{∦}"); +d("\\nsubseteqq", "\\html@mathml{\\@nsubseteqq}{⊈}"); +d("\\nsupseteqq", "\\html@mathml{\\@nsupseteqq}{⊉}"); +d("\\varsubsetneq", "\\html@mathml{\\@varsubsetneq}{⊊}"); +d("\\varsubsetneqq", "\\html@mathml{\\@varsubsetneqq}{⫋}"); +d("\\varsupsetneq", "\\html@mathml{\\@varsupsetneq}{⊋}"); +d("\\varsupsetneqq", "\\html@mathml{\\@varsupsetneqq}{⫌}"); +d("\\imath", "\\html@mathml{\\@imath}{ı}"); +d("\\jmath", "\\html@mathml{\\@jmath}{ȷ}"); +d("\\llbracket", "\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"); +d("\\rrbracket", "\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"); +d("⟦", "\\llbracket"); +d("⟧", "\\rrbracket"); +d("\\lBrace", "\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"); +d("\\rBrace", "\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"); +d("⦃", "\\lBrace"); +d("⦄", "\\rBrace"); +d("\\minuso", "\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"); +d("⦵", "\\minuso"); +d("\\darr", "\\downarrow"); +d("\\dArr", "\\Downarrow"); +d("\\Darr", "\\Downarrow"); +d("\\lang", "\\langle"); +d("\\rang", "\\rangle"); +d("\\uarr", "\\uparrow"); +d("\\uArr", "\\Uparrow"); +d("\\Uarr", "\\Uparrow"); +d("\\N", "\\mathbb{N}"); +d("\\R", "\\mathbb{R}"); +d("\\Z", "\\mathbb{Z}"); +d("\\alef", "\\aleph"); +d("\\alefsym", "\\aleph"); +d("\\Alpha", "\\mathrm{A}"); +d("\\Beta", "\\mathrm{B}"); +d("\\bull", "\\bullet"); +d("\\Chi", "\\mathrm{X}"); +d("\\clubs", "\\clubsuit"); +d("\\cnums", "\\mathbb{C}"); +d("\\Complex", "\\mathbb{C}"); +d("\\Dagger", "\\ddagger"); +d("\\diamonds", "\\diamondsuit"); +d("\\empty", "\\emptyset"); +d("\\Epsilon", "\\mathrm{E}"); +d("\\Eta", "\\mathrm{H}"); +d("\\exist", "\\exists"); +d("\\harr", "\\leftrightarrow"); +d("\\hArr", "\\Leftrightarrow"); +d("\\Harr", "\\Leftrightarrow"); +d("\\hearts", "\\heartsuit"); +d("\\image", "\\Im"); +d("\\infin", "\\infty"); +d("\\Iota", "\\mathrm{I}"); +d("\\isin", "\\in"); +d("\\Kappa", "\\mathrm{K}"); +d("\\larr", "\\leftarrow"); +d("\\lArr", "\\Leftarrow"); +d("\\Larr", "\\Leftarrow"); +d("\\lrarr", "\\leftrightarrow"); +d("\\lrArr", "\\Leftrightarrow"); +d("\\Lrarr", "\\Leftrightarrow"); +d("\\Mu", "\\mathrm{M}"); +d("\\natnums", "\\mathbb{N}"); +d("\\Nu", "\\mathrm{N}"); +d("\\Omicron", "\\mathrm{O}"); +d("\\plusmn", "\\pm"); +d("\\rarr", "\\rightarrow"); +d("\\rArr", "\\Rightarrow"); +d("\\Rarr", "\\Rightarrow"); +d("\\real", "\\Re"); +d("\\reals", "\\mathbb{R}"); +d("\\Reals", "\\mathbb{R}"); +d("\\Rho", "\\mathrm{P}"); +d("\\sdot", "\\cdot"); +d("\\sect", "\\S"); +d("\\spades", "\\spadesuit"); +d("\\sub", "\\subset"); +d("\\sube", "\\subseteq"); +d("\\supe", "\\supseteq"); +d("\\Tau", "\\mathrm{T}"); +d("\\thetasym", "\\vartheta"); +d("\\weierp", "\\wp"); +d("\\Zeta", "\\mathrm{Z}"); +d("\\argmin", "\\DOTSB\\operatorname*{arg\\,min}"); +d("\\argmax", "\\DOTSB\\operatorname*{arg\\,max}"); +d("\\plim", "\\DOTSB\\mathop{\\operatorname{plim}}\\limits"); +d("\\bra", "\\mathinner{\\langle{#1}|}"); +d("\\ket", "\\mathinner{|{#1}\\rangle}"); +d("\\braket", "\\mathinner{\\langle{#1}\\rangle}"); +d("\\Bra", "\\left\\langle#1\\right|"); +d("\\Ket", "\\left|#1\\right\\rangle"); +var ql = (a) => (e) => { + var t = e.consumeArg().tokens, r = e.consumeArg().tokens, n = e.consumeArg().tokens, i = e.consumeArg().tokens, l = e.macros.get("|"), o = e.macros.get("\\|"); + e.macros.beginGroup(); + var u = (p) => (v) => { + a && (v.macros.set("|", l), n.length && v.macros.set("\\|", o)); + var w = p; + if (!p && n.length) { + var E = v.future(); + E.text === "|" && (v.popToken(), w = !0); + } + return { + tokens: w ? n : r, + numArgs: 0 + }; + }; + e.macros.set("|", u(!1)), n.length && e.macros.set("\\|", u(!0)); + var h = e.consumeArg().tokens, f = e.expandTokens([ + ...i, + ...h, + ...t + // reversed + ]); + return e.macros.endGroup(), { + tokens: f.reverse(), + numArgs: 0 + }; +}; +d("\\bra@ket", ql(!1)); +d("\\bra@set", ql(!0)); +d("\\Braket", "\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"); +d("\\Set", "\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"); +d("\\set", "\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"); +d("\\angln", "{\\angl n}"); +d("\\blue", "\\textcolor{##6495ed}{#1}"); +d("\\orange", "\\textcolor{##ffa500}{#1}"); +d("\\pink", "\\textcolor{##ff00af}{#1}"); +d("\\red", "\\textcolor{##df0030}{#1}"); +d("\\green", "\\textcolor{##28ae7b}{#1}"); +d("\\gray", "\\textcolor{gray}{#1}"); +d("\\purple", "\\textcolor{##9d38bd}{#1}"); +d("\\blueA", "\\textcolor{##ccfaff}{#1}"); +d("\\blueB", "\\textcolor{##80f6ff}{#1}"); +d("\\blueC", "\\textcolor{##63d9ea}{#1}"); +d("\\blueD", "\\textcolor{##11accd}{#1}"); +d("\\blueE", "\\textcolor{##0c7f99}{#1}"); +d("\\tealA", "\\textcolor{##94fff5}{#1}"); +d("\\tealB", "\\textcolor{##26edd5}{#1}"); +d("\\tealC", "\\textcolor{##01d1c1}{#1}"); +d("\\tealD", "\\textcolor{##01a995}{#1}"); +d("\\tealE", "\\textcolor{##208170}{#1}"); +d("\\greenA", "\\textcolor{##b6ffb0}{#1}"); +d("\\greenB", "\\textcolor{##8af281}{#1}"); +d("\\greenC", "\\textcolor{##74cf70}{#1}"); +d("\\greenD", "\\textcolor{##1fab54}{#1}"); +d("\\greenE", "\\textcolor{##0d923f}{#1}"); +d("\\goldA", "\\textcolor{##ffd0a9}{#1}"); +d("\\goldB", "\\textcolor{##ffbb71}{#1}"); +d("\\goldC", "\\textcolor{##ff9c39}{#1}"); +d("\\goldD", "\\textcolor{##e07d10}{#1}"); +d("\\goldE", "\\textcolor{##a75a05}{#1}"); +d("\\redA", "\\textcolor{##fca9a9}{#1}"); +d("\\redB", "\\textcolor{##ff8482}{#1}"); +d("\\redC", "\\textcolor{##f9685d}{#1}"); +d("\\redD", "\\textcolor{##e84d39}{#1}"); +d("\\redE", "\\textcolor{##bc2612}{#1}"); +d("\\maroonA", "\\textcolor{##ffbde0}{#1}"); +d("\\maroonB", "\\textcolor{##ff92c6}{#1}"); +d("\\maroonC", "\\textcolor{##ed5fa6}{#1}"); +d("\\maroonD", "\\textcolor{##ca337c}{#1}"); +d("\\maroonE", "\\textcolor{##9e034e}{#1}"); +d("\\purpleA", "\\textcolor{##ddd7ff}{#1}"); +d("\\purpleB", "\\textcolor{##c6b9fc}{#1}"); +d("\\purpleC", "\\textcolor{##aa87ff}{#1}"); +d("\\purpleD", "\\textcolor{##7854ab}{#1}"); +d("\\purpleE", "\\textcolor{##543b78}{#1}"); +d("\\mintA", "\\textcolor{##f5f9e8}{#1}"); +d("\\mintB", "\\textcolor{##edf2df}{#1}"); +d("\\mintC", "\\textcolor{##e0e5cc}{#1}"); +d("\\grayA", "\\textcolor{##f6f7f7}{#1}"); +d("\\grayB", "\\textcolor{##f0f1f2}{#1}"); +d("\\grayC", "\\textcolor{##e3e5e6}{#1}"); +d("\\grayD", "\\textcolor{##d6d8da}{#1}"); +d("\\grayE", "\\textcolor{##babec2}{#1}"); +d("\\grayF", "\\textcolor{##888d93}{#1}"); +d("\\grayG", "\\textcolor{##626569}{#1}"); +d("\\grayH", "\\textcolor{##3b3e40}{#1}"); +d("\\grayI", "\\textcolor{##21242c}{#1}"); +d("\\kaBlue", "\\textcolor{##314453}{#1}"); +d("\\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 Wa() { + return { + async: !1, + breaks: !1, + extensions: null, + gfm: !0, + hooks: null, + pedantic: !1, + renderer: null, + silent: !1, + tokenizer: null, + walkTokens: null + }; +} +let ht = Wa(); +function Pl(a) { + ht = a; +} +const Hl = /[&<>"']/, Io = new RegExp(Hl.source, "g"), Ul = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, Lo = new RegExp(Ul.source, "g"), Oo = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" +}, ri = (a) => Oo[a]; +function Je(a, e) { + if (e) { + if (Hl.test(a)) + return a.replace(Io, ri); + } else if (Ul.test(a)) + return a.replace(Lo, ri); + return a; +} +const qo = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig; +function Po(a) { + return a.replace(qo, (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 Ho = /(^|[^\[])\^/g; +function ce(a, e) { + let t = typeof a == "string" ? a : a.source; + e = e || ""; + const r = { + replace: (n, i) => { + let l = typeof i == "string" ? i : i.source; + return l = l.replace(Ho, "$1"), t = t.replace(n, l), r; + }, + getRegex: () => new RegExp(t, e) + }; + return r; +} +function ai(a) { + try { + a = encodeURI(a).replace(/%25/g, "%"); + } catch { + return null; + } + return a; +} +const Pt = { exec: () => null }; +function ni(a, e) { + const t = a.replace(/\|/g, (i, l, o) => { + let u = !1, h = l; + for (; --h >= 0 && o[h] === "\\"; ) + u = !u; + return u ? "|" : " |"; + }), r = t.split(/ \|/); + let n = 0; + if (r[0].trim() || r.shift(), r.length > 0 && !r[r.length - 1].trim() && r.pop(), e) + if (r.length > e) + r.splice(e); + else + for (; r.length < e; ) + r.push(""); + for (; n < r.length; n++) + r[n] = r[n].trim().replace(/\\\|/g, "|"); + return r; +} +function sr(a, e, t) { + const r = a.length; + if (r === 0) + return ""; + let n = 0; + for (; n < r; ) { + const i = a.charAt(r - n - 1); + if (i === e && !t) + n++; + else if (i !== e && t) + n++; + else + break; + } + return a.slice(0, r - n); +} +function Uo(a, e) { + if (a.indexOf(e[1]) === -1) + return -1; + let t = 0; + for (let r = 0; r < a.length; r++) + if (a[r] === "\\") + r++; + else if (a[r] === e[0]) + t++; + else if (a[r] === e[1] && (t--, t < 0)) + return r; + return -1; +} +function ii(a, e, t, r) { + const n = e.href, i = e.title ? Je(e.title) : null, l = a[1].replace(/\\([\[\]])/g, "$1"); + if (a[0].charAt(0) !== "!") { + r.state.inLink = !0; + const o = { + type: "link", + raw: t, + href: n, + title: i, + text: l, + tokens: r.inlineTokens(l) + }; + return r.state.inLink = !1, o; + } + return { + type: "image", + raw: t, + href: n, + title: i, + text: Je(l) + }; +} +function Vo(a, e) { + const t = a.match(/^(\s+)(?:```)/); + if (t === null) + return e; + const r = t[1]; + return e.split(` +`).map((n) => { + const i = n.match(/^\s+/); + if (i === null) + return n; + const [l] = i; + return l.length >= r.length ? n.slice(r.length) : n; + }).join(` +`); +} +class _r { + options; + rules; + // set by the lexer + lexer; + // set by the lexer + constructor(e) { + this.options = e || ht; + } + space(e) { + const t = this.rules.block.newline.exec(e); + if (t && t[0].length > 0) + return { + type: "space", + raw: t[0] + }; + } + code(e) { + const t = this.rules.block.code.exec(e); + if (t) { + const r = t[0].replace(/^ {1,4}/gm, ""); + return { + type: "code", + raw: t[0], + codeBlockStyle: "indented", + text: this.options.pedantic ? r : sr(r, ` +`) + }; + } + } + fences(e) { + const t = this.rules.block.fences.exec(e); + if (t) { + const r = t[0], n = Vo(r, t[3] || ""); + return { + type: "code", + raw: r, + lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : t[2], + text: n + }; + } + } + heading(e) { + const t = this.rules.block.heading.exec(e); + if (t) { + let r = t[2].trim(); + if (/#$/.test(r)) { + const n = sr(r, "#"); + (this.options.pedantic || !n || / $/.test(n)) && (r = n.trim()); + } + return { + type: "heading", + raw: t[0], + depth: t[1].length, + text: r, + tokens: this.lexer.inline(r) + }; + } + } + hr(e) { + const t = this.rules.block.hr.exec(e); + if (t) + return { + type: "hr", + raw: t[0] + }; + } + blockquote(e) { + const t = this.rules.block.blockquote.exec(e); + if (t) { + let r = t[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g, ` + $1`); + r = sr(r.replace(/^ *>[ \t]?/gm, ""), ` +`); + const n = this.lexer.state.top; + this.lexer.state.top = !0; + const i = this.lexer.blockTokens(r); + return this.lexer.state.top = n, { + type: "blockquote", + raw: t[0], + tokens: i, + text: r + }; + } + } + list(e) { + let t = this.rules.block.list.exec(e); + if (t) { + let r = t[1].trim(); + const n = r.length > 1, i = { + type: "list", + raw: "", + ordered: n, + start: n ? +r.slice(0, -1) : "", + loose: !1, + items: [] + }; + r = n ? `\\d{1,9}\\${r.slice(-1)}` : `\\${r}`, this.options.pedantic && (r = n ? r : "[*+-]"); + const l = new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`); + let o = "", u = "", h = !1; + for (; e; ) { + let f = !1; + if (!(t = l.exec(e)) || this.rules.block.hr.test(e)) + break; + o = t[0], e = e.substring(o.length); + let p = t[2].split(` +`, 1)[0].replace(/^\t+/, (T) => " ".repeat(3 * T.length)), v = e.split(` +`, 1)[0], w = 0; + this.options.pedantic ? (w = 2, u = p.trimStart()) : (w = t[2].search(/[^ ]/), w = w > 4 ? 1 : w, u = p.slice(w), w += t[1].length); + let E = !1; + if (!p && /^ *$/.test(v) && (o += v + ` +`, e = e.substring(v.length + 1), f = !0), !f) { + const T = new RegExp(`^ {0,${Math.min(3, w - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), D = new RegExp(`^ {0,${Math.min(3, w - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), y = new RegExp(`^ {0,${Math.min(3, w - 1)}}(?:\`\`\`|~~~)`), A = new RegExp(`^ {0,${Math.min(3, w - 1)}}#`); + for (; e; ) { + const C = e.split(` +`, 1)[0]; + if (v = C, this.options.pedantic && (v = v.replace(/^ {1,4}(?=( {4})*[^ ])/g, " ")), y.test(v) || A.test(v) || T.test(v) || D.test(e)) + break; + if (v.search(/[^ ]/) >= w || !v.trim()) + u += ` +` + v.slice(w); + else { + if (E || p.search(/[^ ]/) >= 4 || y.test(p) || A.test(p) || D.test(p)) + break; + u += ` +` + v; + } + !E && !v.trim() && (E = !0), o += C + ` +`, e = e.substring(C.length + 1), p = v.slice(w); + } + } + i.loose || (h ? i.loose = !0 : /\n *\n *$/.test(o) && (h = !0)); + let F = null, _; + this.options.gfm && (F = /^\[[ xX]\] /.exec(u), F && (_ = F[0] !== "[ ] ", u = u.replace(/^\[[ xX]\] +/, ""))), i.items.push({ + type: "list_item", + raw: o, + task: !!F, + checked: _, + loose: !1, + text: u, + tokens: [] + }), i.raw += o; + } + i.items[i.items.length - 1].raw = o.trimEnd(), i.items[i.items.length - 1].text = u.trimEnd(), i.raw = i.raw.trimEnd(); + for (let f = 0; f < i.items.length; f++) + if (this.lexer.state.top = !1, i.items[f].tokens = this.lexer.blockTokens(i.items[f].text, []), !i.loose) { + const p = i.items[f].tokens.filter((w) => w.type === "space"), v = p.length > 0 && p.some((w) => /\n.*\n/.test(w.raw)); + i.loose = v; + } + if (i.loose) + for (let f = 0; f < i.items.length; f++) + i.items[f].loose = !0; + return i; + } + } + html(e) { + const t = this.rules.block.html.exec(e); + if (t) + return { + type: "html", + block: !0, + raw: t[0], + pre: t[1] === "pre" || t[1] === "script" || t[1] === "style", + text: t[0] + }; + } + def(e) { + const t = this.rules.block.def.exec(e); + if (t) { + const r = t[1].toLowerCase().replace(/\s+/g, " "), n = t[2] ? t[2].replace(/^<(.*)>$/, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", i = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3]; + return { + type: "def", + tag: r, + raw: t[0], + href: n, + title: i + }; + } + } + table(e) { + const t = this.rules.block.table.exec(e); + if (!t || !/[:|]/.test(t[2])) + return; + const r = ni(t[1]), n = t[2].replace(/^\||\| *$/g, "").split("|"), i = t[3] && t[3].trim() ? t[3].replace(/\n[ \t]*$/, "").split(` +`) : [], l = { + type: "table", + raw: t[0], + header: [], + align: [], + rows: [] + }; + if (r.length === n.length) { + for (const o of n) + /^ *-+: *$/.test(o) ? l.align.push("right") : /^ *:-+: *$/.test(o) ? l.align.push("center") : /^ *:-+ *$/.test(o) ? l.align.push("left") : l.align.push(null); + for (const o of r) + l.header.push({ + text: o, + tokens: this.lexer.inline(o) + }); + for (const o of i) + l.rows.push(ni(o, l.header.length).map((u) => ({ + text: u, + tokens: this.lexer.inline(u) + }))); + return l; + } + } + lheading(e) { + const t = this.rules.block.lheading.exec(e); + if (t) + return { + type: "heading", + raw: t[0], + depth: t[2].charAt(0) === "=" ? 1 : 2, + text: t[1], + tokens: this.lexer.inline(t[1]) + }; + } + paragraph(e) { + const t = this.rules.block.paragraph.exec(e); + if (t) { + const r = t[1].charAt(t[1].length - 1) === ` +` ? t[1].slice(0, -1) : t[1]; + return { + type: "paragraph", + raw: t[0], + text: r, + tokens: this.lexer.inline(r) + }; + } + } + text(e) { + const t = this.rules.block.text.exec(e); + if (t) + return { + type: "text", + raw: t[0], + text: t[0], + tokens: this.lexer.inline(t[0]) + }; + } + escape(e) { + const t = this.rules.inline.escape.exec(e); + if (t) + return { + type: "escape", + raw: t[0], + text: Je(t[1]) + }; + } + tag(e) { + const t = this.rules.inline.tag.exec(e); + if (t) + return !this.lexer.state.inLink && /^/i.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0]) && (this.lexer.state.inRawBlock = !1), { + type: "html", + raw: t[0], + inLink: this.lexer.state.inLink, + inRawBlock: this.lexer.state.inRawBlock, + block: !1, + text: t[0] + }; + } + link(e) { + const t = this.rules.inline.link.exec(e); + if (t) { + const r = t[2].trim(); + if (!this.options.pedantic && /^$/.test(r)) + return; + const l = sr(r.slice(0, -1), "\\"); + if ((r.length - l.length) % 2 === 0) + return; + } else { + const l = Uo(t[2], "()"); + if (l > -1) { + const u = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + l; + t[2] = t[2].substring(0, l), t[0] = t[0].substring(0, u).trim(), t[3] = ""; + } + } + let n = t[2], i = ""; + if (this.options.pedantic) { + const l = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n); + l && (n = l[1], i = l[3]); + } else + i = t[3] ? t[3].slice(1, -1) : ""; + return n = n.trim(), /^$/.test(r) ? n = n.slice(1) : n = n.slice(1, -1)), ii(t, { + href: n && n.replace(this.rules.inline.anyPunctuation, "$1"), + title: i && i.replace(this.rules.inline.anyPunctuation, "$1") + }, t[0], this.lexer); + } + } + reflink(e, t) { + let r; + if ((r = this.rules.inline.reflink.exec(e)) || (r = this.rules.inline.nolink.exec(e))) { + const n = (r[2] || r[1]).replace(/\s+/g, " "), i = t[n.toLowerCase()]; + if (!i) { + const l = r[0].charAt(0); + return { + type: "text", + raw: l, + text: l + }; + } + return ii(r, i, r[0], this.lexer); + } + } + emStrong(e, t, r = "") { + let n = this.rules.inline.emStrongLDelim.exec(e); + if (!n || n[3] && r.match(/[\p{L}\p{N}]/u)) + return; + if (!(n[1] || n[2] || "") || !r || this.rules.inline.punctuation.exec(r)) { + const l = [...n[0]].length - 1; + let o, u, h = l, f = 0; + const p = n[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; + for (p.lastIndex = 0, t = t.slice(-1 * e.length + l); (n = p.exec(t)) != null; ) { + if (o = n[1] || n[2] || n[3] || n[4] || n[5] || n[6], !o) + continue; + if (u = [...o].length, n[3] || n[4]) { + h += u; + continue; + } else if ((n[5] || n[6]) && l % 3 && !((l + u) % 3)) { + f += u; + continue; + } + if (h -= u, h > 0) + continue; + u = Math.min(u, u + h + f); + const v = [...n[0]][0].length, w = e.slice(0, l + n.index + v + u); + if (Math.min(l, u) % 2) { + const F = w.slice(1, -1); + return { + type: "em", + raw: w, + text: F, + tokens: this.lexer.inlineTokens(F) + }; + } + const E = w.slice(2, -2); + return { + type: "strong", + raw: w, + text: E, + tokens: this.lexer.inlineTokens(E) + }; + } + } + } + codespan(e) { + const t = this.rules.inline.code.exec(e); + if (t) { + let r = t[2].replace(/\n/g, " "); + const n = /[^ ]/.test(r), i = /^ /.test(r) && / $/.test(r); + return n && i && (r = r.substring(1, r.length - 1)), r = Je(r, !0), { + type: "codespan", + raw: t[0], + text: r + }; + } + } + br(e) { + const t = this.rules.inline.br.exec(e); + if (t) + return { + type: "br", + raw: t[0] + }; + } + del(e) { + const t = this.rules.inline.del.exec(e); + if (t) + return { + type: "del", + raw: t[0], + text: t[2], + tokens: this.lexer.inlineTokens(t[2]) + }; + } + autolink(e) { + const t = this.rules.inline.autolink.exec(e); + if (t) { + let r, n; + return t[2] === "@" ? (r = Je(t[1]), n = "mailto:" + r) : (r = Je(t[1]), n = r), { + type: "link", + raw: t[0], + text: r, + href: n, + tokens: [ + { + type: "text", + raw: r, + text: r + } + ] + }; + } + } + url(e) { + let t; + if (t = this.rules.inline.url.exec(e)) { + let r, n; + if (t[2] === "@") + r = Je(t[0]), n = "mailto:" + r; + else { + let i; + do + i = t[0], t[0] = this.rules.inline._backpedal.exec(t[0])?.[0] ?? ""; + while (i !== t[0]); + r = Je(t[0]), t[1] === "www." ? n = "http://" + t[0] : n = t[0]; + } + return { + type: "link", + raw: t[0], + text: r, + href: n, + tokens: [ + { + type: "text", + raw: r, + text: r + } + ] + }; + } + } + inlineText(e) { + const t = this.rules.inline.text.exec(e); + if (t) { + let r; + return this.lexer.state.inRawBlock ? r = t[0] : r = Je(t[0]), { + type: "text", + raw: t[0], + text: r + }; + } + } +} +const Go = /^(?: *(?:\n|$))+/, Wo = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/, Yo = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, jt = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, jo = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, Vl = /(?:[*+-]|\d{1,9}[.)])/, Gl = ce(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g, Vl).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(), Ya = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/, Xo = /^[^\n]+/, ja = /(?!\s*\])(?:\\.|[^\[\]\\])+/, Zo = ce(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label", ja).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), Ko = ce(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, Vl).getRegex(), Lr = "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", Xa = /|$))/, Qo = ce("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))", "i").replace("comment", Xa).replace("tag", Lr).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), Wl = ce(Ya).replace("hr", jt).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", ")|<(?:script|pre|style|textarea|!--)").replace("tag", Lr).getRegex(), Jo = ce(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", Wl).getRegex(), Za = { + blockquote: Jo, + code: Wo, + def: Zo, + fences: Yo, + heading: jo, + hr: jt, + html: Qo, + lheading: Gl, + list: Ko, + newline: Go, + paragraph: Wl, + table: Pt, + text: Xo +}, li = ce("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", jt).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", ")|<(?:script|pre|style|textarea|!--)").replace("tag", Lr).getRegex(), $o = { + ...Za, + table: li, + paragraph: ce(Ya).replace("hr", jt).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", li).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", Lr).getRegex() +}, eu = { + ...Za, + html: ce(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment", Xa).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: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, + heading: /^(#{1,6})(.*)(?:\n+|$)/, + fences: Pt, + // fences not supported + lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, + paragraph: ce(Ya).replace("hr", jt).replace("heading", ` *#{1,6} *[^ +]`).replace("lheading", Gl).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() +}, Yl = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, tu = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, jl = /^( {2,}|\\)\n(?!\s*$)/, ru = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g, iu = ce(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/, "u").replace(/punct/g, Xt).getRegex(), lu = ce("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])", "gu").replace(/punct/g, Xt).getRegex(), su = ce("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])", "gu").replace(/punct/g, Xt).getRegex(), ou = ce(/\\([punct])/, "gu").replace(/punct/g, Xt).getRegex(), uu = ce(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(), cu = ce(Xa).replace("(?:-->|$)", "-->").getRegex(), hu = ce("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment", cu).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), Sr = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/, mu = ce(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label", Sr).replace("href", /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), Xl = ce(/^!?\[(label)\]\[(ref)\]/).replace("label", Sr).replace("ref", ja).getRegex(), Zl = ce(/^!?\[(ref)\](?:\[\])?/).replace("ref", ja).getRegex(), fu = ce("reflink|nolink(?!\\()", "g").replace("reflink", Xl).replace("nolink", Zl).getRegex(), Ka = { + _backpedal: Pt, + // only used for GFM url + anyPunctuation: ou, + autolink: uu, + blockSkip: nu, + br: jl, + code: tu, + del: Pt, + emStrongLDelim: iu, + emStrongRDelimAst: lu, + emStrongRDelimUnd: su, + escape: Yl, + link: mu, + nolink: Zl, + punctuation: au, + reflink: Xl, + reflinkSearch: fu, + tag: hu, + text: ru, + url: Pt +}, du = { + ...Ka, + link: ce(/^!?\[(label)\]\((.*?)\)/).replace("label", Sr).getRegex(), + reflink: ce(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Sr).getRegex() +}, da = { + ...Ka, + escape: ce(Yl).replace("])", "~|])").getRegex(), + url: ce(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), + _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, + del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/, + text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\ u + " ".repeat(h.length)); + let r, n, i, l; + for (; e; ) + if (!(this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((o) => (r = o.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1))) { + if (r = this.tokenizer.space(e)) { + e = e.substring(r.raw.length), r.raw.length === 1 && t.length > 0 ? t[t.length - 1].raw += ` +` : t.push(r); + continue; + } + if (r = this.tokenizer.code(e)) { + e = e.substring(r.raw.length), n = t[t.length - 1], n && (n.type === "paragraph" || n.type === "text") ? (n.raw += ` +` + r.raw, n.text += ` +` + r.text, this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(r); + continue; + } + if (r = this.tokenizer.fences(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.heading(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.hr(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.blockquote(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.list(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.html(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.def(e)) { + e = e.substring(r.raw.length), n = t[t.length - 1], n && (n.type === "paragraph" || n.type === "text") ? (n.raw += ` +` + r.raw, n.text += ` +` + r.raw, this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : this.tokens.links[r.tag] || (this.tokens.links[r.tag] = { + href: r.href, + title: r.title + }); + continue; + } + if (r = this.tokenizer.table(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.lheading(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (i = e, this.options.extensions && this.options.extensions.startBlock) { + let o = 1 / 0; + const u = e.slice(1); + let h; + this.options.extensions.startBlock.forEach((f) => { + h = f.call({ lexer: this }, u), typeof h == "number" && h >= 0 && (o = Math.min(o, h)); + }), o < 1 / 0 && o >= 0 && (i = e.substring(0, o + 1)); + } + if (this.state.top && (r = this.tokenizer.paragraph(i))) { + n = t[t.length - 1], l && n.type === "paragraph" ? (n.raw += ` +` + r.raw, n.text += ` +` + r.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(r), l = i.length !== e.length, e = e.substring(r.raw.length); + continue; + } + if (r = this.tokenizer.text(e)) { + e = e.substring(r.raw.length), n = t[t.length - 1], n && n.type === "text" ? (n.raw += ` +` + r.raw, n.text += ` +` + r.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(r); + continue; + } + if (e) { + const o = "Infinite loop on byte: " + e.charCodeAt(0); + if (this.options.silent) { + console.error(o); + break; + } else + throw new Error(o); + } + } + return this.state.top = !0, t; + } + inline(e, t = []) { + return this.inlineQueue.push({ src: e, tokens: t }), t; + } + /** + * Lexing/Compiling + */ + inlineTokens(e, t = []) { + let r, n, i, l = e, o, u, h; + if (this.tokens.links) { + const f = Object.keys(this.tokens.links); + if (f.length > 0) + for (; (o = this.tokenizer.rules.inline.reflinkSearch.exec(l)) != null; ) + f.includes(o[0].slice(o[0].lastIndexOf("[") + 1, -1)) && (l = l.slice(0, o.index) + "[" + "a".repeat(o[0].length - 2) + "]" + l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)); + } + for (; (o = this.tokenizer.rules.inline.blockSkip.exec(l)) != null; ) + l = l.slice(0, o.index) + "[" + "a".repeat(o[0].length - 2) + "]" + l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); + for (; (o = this.tokenizer.rules.inline.anyPunctuation.exec(l)) != null; ) + l = l.slice(0, o.index) + "++" + l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); + for (; e; ) + if (u || (h = ""), u = !1, !(this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some((f) => (r = f.call({ lexer: this }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1))) { + if (r = this.tokenizer.escape(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.tag(e)) { + e = e.substring(r.raw.length), n = t[t.length - 1], n && r.type === "text" && n.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r); + continue; + } + if (r = this.tokenizer.link(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.reflink(e, this.tokens.links)) { + e = e.substring(r.raw.length), n = t[t.length - 1], n && r.type === "text" && n.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r); + continue; + } + if (r = this.tokenizer.emStrong(e, l, h)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.codespan(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.br(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.del(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (r = this.tokenizer.autolink(e)) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (!this.state.inLink && (r = this.tokenizer.url(e))) { + e = e.substring(r.raw.length), t.push(r); + continue; + } + if (i = e, this.options.extensions && this.options.extensions.startInline) { + let f = 1 / 0; + const p = e.slice(1); + let v; + this.options.extensions.startInline.forEach((w) => { + v = w.call({ lexer: this }, p), typeof v == "number" && v >= 0 && (f = Math.min(f, v)); + }), f < 1 / 0 && f >= 0 && (i = e.substring(0, f + 1)); + } + if (r = this.tokenizer.inlineText(i)) { + e = e.substring(r.raw.length), r.raw.slice(-1) !== "_" && (h = r.raw.slice(-1)), u = !0, n = t[t.length - 1], n && n.type === "text" ? (n.raw += r.raw, n.text += r.text) : t.push(r); + continue; + } + if (e) { + const f = "Infinite loop on byte: " + e.charCodeAt(0); + if (this.options.silent) { + console.error(f); + break; + } else + throw new Error(f); + } + } + return t; + } +} +class Er { + options; + constructor(e) { + this.options = e || ht; + } + code(e, t, r) { + const n = (t || "").match(/^\S*/)?.[0]; + return e = e.replace(/\n$/, "") + ` +`, n ? '
' + (r ? e : Je(e, !0)) + `
+` : "
" + (r ? e : Je(e, !0)) + `
+`; + } + blockquote(e) { + return `
+${e}
+`; + } + html(e, t) { + return e; + } + heading(e, t, r) { + return `${e} +`; + } + hr() { + return `
+`; + } + list(e, t, r) { + const n = t ? "ol" : "ul", i = t && r !== 1 ? ' start="' + r + '"' : ""; + return "<" + n + i + `> +` + e + " +`; + } + listitem(e, t, r) { + return `
  • ${e}
  • +`; + } + checkbox(e) { + return "'; + } + paragraph(e) { + return `

    ${e}

    +`; + } + table(e, t) { + return t && (t = `${t}`), ` + +` + e + ` +` + t + `
    +`; + } + tablerow(e) { + return ` +${e} +`; + } + tablecell(e, t) { + const r = t.header ? "th" : "td"; + return (t.align ? `<${r} align="${t.align}">` : `<${r}>`) + e + ` +`; + } + /** + * span level renderer + */ + strong(e) { + return `${e}`; + } + em(e) { + return `${e}`; + } + codespan(e) { + return `${e}`; + } + br() { + return "
    "; + } + del(e) { + return `${e}`; + } + link(e, t, r) { + const n = ai(e); + if (n === null) + return r; + e = n; + let i = '
    ", i; + } + image(e, t, r) { + const n = ai(e); + if (n === null) + return r; + e = n; + let i = `${r} 0 && v.tokens[0].type === "paragraph" ? (v.tokens[0].text = _ + " " + v.tokens[0].text, v.tokens[0].tokens && v.tokens[0].tokens.length > 0 && v.tokens[0].tokens[0].type === "text" && (v.tokens[0].tokens[0].text = _ + " " + v.tokens[0].tokens[0].text)) : v.tokens.unshift({ + type: "text", + text: _ + " " + }) : F += _ + " "; + } + F += this.parse(v.tokens, h), f += this.renderer.listitem(F, E, !!w); + } + r += this.renderer.list(f, o, u); + continue; + } + case "html": { + const l = i; + r += this.renderer.html(l.text, l.block); + continue; + } + case "paragraph": { + const l = i; + r += this.renderer.paragraph(this.parseInline(l.tokens)); + continue; + } + case "text": { + let l = i, o = l.tokens ? this.parseInline(l.tokens) : l.text; + for (; n + 1 < e.length && e[n + 1].type === "text"; ) + l = e[++n], o += ` +` + (l.tokens ? this.parseInline(l.tokens) : l.text); + r += t ? this.renderer.paragraph(o) : o; + continue; + } + default: { + const l = 'Token with "' + i.type + '" type was not found.'; + if (this.options.silent) + return console.error(l), ""; + throw new Error(l); + } + } + } + return r; + } + /** + * Parse Inline Tokens + */ + parseInline(e, t) { + t = t || this.renderer; + let r = ""; + for (let n = 0; n < e.length; n++) { + const i = e[n]; + if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[i.type]) { + const l = this.options.extensions.renderers[i.type].call({ parser: this }, i); + if (l !== !1 || !["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text"].includes(i.type)) { + r += l || ""; + continue; + } + } + switch (i.type) { + case "escape": { + const l = i; + r += t.text(l.text); + break; + } + case "html": { + const l = i; + r += t.html(l.text); + break; + } + case "link": { + const l = i; + r += t.link(l.href, l.title, this.parseInline(l.tokens, t)); + break; + } + case "image": { + const l = i; + r += t.image(l.href, l.title, l.text); + break; + } + case "strong": { + const l = i; + r += t.strong(this.parseInline(l.tokens, t)); + break; + } + case "em": { + const l = i; + r += t.em(this.parseInline(l.tokens, t)); + break; + } + case "codespan": { + const l = i; + r += t.codespan(l.text); + break; + } + case "br": { + r += t.br(); + break; + } + case "del": { + const l = i; + r += t.del(this.parseInline(l.tokens, t)); + break; + } + case "text": { + const l = i; + r += t.text(l.text); + break; + } + default: { + const l = 'Token with "' + i.type + '" type was not found.'; + if (this.options.silent) + return console.error(l), ""; + throw new Error(l); + } + } + } + return r; + } +} +class vr { + options; + constructor(e) { + this.options = e || ht; + } + static passThroughHooks = /* @__PURE__ */ new Set([ + "preprocess", + "postprocess", + "processAllTokens" + ]); + /** + * Process markdown before marked + */ + preprocess(e) { + return e; + } + /** + * Process HTML after marked is finished + */ + postprocess(e) { + return e; + } + /** + * Process all tokens before walk tokens + */ + processAllTokens(e) { + return e; + } +} +class gu { + defaults = Wa(); + options = this.setOptions; + parse = this.#e(T0.lex, C0.parse); + parseInline = this.#e(T0.lexInline, C0.parseInline); + Parser = C0; + Renderer = Er; + TextRenderer = Qa; + Lexer = T0; + Tokenizer = _r; + Hooks = vr; + constructor(...e) { + this.use(...e); + } + /** + * Run callback for every token + */ + walkTokens(e, t) { + let r = []; + for (const n of e) + switch (r = r.concat(t.call(this, n)), n.type) { + case "table": { + const i = n; + for (const l of i.header) + r = r.concat(this.walkTokens(l.tokens, t)); + for (const l of i.rows) + for (const o of l) + r = r.concat(this.walkTokens(o.tokens, t)); + break; + } + case "list": { + const i = n; + r = r.concat(this.walkTokens(i.items, t)); + break; + } + default: { + const i = n; + this.defaults.extensions?.childTokens?.[i.type] ? this.defaults.extensions.childTokens[i.type].forEach((l) => { + const o = i[l].flat(1 / 0); + r = r.concat(this.walkTokens(o, t)); + }) : i.tokens && (r = r.concat(this.walkTokens(i.tokens, t))); + } + } + return r; + } + use(...e) { + const t = this.defaults.extensions || { renderers: {}, childTokens: {} }; + return e.forEach((r) => { + const n = { ...r }; + if (n.async = this.defaults.async || n.async || !1, r.extensions && (r.extensions.forEach((i) => { + if (!i.name) + throw new Error("extension name required"); + if ("renderer" in i) { + const l = t.renderers[i.name]; + l ? t.renderers[i.name] = function(...o) { + let u = i.renderer.apply(this, o); + return u === !1 && (u = l.apply(this, o)), u; + } : t.renderers[i.name] = i.renderer; + } + if ("tokenizer" in i) { + if (!i.level || i.level !== "block" && i.level !== "inline") + throw new Error("extension level must be 'block' or 'inline'"); + const l = t[i.level]; + l ? l.unshift(i.tokenizer) : t[i.level] = [i.tokenizer], i.start && (i.level === "block" ? t.startBlock ? t.startBlock.push(i.start) : t.startBlock = [i.start] : i.level === "inline" && (t.startInline ? t.startInline.push(i.start) : t.startInline = [i.start])); + } + "childTokens" in i && i.childTokens && (t.childTokens[i.name] = i.childTokens); + }), n.extensions = t), r.renderer) { + const i = this.defaults.renderer || new Er(this.defaults); + for (const l in r.renderer) { + if (!(l in i)) + throw new Error(`renderer '${l}' does not exist`); + if (l === "options") + continue; + const o = l, u = r.renderer[o], h = i[o]; + i[o] = (...f) => { + let p = u.apply(i, f); + return p === !1 && (p = h.apply(i, f)), p || ""; + }; + } + n.renderer = i; + } + if (r.tokenizer) { + const i = this.defaults.tokenizer || new _r(this.defaults); + for (const l in r.tokenizer) { + if (!(l in i)) + throw new Error(`tokenizer '${l}' does not exist`); + if (["options", "rules", "lexer"].includes(l)) + continue; + const o = l, u = r.tokenizer[o], h = i[o]; + i[o] = (...f) => { + let p = u.apply(i, f); + return p === !1 && (p = h.apply(i, f)), p; + }; + } + n.tokenizer = i; + } + if (r.hooks) { + const i = this.defaults.hooks || new vr(); + for (const l in r.hooks) { + if (!(l in i)) + throw new Error(`hook '${l}' does not exist`); + if (l === "options") + continue; + const o = l, u = r.hooks[o], h = i[o]; + vr.passThroughHooks.has(l) ? i[o] = (f) => { + if (this.defaults.async) + return Promise.resolve(u.call(i, f)).then((v) => h.call(i, v)); + const p = u.call(i, f); + return h.call(i, p); + } : i[o] = (...f) => { + let p = u.apply(i, f); + return p === !1 && (p = h.apply(i, f)), p; + }; + } + n.hooks = i; + } + if (r.walkTokens) { + const i = this.defaults.walkTokens, l = r.walkTokens; + n.walkTokens = function(o) { + let u = []; + return u.push(l.call(this, o)), i && (u = u.concat(i.call(this, o))), u; + }; + } + this.defaults = { ...this.defaults, ...n }; + }), this; + } + setOptions(e) { + return this.defaults = { ...this.defaults, ...e }, this; + } + lexer(e, t) { + return T0.lex(e, t ?? this.defaults); + } + parser(e, t) { + return C0.parse(e, t ?? this.defaults); + } + #e(e, t) { + return (r, n) => { + const i = { ...n }, l = { ...this.defaults, ...i }; + this.defaults.async === !0 && i.async === !1 && (l.silent || console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."), l.async = !0); + const o = this.#t(!!l.silent, !!l.async); + if (typeof r > "u" || r === null) + return o(new Error("marked(): input parameter is undefined or null")); + if (typeof r != "string") + return o(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(r) + ", string expected")); + if (l.hooks && (l.hooks.options = l), l.async) + return Promise.resolve(l.hooks ? l.hooks.preprocess(r) : r).then((u) => e(u, l)).then((u) => l.hooks ? l.hooks.processAllTokens(u) : u).then((u) => l.walkTokens ? Promise.all(this.walkTokens(u, l.walkTokens)).then(() => u) : u).then((u) => t(u, l)).then((u) => l.hooks ? l.hooks.postprocess(u) : u).catch(o); + try { + l.hooks && (r = l.hooks.preprocess(r)); + let u = e(r, l); + l.hooks && (u = l.hooks.processAllTokens(u)), l.walkTokens && this.walkTokens(u, l.walkTokens); + let h = t(u, l); + return l.hooks && (h = l.hooks.postprocess(h)), h; + } catch (u) { + return o(u); + } + }; + } + #t(e, t) { + return (r) => { + if (r.message += ` +Please report this to https://github.com/markedjs/marked.`, e) { + const n = "

    An error occurred:

    " + Je(r.message + "", !0) + "
    "; + return t ? Promise.resolve(n) : n; + } + if (t) + return Promise.reject(r); + throw r; + }; + } +} +const ut = new gu(); +function ue(a, e) { + return ut.parse(a, e); +} +ue.options = ue.setOptions = function(a) { + return ut.setOptions(a), ue.defaults = ut.defaults, Pl(ue.defaults), ue; +}; +ue.getDefaults = Wa; +ue.defaults = ht; +ue.use = function(...a) { + return ut.use(...a), ue.defaults = ut.defaults, Pl(ue.defaults), ue; +}; +ue.walkTokens = function(a, e) { + return ut.walkTokens(a, e); +}; +ue.parseInline = ut.parseInline; +ue.Parser = C0; +ue.parser = C0.parse; +ue.Renderer = Er; +ue.TextRenderer = Qa; +ue.Lexer = T0; +ue.lexer = T0.lex; +ue.Tokenizer = _r; +ue.Hooks = vr; +ue.parse = ue; +ue.options; +ue.setOptions; +ue.use; +ue.walkTokens; +ue.parseInline; +C0.parse; +T0.lex; +const vu = /[\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, bu = Object.hasOwnProperty; +class Kl { + /** + * Create a new slug class. + */ + constructor() { + this.occurrences, this.reset(); + } + /** + * Generate a unique slug. + * + * Tracks previously generated slugs: repeated calls with the same value + * will result in different slugs. + * Use the `slug` function to get same slugs. + * + * @param {string} value + * String of text to slugify + * @param {boolean} [maintainCase=false] + * Keep the current case, otherwise make all lowercase + * @return {string} + * A unique slug string + */ + slug(e, t) { + const r = this; + let n = yu(e, t === !0); + const i = n; + for (; bu.call(r.occurrences, n); ) + r.occurrences[i]++, n = i + "-" + r.occurrences[i]; + return r.occurrences[n] = 0, n; + } + /** + * Reset - Forget all previous slugs + * + * @return void + */ + reset() { + this.occurrences = /* @__PURE__ */ Object.create(null); + } +} +function yu(a, e) { + return typeof a != "string" ? "" : (e || (a = a.toLowerCase()), a.replace(vu, "").replace(/ /g, "-")); +} +new Kl(); +var si = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, wu = { exports: {} }; +(function(a) { + var e = typeof window < "u" ? window : typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? self : {}; + /** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */ + var t = function(r) { + var n = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, i = 0, l = {}, o = { + /** + * 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