1MathJax.Extension["semantic-enrich"] = {
2    version: "1.6.0",
3    config: MathJax.Hub.CombineConfig("semantic-enrich", {
4        disabled: !1
5    }),
6    dependents: [],
7    running: !1,
8    mstyleLookup: {
9        mi: [ "mathvariant" ],
10        mo: [ "mathvariant", "accent", "largeop", "form", "fence", "separator", "movablelimits" ],
11        mn: [ "mathvariant" ],
12        mtext: [ "mathvariant" ],
13        ms: [ "mathvariant" ],
14        mfrac: [ "linethickness" ],
15        mfenced: [ "open", "close", "separators" ],
16        menclose: [ "notation" ],
17        munder: [ "accentunder" ],
18        mover: [ "accent" ],
19        munderover: [ "accent", "accentunder" ]
20    },
21    Filter: function(t, a, e) {
22        if (delete t.enriched, !this.config.disabled) try {
23            this.running = !0;
24            var n = sre.Enrich.semanticMathmlSync(t.root.toMathML());
25            t.root = MathJax.InputJax.MathML.Parse.prototype.MakeMML(n), t.root.inputID = e.id,
26            t.enriched = !0, this.running = !1;
27        } catch (t) {
28            throw this.running = !1, t;
29        }
30    },
31    Enable: function(t, a) {
32        this.config.disabled = !1, t && MathJax.Hub.Queue([ "Reprocess", MathJax.Hub ]);
33    },
34    Disable: function(t, a) {
35        this.config.disabled = !0;
36        for (var e = this.dependents.length - 1; 0 <= e; e--) {
37            var n = this.dependents[e];
38            n.Disable && n.Disable(!1, a);
39        }
40        t && MathJax.Hub.Queue([ "Reprocess", MathJax.Hub ]);
41    },
42    Dependent: function(t) {
43        this.dependents.push(t);
44    }
45}, function() {
46    var t = MathJax.Ajax.config.path;
47    t.a11y || (t.a11y = HUB.config.root + "/extensions/a11y"), t.SRE || (t.SRE = MathJax.Ajax.fileURL(t.a11y)),
48    MathJax.Ajax.Load("[SRE]/mathjax-sre.js"), MathJax.Hub.Register.StartupHook("Sre Ready", [ "loadComplete", MathJax.Ajax, "[SRE]/mathjax-sre.js" ]);
49}(), MathJax.Callback.Queue([ "Require", MathJax.Ajax, "[MathJax]/jax/element/mml/jax.js" ], [ "Require", MathJax.Ajax, "[MathJax]/jax/input/MathML/config.js" ], [ "Require", MathJax.Ajax, "[MathJax]/jax/input/MathML/jax.js" ], [ "Require", MathJax.Ajax, "[MathJax]/extensions/toMathML.js" ], MathJax.Hub.Register.StartupHook("Sre Ready", function() {
50    var l = MathJax.ElementJax.mml, c = MathJax.Extension["semantic-enrich"];
51    l.mbase.Augment({
52        toMathMLattributes: function() {
53            var t = "mstyle" === this.type ? l.math.prototype.defaults : this.defaults, a = this.attrNames || l.copyAttributeNames, e = l.skipAttributes, n = l.copyAttributes, s = c.running && c.mstyleLookup[this.type] || [], i = [], h = this.attr || {};
54            if ("math" !== this.type || this.attr && "xmlns" in this.attr || i.push('xmlns="http://www.w3.org/1998/Math/MathML"'),
55            !this.attrNames) for (var r in t) e[r] || n[r] || !t.hasOwnProperty(r) || null != this[r] && this[r] !== t[r] && this.Get(r, null, 1) !== this[r] && this.toMathMLaddAttr(i, r, this[r]);
56            for (var o = 0, u = a.length; o < u; o++) 1 === n[a[o]] && !t.hasOwnProperty(a[o]) || (value = h[a[o]],
57            null == value && (value = this[a[o]]), null != value && this.toMathMLaddAttr(i, a[o], value));
58            for (o = 0, u = s.length; o < u; o++) r = s[o], t.hasOwnProperty(r) && !i["_" + r] && (value = this.Get(r, 1),
59            null != value && this.toMathMLaddAttr(i, r, value));
60            return this.toMathMLclass(i), i.length ? " " + i.join(" ") : "";
61        },
62        toMathMLaddAttr: function(t, a, e) {
63            t.push(a + '="' + this.toMathMLquote(e) + '"'), t["_" + a] = 1;
64        }
65    });
66    var a = l.mo.prototype.setTeXclass;
67    l.mo.Augment({
68        setTeXclass: function(t) {
69            this.getValues("form", "lspace", "rspace");
70            return this.useMMLspacing ? (this.texClass = l.TEXCLASS.NONE, this) : this.attr && this.attr["data-semantic-added"] ? (this.texClass = this.prevClass = l.TEXCLASS.NONE,
71            t) : a.apply(this, arguments);
72        }
73    });
74}), function() {
75    MathJax.Hub.postInputHooks.Add([ "Filter", MathJax.Extension["semantic-enrich"] ], 50),
76    MathJax.Hub.Startup.signal.Post("Semantic Enrich Ready"), MathJax.Ajax.loadComplete("[a11y]/semantic-enrich.js");
77});