(function (global, factory) {
“use strict”;
if (typeof module === “object” && typeof module.exports === “object”) {
module.exports = global.document
? factory(global, true)
: function (w) {
if (!w.document) {
throw new Error(“jQuery requires a window with a document”);
}
return factory(w);
};
} else {
factory(global);
}
})(typeof window !== “undefined” ? window : this, function (window, noGlobal) {
var arr = [];
var getProto = Object.getPrototypeOf;
var slice = arr.slice;
var flat = arr.flat
? function (array) {
return arr.flat.call(array);
}
: function (array) {
return arr.concat.apply([], array);
};
var push = arr.push;
var indexOf = arr.indexOf;
var class2type = {};
var toString = class2type.toString;
var hasOwn = class2type.hasOwnProperty;
var fnToString = hasOwn.toString;
var ObjectFunctionString = fnToString.call(Object);
var support = {};
var isFunction = function isFunction(obj) {
return (
typeof obj === “function” &&
typeof obj.nodeType !== “number” &&
typeof obj.item !== “function”
);
};
var isWindow = function isWindow(obj) {
return obj != null && obj === obj.window;
};
var document = window.document;
var preservedScriptAttributes = {
type: true,
src: true,
nonce: true,
noModule: true,
};
function DOMEval(code, node, doc) {
doc = doc || document;
var i,
val,
script = doc.createElement(“script”);
script.text = code;
if (node) {
for (i in preservedScriptAttributes) {
val = node[i] || (node.getAttribute && node.getAttribute(i));
if (val) {
script.setAttribute(i, val);
}
}
}
doc.head.appendChild(script).parentNode.removeChild(script);
}
function toType(obj) {
if (obj == null) {
return obj + “”;
}
return typeof obj === “object” || typeof obj === “function”
? class2type[toString.call(obj)] || “object”
: typeof obj;
}
var version = “3.6.0”,
jQuery = function (selector, context) {
return new jQuery.fn.init(selector, context);
};
jQuery.fn = jQuery.prototype = {
jquery: version,
constructor: jQuery,
length: 0,
toArray: function () {
return slice.call(this);
},
get: function (num) {
if (num == null) {
return slice.call(this);
}
return num < 0 ? this[num + this.length] : this[num];
},
pushStack: function (elems) {
var ret = jQuery.merge(this.constructor(), elems);
ret.prevObject = this;
return ret;
},
each: function (callback) {
return jQuery.each(this, callback);
},
map: function (callback) {
return this.pushStack(
jQuery.map(this, function (elem, i) {
return callback.call(elem, i, elem);
})
);
},
slice: function () {
return this.pushStack(slice.apply(this, arguments));
},
first: function () {
return this.eq(0);
},
last: function () {
return this.eq(-1);
},
even: function () {
return this.pushStack(
jQuery.grep(this, function (_elem, i) {
return (i + 1) % 2;
})
);
},
odd: function () {
return this.pushStack(
jQuery.grep(this, function (_elem, i) {
return i % 2;
})
);
},
eq: function (i) {
var len = this.length,
j = +i + (i < 0 ? len : 0);
return this.pushStack(j >= 0 && j < len ? [this[j]] : []);
},
end: function () {
return this.prevObject || this.constructor();
},
push: push,
sort: arr.sort,
splice: arr.splice,
};
jQuery.extend = jQuery.fn.extend = function () {
var options,
name,
src,
copy,
copyIsArray,
clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
if (typeof target === “boolean”) {
deep = target;
target = arguments[i] || {};
i++;
}
if (typeof target !== “object” && !isFunction(target)) {
target = {};
}
if (i === length) {
target = this;
i–;
}
for (; i < length; i++) {
if ((options = arguments[i]) != null) {
for (name in options) {
copy = options[name];
if (name === “proto” || target === copy) {
continue;
}
if (
deep &&
copy &&
(jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))
) {
src = target[name];
if (copyIsArray && !Array.isArray(src)) {
clone = [];
} else if (!copyIsArray && !jQuery.isPlainObject(src)) {
clone = {};
} else {
clone = src;
}
copyIsArray = false;
target[name] = jQuery.extend(deep, clone, copy);
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
};
jQuery.extend({
expando: “jQuery” + (version + Math.random()).replace(/\D/g, “”),
isReady: true,
error: function (msg) {
throw new Error(msg);
},
noop: function () {},
isPlainObject: function (obj) {
var proto, Ctor;
if (!obj || toString.call(obj) !== “[object Object]”) {
return false;
}
proto = getProto(obj);
if (!proto) {
return true;
}
Ctor = hasOwn.call(proto, “constructor”) && proto.constructor;
return (
typeof Ctor === “function” &&
fnToString.call(Ctor) === ObjectFunctionString
);
},
isEmptyObject: function (obj) {
var name;
for (name in obj) {
return false;
}
return true;
},
globalEval: function (code, options, doc) {
DOMEval(code, { nonce: options && options.nonce }, doc);
},
each: function (obj, callback) {
var length,
i = 0;
if (isArrayLike(obj)) {
length = obj.length;
for (; i < length; i++) {
if (callback.call(obj[i], i, obj[i]) === false) {
break;
}
}
} else {
for (i in obj) {
if (callback.call(obj[i], i, obj[i]) === false) {
break;
}
}
}
return obj;
},
makeArray: function (arr, results) {
var ret = results || [];
if (arr != null) {
if (isArrayLike(Object(arr))) {
jQuery.merge(ret, typeof arr === “string” ? [arr] : arr);
} else {
push.call(ret, arr);
}
}
return ret;
},
inArray: function (elem, arr, i) {
return arr == null ? -1 : indexOf.call(arr, elem, i);
},
merge: function (first, second) {
var len = +second.length,
j = 0,
i = first.length;
for (; j < len; j++) {
first[i++] = second[j];
}
first.length = i;
return first;
},
grep: function (elems, callback, invert) {
var callbackInverse,
matches = [],
i = 0,
length = elems.length,
callbackExpect = !invert;
for (; i < length; i++) {
callbackInverse = !callback(elems[i], i);
if (callbackInverse !== callbackExpect) {
matches.push(elems[i]);
}
}
return matches;
},
map: function (elems, callback, arg) {
var length,
value,
i = 0,
ret = [];
if (isArrayLike(elems)) {
length = elems.length;
for (; i < length; i++) {
value = callback(elems[i], i, arg);
if (value != null) {
ret.push(value);
}
}
} else {
for (i in elems) {
value = callback(elems[i], i, arg);
if (value != null) {
ret.push(value);
}
}
}
return flat(ret);
},
guid: 1,
support: support,
});
if (typeof Symbol === “function”) {
jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];
}
jQuery.each(
“Boolean Number String Function Array Date RegExp Object Error Symbol”.split(
" "
),
function (_i, name) {
class2type[“[object " + name + “]”] = name.toLowerCase();
}
);
function isArrayLike(obj) {
var length = !!obj && “length” in obj && obj.length,
type = toType(obj);
if (isFunction(obj) || isWindow(obj)) {
return false;
}
return (
type === “array” ||
length === 0 ||
(typeof length === “number” && length > 0 && length - 1 in obj)
);
}
(function () {
console.log(isArrayLike(arguments));
})();
var Sizzle = (function (window) {
var i,
support,
Expr,
getText,
isXML,
tokenize,
compile,
select,
outermostContext,
sortInput,
hasDuplicate,
setDocument,
document,
docElem,
documentIsHTML,
rbuggyQSA,
rbuggyMatches,
matches,
contains,
expando = “sizzle” + 1 * new Date(),
preferredDoc = window.document,
dirruns = 0,
done = 0,
classCache = createCache(),
tokenCache = createCache(),
compilerCache = createCache(),
nonnativeSelectorCache = createCache(),
sortOrder = function (a, b) {
if (a === b) {
hasDuplicate = true;
}
return 0;
},
hasOwn = {}.hasOwnProperty,
arr = [],
pop = arr.pop,
pushNative = arr.push,
push = arr.push,
slice = arr.slice,
indexOf = function (list, elem) {
var i = 0,
len = list.length;
for (; i < len; i++) {
if (list[i] === elem) {
return i;
}
}
return -1;
},
booleans =
“checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|” +
“ismap|loop|multiple|open|readonly|required|scoped”,
whitespace = “[\x20\t\r\n\f]”,
identifier =
“(?:\\[\da-fA-F]{1,6}” +
whitespace +
“?|\\[\r\n\f]|[\w-]|[\0-\x7f])+”,
attributes =
“\[” +
whitespace +
“(" +
identifier +
“)(?:” +
whitespace +
"([^KaTeX parse error: Got function '\\' with no arguments as superscript at position 59: …?:'((?:\\\\.|[^\̲\̲\\'])*)'|\"((?:…“,
“g”
),
rcomma = new RegExp(”^" + whitespace + ",” + whitespace + “"),
rcombinators = new RegExp(
“^” + whitespace + "([>+~]|” + whitespace + “)” + whitespace + “"
),
rdescend = new RegExp(whitespace + “|>”),
rpseudo = new RegExp(pseudos),
ridentifier = new RegExp(“^” + identifier + “KaTeX parse error: Expected group after '^' at position 49: …D: new RegExp("^̲#(" + identifie…”, “i”),
needsContext: new RegExp(
“^” +
whitespace +
"[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\(” +
whitespace +
“((?:-\d)?\d)” +
whitespace +
“\)|)(?=[^-]|KaTeX parse error: Expected 'EOF', got '}' at position 36: … ), }̲, rhtml =…/i,
rinputs = /^(?:input|select|textarea|button)KaTeX parse error: Undefined control sequence: \d at position 24: … rheader = /^h\̲d̲/i,
rnative = /[{]+{\s[native \w/,
rquickExpr = /^(?:#([\w-]+)|(\w+)|.([\w-]+))KaTeX parse error: Invalid size: '\\da-fA-F' at position 72: …( "\\\\[̲\̲\̲d̲a̲-̲f̲A̲-̲F̲]̲{1,6}" + whites…|[^\0-\x1f\x7f-\uFFFF\w-]/g,
fcssescape = function (ch, asCodePoint) {
if (asCodePoint) {
if (ch === “\0”) {
return “\uFFFD”;
}
return (
ch.slice(0, -1) +
“\” +
ch.charCodeAt(ch.length - 1).toString(16) +
" "
);
}
return “\” + ch;
},
unloadHandler = function () {
setDocument();
},
inDisabledFieldset = addCombinator(
function (elem) {
return (
elem.disabled === true && elem.nodeName.toLowerCase() === “fieldset”
);
},
{ dir: “parentNode”, next: “legend” }
);
try {
push.apply(
(arr = slice.call(preferredDoc.childNodes)),
preferredDoc.childNodes
);
arr[preferredDoc.childNodes.length].nodeType;
} catch (e) {
push = {
apply: arr.length
? function (target, els) {
pushNative.apply(target, slice.call(els));
}
: function (target, els) {
var j = target.length,
i = 0;
while ((target[j++] = els[i++])) {}
target.length = j - 1;
},
};
}
function Sizzle(selector, context, results, seed) {
var m,
i,
elem,
nid,
match,
groups,
newSelector,
newContext = context && context.ownerDocument,
nodeType = context ? context.nodeType : 9;
results = results || [];
if (
typeof selector !== “string” ||
!selector ||
(nodeType !== 1 && nodeType !== 9 && nodeType !== 11)
) {
return results;
}
if (!seed) {
setDocument(context);
context = context || document;
if (documentIsHTML) {
if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {
if ((m = match[1])) {
if (nodeType === 9) {
if ((elem = context.getElementById(m))) {
if (elem.id === m) {
results.push(elem);
return results;
}
} else {
return results;
}
} else {
if (
newContext &&
(elem = newContext.getElementById(m)) &&
contains(context, elem) &&
elem.id === m
) {
results.push(elem);
return results;
}
}
} else if (match[2]) {
push.apply(results, context.getElementsByTagName(selector));
return results;
} else if (
(m = match[3]) &&
support.getElementsByClassName &&
context.getElementsByClassName
) {
push.apply(results, context.getElementsByClassName(m));
return results;
}
}
if (
support.qsa &&
!nonnativeSelectorCache[selector + " “] &&
(!rbuggyQSA || !rbuggyQSA.test(selector)) &&
(nodeType !== 1 || context.nodeName.toLowerCase() !== “object”)
) {
newSelector = selector;
newContext = context;
if (
nodeType === 1 &&
(rdescend.test(selector) || rcombinators.test(selector))
) {
newContext =
(rsibling.test(selector) && testContext(context.parentNode)) ||
context;
if (newContext !== context || !support.scope) {
if ((nid = context.getAttribute(“id”))) {
nid = nid.replace(rcssescape, fcssescape);
} else {
context.setAttribute(“id”, (nid = expando));
}
}
groups = tokenize(selector);
i = groups.length;
while (i–) {
groups[i] =
(nid ? “#” + nid : “:scope”) + " " + toSelector(groups[i]);
}
newSelector = groups.join(”,”);
}
try {
push.apply(results, newContext.querySelectorAll(newSelector));
return results;
} catch (qsaError) {
nonnativeSelectorCache(selector, true);
} finally {
if (nid === expando) {
context.removeAttribute(“id”);
}
}
}
}
}
return select(selector.replace(rtrim, “KaTeX parse error: Expected 'EOF', got '}' at position 35: …ts, seed); }̲ function c…]=” + whitespace + “(?:‘’|“”)“);
}
if (!el.querySelectorAll(”[selected]“).length) {
rbuggyQSA.push(”\[" + whitespace + "(?:value|” + booleans + “)”);
}
if (!el.querySelectorAll(”[id~=" + expando + “-]”).length) {
rbuggyQSA.push(“~=”);
}
input = document.createElement(“input”);
input.setAttribute(“name”, “”);
el.appendChild(input);
if (!el.querySelectorAll(“[name=‘’]”).length) {
rbuggyQSA.push(
“\[” +
whitespace +
“name" +
whitespace +
"=” +
whitespace +
“(?:‘’|“”)"
);
}
if (!el.querySelectorAll(“:checked”).length) {
rbuggyQSA.push(“:checked”);
}
if (!el.querySelectorAll(“a#” + expando + "+”).length) {
rbuggyQSA.push(“.#.+[+~]”);
}
el.querySelectorAll(“\\f”);
rbuggyQSA.push(“[\r\n\f]”);
});
assert(function (el) {
el.innerHTML =
“” +
“”;
var input = document.createElement(“input”);
input.setAttribute(“type”, “hidden”);
el.appendChild(input).setAttribute(“name”, “D”);
if (el.querySelectorAll(“[name=d]”).length) {
rbuggyQSA.push(“name” + whitespace + “[^KaTeX parse error: Expected 'EOF', got '}' at position 21: …="); }̲ if (…)”
)) &&
classCache(className, function (elem) {
return pattern.test(
(typeof elem.className === “string” && elem.className) ||
(typeof elem.getAttribute !== “undefined” &&
elem.getAttribute(“class”)) ||
“”
);
}))
);
},
ATTR: function (name, operator, check) {
return function (elem) {
var result = Sizzle.attr(elem, name);
if (result == null) {
return operator === “!=”;
}
if (!operator) {
return true;
}
result += “”;
return operator === “=”
? result === check
: operator === “!=”
? result !== check
: operator === “^=”
? check && result.indexOf(check) === 0
: operator === “="
? check && result.indexOf(check) > -1
: operator === “$=”
? check && result.slice(-check.length) === check
: operator === “~=”
? (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) >
-1
: operator === “|=”
? result === check ||
result.slice(0, check.length + 1) === check + “-”
: false;
};
},
CHILD: function (type, what, _argument, first, last) {
var simple = type.slice(0, 3) !== “nth”,
forward = type.slice(-4) !== “last”,
ofType = what === “of-type”;
return first === 1 && last === 0
? function (elem) {
return !!elem.parentNode;
}
: function (elem, _context, xml) {
var cache,
uniqueCache,
outerCache,
node,
nodeIndex,
start,
dir = simple !== forward ? “nextSibling” : “previousSibling”,
parent = elem.parentNode,
name = ofType && elem.nodeName.toLowerCase(),
useCache = !xml && !ofType,
diff = false;
if (parent) {
if (simple) {
while (dir) {
node = elem;
while ((node = node[dir])) {
if (
ofType
? node.nodeName.toLowerCase() === name
: node.nodeType === 1
) {
return false;
}
}
start = dir = type === “only” && !start && “nextSibling”;
}
return true;
}
start = [forward ? parent.firstChild : parent.lastChild];
if (forward && useCache) {
node = parent;
outerCache = node[expando] || (node[expando] = {});
uniqueCache =
outerCache[node.uniqueID] ||
(outerCache[node.uniqueID] = {});
cache = uniqueCache[type] || [];
nodeIndex = cache[0] === dirruns && cache[1];
diff = nodeIndex && cache[2];
node = nodeIndex && parent.childNodes[nodeIndex];
while (
(node =
(++nodeIndex && node && node[dir]) ||
(diff = nodeIndex = 0) ||
start.pop())
) {
if (node.nodeType === 1 && ++diff && node === elem) {
uniqueCache[type] = [dirruns, nodeIndex, diff];
break;
}
}
} else {
if (useCache) {
node = elem;
outerCache = node[expando] || (node[expando] = {});
uniqueCache =
outerCache[node.uniqueID] ||
(outerCache[node.uniqueID] = {});
cache = uniqueCache[type] || [];
nodeIndex = cache[0] === dirruns && cache[1];
diff = nodeIndex;
}
if (diff === false) {
while (
(node =
(++nodeIndex && node && node[dir]) ||
(diff = nodeIndex = 0) ||
start.pop())
) {
if (
(ofType
? node.nodeName.toLowerCase() === name
: node.nodeType === 1) &&
++diff
) {
if (useCache) {
outerCache = node[expando] || (node[expando] = {});
uniqueCache =
outerCache[node.uniqueID] ||
(outerCache[node.uniqueID] = {});
uniqueCache[type] = [dirruns, diff];
}
if (node === elem) {
break;
}
}
}
}
}
diff -= last;
return (
diff === first || (diff % first === 0 && diff / first >= 0)
);
}
};
},
PSEUDO: function (pseudo, argument) {
var args,
fn =
Expr.pseudos[pseudo] ||
Expr.setFilters[pseudo.toLowerCase()] ||
Sizzle.error("unsupported pseudo: " + pseudo);
if (fn[expando]) {
return fn(argument);
}
if (fn.length > 1) {
args = [pseudo, pseudo, “”, argument];
return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())
? markFunction(function (seed, matches) {
var idx,
matched = fn(seed, argument),
i = matched.length;
while (i–) {
idx = indexOf(seed, matched[i]);
seed[idx] = !(matches[idx] = matched[i]);
}
})
: function (elem) {
return fn(elem, 0, args);
};
}
return fn;
},
},
pseudos: {
not: markFunction(function (selector) {
var input = [],
results = [],
matcher = compile(selector.replace(rtrim, “$1”));
return matcher[expando]
? markFunction(function (seed, matches, _context, xml) {
var elem,
unmatched = matcher(seed, null, xml, []),
i = seed.length;
while (i–) {
if ((elem = unmatched[i])) {
seed[i] = !(matches[i] = elem);
}
}
})
: function (elem, _context, xml) {
input[0] = elem;
matcher(input, null, xml, results);
input[0] = null;
return !results.pop();
};
}),
has: markFunction(function (selector) {
return function (elem) {
return Sizzle(selector, elem).length > 0;
};
}),
contains: markFunction(function (text) {
text = text.replace(runescape, funescape);
return function (elem) {
return (elem.textContent || getText(elem)).indexOf(text) > -1;
};
}),
lang: markFunction(function (lang) {
if (!ridentifier.test(lang || “”)) {
Sizzle.error("unsupported lang: " + lang);
}
lang = lang.replace(runescape, funescape).toLowerCase();
return function (elem) {
var elemLang;
do {
if (
(elemLang = documentIsHTML
? elem.lang
: elem.getAttribute(“xml:lang”) || elem.getAttribute(“lang”))
) {
elemLang = elemLang.toLowerCase();
return elemLang === lang || elemLang.indexOf(lang + “-”) === 0;
}
} while ((elem = elem.parentNode) && elem.nodeType === 1);
return false;
};
}),
target: function (elem) {
var hash = window.location && window.location.hash;
return hash && hash.slice(1) === elem.id;
},
root: function (elem) {
return elem === docElem;
},
focus: function (elem) {
return (
elem === document.activeElement &&
(!document.hasFocus || document.hasFocus()) &&
!!(elem.type || elem.href || ~elem.tabIndex)
);
},
enabled: createDisabledPseudo(false),
disabled: createDisabledPseudo(true),
checked: function (elem) {
var nodeName = elem.nodeName.toLowerCase();
return (
(nodeName === “input” && !!elem.checked) ||
(nodeName === “option” && !!elem.selected)
);
},
selected: function (elem) {
if (elem.parentNode) {
elem.parentNode.selectedIndex;
}
return elem.selected === true;
},
empty: function (elem) {
for (elem = elem.firstChild; elem; elem = elem.nextSibling) {
if (elem.nodeType < 6) {
return false;
}
}
return true;
},
parent: function (elem) {
return !Expr.pseudos"empty";
},
header: function (elem) {
return rheader.test(elem.nodeName);
},
input: function (elem) {
return rinputs.test(elem.nodeName);
},
button: function (elem) {
var name = elem.nodeName.toLowerCase();
return (
(name === “input” && elem.type === “button”) || name === “button”
);
},
text: function (elem) {
var attr;
return (
elem.nodeName.toLowerCase() === “input” &&
elem.type === “text” &&
((attr = elem.getAttribute(“type”)) == null ||
attr.toLowerCase() === “text”)
);
},
first: createPositionalPseudo(function () {
return [0];
}),
last: createPositionalPseudo(function (_matchIndexes, length) {
return [length - 1];
}),
eq: createPositionalPseudo(function (_matchIndexes, length, argument) {
return [argument < 0 ? argument + length : argument];
}),
even: createPositionalPseudo(function (matchIndexes, length) {
var i = 0;
for (; i < length; i += 2) {
matchIndexes.push(i);
}
return matchIndexes;
}),
odd: createPositionalPseudo(function (matchIndexes, length) {
var i = 1;
for (; i < length; i += 2) {
matchIndexes.push(i);
}
return matchIndexes;
}),
lt: createPositionalPseudo(function (matchIndexes, length, argument) {
var i =
argument < 0
? argument + length
: argument > length
? length
: argument;
for (; --i >= 0; ) {
matchIndexes.push(i);
}
return matchIndexes;
}),
gt: createPositionalPseudo(function (matchIndexes, length, argument) {
var i = argument < 0 ? argument + length : argument;
for (; ++i < length; ) {
matchIndexes.push(i);
}
return matchIndexes;
}),
},
};
Expr.pseudos[“nth”] = Expr.pseudos[“eq”];
for (i in {
radio: true,
checkbox: true,
file: true,
password: true,
image: true,
}) {
Expr.pseudos[i] = createInputPseudo(i);
}
for (i in { submit: true, reset: true }) {
Expr.pseudos[i] = createButtonPseudo(i);
}
function setFilters() {}
setFilters.prototype = Expr.filters = Expr.pseudos;
Expr.setFilters = new setFilters();
tokenize = Sizzle.tokenize = function (selector, parseOnly) {
var matched,
match,
tokens,
type,
soFar,
groups,
preFilters,
cached = tokenCache[selector + " "];
if (cached) {
return parseOnly ? 0 : cached.slice(0);
}
soFar = selector;
groups = [];
preFilters = Expr.preFilter;
while (soFar) {
if (!matched || (match = rcomma.exec(soFar))) {
if (match) {
soFar = soFar.slice(match[0].length) || soFar;
}
groups.push((tokens = []));
}
matched = false;
if ((match = rcombinators.exec(soFar))) {
matched = match.shift();
tokens.push({
value: matched,
type: match[0].replace(rtrim, " "),
});
soFar = soFar.slice(matched.length);
}
for (type in Expr.filter) {
if (
(match = matchExpr[type].exec(soFar)) &&
(!preFilters[type] || (match = preFilterstype))
) {
matched = match.shift();
tokens.push({
value: matched,
type: type,
matches: match,
});
soFar = soFar.slice(matched.length);
}
}
if (!matched) {
break;
}
}
return parseOnly
? soFar.length
: soFar
? Sizzle.error(selector)
: tokenCache(selector, groups).slice(0);
};
function toSelector(tokens) {
var i = 0,
len = tokens.length,
selector = “”;
for (; i < len; i++) {
selector += tokens[i].value;
}
return selector;
}
function addCombinator(matcher, combinator, base) {
var dir = combinator.dir,
skip = combinator.next,
key = skip || dir,
checkNonElements = base && key === “parentNode”,
doneName = done++;
return combinator.first
? function (elem, context, xml) {
while ((elem = elem[dir])) {
if (elem.nodeType === 1 || checkNonElements) {
return matcher(elem, context, xml);
}
}
return false;
}
: function (elem, context, xml) {
var oldCache,
uniqueCache,
outerCache,
newCache = [dirruns, doneName];
if (xml) {
while ((elem = elem[dir])) {
if (elem.nodeType === 1 || checkNonElements) {
if (matcher(elem, context, xml)) {
return true;
}
}
}
} else {
while ((elem = elem[dir])) {
if (elem.nodeType === 1 || checkNonElements) {
outerCache = elem[expando] || (elem[expando] = {});
uniqueCache =
outerCache[elem.uniqueID] ||
(outerCache[elem.uniqueID] = {});
if (skip && skip === elem.nodeName.toLowerCase()) {
elem = elem[dir] || elem;
} else if (
(oldCache = uniqueCache[key]) &&
oldCache[0] === dirruns &&
oldCache[1] === doneName
) {
return (newCache[2] = oldCache[2]);
} else {
uniqueCache[key] = newCache;
if ((newCache[2] = matcher(elem, context, xml))) {
return true;
}
}
}
}
}
return false;
};
}
function elementMatcher(matchers) {
return matchers.length > 1
? function (elem, context, xml) {
var i = matchers.length;
while (i–) {
if (!matchers[i](elem, context, xml)) {
return false;
}
}
return true;
}
: matchers[0];
}
function multipleContexts(selector, contexts, results) {
var i = 0,
len = contexts.length;
for (; i < len; i++) {
Sizzle(selector, contexts[i], results);
}
return results;
}
function condense(unmatched, map, filter, context, xml) {
var elem,
newUnmatched = [],
i = 0,
len = unmatched.length,
mapped = map != null;
for (; i < len; i++) {
if ((elem = unmatched[i])) {
if (!filter || filter(elem, context, xml)) {
newUnmatched.push(elem);
if (mapped) {
map.push(i);
}
}
}
}
return newUnmatched;
}
function setMatcher(
preFilter,
selector,
matcher,
postFilter,
postFinder,
postSelector
) {
if (postFilter && !postFilter[expando]) {
postFilter = setMatcher(postFilter);
}
if (postFinder && !postFinder[expando]) {
postFinder = setMatcher(postFinder, postSelector);
}
return markFunction(function (seed, results, context, xml) {
var temp,
i,
elem,
preMap = [],
postMap = [],
preexisting = results.length,
elems =
seed ||
multipleContexts(
selector || "”,
context.nodeType ? [context] : context,
[]
),
matcherIn =
preFilter && (seed || !selector)
? condense(elems, preMap, preFilter, context, xml)
: elems,
matcherOut = matcher
? postFinder || (seed ? preFilter : preexisting || postFilter)
? []
: results
: matcherIn;
if (matcher) {
matcher(matcherIn, matcherOut, context, xml);
}
if (postFilter) {
temp = condense(matcherOut, postMap);
postFilter(temp, [], context, xml);
i = temp.length;
while (i–) {
if ((elem = temp[i])) {
matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);
}
}
}
if (seed) {
if (postFinder || preFilter) {
if (postFinder) {
temp = [];
i = matcherOut.length;
while (i–) {
if ((elem = matcherOut[i])) {
temp.push((matcherIn[i] = elem));
}
}
postFinder(null, (matcherOut = []), temp, xml);
}
i = matcherOut.length;
while (i–) {
if (
(elem = matcherOut[i]) &&
(temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1
) {
seed[temp] = !(results[temp] = elem);
}
}
}
} else {
matcherOut = condense(
matcherOut === results
? matcherOut.splice(preexisting, matcherOut.length)
: matcherOut
);
if (postFinder) {
postFinder(null, results, matcherOut, xml);
} else {
push.apply(results, matcherOut);
}
}
});
}
function matcherFromTokens(tokens) {
var checkContext,
matcher,
j,
len = tokens.length,
leadingRelative = Expr.relative[tokens[0].type],
implicitRelative = leadingRelative || Expr.relative[" “],
i = leadingRelative ? 1 : 0,
matchContext = addCombinator(
function (elem) {
return elem === checkContext;
},
implicitRelative,
true
),
matchAnyContext = addCombinator(
function (elem) {
return indexOf(checkContext, elem) > -1;
},
implicitRelative,
true
),
matchers = [
function (elem, context, xml) {
var ret =
(!leadingRelative && (xml || context !== outermostContext)) ||
((checkContext = context).nodeType
? matchContext(elem, context, xml)
: matchAnyContext(elem, context, xml));
checkContext = null;
return ret;
},
];
for (; i < len; i++) {
if ((matcher = Expr.relative[tokens[i].type])) {
matchers = [addCombinator(elementMatcher(matchers), matcher)];
} else {
matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);
if (matcher[expando]) {
j = ++i;
for (; j < len; j++) {
if (Expr.relative[tokens[j].type]) {
break;
}
}
return setMatcher(
i > 1 && elementMatcher(matchers),
i > 1 &&
toSelector(
tokens
.slice(0, i - 1)
.concat({ value: tokens[i - 2].type === " " ? “" : “” })
).replace(rtrim, "KaTeX parse error: Expected 'EOF', got '&' at position 49: … i < j &̲& matcherFromTo…/i;
function winnow(elements, qualifier, not) {
if (isFunction(qualifier)) {
return jQuery.grep(elements, function (elem, i) {
return !!qualifier.call(elem, i, elem) !== not;
});
}
if (qualifier.nodeType) {
return jQuery.grep(elements, function (elem) {
return (elem === qualifier) !== not;
});
}
if (typeof qualifier !== “string”) {
return jQuery.grep(elements, function (elem) {
return indexOf.call(qualifier, elem) > -1 !== not;
});
}
return jQuery.filter(qualifier, elements, not);
}
jQuery.filter = function (expr, elems, not) {
var elem = elems[0];
if (not) {
expr = “:not(” + expr + “)”;
}
if (elems.length === 1 && elem.nodeType === 1) {
return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];
}
return jQuery.find.matches(
expr,
jQuery.grep(elems, function (elem) {
return elem.nodeType === 1;
})
);
};
jQuery.fn.extend({
find: function (selector) {
var i,
ret,
len = this.length,
self = this;
if (typeof selector !== “string”) {
return this.pushStack(
jQuery(selector).filter(function () {
for (i = 0; i < len; i++) {
if (jQuery.contains(self[i], this)) {
return true;
}
}
})
);
}
ret = this.pushStack([]);
for (i = 0; i < len; i++) {
jQuery.find(selector, self[i], ret);
}
return len > 1 ? jQuery.uniqueSort(ret) : ret;
},
filter: function (selector) {
return this.pushStack(winnow(this, selector || [], false));
},
not: function (selector) {
return this.pushStack(winnow(this, selector || [], true));
},
is: function (selector) {
return !!winnow(
this,
typeof selector === “string” && rneedsContext.test(selector)
? jQuery(selector)
: selector || [],
false
).length;
},
});
var rootjQuery,
rquickExpr = /(?:\s*(<[\w\W]+>)[>]|#([\w-]+))KaTeX parse error: Expected '}', got '&' at position 263: …tor[0] === "<" &̲& sel…/;
jQuery.Deferred.exceptionHook = function (error, stack) {
if (
window.console &&
window.console.warn &&
error &&
rerrorNames.test(error.name)
) {
window.console.warn(
“jQuery.Deferred exception: " + error.message,
error.stack,
stack
);
}
};
jQuery.readyException = function (error) {
window.setTimeout(function () {
throw error;
});
};
var readyList = jQuery.Deferred();
jQuery.fn.ready = function (fn) {
readyList.then(fn).catch(function (error) {
jQuery.readyException(error);
});
return this;
};
jQuery.extend({
isReady: false,
readyWait: 1,
ready: function (wait) {
if (wait === true ? --jQuery.readyWait : jQuery.isReady) {
return;
}
jQuery.isReady = true;
if (wait !== true && --jQuery.readyWait > 0) {
return;
}
readyList.resolveWith(document, [jQuery]);
},
});
jQuery.ready.then = readyList.then;
function completed() {
document.removeEventListener(“DOMContentLoaded”, completed);
window.removeEventListener(“load”, completed);
jQuery.ready();
}
if (
document.readyState === “complete” ||
(document.readyState !== “loading” && !document.documentElement.doScroll)
) {
window.setTimeout(jQuery.ready);
} else {
document.addEventListener(“DOMContentLoaded”, completed);
window.addEventListener(“load”, completed);
}
var access = function (elems, fn, key, value, chainable, emptyGet, raw) {
var i = 0,
len = elems.length,
bulk = key == null;
if (toType(key) === “object”) {
chainable = true;
for (i in key) {
access(elems, fn, i, key[i], true, emptyGet, raw);
}
} else if (value !== undefined) {
chainable = true;
if (!isFunction(value)) {
raw = true;
}
if (bulk) {
if (raw) {
fn.call(elems, value);
fn = null;
} else {
bulk = fn;
fn = function (elem, _key, value) {
return bulk.call(jQuery(elem), value);
};
}
}
if (fn) {
for (; i < len; i++) {
fn(
elems[i],
key,
raw ? value : value.call(elems[i], i, fn(elems[i], key))
);
}
}
}
if (chainable) {
return elems;
}
if (bulk) {
return fn.call(elems);
}
return len ? fn(elems[0], key) : emptyGet;
};
var rmsPrefix = /^-ms-/,
rdashAlpha = /-([a-z])/g;
function fcamelCase(_all, letter) {
return letter.toUpperCase();
}
function camelCase(string) {
return string.replace(rmsPrefix, “ms-”).replace(rdashAlpha, fcamelCase);
}
var acceptData = function (owner) {
return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;
};
function Data() {
this.expando = jQuery.expando + Data.uid++;
}
Data.uid = 1;
Data.prototype = {
cache: function (owner) {
var value = owner[this.expando];
if (!value) {
value = {};
if (acceptData(owner)) {
if (owner.nodeType) {
owner[this.expando] = value;
} else {
Object.defineProperty(owner, this.expando, {
value: value,
configurable: true,
});
}
}
}
return value;
},
set: function (owner, data, value) {
var prop,
cache = this.cache(owner);
if (typeof data === “string”) {
cache[camelCase(data)] = value;
} else {
for (prop in data) {
cache[camelCase(prop)] = data[prop];
}
}
return cache;
},
get: function (owner, key) {
return key === undefined
? this.cache(owner)
: owner[this.expando] && owner[this.expando][camelCase(key)];
},
access: function (owner, key, value) {
if (
key === undefined ||
(key && typeof key === “string” && value === undefined)
) {
return this.get(owner, key);
}
this.set(owner, key, value);
return value !== undefined ? value : key;
},
remove: function (owner, key) {
var i,
cache = owner[this.expando];
if (cache === undefined) {
return;
}
if (key !== undefined) {
if (Array.isArray(key)) {
key = key.map(camelCase);
} else {
key = camelCase(key);
key = key in cache ? [key] : key.match(rnothtmlwhite) || [];
}
i = key.length;
while (i–) {
delete cache[key[i]];
}
}
if (key === undefined || jQuery.isEmptyObject(cache)) {
if (owner.nodeType) {
owner[this.expando] = undefined;
} else {
delete owner[this.expando];
}
}
},
hasData: function (owner) {
var cache = owner[this.expando];
return cache !== undefined && !jQuery.isEmptyObject(cache);
},
};
var dataPriv = new Data();
var dataUser = new Data();
var rbrace = /^(?:{[\w\W]}|[[\w\W]])KaTeX parse error: Expected '}', got '&' at position 440: … === undefined &̲& elem.nodeType…&”).toLowerCase();
data = elem.getAttribute(name);
if (typeof data === “string”) {
try {
data = getData(data);
} catch (e) {}
dataUser.set(elem, key, data);
} else {
data = undefined;
}
}
return data;
}
jQuery.extend({
hasData: function (elem) {
return dataUser.hasData(elem) || dataPriv.hasData(elem);
},
data: function (elem, name, data) {
return dataUser.access(elem, name, data);
},
removeData: function (elem, name) {
dataUser.remove(elem, name);
},
_data: function (elem, name, data) {
return dataPriv.access(elem, name, data);
},
_removeData: function (elem, name) {
dataPriv.remove(elem, name);
},
});
jQuery.fn.extend({
data: function (key, value) {
var i,
name,
data,
elem = this[0],
attrs = elem && elem.attributes;
if (key === undefined) {
if (this.length) {
data = dataUser.get(elem);
if (elem.nodeType === 1 && !dataPriv.get(elem, “hasDataAttrs”)) {
i = attrs.length;
while (i–) {
if (attrs[i]) {
name = attrs[i].name;
if (name.indexOf(“data-”) === 0) {
name = camelCase(name.slice(5));
dataAttr(elem, name, data[name]);
}
}
}
dataPriv.set(elem, “hasDataAttrs”, true);
}
}
return data;
}
if (typeof key === “object”) {
return this.each(function () {
dataUser.set(this, key);
});
}
return access(
this,
function (value) {
var data;
if (elem && value === undefined) {
data = dataUser.get(elem, key);
if (data !== undefined) {
return data;
}
data = dataAttr(elem, key);
if (data !== undefined) {
return data;
}
return;
}
this.each(function () {
dataUser.set(this, key, value);
});
},
null,
value,
arguments.length > 1,
null,
true
);
},
removeData: function (key) {
return this.each(function () {
dataUser.remove(this, key);
});
},
});
jQuery.extend({
queue: function (elem, type, data) {
var queue;
if (elem) {
type = (type || “fx”) + “queue”;
queue = dataPriv.get(elem, type);
if (data) {
if (!queue || Array.isArray(data)) {
queue = dataPriv.access(elem, type, jQuery.makeArray(data));
} else {
queue.push(data);
}
}
return queue || [];
}
},
dequeue: function (elem, type) {
type = type || “fx”;
var queue = jQuery.queue(elem, type),
startLength = queue.length,
fn = queue.shift(),
hooks = jQuery._queueHooks(elem, type),
next = function () {
jQuery.dequeue(elem, type);
};
if (fn === “inprogress”) {
fn = queue.shift();
startLength–;
}
if (fn) {
if (type === “fx”) {
queue.unshift(“inprogress”);
}
delete hooks.stop;
fn.call(elem, next, hooks);
}
if (!startLength && hooks) {
hooks.empty.fire();
}
},
_queueHooks: function (elem, type) {
var key = type + “queueHooks”;
return (
dataPriv.get(elem, key) ||
dataPriv.access(elem, key, {
empty: jQuery.Callbacks(“once memory”).add(function () {
dataPriv.remove(elem, [type + “queue”, key]);
}),
})
);
},
});
jQuery.fn.extend({
queue: function (type, data) {
var setter = 2;
if (typeof type !== “string”) {
data = type;
type = “fx”;
setter–;
}
if (arguments.length < setter) {
return jQuery.queue(this[0], type);
}
return data === undefined
? this
: this.each(function () {
var queue = jQuery.queue(this, type, data);
jQuery._queueHooks(this, type);
if (type === “fx” && queue[0] !== “inprogress”) {
jQuery.dequeue(this, type);
}
});
},
dequeue: function (type) {
return this.each(function () {
jQuery.dequeue(this, type);
});
},
clearQueue: function (type) {
return this.queue(type || “fx”, []);
},
promise: function (type, obj) {
var tmp,
count = 1,
defer = jQuery.Deferred(),
elements = this,
i = this.length,
resolve = function () {
if (!–count) {
defer.resolveWith(elements, [elements]);
}
};
if (typeof type !== “string”) {
obj = type;
type = undefined;
}
type = type || “fx”;
while (i–) {
tmp = dataPriv.get(elements[i], type + “queueHooks”);
if (tmp && tmp.empty) {
count++;
tmp.empty.add(resolve);
}
}
resolve();
return defer.promise(obj);
},
});
var pnum = /[±]?(?:\d*.|)\d+(?:[eE][±]?\d+|)/.source;
var rcssNum = new RegExp(”^(?😦[±])=|)(” + pnum + “)([a-z%])KaTeX parse error: Expected '}', got '&' at position 624: …display === "" &̲& isAtt…/i;
var rtagName = /<([a-z][^/\0>\x20\t\r\n\f])/i;
var rscriptType = /^
∣
m
o
d
u
l
e
|^module
∣module|/(?:java|ecma)script/i;
(function () {
var fragment = document.createDocumentFragment(),
div = fragment.appendChild(document.createElement(“div”)),
input = document.createElement(“input”);
input.setAttribute(“type”, “radio”);
input.setAttribute(“checked”, “checked”);
input.setAttribute(“name”, “t”);
div.appendChild(input);
support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;
div.innerHTML = “x”;
support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;
div.innerHTML = “”;
support.option = !!div.lastChild;
})();
var wrapMap = {
thead: [1, “