File Manager
Viewing File: bundle.js
! function(e, t) {
"use strict";
"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
if (!e.document) throw new Error("jQuery requires a window with a document");
return t(e)
} : t(e)
}("undefined" != typeof window ? window : this, (function(e, t) {
"use strict";
var n = [],
i = Object.getPrototypeOf,
r = n.slice,
o = n.flat ? function(e) {
return n.flat.call(e)
} : function(e) {
return n.concat.apply([], e)
},
a = n.push,
s = n.indexOf,
l = {},
c = l.toString,
u = l.hasOwnProperty,
d = u.toString,
h = d.call(Object),
f = {},
p = function(e) {
return "function" == typeof e && "number" != typeof e.nodeType
},
g = function(e) {
return null != e && e === e.window
},
m = e.document,
v = {
type: !0,
src: !0,
nonce: !0,
noModule: !0
};
function y(e, t, n) {
var i, r, o = (n = n || m).createElement("script");
if (o.text = e, t)
for (i in v)(r = t[i] || t.getAttribute && t.getAttribute(i)) && o.setAttribute(i, r);
n.head.appendChild(o).parentNode.removeChild(o)
}
function b(e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[c.call(e)] || "object" : typeof e
}
var w = "3.5.1",
x = function(e, t) {
return new x.fn.init(e, t)
};
function _(e) {
var t = !!e && "length" in e && e.length,
n = b(e);
return !p(e) && !g(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
}
x.fn = x.prototype = {
jquery: w,
constructor: x,
length: 0,
toArray: function() {
return r.call(this)
},
get: function(e) {
return null == e ? r.call(this) : e < 0 ? this[e + this.length] : this[e]
},
pushStack: function(e) {
var t = x.merge(this.constructor(), e);
return t.prevObject = this, t
},
each: function(e) {
return x.each(this, e)
},
map: function(e) {
return this.pushStack(x.map(this, (function(t, n) {
return e.call(t, n, t)
})))
},
slice: function() {
return this.pushStack(r.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
even: function() {
return this.pushStack(x.grep(this, (function(e, t) {
return (t + 1) % 2
})))
},
odd: function() {
return this.pushStack(x.grep(this, (function(e, t) {
return t % 2
})))
},
eq: function(e) {
var t = this.length,
n = +e + (e < 0 ? t : 0);
return this.pushStack(0 <= n && n < t ? [this[n]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: a,
sort: n.sort,
splice: n.splice
}, x.extend = x.fn.extend = function() {
var e, t, n, i, r, o, a = arguments[0] || {},
s = 1,
l = arguments.length,
c = !1;
for ("boolean" == typeof a && (c = a, a = arguments[s] || {}, s++), "object" == typeof a || p(a) || (a = {}), s === l && (a = this, s--); s < l; s++)
if (null != (e = arguments[s]))
for (t in e) i = e[t], "__proto__" !== t && a !== i && (c && i && (x.isPlainObject(i) || (r = Array.isArray(i))) ? (n = a[t], o = r && !Array.isArray(n) ? [] : r || x.isPlainObject(n) ? n : {}, r = !1, a[t] = x.extend(c, o, i)) : void 0 !== i && (a[t] = i));
return a
}, x.extend({
expando: "jQuery" + (w + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(e) {
throw new Error(e)
},
noop: function() {},
isPlainObject: function(e) {
var t, n;
return !(!e || "[object Object]" !== c.call(e) || (t = i(e)) && ("function" != typeof(n = u.call(t, "constructor") && t.constructor) || d.call(n) !== h))
},
isEmptyObject: function(e) {
var t;
for (t in e) return !1;
return !0
},
globalEval: function(e, t, n) {
y(e, {
nonce: t && t.nonce
}, n)
},
each: function(e, t) {
var n, i = 0;
if (_(e))
for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++);
else
for (i in e)
if (!1 === t.call(e[i], i, e[i])) break;
return e
},
makeArray: function(e, t) {
var n = t || [];
return null != e && (_(Object(e)) ? x.merge(n, "string" == typeof e ? [e] : e) : a.call(n, e)), n
},
inArray: function(e, t, n) {
return null == t ? -1 : s.call(t, e, n)
},
merge: function(e, t) {
for (var n = +t.length, i = 0, r = e.length; i < n; i++) e[r++] = t[i];
return e.length = r, e
},
grep: function(e, t, n) {
for (var i = [], r = 0, o = e.length, a = !n; r < o; r++) !t(e[r], r) !== a && i.push(e[r]);
return i
},
map: function(e, t, n) {
var i, r, a = 0,
s = [];
if (_(e))
for (i = e.length; a < i; a++) null != (r = t(e[a], a, n)) && s.push(r);
else
for (a in e) null != (r = t(e[a], a, n)) && s.push(r);
return o(s)
},
guid: 1,
support: f
}), "function" == typeof Symbol && (x.fn[Symbol.iterator] = n[Symbol.iterator]), x.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), (function(e, t) {
l["[object " + t + "]"] = t.toLowerCase()
}));
var C = function(e) {
var t, n, i, r, o, a, s, l, c, u, d, h, f, p, g, m, v, y, b, w = "sizzle" + 1 * new Date,
x = e.document,
_ = 0,
C = 0,
k = le(),
S = le(),
T = le(),
D = le(),
E = function(e, t) {
return e === t && (d = !0), 0
},
A = {}.hasOwnProperty,
M = [],
O = M.pop,
I = M.push,
P = M.push,
L = M.slice,
F = function(e, t) {
for (var n = 0, i = e.length; n < i; n++)
if (e[n] === t) return n;
return -1
},
N = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
R = "[\\x20\\t\\r\\n\\f]",
j = "(?:\\\\[\\da-fA-F]{1,6}" + R + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
$ = "\\[" + R + "*(" + j + ")(?:" + R + "*([*^$|!~]?=)" + R + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + j + "))|)" + R + "*\\]",
z = ":(" + j + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + $ + ")*)|.*)\\)|)",
H = new RegExp(R + "+", "g"),
B = new RegExp("^" + R + "+|((?:^|[^\\\\])(?:\\\\.)*)" + R + "+$", "g"),
q = new RegExp("^" + R + "*," + R + "*"),
W = new RegExp("^" + R + "*([>+~]|" + R + ")" + R + "*"),
U = new RegExp(R + "|>"),
V = new RegExp(z),
Y = new RegExp("^" + j + "$"),
X = {
ID: new RegExp("^#(" + j + ")"),
CLASS: new RegExp("^\\.(" + j + ")"),
TAG: new RegExp("^(" + j + "|[*])"),
ATTR: new RegExp("^" + $),
PSEUDO: new RegExp("^" + z),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + R + "*(even|odd|(([+-]|)(\\d*)n|)" + R + "*(?:([+-]|)" + R + "*(\\d+)|))" + R + "*\\)|)", "i"),
bool: new RegExp("^(?:" + N + ")$", "i"),
needsContext: new RegExp("^" + R + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + R + "*((?:-\\d)?\\d*)" + R + "*\\)|)(?=[^-]|$)", "i")
},
G = /HTML$/i,
Q = /^(?:input|select|textarea|button)$/i,
K = /^h\d$/i,
J = /^[^{]+\{\s*\[native \w/,
Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
ee = /[+~]/,
te = new RegExp("\\\\[\\da-fA-F]{1,6}" + R + "?|\\\\([^\\r\\n\\f])", "g"),
ne = function(e, t) {
var n = "0x" + e.slice(1) - 65536;
return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
},
ie = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
re = function(e, t) {
return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
},
oe = function() {
h()
},
ae = we((function(e) {
return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
}), {
dir: "parentNode",
next: "legend"
});
try {
P.apply(M = L.call(x.childNodes), x.childNodes), M[x.childNodes.length].nodeType
} catch (t) {
P = {
apply: M.length ? function(e, t) {
I.apply(e, L.call(t))
} : function(e, t) {
for (var n = e.length, i = 0; e[n++] = t[i++];);
e.length = n - 1
}
}
}
function se(e, t, i, r) {
var o, s, c, u, d, p, v, y = t && t.ownerDocument,
x = t ? t.nodeType : 9;
if (i = i || [], "string" != typeof e || !e || 1 !== x && 9 !== x && 11 !== x) return i;
if (!r && (h(t), t = t || f, g)) {
if (11 !== x && (d = Z.exec(e)))
if (o = d[1]) {
if (9 === x) {
if (!(c = t.getElementById(o))) return i;
if (c.id === o) return i.push(c), i
} else if (y && (c = y.getElementById(o)) && b(t, c) && c.id === o) return i.push(c), i
} else {
if (d[2]) return P.apply(i, t.getElementsByTagName(e)), i;
if ((o = d[3]) && n.getElementsByClassName && t.getElementsByClassName) return P.apply(i, t.getElementsByClassName(o)), i
}
if (n.qsa && !D[e + " "] && (!m || !m.test(e)) && (1 !== x || "object" !== t.nodeName.toLowerCase())) {
if (v = e, y = t, 1 === x && (U.test(e) || W.test(e))) {
for ((y = ee.test(e) && ve(t.parentNode) || t) === t && n.scope || ((u = t.getAttribute("id")) ? u = u.replace(ie, re) : t.setAttribute("id", u = w)), s = (p = a(e)).length; s--;) p[s] = (u ? "#" + u : ":scope") + " " + be(p[s]);
v = p.join(",")
}
try {
return P.apply(i, y.querySelectorAll(v)), i
} catch (t) {
D(e, !0)
} finally {
u === w && t.removeAttribute("id")
}
}
}
return l(e.replace(B, "$1"), t, i, r)
}
function le() {
var e = [];
return function t(n, r) {
return e.push(n + " ") > i.cacheLength && delete t[e.shift()], t[n + " "] = r
}
}
function ce(e) {
return e[w] = !0, e
}
function ue(e) {
var t = f.createElement("fieldset");
try {
return !!e(t)
} catch (e) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null
}
}
function de(e, t) {
for (var n = e.split("|"), r = n.length; r--;) i.attrHandle[n[r]] = t
}
function he(e, t) {
var n = t && e,
i = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
if (i) return i;
if (n)
for (; n = n.nextSibling;)
if (n === t) return -1;
return e ? 1 : -1
}
function fe(e) {
return function(t) {
return "input" === t.nodeName.toLowerCase() && t.type === e
}
}
function pe(e) {
return function(t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e
}
}
function ge(e) {
return function(t) {
return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && ae(t) === e : t.disabled === e : "label" in t && t.disabled === e
}
}
function me(e) {
return ce((function(t) {
return t = +t, ce((function(n, i) {
for (var r, o = e([], n.length, t), a = o.length; a--;) n[r = o[a]] && (n[r] = !(i[r] = n[r]))
}))
}))
}
function ve(e) {
return e && void 0 !== e.getElementsByTagName && e
}
for (t in n = se.support = {}, o = se.isXML = function(e) {
var t = e.namespaceURI,
n = (e.ownerDocument || e).documentElement;
return !G.test(t || n && n.nodeName || "HTML")
}, h = se.setDocument = function(e) {
var t, r, a = e ? e.ownerDocument || e : x;
return a != f && 9 === a.nodeType && a.documentElement && (p = (f = a).documentElement, g = !o(f), x != f && (r = f.defaultView) && r.top !== r && (r.addEventListener ? r.addEventListener("unload", oe, !1) : r.attachEvent && r.attachEvent("onunload", oe)), n.scope = ue((function(e) {
return p.appendChild(e).appendChild(f.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
})), n.attributes = ue((function(e) {
return e.className = "i", !e.getAttribute("className")
})), n.getElementsByTagName = ue((function(e) {
return e.appendChild(f.createComment("")), !e.getElementsByTagName("*").length
})), n.getElementsByClassName = J.test(f.getElementsByClassName), n.getById = ue((function(e) {
return p.appendChild(e).id = w, !f.getElementsByName || !f.getElementsByName(w).length
})), n.getById ? (i.filter.ID = function(e) {
var t = e.replace(te, ne);
return function(e) {
return e.getAttribute("id") === t
}
}, i.find.ID = function(e, t) {
if (void 0 !== t.getElementById && g) {
var n = t.getElementById(e);
return n ? [n] : []
}
}) : (i.filter.ID = function(e) {
var t = e.replace(te, ne);
return function(e) {
var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
return n && n.value === t
}
}, i.find.ID = function(e, t) {
if (void 0 !== t.getElementById && g) {
var n, i, r, o = t.getElementById(e);
if (o) {
if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
for (r = t.getElementsByName(e), i = 0; o = r[i++];)
if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
}
return []
}
}), i.find.TAG = n.getElementsByTagName ? function(e, t) {
return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0
} : function(e, t) {
var n, i = [],
r = 0,
o = t.getElementsByTagName(e);
if ("*" === e) {
for (; n = o[r++];) 1 === n.nodeType && i.push(n);
return i
}
return o
}, i.find.CLASS = n.getElementsByClassName && function(e, t) {
if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e)
}, v = [], m = [], (n.qsa = J.test(f.querySelectorAll)) && (ue((function(e) {
var t;
p.appendChild(e).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + R + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || m.push("\\[" + R + "*(?:value|" + N + ")"), e.querySelectorAll("[id~=" + w + "-]").length || m.push("~="), (t = f.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || m.push("\\[" + R + "*name" + R + "*=" + R + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || m.push(":checked"), e.querySelectorAll("a#" + w + "+*").length || m.push(".#.+[+~]"), e.querySelectorAll("\\\f"), m.push("[\\r\\n\\f]")
})), ue((function(e) {
e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
var t = f.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && m.push("name" + R + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"), p.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), m.push(",.*:")
}))), (n.matchesSelector = J.test(y = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.oMatchesSelector || p.msMatchesSelector)) && ue((function(e) {
n.disconnectedMatch = y.call(e, "*"), y.call(e, "[s!='']:x"), v.push("!=", z)
})), m = m.length && new RegExp(m.join("|")), v = v.length && new RegExp(v.join("|")), t = J.test(p.compareDocumentPosition), b = t || J.test(p.contains) ? function(e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
i = t && t.parentNode;
return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i)))
} : function(e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, E = t ? function(e, t) {
if (e === t) return d = !0, 0;
var i = !e.compareDocumentPosition - !t.compareDocumentPosition;
return i || (1 & (i = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === i ? e == f || e.ownerDocument == x && b(x, e) ? -1 : t == f || t.ownerDocument == x && b(x, t) ? 1 : u ? F(u, e) - F(u, t) : 0 : 4 & i ? -1 : 1)
} : function(e, t) {
if (e === t) return d = !0, 0;
var n, i = 0,
r = e.parentNode,
o = t.parentNode,
a = [e],
s = [t];
if (!r || !o) return e == f ? -1 : t == f ? 1 : r ? -1 : o ? 1 : u ? F(u, e) - F(u, t) : 0;
if (r === o) return he(e, t);
for (n = e; n = n.parentNode;) a.unshift(n);
for (n = t; n = n.parentNode;) s.unshift(n);
for (; a[i] === s[i];) i++;
return i ? he(a[i], s[i]) : a[i] == x ? -1 : s[i] == x ? 1 : 0
}), f
}, se.matches = function(e, t) {
return se(e, null, null, t)
}, se.matchesSelector = function(e, t) {
if (h(e), n.matchesSelector && g && !D[t + " "] && (!v || !v.test(t)) && (!m || !m.test(t))) try {
var i = y.call(e, t);
if (i || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i
} catch (e) {
D(t, !0)
}
return 0 < se(t, f, null, [e]).length
}, se.contains = function(e, t) {
return (e.ownerDocument || e) != f && h(e), b(e, t)
}, se.attr = function(e, t) {
(e.ownerDocument || e) != f && h(e);
var r = i.attrHandle[t.toLowerCase()],
o = r && A.call(i.attrHandle, t.toLowerCase()) ? r(e, t, !g) : void 0;
return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null
}, se.escape = function(e) {
return (e + "").replace(ie, re)
}, se.error = function(e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, se.uniqueSort = function(e) {
var t, i = [],
r = 0,
o = 0;
if (d = !n.detectDuplicates, u = !n.sortStable && e.slice(0), e.sort(E), d) {
for (; t = e[o++];) t === e[o] && (r = i.push(o));
for (; r--;) e.splice(i[r], 1)
}
return u = null, e
}, r = se.getText = function(e) {
var t, n = "",
i = 0,
o = e.nodeType;
if (o) {
if (1 === o || 9 === o || 11 === o) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += r(e)
} else if (3 === o || 4 === o) return e.nodeValue
} else
for (; t = e[i++];) n += r(t);
return n
}, (i = se.selectors = {
cacheLength: 50,
createPseudo: ce,
match: X,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(e) {
return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function(e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e
},
PSEUDO: function(e) {
var t, n = !e[6] && e[2];
return X.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && V.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function(e) {
var t = e.replace(te, ne).toLowerCase();
return "*" === e ? function() {
return !0
} : function(e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function(e) {
var t = k[e + " "];
return t || (t = new RegExp("(^|" + R + ")" + e + "(" + R + "|$)")) && k(e, (function(e) {
return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
}))
},
ATTR: function(e, t, n) {
return function(i) {
var r = se.attr(i, e);
return null == r ? "!=" === t : !t || (r += "", "=" === t ? r === n : "!=" === t ? r !== n : "^=" === t ? n && 0 === r.indexOf(n) : "*=" === t ? n && -1 < r.indexOf(n) : "$=" === t ? n && r.slice(-n.length) === n : "~=" === t ? -1 < (" " + r.replace(H, " ") + " ").indexOf(n) : "|=" === t && (r === n || r.slice(0, n.length + 1) === n + "-"))
}
},
CHILD: function(e, t, n, i, r) {
var o = "nth" !== e.slice(0, 3),
a = "last" !== e.slice(-4),
s = "of-type" === t;
return 1 === i && 0 === r ? function(e) {
return !!e.parentNode
} : function(t, n, l) {
var c, u, d, h, f, p, g = o !== a ? "nextSibling" : "previousSibling",
m = t.parentNode,
v = s && t.nodeName.toLowerCase(),
y = !l && !s,
b = !1;
if (m) {
if (o) {
for (; g;) {
for (h = t; h = h[g];)
if (s ? h.nodeName.toLowerCase() === v : 1 === h.nodeType) return !1;
p = g = "only" === e && !p && "nextSibling"
}
return !0
}
if (p = [a ? m.firstChild : m.lastChild], a && y) {
for (b = (f = (c = (u = (d = (h = m)[w] || (h[w] = {}))[h.uniqueID] || (d[h.uniqueID] = {}))[e] || [])[0] === _ && c[1]) && c[2], h = f && m.childNodes[f]; h = ++f && h && h[g] || (b = f = 0) || p.pop();)
if (1 === h.nodeType && ++b && h === t) {
u[e] = [_, f, b];
break
}
} else if (y && (b = f = (c = (u = (d = (h = t)[w] || (h[w] = {}))[h.uniqueID] || (d[h.uniqueID] = {}))[e] || [])[0] === _ && c[1]), !1 === b)
for (;
(h = ++f && h && h[g] || (b = f = 0) || p.pop()) && ((s ? h.nodeName.toLowerCase() !== v : 1 !== h.nodeType) || !++b || (y && ((u = (d = h[w] || (h[w] = {}))[h.uniqueID] || (d[h.uniqueID] = {}))[e] = [_, b]), h !== t)););
return (b -= r) === i || b % i == 0 && 0 <= b / i
}
}
},
PSEUDO: function(e, t) {
var n, r = i.pseudos[e] || i.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e);
return r[w] ? r(t) : 1 < r.length ? (n = [e, e, "", t], i.setFilters.hasOwnProperty(e.toLowerCase()) ? ce((function(e, n) {
for (var i, o = r(e, t), a = o.length; a--;) e[i = F(e, o[a])] = !(n[i] = o[a])
})) : function(e) {
return r(e, 0, n)
}) : r
}
},
pseudos: {
not: ce((function(e) {
var t = [],
n = [],
i = s(e.replace(B, "$1"));
return i[w] ? ce((function(e, t, n, r) {
for (var o, a = i(e, null, r, []), s = e.length; s--;)(o = a[s]) && (e[s] = !(t[s] = o))
})) : function(e, r, o) {
return t[0] = e, i(t, null, o, n), t[0] = null, !n.pop()
}
})),
has: ce((function(e) {
return function(t) {
return 0 < se(e, t).length
}
})),
contains: ce((function(e) {
return e = e.replace(te, ne),
function(t) {
return -1 < (t.textContent || r(t)).indexOf(e)
}
})),
lang: ce((function(e) {
return Y.test(e || "") || se.error("unsupported lang: " + e), e = e.replace(te, ne).toLowerCase(),
function(t) {
var n;
do {
if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-")
} while ((t = t.parentNode) && 1 === t.nodeType);
return !1
}
})),
target: function(t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id
},
root: function(e) {
return e === p
},
focus: function(e) {
return e === f.activeElement && (!f.hasFocus || f.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: ge(!1),
disabled: ge(!0),
checked: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function(e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
},
empty: function(e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function(e) {
return !i.pseudos.empty(e)
},
header: function(e) {
return K.test(e.nodeName)
},
input: function(e) {
return Q.test(e.nodeName)
},
button: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function(e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: me((function() {
return [0]
})),
last: me((function(e, t) {
return [t - 1]
})),
eq: me((function(e, t, n) {
return [n < 0 ? n + t : n]
})),
even: me((function(e, t) {
for (var n = 0; n < t; n += 2) e.push(n);
return e
})),
odd: me((function(e, t) {
for (var n = 1; n < t; n += 2) e.push(n);
return e
})),
lt: me((function(e, t, n) {
for (var i = n < 0 ? n + t : t < n ? t : n; 0 <= --i;) e.push(i);
return e
})),
gt: me((function(e, t, n) {
for (var i = n < 0 ? n + t : n; ++i < t;) e.push(i);
return e
}))
}
}).pseudos.nth = i.pseudos.eq, {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) i.pseudos[t] = fe(t);
for (t in {
submit: !0,
reset: !0
}) i.pseudos[t] = pe(t);
function ye() {}
function be(e) {
for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value;
return i
}
function we(e, t, n) {
var i = t.dir,
r = t.next,
o = r || i,
a = n && "parentNode" === o,
s = C++;
return t.first ? function(t, n, r) {
for (; t = t[i];)
if (1 === t.nodeType || a) return e(t, n, r);
return !1
} : function(t, n, l) {
var c, u, d, h = [_, s];
if (l) {
for (; t = t[i];)
if ((1 === t.nodeType || a) && e(t, n, l)) return !0
} else
for (; t = t[i];)
if (1 === t.nodeType || a)
if (u = (d = t[w] || (t[w] = {}))[t.uniqueID] || (d[t.uniqueID] = {}), r && r === t.nodeName.toLowerCase()) t = t[i] || t;
else {
if ((c = u[o]) && c[0] === _ && c[1] === s) return h[2] = c[2];
if ((u[o] = h)[2] = e(t, n, l)) return !0
} return !1
}
}
function xe(e) {
return 1 < e.length ? function(t, n, i) {
for (var r = e.length; r--;)
if (!e[r](t, n, i)) return !1;
return !0
} : e[0]
}
function _e(e, t, n, i, r) {
for (var o, a = [], s = 0, l = e.length, c = null != t; s < l; s++)(o = e[s]) && (n && !n(o, i, r) || (a.push(o), c && t.push(s)));
return a
}
function Ce(e, t, n, i, r, o) {
return i && !i[w] && (i = Ce(i)), r && !r[w] && (r = Ce(r, o)), ce((function(o, a, s, l) {
var c, u, d, h = [],
f = [],
p = a.length,
g = o || function(e, t, n) {
for (var i = 0, r = t.length; i < r; i++) se(e, t[i], n);
return n
}(t || "*", s.nodeType ? [s] : s, []),
m = !e || !o && t ? g : _e(g, h, e, s, l),
v = n ? r || (o ? e : p || i) ? [] : a : m;
if (n && n(m, v, s, l), i)
for (c = _e(v, f), i(c, [], s, l), u = c.length; u--;)(d = c[u]) && (v[f[u]] = !(m[f[u]] = d));
if (o) {
if (r || e) {
if (r) {
for (c = [], u = v.length; u--;)(d = v[u]) && c.push(m[u] = d);
r(null, v = [], c, l)
}
for (u = v.length; u--;)(d = v[u]) && -1 < (c = r ? F(o, d) : h[u]) && (o[c] = !(a[c] = d))
}
} else v = _e(v === a ? v.splice(p, v.length) : v), r ? r(null, a, v, l) : P.apply(a, v)
}))
}
function ke(e) {
for (var t, n, r, o = e.length, a = i.relative[e[0].type], s = a || i.relative[" "], l = a ? 1 : 0, u = we((function(e) {
return e === t
}), s, !0), d = we((function(e) {
return -1 < F(t, e)
}), s, !0), h = [function(e, n, i) {
var r = !a && (i || n !== c) || ((t = n).nodeType ? u(e, n, i) : d(e, n, i));
return t = null, r
}]; l < o; l++)
if (n = i.relative[e[l].type]) h = [we(xe(h), n)];
else {
if ((n = i.filter[e[l].type].apply(null, e[l].matches))[w]) {
for (r = ++l; r < o && !i.relative[e[r].type]; r++);
return Ce(1 < l && xe(h), 1 < l && be(e.slice(0, l - 1).concat({
value: " " === e[l - 2].type ? "*" : ""
})).replace(B, "$1"), n, l < r && ke(e.slice(l, r)), r < o && ke(e = e.slice(r)), r < o && be(e))
}
h.push(n)
}
return xe(h)
}
return ye.prototype = i.filters = i.pseudos, i.setFilters = new ye, a = se.tokenize = function(e, t) {
var n, r, o, a, s, l, c, u = S[e + " "];
if (u) return t ? 0 : u.slice(0);
for (s = e, l = [], c = i.preFilter; s;) {
for (a in n && !(r = q.exec(s)) || (r && (s = s.slice(r[0].length) || s), l.push(o = [])), n = !1, (r = W.exec(s)) && (n = r.shift(), o.push({
value: n,
type: r[0].replace(B, " ")
}), s = s.slice(n.length)), i.filter) !(r = X[a].exec(s)) || c[a] && !(r = c[a](r)) || (n = r.shift(), o.push({
value: n,
type: a,
matches: r
}), s = s.slice(n.length));
if (!n) break
}
return t ? s.length : s ? se.error(e) : S(e, l).slice(0)
}, s = se.compile = function(e, t) {
var n, r, o, s, l, u, d = [],
p = [],
m = T[e + " "];
if (!m) {
for (t || (t = a(e)), n = t.length; n--;)(m = ke(t[n]))[w] ? d.push(m) : p.push(m);
(m = T(e, (r = p, s = 0 < (o = d).length, l = 0 < r.length, u = function(e, t, n, a, u) {
var d, p, m, v = 0,
y = "0",
b = e && [],
w = [],
x = c,
C = e || l && i.find.TAG("*", u),
k = _ += null == x ? 1 : Math.random() || .1,
S = C.length;
for (u && (c = t == f || t || u); y !== S && null != (d = C[y]); y++) {
if (l && d) {
for (p = 0, t || d.ownerDocument == f || (h(d), n = !g); m = r[p++];)
if (m(d, t || f, n)) {
a.push(d);
break
}
u && (_ = k)
}
s && ((d = !m && d) && v--, e && b.push(d))
}
if (v += y, s && y !== v) {
for (p = 0; m = o[p++];) m(b, w, t, n);
if (e) {
if (0 < v)
for (; y--;) b[y] || w[y] || (w[y] = O.call(a));
w = _e(w)
}
P.apply(a, w), u && !e && 0 < w.length && 1 < v + o.length && se.uniqueSort(a)
}
return u && (_ = k, c = x), b
}, s ? ce(u) : u))).selector = e
}
return m
}, l = se.select = function(e, t, n, r) {
var o, l, c, u, d, h = "function" == typeof e && e,
f = !r && a(e = h.selector || e);
if (n = n || [], 1 === f.length) {
if (2 < (l = f[0] = f[0].slice(0)).length && "ID" === (c = l[0]).type && 9 === t.nodeType && g && i.relative[l[1].type]) {
if (!(t = (i.find.ID(c.matches[0].replace(te, ne), t) || [])[0])) return n;
h && (t = t.parentNode), e = e.slice(l.shift().value.length)
}
for (o = X.needsContext.test(e) ? 0 : l.length; o-- && (c = l[o], !i.relative[u = c.type]);)
if ((d = i.find[u]) && (r = d(c.matches[0].replace(te, ne), ee.test(l[0].type) && ve(t.parentNode) || t))) {
if (l.splice(o, 1), !(e = r.length && be(l))) return P.apply(n, r), n;
break
}
}
return (h || s(e, f))(r, t, !g, n, !t || ee.test(e) && ve(t.parentNode) || t), n
}, n.sortStable = w.split("").sort(E).join("") === w, n.detectDuplicates = !!d, h(), n.sortDetached = ue((function(e) {
return 1 & e.compareDocumentPosition(f.createElement("fieldset"))
})), ue((function(e) {
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
})) || de("type|href|height|width", (function(e, t, n) {
if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
})), n.attributes && ue((function(e) {
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
})) || de("value", (function(e, t, n) {
if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
})), ue((function(e) {
return null == e.getAttribute("disabled")
})) || de(N, (function(e, t, n) {
var i;
if (!n) return !0 === e[t] ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null
})), se
}(e);
x.find = C, x.expr = C.selectors, x.expr[":"] = x.expr.pseudos, x.uniqueSort = x.unique = C.uniqueSort, x.text = C.getText, x.isXMLDoc = C.isXML, x.contains = C.contains, x.escapeSelector = C.escape;
var k = function(e, t, n) {
for (var i = [], r = void 0 !== n;
(e = e[t]) && 9 !== e.nodeType;)
if (1 === e.nodeType) {
if (r && x(e).is(n)) break;
i.push(e)
}
return i
},
S = function(e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
},
T = x.expr.match.needsContext;
function D(e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
}
var E = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
function A(e, t, n) {
return p(t) ? x.grep(e, (function(e, i) {
return !!t.call(e, i, e) !== n
})) : t.nodeType ? x.grep(e, (function(e) {
return e === t !== n
})) : "string" != typeof t ? x.grep(e, (function(e) {
return -1 < s.call(t, e) !== n
})) : x.filter(t, e, n)
}
x.filter = function(e, t, n) {
var i = t[0];
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? x.find.matchesSelector(i, e) ? [i] : [] : x.find.matches(e, x.grep(t, (function(e) {
return 1 === e.nodeType
})))
}, x.fn.extend({
find: function(e) {
var t, n, i = this.length,
r = this;
if ("string" != typeof e) return this.pushStack(x(e).filter((function() {
for (t = 0; t < i; t++)
if (x.contains(r[t], this)) return !0
})));
for (n = this.pushStack([]), t = 0; t < i; t++) x.find(e, r[t], n);
return 1 < i ? x.uniqueSort(n) : n
},
filter: function(e) {
return this.pushStack(A(this, e || [], !1))
},
not: function(e) {
return this.pushStack(A(this, e || [], !0))
},
is: function(e) {
return !!A(this, "string" == typeof e && T.test(e) ? x(e) : e || [], !1).length
}
});
var M, O = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
(x.fn.init = function(e, t, n) {
var i, r;
if (!e) return this;
if (n = n || M, "string" == typeof e) {
if (!(i = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : O.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
if (i[1]) {
if (t = t instanceof x ? t[0] : t, x.merge(this, x.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : m, !0)), E.test(i[1]) && x.isPlainObject(t))
for (i in t) p(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
return this
}
return (r = m.getElementById(i[2])) && (this[0] = r, this.length = 1), this
}
return e.nodeType ? (this[0] = e, this.length = 1, this) : p(e) ? void 0 !== n.ready ? n.ready(e) : e(x) : x.makeArray(e, this)
}).prototype = x.fn, M = x(m);
var I = /^(?:parents|prev(?:Until|All))/,
P = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
function L(e, t) {
for (;
(e = e[t]) && 1 !== e.nodeType;);
return e
}
x.fn.extend({
has: function(e) {
var t = x(e, this),
n = t.length;
return this.filter((function() {
for (var e = 0; e < n; e++)
if (x.contains(this, t[e])) return !0
}))
},
closest: function(e, t) {
var n, i = 0,
r = this.length,
o = [],
a = "string" != typeof e && x(e);
if (!T.test(e))
for (; i < r; i++)
for (n = this[i]; n && n !== t; n = n.parentNode)
if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && x.find.matchesSelector(n, e))) {
o.push(n);
break
}
return this.pushStack(1 < o.length ? x.uniqueSort(o) : o)
},
index: function(e) {
return e ? "string" == typeof e ? s.call(x(e), this[0]) : s.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(e, t) {
return this.pushStack(x.uniqueSort(x.merge(this.get(), x(e, t))))
},
addBack: function(e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
}), x.each({
parent: function(e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function(e) {
return k(e, "parentNode")
},
parentsUntil: function(e, t, n) {
return k(e, "parentNode", n)
},
next: function(e) {
return L(e, "nextSibling")
},
prev: function(e) {
return L(e, "previousSibling")
},
nextAll: function(e) {
return k(e, "nextSibling")
},
prevAll: function(e) {
return k(e, "previousSibling")
},
nextUntil: function(e, t, n) {
return k(e, "nextSibling", n)
},
prevUntil: function(e, t, n) {
return k(e, "previousSibling", n)
},
siblings: function(e) {
return S((e.parentNode || {}).firstChild, e)
},
children: function(e) {
return S(e.firstChild)
},
contents: function(e) {
return null != e.contentDocument && i(e.contentDocument) ? e.contentDocument : (D(e, "template") && (e = e.content || e), x.merge([], e.childNodes))
}
}, (function(e, t) {
x.fn[e] = function(n, i) {
var r = x.map(this, t, n);
return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = x.filter(i, r)), 1 < this.length && (P[e] || x.uniqueSort(r), I.test(e) && r.reverse()), this.pushStack(r)
}
}));
var F = /[^\x20\t\r\n\f]+/g;
function N(e) {
return e
}
function R(e) {
throw e
}
function j(e, t, n, i) {
var r;
try {
e && p(r = e.promise) ? r.call(e).done(t).fail(n) : e && p(r = e.then) ? r.call(e, t, n) : t.apply(void 0, [e].slice(i))
} catch (e) {
n.apply(void 0, [e])
}
}
x.Callbacks = function(e) {
var t, n;
e = "string" == typeof e ? (t = e, n = {}, x.each(t.match(F) || [], (function(e, t) {
n[t] = !0
})), n) : x.extend({}, e);
var i, r, o, a, s = [],
l = [],
c = -1,
u = function() {
for (a = a || e.once, o = i = !0; l.length; c = -1)
for (r = l.shift(); ++c < s.length;) !1 === s[c].apply(r[0], r[1]) && e.stopOnFalse && (c = s.length, r = !1);
e.memory || (r = !1), i = !1, a && (s = r ? [] : "")
},
d = {
add: function() {
return s && (r && !i && (c = s.length - 1, l.push(r)), function t(n) {
x.each(n, (function(n, i) {
p(i) ? e.unique && d.has(i) || s.push(i) : i && i.length && "string" !== b(i) && t(i)
}))
}(arguments), r && !i && u()), this
},
remove: function() {
return x.each(arguments, (function(e, t) {
for (var n; - 1 < (n = x.inArray(t, s, n));) s.splice(n, 1), n <= c && c--
})), this
},
has: function(e) {
return e ? -1 < x.inArray(e, s) : 0 < s.length
},
empty: function() {
return s && (s = []), this
},
disable: function() {
return a = l = [], s = r = "", this
},
disabled: function() {
return !s
},
lock: function() {
return a = l = [], r || i || (s = r = ""), this
},
locked: function() {
return !!a
},
fireWith: function(e, t) {
return a || (t = [e, (t = t || []).slice ? t.slice() : t], l.push(t), i || u()), this
},
fire: function() {
return d.fireWith(this, arguments), this
},
fired: function() {
return !!o
}
};
return d
}, x.extend({
Deferred: function(t) {
var n = [
["notify", "progress", x.Callbacks("memory"), x.Callbacks("memory"), 2],
["resolve", "done", x.Callbacks("once memory"), x.Callbacks("once memory"), 0, "resolved"],
["reject", "fail", x.Callbacks("once memory"), x.Callbacks("once memory"), 1, "rejected"]
],
i = "pending",
r = {
state: function() {
return i
},
always: function() {
return o.done(arguments).fail(arguments), this
},
catch: function(e) {
return r.then(null, e)
},
pipe: function() {
var e = arguments;
return x.Deferred((function(t) {
x.each(n, (function(n, i) {
var r = p(e[i[4]]) && e[i[4]];
o[i[1]]((function() {
var e = r && r.apply(this, arguments);
e && p(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[i[0] + "With"](this, r ? [e] : arguments)
}))
})), e = null
})).promise()
},
then: function(t, i, r) {
var o = 0;
function a(t, n, i, r) {
return function() {
var s = this,
l = arguments,
c = function() {
var e, c;
if (!(t < o)) {
if ((e = i.apply(s, l)) === n.promise()) throw new TypeError("Thenable self-resolution");
c = e && ("object" == typeof e || "function" == typeof e) && e.then, p(c) ? r ? c.call(e, a(o, n, N, r), a(o, n, R, r)) : (o++, c.call(e, a(o, n, N, r), a(o, n, R, r), a(o, n, N, n.notifyWith))) : (i !== N && (s = void 0, l = [e]), (r || n.resolveWith)(s, l))
}
},
u = r ? c : function() {
try {
c()
} catch (e) {
x.Deferred.exceptionHook && x.Deferred.exceptionHook(e, u.stackTrace), o <= t + 1 && (i !== R && (s = void 0, l = [e]), n.rejectWith(s, l))
}
};
t ? u() : (x.Deferred.getStackHook && (u.stackTrace = x.Deferred.getStackHook()), e.setTimeout(u))
}
}
return x.Deferred((function(e) {
n[0][3].add(a(0, e, p(r) ? r : N, e.notifyWith)), n[1][3].add(a(0, e, p(t) ? t : N)), n[2][3].add(a(0, e, p(i) ? i : R))
})).promise()
},
promise: function(e) {
return null != e ? x.extend(e, r) : r
}
},
o = {};
return x.each(n, (function(e, t) {
var a = t[2],
s = t[5];
r[t[1]] = a.add, s && a.add((function() {
i = s
}), n[3 - e][2].disable, n[3 - e][3].disable, n[0][2].lock, n[0][3].lock), a.add(t[3].fire), o[t[0]] = function() {
return o[t[0] + "With"](this === o ? void 0 : this, arguments), this
}, o[t[0] + "With"] = a.fireWith
})), r.promise(o), t && t.call(o, o), o
},
when: function(e) {
var t = arguments.length,
n = t,
i = Array(n),
o = r.call(arguments),
a = x.Deferred(),
s = function(e) {
return function(n) {
i[e] = this, o[e] = 1 < arguments.length ? r.call(arguments) : n, --t || a.resolveWith(i, o)
}
};
if (t <= 1 && (j(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || p(o[n] && o[n].then))) return a.then();
for (; n--;) j(o[n], s(n), a.reject);
return a.promise()
}
});
var $ = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
x.Deferred.exceptionHook = function(t, n) {
e.console && e.console.warn && t && $.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n)
}, x.readyException = function(t) {
e.setTimeout((function() {
throw t
}))
};
var z = x.Deferred();
function H() {
m.removeEventListener("DOMContentLoaded", H), e.removeEventListener("load", H), x.ready()
}
x.fn.ready = function(e) {
return z.then(e).catch((function(e) {
x.readyException(e)
})), this
}, x.extend({
isReady: !1,
readyWait: 1,
ready: function(e) {
(!0 === e ? --x.readyWait : x.isReady) || (x.isReady = !0) !== e && 0 < --x.readyWait || z.resolveWith(m, [x])
}
}), x.ready.then = z.then, "complete" === m.readyState || "loading" !== m.readyState && !m.documentElement.doScroll ? e.setTimeout(x.ready) : (m.addEventListener("DOMContentLoaded", H), e.addEventListener("load", H));
var B = function(e, t, n, i, r, o, a) {
var s = 0,
l = e.length,
c = null == n;
if ("object" === b(n))
for (s in r = !0, n) B(e, t, s, n[s], !0, o, a);
else if (void 0 !== i && (r = !0, p(i) || (a = !0), c && (a ? (t.call(e, i), t = null) : (c = t, t = function(e, t, n) {
return c.call(x(e), n)
})), t))
for (; s < l; s++) t(e[s], n, a ? i : i.call(e[s], s, t(e[s], n)));
return r ? e : c ? t.call(e) : l ? t(e[0], n) : o
},
q = /^-ms-/,
W = /-([a-z])/g;
function U(e, t) {
return t.toUpperCase()
}
function V(e) {
return e.replace(q, "ms-").replace(W, U)
}
var Y = function(e) {
return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
};
function X() {
this.expando = x.expando + X.uid++
}
X.uid = 1, X.prototype = {
cache: function(e) {
var t = e[this.expando];
return t || (t = {}, Y(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
value: t,
configurable: !0
}))), t
},
set: function(e, t, n) {
var i, r = this.cache(e);
if ("string" == typeof t) r[V(t)] = n;
else
for (i in t) r[V(i)] = t[i];
return r
},
get: function(e, t) {
return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][V(t)]
},
access: function(e, t, n) {
return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
},
remove: function(e, t) {
var n, i = e[this.expando];
if (void 0 !== i) {
if (void 0 !== t) {
n = (t = Array.isArray(t) ? t.map(V) : (t = V(t)) in i ? [t] : t.match(F) || []).length;
for (; n--;) delete i[t[n]]
}(void 0 === t || x.isEmptyObject(i)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
}
},
hasData: function(e) {
var t = e[this.expando];
return void 0 !== t && !x.isEmptyObject(t)
}
};
var G = new X,
Q = new X,
K = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
J = /[A-Z]/g;
function Z(e, t, n) {
var i, r;
if (void 0 === n && 1 === e.nodeType)
if (i = "data-" + t.replace(J, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(i))) {
try {
n = "true" === (r = n) || "false" !== r && ("null" === r ? null : r === +r + "" ? +r : K.test(r) ? JSON.parse(r) : r)
} catch (e) {}
Q.set(e, t, n)
} else n = void 0;
return n
}
x.extend({
hasData: function(e) {
return Q.hasData(e) || G.hasData(e)
},
data: function(e, t, n) {
return Q.access(e, t, n)
},
removeData: function(e, t) {
Q.remove(e, t)
},
_data: function(e, t, n) {
return G.access(e, t, n)
},
_removeData: function(e, t) {
G.remove(e, t)
}
}), x.fn.extend({
data: function(e, t) {
var n, i, r, o = this[0],
a = o && o.attributes;
if (void 0 === e) {
if (this.length && (r = Q.get(o), 1 === o.nodeType && !G.get(o, "hasDataAttrs"))) {
for (n = a.length; n--;) a[n] && 0 === (i = a[n].name).indexOf("data-") && (i = V(i.slice(5)), Z(o, i, r[i]));
G.set(o, "hasDataAttrs", !0)
}
return r
}
return "object" == typeof e ? this.each((function() {
Q.set(this, e)
})) : B(this, (function(t) {
var n;
if (o && void 0 === t) return void 0 !== (n = Q.get(o, e)) || void 0 !== (n = Z(o, e)) ? n : void 0;
this.each((function() {
Q.set(this, e, t)
}))
}), null, t, 1 < arguments.length, null, !0)
},
removeData: function(e) {
return this.each((function() {
Q.remove(this, e)
}))
}
}), x.extend({
queue: function(e, t, n) {
var i;
if (e) return t = (t || "fx") + "queue", i = G.get(e, t), n && (!i || Array.isArray(n) ? i = G.access(e, t, x.makeArray(n)) : i.push(n)), i || []
},
dequeue: function(e, t) {
t = t || "fx";
var n = x.queue(e, t),
i = n.length,
r = n.shift(),
o = x._queueHooks(e, t);
"inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"), delete o.stop, r.call(e, (function() {
x.dequeue(e, t)
}), o)), !i && o && o.empty.fire()
},
_queueHooks: function(e, t) {
var n = t + "queueHooks";
return G.get(e, n) || G.access(e, n, {
empty: x.Callbacks("once memory").add((function() {
G.remove(e, [t + "queue", n])
}))
})
}
}), x.fn.extend({
queue: function(e, t) {
var n = 2;
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? x.queue(this[0], e) : void 0 === t ? this : this.each((function() {
var n = x.queue(this, e, t);
x._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && x.dequeue(this, e)
}))
},
dequeue: function(e) {
return this.each((function() {
x.dequeue(this, e)
}))
},
clearQueue: function(e) {
return this.queue(e || "fx", [])
},
promise: function(e, t) {
var n, i = 1,
r = x.Deferred(),
o = this,
a = this.length,
s = function() {
--i || r.resolveWith(o, [o])
};
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; a--;)(n = G.get(o[a], e + "queueHooks")) && n.empty && (i++, n.empty.add(s));
return s(), r.promise(t)
}
});
var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
ne = ["Top", "Right", "Bottom", "Left"],
ie = m.documentElement,
re = function(e) {
return x.contains(e.ownerDocument, e)
},
oe = {
composed: !0
};
ie.getRootNode && (re = function(e) {
return x.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument
});
var ae = function(e, t) {
return "none" === (e = t || e).style.display || "" === e.style.display && re(e) && "none" === x.css(e, "display")
};
function se(e, t, n, i) {
var r, o, a = 20,
s = i ? function() {
return i.cur()
} : function() {
return x.css(e, t, "")
},
l = s(),
c = n && n[3] || (x.cssNumber[t] ? "" : "px"),
u = e.nodeType && (x.cssNumber[t] || "px" !== c && +l) && te.exec(x.css(e, t));
if (u && u[3] !== c) {
for (l /= 2, c = c || u[3], u = +l || 1; a--;) x.style(e, t, u + c), (1 - o) * (1 - (o = s() / l || .5)) <= 0 && (a = 0), u /= o;
u *= 2, x.style(e, t, u + c), n = n || []
}
return n && (u = +u || +l || 0, r = n[1] ? u + (n[1] + 1) * n[2] : +n[2], i && (i.unit = c, i.start = u, i.end = r)), r
}
var le = {};
function ce(e, t) {
for (var n, i, r, o, a, s, l, c = [], u = 0, d = e.length; u < d; u++)(i = e[u]).style && (n = i.style.display, t ? ("none" === n && (c[u] = G.get(i, "display") || null, c[u] || (i.style.display = "")), "" === i.style.display && ae(i) && (c[u] = (l = a = o = void 0, a = (r = i).ownerDocument, s = r.nodeName, (l = le[s]) || (o = a.body.appendChild(a.createElement(s)), l = x.css(o, "display"), o.parentNode.removeChild(o), "none" === l && (l = "block"), le[s] = l)))) : "none" !== n && (c[u] = "none", G.set(i, "display", n)));
for (u = 0; u < d; u++) null != c[u] && (e[u].style.display = c[u]);
return e
}
x.fn.extend({
show: function() {
return ce(this, !0)
},
hide: function() {
return ce(this)
},
toggle: function(e) {
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each((function() {
ae(this) ? x(this).show() : x(this).hide()
}))
}
});
var ue, de, he = /^(?:checkbox|radio)$/i,
fe = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
pe = /^$|^module$|\/(?:java|ecma)script/i;
ue = m.createDocumentFragment().appendChild(m.createElement("div")), (de = m.createElement("input")).setAttribute("type", "radio"), de.setAttribute("checked", "checked"), de.setAttribute("name", "t"), ue.appendChild(de), f.checkClone = ue.cloneNode(!0).cloneNode(!0).lastChild.checked, ue.innerHTML = "<textarea>x</textarea>", f.noCloneChecked = !!ue.cloneNode(!0).lastChild.defaultValue, ue.innerHTML = "<option></option>", f.option = !!ue.lastChild;
var ge = {
thead: [1, "<table>", "</table>"],
col: [2, "<table><colgroup>", "</colgroup></table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: [0, "", ""]
};
function me(e, t) {
var n;
return n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && D(e, t) ? x.merge([e], n) : n
}
function ve(e, t) {
for (var n = 0, i = e.length; n < i; n++) G.set(e[n], "globalEval", !t || G.get(t[n], "globalEval"))
}
ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, f.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]);
var ye = /<|&#?\w+;/;
function be(e, t, n, i, r) {
for (var o, a, s, l, c, u, d = t.createDocumentFragment(), h = [], f = 0, p = e.length; f < p; f++)
if ((o = e[f]) || 0 === o)
if ("object" === b(o)) x.merge(h, o.nodeType ? [o] : o);
else if (ye.test(o)) {
for (a = a || d.appendChild(t.createElement("div")), s = (fe.exec(o) || ["", ""])[1].toLowerCase(), l = ge[s] || ge._default, a.innerHTML = l[1] + x.htmlPrefilter(o) + l[2], u = l[0]; u--;) a = a.lastChild;
x.merge(h, a.childNodes), (a = d.firstChild).textContent = ""
} else h.push(t.createTextNode(o));
for (d.textContent = "", f = 0; o = h[f++];)
if (i && -1 < x.inArray(o, i)) r && r.push(o);
else if (c = re(o), a = me(d.appendChild(o), "script"), c && ve(a), n)
for (u = 0; o = a[u++];) pe.test(o.type || "") && n.push(o);
return d
}
var we = /^key/,
xe = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
_e = /^([^.]*)(?:\.(.+)|)/;
function Ce() {
return !0
}
function ke() {
return !1
}
function Se(e, t) {
return e === function() {
try {
return m.activeElement
} catch (e) {}
}() == ("focus" === t)
}
function Te(e, t, n, i, r, o) {
var a, s;
if ("object" == typeof t) {
for (s in "string" != typeof n && (i = i || n, n = void 0), t) Te(e, s, n, i, t[s], o);
return e
}
if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = ke;
else if (!r) return e;
return 1 === o && (a = r, (r = function(e) {
return x().off(e), a.apply(this, arguments)
}).guid = a.guid || (a.guid = x.guid++)), e.each((function() {
x.event.add(this, t, r, i, n)
}))
}
function De(e, t, n) {
n ? (G.set(e, t, !1), x.event.add(e, t, {
namespace: !1,
handler: function(e) {
var i, o, a = G.get(this, t);
if (1 & e.isTrigger && this[t]) {
if (a.length)(x.event.special[t] || {}).delegateType && e.stopPropagation();
else if (a = r.call(arguments), G.set(this, t, a), i = n(this, t), this[t](), a !== (o = G.get(this, t)) || i ? G.set(this, t, !1) : o = {}, a !== o) return e.stopImmediatePropagation(), e.preventDefault(), o.value
} else a.length && (G.set(this, t, {
value: x.event.trigger(x.extend(a[0], x.Event.prototype), a.slice(1), this)
}), e.stopImmediatePropagation())
}
})) : void 0 === G.get(e, t) && x.event.add(e, t, Ce)
}
x.event = {
global: {},
add: function(e, t, n, i, r) {
var o, a, s, l, c, u, d, h, f, p, g, m = G.get(e);
if (Y(e))
for (n.handler && (n = (o = n).handler, r = o.selector), r && x.find.matchesSelector(ie, r), n.guid || (n.guid = x.guid++), (l = m.events) || (l = m.events = Object.create(null)), (a = m.handle) || (a = m.handle = function(t) {
return void 0 !== x && x.event.triggered !== t.type ? x.event.dispatch.apply(e, arguments) : void 0
}), c = (t = (t || "").match(F) || [""]).length; c--;) f = g = (s = _e.exec(t[c]) || [])[1], p = (s[2] || "").split(".").sort(), f && (d = x.event.special[f] || {}, f = (r ? d.delegateType : d.bindType) || f, d = x.event.special[f] || {}, u = x.extend({
type: f,
origType: g,
data: i,
handler: n,
guid: n.guid,
selector: r,
needsContext: r && x.expr.match.needsContext.test(r),
namespace: p.join(".")
}, o), (h = l[f]) || ((h = l[f] = []).delegateCount = 0, d.setup && !1 !== d.setup.call(e, i, p, a) || e.addEventListener && e.addEventListener(f, a)), d.add && (d.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)), r ? h.splice(h.delegateCount++, 0, u) : h.push(u), x.event.global[f] = !0)
},
remove: function(e, t, n, i, r) {
var o, a, s, l, c, u, d, h, f, p, g, m = G.hasData(e) && G.get(e);
if (m && (l = m.events)) {
for (c = (t = (t || "").match(F) || [""]).length; c--;)
if (f = g = (s = _e.exec(t[c]) || [])[1], p = (s[2] || "").split(".").sort(), f) {
for (d = x.event.special[f] || {}, h = l[f = (i ? d.delegateType : d.bindType) || f] || [], s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = h.length; o--;) u = h[o], !r && g !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || i && i !== u.selector && ("**" !== i || !u.selector) || (h.splice(o, 1), u.selector && h.delegateCount--, d.remove && d.remove.call(e, u));
a && !h.length && (d.teardown && !1 !== d.teardown.call(e, p, m.handle) || x.removeEvent(e, f, m.handle), delete l[f])
} else
for (f in l) x.event.remove(e, f + t[c], n, i, !0);
x.isEmptyObject(l) && G.remove(e, "handle events")
}
},
dispatch: function(e) {
var t, n, i, r, o, a, s = new Array(arguments.length),
l = x.event.fix(e),
c = (G.get(this, "events") || Object.create(null))[l.type] || [],
u = x.event.special[l.type] || {};
for (s[0] = l, t = 1; t < arguments.length; t++) s[t] = arguments[t];
if (l.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, l)) {
for (a = x.event.handlers.call(this, l, c), t = 0;
(r = a[t++]) && !l.isPropagationStopped();)
for (l.currentTarget = r.elem, n = 0;
(o = r.handlers[n++]) && !l.isImmediatePropagationStopped();) l.rnamespace && !1 !== o.namespace && !l.rnamespace.test(o.namespace) || (l.handleObj = o, l.data = o.data, void 0 !== (i = ((x.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, s)) && !1 === (l.result = i) && (l.preventDefault(), l.stopPropagation()));
return u.postDispatch && u.postDispatch.call(this, l), l.result
}
},
handlers: function(e, t) {
var n, i, r, o, a, s = [],
l = t.delegateCount,
c = e.target;
if (l && c.nodeType && !("click" === e.type && 1 <= e.button))
for (; c !== this; c = c.parentNode || this)
if (1 === c.nodeType && ("click" !== e.type || !0 !== c.disabled)) {
for (o = [], a = {}, n = 0; n < l; n++) void 0 === a[r = (i = t[n]).selector + " "] && (a[r] = i.needsContext ? -1 < x(r, this).index(c) : x.find(r, this, null, [c]).length), a[r] && o.push(i);
o.length && s.push({
elem: c,
handlers: o
})
}
return c = this, l < t.length && s.push({
elem: c,
handlers: t.slice(l)
}), s
},
addProp: function(e, t) {
Object.defineProperty(x.Event.prototype, e, {
enumerable: !0,
configurable: !0,
get: p(t) ? function() {
if (this.originalEvent) return t(this.originalEvent)
} : function() {
if (this.originalEvent) return this.originalEvent[e]
},
set: function(t) {
Object.defineProperty(this, e, {
enumerable: !0,
configurable: !0,
writable: !0,
value: t
})
}
})
},
fix: function(e) {
return e[x.expando] ? e : new x.Event(e)
},
special: {
load: {
noBubble: !0
},
click: {
setup: function(e) {
var t = this || e;
return he.test(t.type) && t.click && D(t, "input") && De(t, "click", Ce), !1
},
trigger: function(e) {
var t = this || e;
return he.test(t.type) && t.click && D(t, "input") && De(t, "click"), !0
},
_default: function(e) {
var t = e.target;
return he.test(t.type) && t.click && D(t, "input") && G.get(t, "click") || D(t, "a")
}
},
beforeunload: {
postDispatch: function(e) {
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
}
}
}
}, x.removeEvent = function(e, t, n) {
e.removeEventListener && e.removeEventListener(t, n)
}, x.Event = function(e, t) {
if (!(this instanceof x.Event)) return new x.Event(e, t);
e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ce : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && x.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[x.expando] = !0
}, x.Event.prototype = {
constructor: x.Event,
isDefaultPrevented: ke,
isPropagationStopped: ke,
isImmediatePropagationStopped: ke,
isSimulated: !1,
preventDefault: function() {
var e = this.originalEvent;
this.isDefaultPrevented = Ce, e && !this.isSimulated && e.preventDefault()
},
stopPropagation: function() {
var e = this.originalEvent;
this.isPropagationStopped = Ce, e && !this.isSimulated && e.stopPropagation()
},
stopImmediatePropagation: function() {
var e = this.originalEvent;
this.isImmediatePropagationStopped = Ce, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
}
}, x.each({
altKey: !0,
bubbles: !0,
cancelable: !0,
changedTouches: !0,
ctrlKey: !0,
detail: !0,
eventPhase: !0,
metaKey: !0,
pageX: !0,
pageY: !0,
shiftKey: !0,
view: !0,
char: !0,
code: !0,
charCode: !0,
key: !0,
keyCode: !0,
button: !0,
buttons: !0,
clientX: !0,
clientY: !0,
offsetX: !0,
offsetY: !0,
pointerId: !0,
pointerType: !0,
screenX: !0,
screenY: !0,
targetTouches: !0,
toElement: !0,
touches: !0,
which: function(e) {
var t = e.button;
return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && xe.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
}
}, x.event.addProp), x.each({
focus: "focusin",
blur: "focusout"
}, (function(e, t) {
x.event.special[e] = {
setup: function() {
return De(this, e, Se), !1
},
trigger: function() {
return De(this, e), !0
},
delegateType: t
}
})), x.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, (function(e, t) {
x.event.special[e] = {
delegateType: t,
bindType: t,
handle: function(e) {
var n, i = e.relatedTarget,
r = e.handleObj;
return i && (i === this || x.contains(this, i)) || (e.type = r.origType, n = r.handler.apply(this, arguments), e.type = t), n
}
}
})), x.fn.extend({
on: function(e, t, n, i) {
return Te(this, e, t, n, i)
},
one: function(e, t, n, i) {
return Te(this, e, t, n, i, 1)
},
off: function(e, t, n) {
var i, r;
if (e && e.preventDefault && e.handleObj) return i = e.handleObj, x(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
if ("object" == typeof e) {
for (r in e) this.off(r, t, e[r]);
return this
}
return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each((function() {
x.event.remove(this, e, n, t)
}))
}
});
var Ee = /<script|<style|<link/i,
Ae = /checked\s*(?:[^=]|=\s*.checked.)/i,
Me = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
function Oe(e, t) {
return D(e, "table") && D(11 !== t.nodeType ? t : t.firstChild, "tr") && x(e).children("tbody")[0] || e
}
function Ie(e) {
return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
}
function Pe(e) {
return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
}
function Le(e, t) {
var n, i, r, o, a, s;
if (1 === t.nodeType) {
if (G.hasData(e) && (s = G.get(e).events))
for (r in G.remove(t, "handle events"), s)
for (n = 0, i = s[r].length; n < i; n++) x.event.add(t, r, s[r][n]);
Q.hasData(e) && (o = Q.access(e), a = x.extend({}, o), Q.set(t, a))
}
}
function Fe(e, t, n, i) {
t = o(t);
var r, a, s, l, c, u, d = 0,
h = e.length,
g = h - 1,
m = t[0],
v = p(m);
if (v || 1 < h && "string" == typeof m && !f.checkClone && Ae.test(m)) return e.each((function(r) {
var o = e.eq(r);
v && (t[0] = m.call(this, r, o.html())), Fe(o, t, n, i)
}));
if (h && (a = (r = be(t, e[0].ownerDocument, !1, e, i)).firstChild, 1 === r.childNodes.length && (r = a), a || i)) {
for (l = (s = x.map(me(r, "script"), Ie)).length; d < h; d++) c = r, d !== g && (c = x.clone(c, !0, !0), l && x.merge(s, me(c, "script"))), n.call(e[d], c, d);
if (l)
for (u = s[s.length - 1].ownerDocument, x.map(s, Pe), d = 0; d < l; d++) c = s[d], pe.test(c.type || "") && !G.access(c, "globalEval") && x.contains(u, c) && (c.src && "module" !== (c.type || "").toLowerCase() ? x._evalUrl && !c.noModule && x._evalUrl(c.src, {
nonce: c.nonce || c.getAttribute("nonce")
}, u) : y(c.textContent.replace(Me, ""), c, u))
}
return e
}
function Ne(e, t, n) {
for (var i, r = t ? x.filter(t, e) : e, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || x.cleanData(me(i)), i.parentNode && (n && re(i) && ve(me(i, "script")), i.parentNode.removeChild(i));
return e
}
x.extend({
htmlPrefilter: function(e) {
return e
},
clone: function(e, t, n) {
var i, r, o, a, s, l, c, u = e.cloneNode(!0),
d = re(e);
if (!(f.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || x.isXMLDoc(e)))
for (a = me(u), i = 0, r = (o = me(e)).length; i < r; i++) s = o[i], "input" === (c = (l = a[i]).nodeName.toLowerCase()) && he.test(s.type) ? l.checked = s.checked : "input" !== c && "textarea" !== c || (l.defaultValue = s.defaultValue);
if (t)
if (n)
for (o = o || me(e), a = a || me(u), i = 0, r = o.length; i < r; i++) Le(o[i], a[i]);
else Le(e, u);
return 0 < (a = me(u, "script")).length && ve(a, !d && me(e, "script")), u
},
cleanData: function(e) {
for (var t, n, i, r = x.event.special, o = 0; void 0 !== (n = e[o]); o++)
if (Y(n)) {
if (t = n[G.expando]) {
if (t.events)
for (i in t.events) r[i] ? x.event.remove(n, i) : x.removeEvent(n, i, t.handle);
n[G.expando] = void 0
}
n[Q.expando] && (n[Q.expando] = void 0)
}
}
}), x.fn.extend({
detach: function(e) {
return Ne(this, e, !0)
},
remove: function(e) {
return Ne(this, e)
},
text: function(e) {
return B(this, (function(e) {
return void 0 === e ? x.text(this) : this.empty().each((function() {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
}))
}), null, e, arguments.length)
},
append: function() {
return Fe(this, arguments, (function(e) {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Oe(this, e).appendChild(e)
}))
},
prepend: function() {
return Fe(this, arguments, (function(e) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var t = Oe(this, e);
t.insertBefore(e, t.firstChild)
}
}))
},
before: function() {
return Fe(this, arguments, (function(e) {
this.parentNode && this.parentNode.insertBefore(e, this)
}))
},
after: function() {
return Fe(this, arguments, (function(e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
}))
},
empty: function() {
for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (x.cleanData(me(e, !1)), e.textContent = "");
return this
},
clone: function(e, t) {
return e = null != e && e, t = null == t ? e : t, this.map((function() {
return x.clone(this, e, t)
}))
},
html: function(e) {
return B(this, (function(e) {
var t = this[0] || {},
n = 0,
i = this.length;
if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
if ("string" == typeof e && !Ee.test(e) && !ge[(fe.exec(e) || ["", ""])[1].toLowerCase()]) {
e = x.htmlPrefilter(e);
try {
for (; n < i; n++) 1 === (t = this[n] || {}).nodeType && (x.cleanData(me(t, !1)), t.innerHTML = e);
t = 0
} catch (e) {}
}
t && this.empty().append(e)
}), null, e, arguments.length)
},
replaceWith: function() {
var e = [];
return Fe(this, arguments, (function(t) {
var n = this.parentNode;
x.inArray(this, e) < 0 && (x.cleanData(me(this)), n && n.replaceChild(t, this))
}), e)
}
}), x.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, (function(e, t) {
x.fn[e] = function(e) {
for (var n, i = [], r = x(e), o = r.length - 1, s = 0; s <= o; s++) n = s === o ? this : this.clone(!0), x(r[s])[t](n), a.apply(i, n.get());
return this.pushStack(i)
}
}));
var Re = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"),
je = function(t) {
var n = t.ownerDocument.defaultView;
return n && n.opener || (n = e), n.getComputedStyle(t)
},
$e = function(e, t, n) {
var i, r, o = {};
for (r in t) o[r] = e.style[r], e.style[r] = t[r];
for (r in i = n.call(e), t) e.style[r] = o[r];
return i
},
ze = new RegExp(ne.join("|"), "i");
function He(e, t, n) {
var i, r, o, a, s = e.style;
return (n = n || je(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || re(e) || (a = x.style(e, t)), !f.pixelBoxStyles() && Re.test(a) && ze.test(t) && (i = s.width, r = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = i, s.minWidth = r, s.maxWidth = o)), void 0 !== a ? a + "" : a
}
function Be(e, t) {
return {
get: function() {
if (!e()) return (this.get = t).apply(this, arguments);
delete this.get
}
}
}! function() {
function t() {
if (u) {
c.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", u.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", ie.appendChild(c).appendChild(u);
var t = e.getComputedStyle(u);
i = "1%" !== t.top, l = 12 === n(t.marginLeft), u.style.right = "60%", a = 36 === n(t.right), r = 36 === n(t.width), u.style.position = "absolute", o = 12 === n(u.offsetWidth / 3), ie.removeChild(c), u = null
}
}
function n(e) {
return Math.round(parseFloat(e))
}
var i, r, o, a, s, l, c = m.createElement("div"),
u = m.createElement("div");
u.style && (u.style.backgroundClip = "content-box", u.cloneNode(!0).style.backgroundClip = "", f.clearCloneStyle = "content-box" === u.style.backgroundClip, x.extend(f, {
boxSizingReliable: function() {
return t(), r
},
pixelBoxStyles: function() {
return t(), a
},
pixelPosition: function() {
return t(), i
},
reliableMarginLeft: function() {
return t(), l
},
scrollboxSize: function() {
return t(), o
},
reliableTrDimensions: function() {
var t, n, i, r;
return null == s && (t = m.createElement("table"), n = m.createElement("tr"), i = m.createElement("div"), t.style.cssText = "position:absolute;left:-11111px", n.style.height = "1px", i.style.height = "9px", ie.appendChild(t).appendChild(n).appendChild(i), r = e.getComputedStyle(n), s = 3 < parseInt(r.height), ie.removeChild(t)), s
}
}))
}();
var qe = ["Webkit", "Moz", "ms"],
We = m.createElement("div").style,
Ue = {};
function Ve(e) {
return x.cssProps[e] || Ue[e] || (e in We ? e : Ue[e] = function(e) {
for (var t = e[0].toUpperCase() + e.slice(1), n = qe.length; n--;)
if ((e = qe[n] + t) in We) return e
}(e) || e)
}
var Ye = /^(none|table(?!-c[ea]).+)/,
Xe = /^--/,
Ge = {
position: "absolute",
visibility: "hidden",
display: "block"
},
Qe = {
letterSpacing: "0",
fontWeight: "400"
};
function Ke(e, t, n) {
var i = te.exec(t);
return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t
}
function Je(e, t, n, i, r, o) {
var a = "width" === t ? 1 : 0,
s = 0,
l = 0;
if (n === (i ? "border" : "content")) return 0;
for (; a < 4; a += 2) "margin" === n && (l += x.css(e, n + ne[a], !0, r)), i ? ("content" === n && (l -= x.css(e, "padding" + ne[a], !0, r)), "margin" !== n && (l -= x.css(e, "border" + ne[a] + "Width", !0, r))) : (l += x.css(e, "padding" + ne[a], !0, r), "padding" !== n ? l += x.css(e, "border" + ne[a] + "Width", !0, r) : s += x.css(e, "border" + ne[a] + "Width", !0, r));
return !i && 0 <= o && (l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - l - s - .5)) || 0), l
}
function Ze(e, t, n) {
var i = je(e),
r = (!f.boxSizingReliable() || n) && "border-box" === x.css(e, "boxSizing", !1, i),
o = r,
a = He(e, t, i),
s = "offset" + t[0].toUpperCase() + t.slice(1);
if (Re.test(a)) {
if (!n) return a;
a = "auto"
}
return (!f.boxSizingReliable() && r || !f.reliableTrDimensions() && D(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === x.css(e, "display", !1, i)) && e.getClientRects().length && (r = "border-box" === x.css(e, "boxSizing", !1, i), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + Je(e, t, n || (r ? "border" : "content"), o, i, a) + "px"
}
function et(e, t, n, i, r) {
return new et.prototype.init(e, t, n, i, r)
}
x.extend({
cssHooks: {
opacity: {
get: function(e, t) {
if (t) {
var n = He(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
animationIterationCount: !0,
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
gridArea: !0,
gridColumn: !0,
gridColumnEnd: !0,
gridColumnStart: !0,
gridRow: !0,
gridRowEnd: !0,
gridRowStart: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {},
style: function(e, t, n, i) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var r, o, a, s = V(t),
l = Xe.test(t),
c = e.style;
if (l || (t = Ve(s)), a = x.cssHooks[t] || x.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (r = a.get(e, !1, i)) ? r : c[t];
"string" == (o = typeof n) && (r = te.exec(n)) && r[1] && (n = se(e, t, r), o = "number"), null != n && n == n && ("number" !== o || l || (n += r && r[3] || (x.cssNumber[s] ? "" : "px")), f.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (c[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, i)) || (l ? c.setProperty(t, n) : c[t] = n))
}
},
css: function(e, t, n, i) {
var r, o, a, s = V(t);
return Xe.test(t) || (t = Ve(s)), (a = x.cssHooks[t] || x.cssHooks[s]) && "get" in a && (r = a.get(e, !0, n)), void 0 === r && (r = He(e, t, i)), "normal" === r && t in Qe && (r = Qe[t]), "" === n || n ? (o = parseFloat(r), !0 === n || isFinite(o) ? o || 0 : r) : r
}
}), x.each(["height", "width"], (function(e, t) {
x.cssHooks[t] = {
get: function(e, n, i) {
if (n) return !Ye.test(x.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? Ze(e, t, i) : $e(e, Ge, (function() {
return Ze(e, t, i)
}))
},
set: function(e, n, i) {
var r, o = je(e),
a = !f.scrollboxSize() && "absolute" === o.position,
s = (a || i) && "border-box" === x.css(e, "boxSizing", !1, o),
l = i ? Je(e, t, i, s, o) : 0;
return s && a && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Je(e, t, "border", !1, o) - .5)), l && (r = te.exec(n)) && "px" !== (r[3] || "px") && (e.style[t] = n, n = x.css(e, t)), Ke(0, n, l)
}
}
})), x.cssHooks.marginLeft = Be(f.reliableMarginLeft, (function(e, t) {
if (t) return (parseFloat(He(e, "marginLeft")) || e.getBoundingClientRect().left - $e(e, {
marginLeft: 0
}, (function() {
return e.getBoundingClientRect().left
}))) + "px"
})), x.each({
margin: "",
padding: "",
border: "Width"
}, (function(e, t) {
x.cssHooks[e + t] = {
expand: function(n) {
for (var i = 0, r = {}, o = "string" == typeof n ? n.split(" ") : [n]; i < 4; i++) r[e + ne[i] + t] = o[i] || o[i - 2] || o[0];
return r
}
}, "margin" !== e && (x.cssHooks[e + t].set = Ke)
})), x.fn.extend({
css: function(e, t) {
return B(this, (function(e, t, n) {
var i, r, o = {},
a = 0;
if (Array.isArray(t)) {
for (i = je(e), r = t.length; a < r; a++) o[t[a]] = x.css(e, t[a], !1, i);
return o
}
return void 0 !== n ? x.style(e, t, n) : x.css(e, t)
}), e, t, 1 < arguments.length)
}
}), ((x.Tween = et).prototype = {
constructor: et,
init: function(e, t, n, i, r, o) {
this.elem = e, this.prop = n, this.easing = r || x.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = o || (x.cssNumber[n] ? "" : "px")
},
cur: function() {
var e = et.propHooks[this.prop];
return e && e.get ? e.get(this) : et.propHooks._default.get(this)
},
run: function(e) {
var t, n = et.propHooks[this.prop];
return this.options.duration ? this.pos = t = x.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : et.propHooks._default.set(this), this
}
}).init.prototype = et.prototype, (et.propHooks = {
_default: {
get: function(e) {
var t;
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = x.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
},
set: function(e) {
x.fx.step[e.prop] ? x.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !x.cssHooks[e.prop] && null == e.elem.style[Ve(e.prop)] ? e.elem[e.prop] = e.now : x.style(e.elem, e.prop, e.now + e.unit)
}
}
}).scrollTop = et.propHooks.scrollLeft = {
set: function(e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
}, x.easing = {
linear: function(e) {
return e
},
swing: function(e) {
return .5 - Math.cos(e * Math.PI) / 2
},
_default: "swing"
}, x.fx = et.prototype.init, x.fx.step = {};
var tt, nt, it, rt, ot = /^(?:toggle|show|hide)$/,
at = /queueHooks$/;
function st() {
nt && (!1 === m.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(st) : e.setTimeout(st, x.fx.interval), x.fx.tick())
}
function lt() {
return e.setTimeout((function() {
tt = void 0
})), tt = Date.now()
}
function ct(e, t) {
var n, i = 0,
r = {
height: e
};
for (t = t ? 1 : 0; i < 4; i += 2 - t) r["margin" + (n = ne[i])] = r["padding" + n] = e;
return t && (r.opacity = r.width = e), r
}
function ut(e, t, n) {
for (var i, r = (dt.tweeners[t] || []).concat(dt.tweeners["*"]), o = 0, a = r.length; o < a; o++)
if (i = r[o].call(n, t, e)) return i
}
function dt(e, t, n) {
var i, r, o = 0,
a = dt.prefilters.length,
s = x.Deferred().always((function() {
delete l.elem
})),
l = function() {
if (r) return !1;
for (var t = tt || lt(), n = Math.max(0, c.startTime + c.duration - t), i = 1 - (n / c.duration || 0), o = 0, a = c.tweens.length; o < a; o++) c.tweens[o].run(i);
return s.notifyWith(e, [c, i, n]), i < 1 && a ? n : (a || s.notifyWith(e, [c, 1, 0]), s.resolveWith(e, [c]), !1)
},
c = s.promise({
elem: e,
props: x.extend({}, t),
opts: x.extend(!0, {
specialEasing: {},
easing: x.easing._default
}, n),
originalProperties: t,
originalOptions: n,
startTime: tt || lt(),
duration: n.duration,
tweens: [],
createTween: function(t, n) {
var i = x.Tween(e, c.opts, t, n, c.opts.specialEasing[t] || c.opts.easing);
return c.tweens.push(i), i
},
stop: function(t) {
var n = 0,
i = t ? c.tweens.length : 0;
if (r) return this;
for (r = !0; n < i; n++) c.tweens[n].run(1);
return t ? (s.notifyWith(e, [c, 1, 0]), s.resolveWith(e, [c, t])) : s.rejectWith(e, [c, t]), this
}
}),
u = c.props;
for (function(e, t) {
var n, i, r, o, a;
for (n in e)
if (r = t[i = V(n)], o = e[n], Array.isArray(o) && (r = o[1], o = e[n] = o[0]), n !== i && (e[i] = o, delete e[n]), (a = x.cssHooks[i]) && "expand" in a)
for (n in o = a.expand(o), delete e[i], o) n in e || (e[n] = o[n], t[n] = r);
else t[i] = r
}(u, c.opts.specialEasing); o < a; o++)
if (i = dt.prefilters[o].call(c, e, u, c.opts)) return p(i.stop) && (x._queueHooks(c.elem, c.opts.queue).stop = i.stop.bind(i)), i;
return x.map(u, ut, c), p(c.opts.start) && c.opts.start.call(e, c), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always), x.fx.timer(x.extend(l, {
elem: e,
anim: c,
queue: c.opts.queue
})), c
}
x.Animation = x.extend(dt, {
tweeners: {
"*": [function(e, t) {
var n = this.createTween(e, t);
return se(n.elem, e, te.exec(t), n), n
}]
},
tweener: function(e, t) {
p(e) ? (t = e, e = ["*"]) : e = e.match(F);
for (var n, i = 0, r = e.length; i < r; i++) n = e[i], dt.tweeners[n] = dt.tweeners[n] || [], dt.tweeners[n].unshift(t)
},
prefilters: [function(e, t, n) {
var i, r, o, a, s, l, c, u, d = "width" in t || "height" in t,
h = this,
f = {},
p = e.style,
g = e.nodeType && ae(e),
m = G.get(e, "fxshow");
for (i in n.queue || (null == (a = x._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
a.unqueued || s()
}), a.unqueued++, h.always((function() {
h.always((function() {
a.unqueued--, x.queue(e, "fx").length || a.empty.fire()
}))
}))), t)
if (r = t[i], ot.test(r)) {
if (delete t[i], o = o || "toggle" === r, r === (g ? "hide" : "show")) {
if ("show" !== r || !m || void 0 === m[i]) continue;
g = !0
}
f[i] = m && m[i] || x.style(e, i)
}
if ((l = !x.isEmptyObject(t)) || !x.isEmptyObject(f))
for (i in d && 1 === e.nodeType && (n.overflow = [p.overflow, p.overflowX, p.overflowY], null == (c = m && m.display) && (c = G.get(e, "display")), "none" === (u = x.css(e, "display")) && (c ? u = c : (ce([e], !0), c = e.style.display || c, u = x.css(e, "display"), ce([e]))), ("inline" === u || "inline-block" === u && null != c) && "none" === x.css(e, "float") && (l || (h.done((function() {
p.display = c
})), null == c && (u = p.display, c = "none" === u ? "" : u)), p.display = "inline-block")), n.overflow && (p.overflow = "hidden", h.always((function() {
p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
}))), l = !1, f) l || (m ? "hidden" in m && (g = m.hidden) : m = G.access(e, "fxshow", {
display: c
}), o && (m.hidden = !g), g && ce([e], !0), h.done((function() {
for (i in g || ce([e]), G.remove(e, "fxshow"), f) x.style(e, i, f[i])
}))), l = ut(g ? m[i] : 0, i, h), i in m || (m[i] = l.start, g && (l.end = l.start, l.start = 0))
}],
prefilter: function(e, t) {
t ? dt.prefilters.unshift(e) : dt.prefilters.push(e)
}
}), x.speed = function(e, t, n) {
var i = e && "object" == typeof e ? x.extend({}, e) : {
complete: n || !n && t || p(e) && e,
duration: e,
easing: n && t || t && !p(t) && t
};
return x.fx.off ? i.duration = 0 : "number" != typeof i.duration && (i.duration in x.fx.speeds ? i.duration = x.fx.speeds[i.duration] : i.duration = x.fx.speeds._default), null != i.queue && !0 !== i.queue || (i.queue = "fx"), i.old = i.complete, i.complete = function() {
p(i.old) && i.old.call(this), i.queue && x.dequeue(this, i.queue)
}, i
}, x.fn.extend({
fadeTo: function(e, t, n, i) {
return this.filter(ae).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, i)
},
animate: function(e, t, n, i) {
var r = x.isEmptyObject(e),
o = x.speed(t, n, i),
a = function() {
var t = dt(this, x.extend({}, e), o);
(r || G.get(this, "finish")) && t.stop(!0)
};
return a.finish = a, r || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
},
stop: function(e, t, n) {
var i = function(e) {
var t = e.stop;
delete e.stop, t(n)
};
return "string" != typeof e && (n = t, t = e, e = void 0), t && this.queue(e || "fx", []), this.each((function() {
var t = !0,
r = null != e && e + "queueHooks",
o = x.timers,
a = G.get(this);
if (r) a[r] && a[r].stop && i(a[r]);
else
for (r in a) a[r] && a[r].stop && at.test(r) && i(a[r]);
for (r = o.length; r--;) o[r].elem !== this || null != e && o[r].queue !== e || (o[r].anim.stop(n), t = !1, o.splice(r, 1));
!t && n || x.dequeue(this, e)
}))
},
finish: function(e) {
return !1 !== e && (e = e || "fx"), this.each((function() {
var t, n = G.get(this),
i = n[e + "queue"],
r = n[e + "queueHooks"],
o = x.timers,
a = i ? i.length : 0;
for (n.finish = !0, x.queue(this, e, []), r && r.stop && r.stop.call(this, !0), t = o.length; t--;) o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1));
for (t = 0; t < a; t++) i[t] && i[t].finish && i[t].finish.call(this);
delete n.finish
}))
}
}), x.each(["toggle", "show", "hide"], (function(e, t) {
var n = x.fn[t];
x.fn[t] = function(e, i, r) {
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ct(t, !0), e, i, r)
}
})), x.each({
slideDown: ct("show"),
slideUp: ct("hide"),
slideToggle: ct("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, (function(e, t) {
x.fn[e] = function(e, n, i) {
return this.animate(t, e, n, i)
}
})), x.timers = [], x.fx.tick = function() {
var e, t = 0,
n = x.timers;
for (tt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
n.length || x.fx.stop(), tt = void 0
}, x.fx.timer = function(e) {
x.timers.push(e), x.fx.start()
}, x.fx.interval = 13, x.fx.start = function() {
nt || (nt = !0, st())
}, x.fx.stop = function() {
nt = null
}, x.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, x.fn.delay = function(t, n) {
return t = x.fx && x.fx.speeds[t] || t, n = n || "fx", this.queue(n, (function(n, i) {
var r = e.setTimeout(n, t);
i.stop = function() {
e.clearTimeout(r)
}
}))
}, it = m.createElement("input"), rt = m.createElement("select").appendChild(m.createElement("option")), it.type = "checkbox", f.checkOn = "" !== it.value, f.optSelected = rt.selected, (it = m.createElement("input")).value = "t", it.type = "radio", f.radioValue = "t" === it.value;
var ht, ft = x.expr.attrHandle;
x.fn.extend({
attr: function(e, t) {
return B(this, x.attr, e, t, 1 < arguments.length)
},
removeAttr: function(e) {
return this.each((function() {
x.removeAttr(this, e)
}))
}
}), x.extend({
attr: function(e, t, n) {
var i, r, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return void 0 === e.getAttribute ? x.prop(e, t, n) : (1 === o && x.isXMLDoc(e) || (r = x.attrHooks[t.toLowerCase()] || (x.expr.match.bool.test(t) ? ht : void 0)), void 0 !== n ? null === n ? void x.removeAttr(e, t) : r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : r && "get" in r && null !== (i = r.get(e, t)) ? i : null == (i = x.find.attr(e, t)) ? void 0 : i)
},
attrHooks: {
type: {
set: function(e, t) {
if (!f.radioValue && "radio" === t && D(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
},
removeAttr: function(e, t) {
var n, i = 0,
r = t && t.match(F);
if (r && 1 === e.nodeType)
for (; n = r[i++];) e.removeAttribute(n)
}
}), ht = {
set: function(e, t, n) {
return !1 === t ? x.removeAttr(e, n) : e.setAttribute(n, n), n
}
}, x.each(x.expr.match.bool.source.match(/\w+/g), (function(e, t) {
var n = ft[t] || x.find.attr;
ft[t] = function(e, t, i) {
var r, o, a = t.toLowerCase();
return i || (o = ft[a], ft[a] = r, r = null != n(e, t, i) ? a : null, ft[a] = o), r
}
}));
var pt = /^(?:input|select|textarea|button)$/i,
gt = /^(?:a|area)$/i;
function mt(e) {
return (e.match(F) || []).join(" ")
}
function vt(e) {
return e.getAttribute && e.getAttribute("class") || ""
}
function yt(e) {
return Array.isArray(e) ? e : "string" == typeof e && e.match(F) || []
}
x.fn.extend({
prop: function(e, t) {
return B(this, x.prop, e, t, 1 < arguments.length)
},
removeProp: function(e) {
return this.each((function() {
delete this[x.propFix[e] || e]
}))
}
}), x.extend({
prop: function(e, t, n) {
var i, r, o = e.nodeType;
if (3 !== o && 8 !== o && 2 !== o) return 1 === o && x.isXMLDoc(e) || (t = x.propFix[t] || t, r = x.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t]
},
propHooks: {
tabIndex: {
get: function(e) {
var t = x.find.attr(e, "tabindex");
return t ? parseInt(t, 10) : pt.test(e.nodeName) || gt.test(e.nodeName) && e.href ? 0 : -1
}
}
},
propFix: {
for: "htmlFor",
class: "className"
}
}), f.optSelected || (x.propHooks.selected = {
get: function(e) {
var t = e.parentNode;
return t && t.parentNode && t.parentNode.selectedIndex, null
},
set: function(e) {
var t = e.parentNode;
t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
}
}), x.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], (function() {
x.propFix[this.toLowerCase()] = this
})), x.fn.extend({
addClass: function(e) {
var t, n, i, r, o, a, s, l = 0;
if (p(e)) return this.each((function(t) {
x(this).addClass(e.call(this, t, vt(this)))
}));
if ((t = yt(e)).length)
for (; n = this[l++];)
if (r = vt(n), i = 1 === n.nodeType && " " + mt(r) + " ") {
for (a = 0; o = t[a++];) i.indexOf(" " + o + " ") < 0 && (i += o + " ");
r !== (s = mt(i)) && n.setAttribute("class", s)
}
return this
},
removeClass: function(e) {
var t, n, i, r, o, a, s, l = 0;
if (p(e)) return this.each((function(t) {
x(this).removeClass(e.call(this, t, vt(this)))
}));
if (!arguments.length) return this.attr("class", "");
if ((t = yt(e)).length)
for (; n = this[l++];)
if (r = vt(n), i = 1 === n.nodeType && " " + mt(r) + " ") {
for (a = 0; o = t[a++];)
for (; - 1 < i.indexOf(" " + o + " ");) i = i.replace(" " + o + " ", " ");
r !== (s = mt(i)) && n.setAttribute("class", s)
}
return this
},
toggleClass: function(e, t) {
var n = typeof e,
i = "string" === n || Array.isArray(e);
return "boolean" == typeof t && i ? t ? this.addClass(e) : this.removeClass(e) : p(e) ? this.each((function(n) {
x(this).toggleClass(e.call(this, n, vt(this), t), t)
})) : this.each((function() {
var t, r, o, a;
if (i)
for (r = 0, o = x(this), a = yt(e); t = a[r++];) o.hasClass(t) ? o.removeClass(t) : o.addClass(t);
else void 0 !== e && "boolean" !== n || ((t = vt(this)) && G.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : G.get(this, "__className__") || ""))
}))
},
hasClass: function(e) {
var t, n, i = 0;
for (t = " " + e + " "; n = this[i++];)
if (1 === n.nodeType && -1 < (" " + mt(vt(n)) + " ").indexOf(t)) return !0;
return !1
}
});
var bt = /\r/g;
x.fn.extend({
val: function(e) {
var t, n, i, r = this[0];
return arguments.length ? (i = p(e), this.each((function(n) {
var r;
1 === this.nodeType && (null == (r = i ? e.call(this, n, x(this).val()) : e) ? r = "" : "number" == typeof r ? r += "" : Array.isArray(r) && (r = x.map(r, (function(e) {
return null == e ? "" : e + ""
}))), (t = x.valHooks[this.type] || x.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, r, "value") || (this.value = r))
}))) : r ? (t = x.valHooks[r.type] || x.valHooks[r.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(r, "value")) ? n : "string" == typeof(n = r.value) ? n.replace(bt, "") : null == n ? "" : n : void 0
}
}), x.extend({
valHooks: {
option: {
get: function(e) {
var t = x.find.attr(e, "value");
return null != t ? t : mt(x.text(e))
}
},
select: {
get: function(e) {
var t, n, i, r = e.options,
o = e.selectedIndex,
a = "select-one" === e.type,
s = a ? null : [],
l = a ? o + 1 : r.length;
for (i = o < 0 ? l : a ? o : 0; i < l; i++)
if (((n = r[i]).selected || i === o) && !n.disabled && (!n.parentNode.disabled || !D(n.parentNode, "optgroup"))) {
if (t = x(n).val(), a) return t;
s.push(t)
}
return s
},
set: function(e, t) {
for (var n, i, r = e.options, o = x.makeArray(t), a = r.length; a--;)((i = r[a]).selected = -1 < x.inArray(x.valHooks.option.get(i), o)) && (n = !0);
return n || (e.selectedIndex = -1), o
}
}
}
}), x.each(["radio", "checkbox"], (function() {
x.valHooks[this] = {
set: function(e, t) {
if (Array.isArray(t)) return e.checked = -1 < x.inArray(x(e).val(), t)
}
}, f.checkOn || (x.valHooks[this].get = function(e) {
return null === e.getAttribute("value") ? "on" : e.value
})
})), f.focusin = "onfocusin" in e;
var wt = /^(?:focusinfocus|focusoutblur)$/,
xt = function(e) {
e.stopPropagation()
};
x.extend(x.event, {
trigger: function(t, n, i, r) {
var o, a, s, l, c, d, h, f, v = [i || m],
y = u.call(t, "type") ? t.type : t,
b = u.call(t, "namespace") ? t.namespace.split(".") : [];
if (a = f = s = i = i || m, 3 !== i.nodeType && 8 !== i.nodeType && !wt.test(y + x.event.triggered) && (-1 < y.indexOf(".") && (y = (b = y.split(".")).shift(), b.sort()), c = y.indexOf(":") < 0 && "on" + y, (t = t[x.expando] ? t : new x.Event(y, "object" == typeof t && t)).isTrigger = r ? 2 : 3, t.namespace = b.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + b.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : x.makeArray(n, [t]), h = x.event.special[y] || {}, r || !h.trigger || !1 !== h.trigger.apply(i, n))) {
if (!r && !h.noBubble && !g(i)) {
for (l = h.delegateType || y, wt.test(l + y) || (a = a.parentNode); a; a = a.parentNode) v.push(a), s = a;
s === (i.ownerDocument || m) && v.push(s.defaultView || s.parentWindow || e)
}
for (o = 0;
(a = v[o++]) && !t.isPropagationStopped();) f = a, t.type = 1 < o ? l : h.bindType || y, (d = (G.get(a, "events") || Object.create(null))[t.type] && G.get(a, "handle")) && d.apply(a, n), (d = c && a[c]) && d.apply && Y(a) && (t.result = d.apply(a, n), !1 === t.result && t.preventDefault());
return t.type = y, r || t.isDefaultPrevented() || h._default && !1 !== h._default.apply(v.pop(), n) || !Y(i) || c && p(i[y]) && !g(i) && ((s = i[c]) && (i[c] = null), x.event.triggered = y, t.isPropagationStopped() && f.addEventListener(y, xt), i[y](), t.isPropagationStopped() && f.removeEventListener(y, xt), x.event.triggered = void 0, s && (i[c] = s)), t.result
}
},
simulate: function(e, t, n) {
var i = x.extend(new x.Event, n, {
type: e,
isSimulated: !0
});
x.event.trigger(i, null, t)
}
}), x.fn.extend({
trigger: function(e, t) {
return this.each((function() {
x.event.trigger(e, t, this)
}))
},
triggerHandler: function(e, t) {
var n = this[0];
if (n) return x.event.trigger(e, t, n, !0)
}
}), f.focusin || x.each({
focus: "focusin",
blur: "focusout"
}, (function(e, t) {
var n = function(e) {
x.event.simulate(t, e.target, x.event.fix(e))
};
x.event.special[t] = {
setup: function() {
var i = this.ownerDocument || this.document || this,
r = G.access(i, t);
r || i.addEventListener(e, n, !0), G.access(i, t, (r || 0) + 1)
},
teardown: function() {
var i = this.ownerDocument || this.document || this,
r = G.access(i, t) - 1;
r ? G.access(i, t, r) : (i.removeEventListener(e, n, !0), G.remove(i, t))
}
}
}));
var _t = e.location,
Ct = {
guid: Date.now()
},
kt = /\?/;
x.parseXML = function(t) {
var n;
if (!t || "string" != typeof t) return null;
try {
n = (new e.DOMParser).parseFromString(t, "text/xml")
} catch (t) {
n = void 0
}
return n && !n.getElementsByTagName("parsererror").length || x.error("Invalid XML: " + t), n
};
var St = /\[\]$/,
Tt = /\r?\n/g,
Dt = /^(?:submit|button|image|reset|file)$/i,
Et = /^(?:input|select|textarea|keygen)/i;
function At(e, t, n, i) {
var r;
if (Array.isArray(t)) x.each(t, (function(t, r) {
n || St.test(e) ? i(e, r) : At(e + "[" + ("object" == typeof r && null != r ? t : "") + "]", r, n, i)
}));
else if (n || "object" !== b(t)) i(e, t);
else
for (r in t) At(e + "[" + r + "]", t[r], n, i)
}
x.param = function(e, t) {
var n, i = [],
r = function(e, t) {
var n = p(t) ? t() : t;
i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
};
if (null == e) return "";
if (Array.isArray(e) || e.jquery && !x.isPlainObject(e)) x.each(e, (function() {
r(this.name, this.value)
}));
else
for (n in e) At(n, e[n], t, r);
return i.join("&")
}, x.fn.extend({
serialize: function() {
return x.param(this.serializeArray())
},
serializeArray: function() {
return this.map((function() {
var e = x.prop(this, "elements");
return e ? x.makeArray(e) : this
})).filter((function() {
var e = this.type;
return this.name && !x(this).is(":disabled") && Et.test(this.nodeName) && !Dt.test(e) && (this.checked || !he.test(e))
})).map((function(e, t) {
var n = x(this).val();
return null == n ? null : Array.isArray(n) ? x.map(n, (function(e) {
return {
name: t.name,
value: e.replace(Tt, "\r\n")
}
})) : {
name: t.name,
value: n.replace(Tt, "\r\n")
}
})).get()
}
});
var Mt = /%20/g,
Ot = /#.*$/,
It = /([?&])_=[^&]*/,
Pt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
Lt = /^(?:GET|HEAD)$/,
Ft = /^\/\//,
Nt = {},
Rt = {},
jt = "*/".concat("*"),
$t = m.createElement("a");
function zt(e) {
return function(t, n) {
"string" != typeof t && (n = t, t = "*");
var i, r = 0,
o = t.toLowerCase().match(F) || [];
if (p(n))
for (; i = o[r++];) "+" === i[0] ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n)
}
}
function Ht(e, t, n, i) {
var r = {},
o = e === Rt;
function a(s) {
var l;
return r[s] = !0, x.each(e[s] || [], (function(e, s) {
var c = s(t, n, i);
return "string" != typeof c || o || r[c] ? o ? !(l = c) : void 0 : (t.dataTypes.unshift(c), a(c), !1)
})), l
}
return a(t.dataTypes[0]) || !r["*"] && a("*")
}
function Bt(e, t) {
var n, i, r = x.ajaxSettings.flatOptions || {};
for (n in t) void 0 !== t[n] && ((r[n] ? e : i || (i = {}))[n] = t[n]);
return i && x.extend(!0, e, i), e
}
$t.href = _t.href, x.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: _t.href,
type: "GET",
isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(_t.protocol),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": jt,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /\bxml\b/,
html: /\bhtml/,
json: /\bjson\b/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": JSON.parse,
"text xml": x.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(e, t) {
return t ? Bt(Bt(e, x.ajaxSettings), t) : Bt(x.ajaxSettings, e)
},
ajaxPrefilter: zt(Nt),
ajaxTransport: zt(Rt),
ajax: function(t, n) {
"object" == typeof t && (n = t, t = void 0), n = n || {};
var i, r, o, a, s, l, c, u, d, h, f = x.ajaxSetup({}, n),
p = f.context || f,
g = f.context && (p.nodeType || p.jquery) ? x(p) : x.event,
v = x.Deferred(),
y = x.Callbacks("once memory"),
b = f.statusCode || {},
w = {},
_ = {},
C = "canceled",
k = {
readyState: 0,
getResponseHeader: function(e) {
var t;
if (c) {
if (!a)
for (a = {}; t = Pt.exec(o);) a[t[1].toLowerCase() + " "] = (a[t[1].toLowerCase() + " "] || []).concat(t[2]);
t = a[e.toLowerCase() + " "]
}
return null == t ? null : t.join(", ")
},
getAllResponseHeaders: function() {
return c ? o : null
},
setRequestHeader: function(e, t) {
return null == c && (e = _[e.toLowerCase()] = _[e.toLowerCase()] || e, w[e] = t), this
},
overrideMimeType: function(e) {
return null == c && (f.mimeType = e), this
},
statusCode: function(e) {
var t;
if (e)
if (c) k.always(e[k.status]);
else
for (t in e) b[t] = [b[t], e[t]];
return this
},
abort: function(e) {
var t = e || C;
return i && i.abort(t), S(0, t), this
}
};
if (v.promise(k), f.url = ((t || f.url || _t.href) + "").replace(Ft, _t.protocol + "//"), f.type = n.method || n.type || f.method || f.type, f.dataTypes = (f.dataType || "*").toLowerCase().match(F) || [""], null == f.crossDomain) {
l = m.createElement("a");
try {
l.href = f.url, l.href = l.href, f.crossDomain = $t.protocol + "//" + $t.host != l.protocol + "//" + l.host
} catch (t) {
f.crossDomain = !0
}
}
if (f.data && f.processData && "string" != typeof f.data && (f.data = x.param(f.data, f.traditional)), Ht(Nt, f, n, k), c) return k;
for (d in (u = x.event && f.global) && 0 == x.active++ && x.event.trigger("ajaxStart"), f.type = f.type.toUpperCase(), f.hasContent = !Lt.test(f.type), r = f.url.replace(Ot, ""), f.hasContent ? f.data && f.processData && 0 === (f.contentType || "").indexOf("application/x-www-form-urlencoded") && (f.data = f.data.replace(Mt, "+")) : (h = f.url.slice(r.length), f.data && (f.processData || "string" == typeof f.data) && (r += (kt.test(r) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (r = r.replace(It, "$1"), h = (kt.test(r) ? "&" : "?") + "_=" + Ct.guid++ + h), f.url = r + h), f.ifModified && (x.lastModified[r] && k.setRequestHeader("If-Modified-Since", x.lastModified[r]), x.etag[r] && k.setRequestHeader("If-None-Match", x.etag[r])), (f.data && f.hasContent && !1 !== f.contentType || n.contentType) && k.setRequestHeader("Content-Type", f.contentType), k.setRequestHeader("Accept", f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ("*" !== f.dataTypes[0] ? ", " + jt + "; q=0.01" : "") : f.accepts["*"]), f.headers) k.setRequestHeader(d, f.headers[d]);
if (f.beforeSend && (!1 === f.beforeSend.call(p, k, f) || c)) return k.abort();
if (C = "abort", y.add(f.complete), k.done(f.success), k.fail(f.error), i = Ht(Rt, f, n, k)) {
if (k.readyState = 1, u && g.trigger("ajaxSend", [k, f]), c) return k;
f.async && 0 < f.timeout && (s = e.setTimeout((function() {
k.abort("timeout")
}), f.timeout));
try {
c = !1, i.send(w, S)
} catch (t) {
if (c) throw t;
S(-1, t)
}
} else S(-1, "No Transport");
function S(t, n, a, l) {
var d, h, m, w, _, C = n;
c || (c = !0, s && e.clearTimeout(s), i = void 0, o = l || "", k.readyState = 0 < t ? 4 : 0, d = 200 <= t && t < 300 || 304 === t, a && (w = function(e, t, n) {
for (var i, r, o, a, s = e.contents, l = e.dataTypes;
"*" === l[0];) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
if (i)
for (r in s)
if (s[r] && s[r].test(i)) {
l.unshift(r);
break
}
if (l[0] in n) o = l[0];
else {
for (r in n) {
if (!l[0] || e.converters[r + " " + l[0]]) {
o = r;
break
}
a || (a = r)
}
o = o || a
}
if (o) return o !== l[0] && l.unshift(o), n[o]
}(f, k, a)), !d && -1 < x.inArray("script", f.dataTypes) && (f.converters["text script"] = function() {}), w = function(e, t, n, i) {
var r, o, a, s, l, c = {},
u = e.dataTypes.slice();
if (u[1])
for (a in e.converters) c[a.toLowerCase()] = e.converters[a];
for (o = u.shift(); o;)
if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = u.shift())
if ("*" === o) o = l;
else if ("*" !== l && l !== o) {
if (!(a = c[l + " " + o] || c["* " + o]))
for (r in c)
if ((s = r.split(" "))[1] === o && (a = c[l + " " + s[0]] || c["* " + s[0]])) {
!0 === a ? a = c[r] : !0 !== c[r] && (o = s[0], u.unshift(s[1]));
break
}
if (!0 !== a)
if (a && e.throws) t = a(t);
else try {
t = a(t)
} catch (e) {
return {
state: "parsererror",
error: a ? e : "No conversion from " + l + " to " + o
}
}
}
return {
state: "success",
data: t
}
}(f, w, k, d), d ? (f.ifModified && ((_ = k.getResponseHeader("Last-Modified")) && (x.lastModified[r] = _), (_ = k.getResponseHeader("etag")) && (x.etag[r] = _)), 204 === t || "HEAD" === f.type ? C = "nocontent" : 304 === t ? C = "notmodified" : (C = w.state, h = w.data, d = !(m = w.error))) : (m = C, !t && C || (C = "error", t < 0 && (t = 0))), k.status = t, k.statusText = (n || C) + "", d ? v.resolveWith(p, [h, C, k]) : v.rejectWith(p, [k, C, m]), k.statusCode(b), b = void 0, u && g.trigger(d ? "ajaxSuccess" : "ajaxError", [k, f, d ? h : m]), y.fireWith(p, [k, C]), u && (g.trigger("ajaxComplete", [k, f]), --x.active || x.event.trigger("ajaxStop")))
}
return k
},
getJSON: function(e, t, n) {
return x.get(e, t, n, "json")
},
getScript: function(e, t) {
return x.get(e, void 0, t, "script")
}
}), x.each(["get", "post"], (function(e, t) {
x[t] = function(e, n, i, r) {
return p(n) && (r = r || i, i = n, n = void 0), x.ajax(x.extend({
url: e,
type: t,
dataType: r,
data: n,
success: i
}, x.isPlainObject(e) && e))
}
})), x.ajaxPrefilter((function(e) {
var t;
for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
})), x._evalUrl = function(e, t, n) {
return x.ajax({
url: e,
type: "GET",
dataType: "script",
cache: !0,
async: !1,
global: !1,
converters: {
"text script": function() {}
},
dataFilter: function(e) {
x.globalEval(e, t, n)
}
})
}, x.fn.extend({
wrapAll: function(e) {
var t;
return this[0] && (p(e) && (e = e.call(this[0])), t = x(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map((function() {
for (var e = this; e.firstElementChild;) e = e.firstElementChild;
return e
})).append(this)), this
},
wrapInner: function(e) {
return p(e) ? this.each((function(t) {
x(this).wrapInner(e.call(this, t))
})) : this.each((function() {
var t = x(this),
n = t.contents();
n.length ? n.wrapAll(e) : t.append(e)
}))
},
wrap: function(e) {
var t = p(e);
return this.each((function(n) {
x(this).wrapAll(t ? e.call(this, n) : e)
}))
},
unwrap: function(e) {
return this.parent(e).not("body").each((function() {
x(this).replaceWith(this.childNodes)
})), this
}
}), x.expr.pseudos.hidden = function(e) {
return !x.expr.pseudos.visible(e)
}, x.expr.pseudos.visible = function(e) {
return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
}, x.ajaxSettings.xhr = function() {
try {
return new e.XMLHttpRequest
} catch (e) {}
};
var qt = {
0: 200,
1223: 204
},
Wt = x.ajaxSettings.xhr();
f.cors = !!Wt && "withCredentials" in Wt, f.ajax = Wt = !!Wt, x.ajaxTransport((function(t) {
var n, i;
if (f.cors || Wt && !t.crossDomain) return {
send: function(r, o) {
var a, s = t.xhr();
if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)
for (a in t.xhrFields) s[a] = t.xhrFields[a];
for (a in t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || r["X-Requested-With"] || (r["X-Requested-With"] = "XMLHttpRequest"), r) s.setRequestHeader(a, r[a]);
n = function(e) {
return function() {
n && (n = i = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(qt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? {
binary: s.response
} : {
text: s.responseText
}, s.getAllResponseHeaders()))
}
}, s.onload = n(), i = s.onerror = s.ontimeout = n("error"), void 0 !== s.onabort ? s.onabort = i : s.onreadystatechange = function() {
4 === s.readyState && e.setTimeout((function() {
n && i()
}))
}, n = n("abort");
try {
s.send(t.hasContent && t.data || null)
} catch (r) {
if (n) throw r
}
},
abort: function() {
n && n()
}
}
})), x.ajaxPrefilter((function(e) {
e.crossDomain && (e.contents.script = !1)
})), x.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function(e) {
return x.globalEval(e), e
}
}
}), x.ajaxPrefilter("script", (function(e) {
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
})), x.ajaxTransport("script", (function(e) {
var t, n;
if (e.crossDomain || e.scriptAttrs) return {
send: function(i, r) {
t = x("<script>").attr(e.scriptAttrs || {}).prop({
charset: e.scriptCharset,
src: e.url
}).on("load error", n = function(e) {
t.remove(), n = null, e && r("error" === e.type ? 404 : 200, e.type)
}), m.head.appendChild(t[0])
},
abort: function() {
n && n()
}
}
}));
var Ut, Vt = [],
Yt = /(=)\?(?=&|$)|\?\?/;
x.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var e = Vt.pop() || x.expando + "_" + Ct.guid++;
return this[e] = !0, e
}
}), x.ajaxPrefilter("json jsonp", (function(t, n, i) {
var r, o, a, s = !1 !== t.jsonp && (Yt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Yt.test(t.data) && "data");
if (s || "jsonp" === t.dataTypes[0]) return r = t.jsonpCallback = p(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(Yt, "$1" + r) : !1 !== t.jsonp && (t.url += (kt.test(t.url) ? "&" : "?") + t.jsonp + "=" + r), t.converters["script json"] = function() {
return a || x.error(r + " was not called"), a[0]
}, t.dataTypes[0] = "json", o = e[r], e[r] = function() {
a = arguments
}, i.always((function() {
void 0 === o ? x(e).removeProp(r) : e[r] = o, t[r] && (t.jsonpCallback = n.jsonpCallback, Vt.push(r)), a && p(o) && o(a[0]), a = o = void 0
})), "script"
})), f.createHTMLDocument = ((Ut = m.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Ut.childNodes.length), x.parseHTML = function(e, t, n) {
return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (f.createHTMLDocument ? ((i = (t = m.implementation.createHTMLDocument("")).createElement("base")).href = m.location.href, t.head.appendChild(i)) : t = m), o = !n && [], (r = E.exec(e)) ? [t.createElement(r[1])] : (r = be([e], t, o), o && o.length && x(o).remove(), x.merge([], r.childNodes)));
var i, r, o
}, x.fn.load = function(e, t, n) {
var i, r, o, a = this,
s = e.indexOf(" ");
return -1 < s && (i = mt(e.slice(s)), e = e.slice(0, s)), p(t) ? (n = t, t = void 0) : t && "object" == typeof t && (r = "POST"), 0 < a.length && x.ajax({
url: e,
type: r || "GET",
dataType: "html",
data: t
}).done((function(e) {
o = arguments, a.html(i ? x("<div>").append(x.parseHTML(e)).find(i) : e)
})).always(n && function(e, t) {
a.each((function() {
n.apply(this, o || [e.responseText, t, e])
}))
}), this
}, x.expr.pseudos.animated = function(e) {
return x.grep(x.timers, (function(t) {
return e === t.elem
})).length
}, x.offset = {
setOffset: function(e, t, n) {
var i, r, o, a, s, l, c = x.css(e, "position"),
u = x(e),
d = {};
"static" === c && (e.style.position = "relative"), s = u.offset(), o = x.css(e, "top"), l = x.css(e, "left"), ("absolute" === c || "fixed" === c) && -1 < (o + l).indexOf("auto") ? (a = (i = u.position()).top, r = i.left) : (a = parseFloat(o) || 0, r = parseFloat(l) || 0), p(t) && (t = t.call(e, n, x.extend({}, s))), null != t.top && (d.top = t.top - s.top + a), null != t.left && (d.left = t.left - s.left + r), "using" in t ? t.using.call(e, d) : ("number" == typeof d.top && (d.top += "px"), "number" == typeof d.left && (d.left += "px"), u.css(d))
}
}, x.fn.extend({
offset: function(e) {
if (arguments.length) return void 0 === e ? this : this.each((function(t) {
x.offset.setOffset(this, e, t)
}));
var t, n, i = this[0];
return i ? i.getClientRects().length ? (t = i.getBoundingClientRect(), n = i.ownerDocument.defaultView, {
top: t.top + n.pageYOffset,
left: t.left + n.pageXOffset
}) : {
top: 0,
left: 0
} : void 0
},
position: function() {
if (this[0]) {
var e, t, n, i = this[0],
r = {
top: 0,
left: 0
};
if ("fixed" === x.css(i, "position")) t = i.getBoundingClientRect();
else {
for (t = this.offset(), n = i.ownerDocument, e = i.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === x.css(e, "position");) e = e.parentNode;
e && e !== i && 1 === e.nodeType && ((r = x(e).offset()).top += x.css(e, "borderTopWidth", !0), r.left += x.css(e, "borderLeftWidth", !0))
}
return {
top: t.top - r.top - x.css(i, "marginTop", !0),
left: t.left - r.left - x.css(i, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map((function() {
for (var e = this.offsetParent; e && "static" === x.css(e, "position");) e = e.offsetParent;
return e || ie
}))
}
}), x.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, (function(e, t) {
var n = "pageYOffset" === t;
x.fn[e] = function(i) {
return B(this, (function(e, i, r) {
var o;
if (g(e) ? o = e : 9 === e.nodeType && (o = e.defaultView), void 0 === r) return o ? o[t] : e[i];
o ? o.scrollTo(n ? o.pageXOffset : r, n ? r : o.pageYOffset) : e[i] = r
}), e, i, arguments.length)
}
})), x.each(["top", "left"], (function(e, t) {
x.cssHooks[t] = Be(f.pixelPosition, (function(e, n) {
if (n) return n = He(e, t), Re.test(n) ? x(e).position()[t] + "px" : n
}))
})), x.each({
Height: "height",
Width: "width"
}, (function(e, t) {
x.each({
padding: "inner" + e,
content: t,
"": "outer" + e
}, (function(n, i) {
x.fn[i] = function(r, o) {
var a = arguments.length && (n || "boolean" != typeof r),
s = n || (!0 === r || !0 === o ? "margin" : "border");
return B(this, (function(t, n, r) {
var o;
return g(t) ? 0 === i.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement, Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === r ? x.css(t, n, s) : x.style(t, n, r, s)
}), t, a ? r : void 0, a)
}
}))
})), x.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], (function(e, t) {
x.fn[t] = function(e) {
return this.on(t, e)
}
})), x.fn.extend({
bind: function(e, t, n) {
return this.on(e, null, t, n)
},
unbind: function(e, t) {
return this.off(e, null, t)
},
delegate: function(e, t, n, i) {
return this.on(t, e, n, i)
},
undelegate: function(e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
},
hover: function(e, t) {
return this.mouseenter(e).mouseleave(t || e)
}
}), x.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), (function(e, t) {
x.fn[t] = function(e, n) {
return 0 < arguments.length ? this.on(t, null, e, n) : this.trigger(t)
}
}));
var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
x.proxy = function(e, t) {
var n, i, o;
if ("string" == typeof t && (n = e[t], t = e, e = n), p(e)) return i = r.call(arguments, 2), (o = function() {
return e.apply(t || this, i.concat(r.call(arguments)))
}).guid = e.guid = e.guid || x.guid++, o
}, x.holdReady = function(e) {
e ? x.readyWait++ : x.ready(!0)
}, x.isArray = Array.isArray, x.parseJSON = JSON.parse, x.nodeName = D, x.isFunction = p, x.isWindow = g, x.camelCase = V, x.type = b, x.now = Date.now, x.isNumeric = function(e) {
var t = x.type(e);
return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
}, x.trim = function(e) {
return null == e ? "" : (e + "").replace(Xt, "")
}, "function" == typeof define && define.amd && define("jquery", [], (function() {
return x
}));
var Gt = e.jQuery,
Qt = e.$;
return x.noConflict = function(t) {
return e.$ === x && (e.$ = Qt), t && e.jQuery === x && (e.jQuery = Gt), x
}, void 0 === t && (e.jQuery = e.$ = x), x
})),
function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? t(exports, require("jquery")) : "function" == typeof define && define.amd ? define(["exports", "jquery"], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).bootstrap = {}, e.jQuery)
}(this, (function(e, t) {
"use strict";
function n(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function i(e, t, i) {
return t && n(e.prototype, t), i && n(e, i), e
}
function r() {
return (r = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
}).apply(this, arguments)
}
t = t && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
var o = {
TRANSITION_END: "bsTransitionEnd",
getUID: function(e) {
do {
e += ~~(1e6 * Math.random())
} while (document.getElementById(e));
return e
},
getSelectorFromElement: function(e) {
var t = e.getAttribute("data-target");
if (!t || "#" === t) {
var n = e.getAttribute("href");
t = n && "#" !== n ? n.trim() : ""
}
try {
return document.querySelector(t) ? t : null
} catch (e) {
return null
}
},
getTransitionDurationFromElement: function(e) {
if (!e) return 0;
var n = t(e).css("transition-duration"),
i = t(e).css("transition-delay"),
r = parseFloat(n),
o = parseFloat(i);
return r || o ? (n = n.split(",")[0], i = i.split(",")[0], 1e3 * (parseFloat(n) + parseFloat(i))) : 0
},
reflow: function(e) {
return e.offsetHeight
},
triggerTransitionEnd: function(e) {
t(e).trigger("transitionend")
},
supportsTransitionEnd: function() {
return Boolean("transitionend")
},
isElement: function(e) {
return (e[0] || e).nodeType
},
typeCheckConfig: function(e, t, n) {
for (var i in n)
if (Object.prototype.hasOwnProperty.call(n, i)) {
var r = n[i],
a = t[i],
s = a && o.isElement(a) ? "element" : null === (l = a) || void 0 === l ? "" + l : {}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();
if (!new RegExp(r).test(s)) throw new Error(e.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + r + '".')
}
var l
},
findShadowRoot: function(e) {
if (!document.documentElement.attachShadow) return null;
if ("function" == typeof e.getRootNode) {
var t = e.getRootNode();
return t instanceof ShadowRoot ? t : null
}
return e instanceof ShadowRoot ? e : e.parentNode ? o.findShadowRoot(e.parentNode) : null
},
jQueryDetection: function() {
if (void 0 === t) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
var e = t.fn.jquery.split(" ")[0].split(".");
if (e[0] < 2 && e[1] < 9 || 1 === e[0] && 9 === e[1] && e[2] < 1 || e[0] >= 4) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")
}
};
o.jQueryDetection(), t.fn.emulateTransitionEnd = function(e) {
var n = this,
i = !1;
return t(this).one(o.TRANSITION_END, (function() {
i = !0
})), setTimeout((function() {
i || o.triggerTransitionEnd(n)
}), e), this
}, t.event.special[o.TRANSITION_END] = {
bindType: "transitionend",
delegateType: "transitionend",
handle: function(e) {
if (t(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
}
};
var a = "alert",
s = t.fn[a],
l = function() {
function e(e) {
this._element = e
}
var n = e.prototype;
return n.close = function(e) {
var t = this._element;
e && (t = this._getRootElement(e)), this._triggerCloseEvent(t).isDefaultPrevented() || this._removeElement(t)
}, n.dispose = function() {
t.removeData(this._element, "bs.alert"), this._element = null
}, n._getRootElement = function(e) {
var n = o.getSelectorFromElement(e),
i = !1;
return n && (i = document.querySelector(n)), i || (i = t(e).closest(".alert")[0]), i
}, n._triggerCloseEvent = function(e) {
var n = t.Event("close.bs.alert");
return t(e).trigger(n), n
}, n._removeElement = function(e) {
var n = this;
if (t(e).removeClass("show"), t(e).hasClass("fade")) {
var i = o.getTransitionDurationFromElement(e);
t(e).one(o.TRANSITION_END, (function(t) {
return n._destroyElement(e, t)
})).emulateTransitionEnd(i)
} else this._destroyElement(e)
}, n._destroyElement = function(e) {
t(e).detach().trigger("closed.bs.alert").remove()
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this),
r = i.data("bs.alert");
r || (r = new e(this), i.data("bs.alert", r)), "close" === n && r[n](this)
}))
}, e._handleDismiss = function(e) {
return function(t) {
t && t.preventDefault(), e.close(this)
}
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}]), e
}();
t(document).on("click.bs.alert.data-api", '[data-dismiss="alert"]', l._handleDismiss(new l)), t.fn[a] = l._jQueryInterface, t.fn[a].Constructor = l, t.fn[a].noConflict = function() {
return t.fn[a] = s, l._jQueryInterface
};
var c = t.fn.button,
u = function() {
function e(e) {
this._element = e
}
var n = e.prototype;
return n.toggle = function() {
var e = !0,
n = !0,
i = t(this._element).closest('[data-toggle="buttons"]')[0];
if (i) {
var r = this._element.querySelector('input:not([type="hidden"])');
if (r) {
if ("radio" === r.type)
if (r.checked && this._element.classList.contains("active")) e = !1;
else {
var o = i.querySelector(".active");
o && t(o).removeClass("active")
}
e && ("checkbox" !== r.type && "radio" !== r.type || (r.checked = !this._element.classList.contains("active")), t(r).trigger("change")), r.focus(), n = !1
}
}
this._element.hasAttribute("disabled") || this._element.classList.contains("disabled") || (n && this._element.setAttribute("aria-pressed", !this._element.classList.contains("active")), e && t(this._element).toggleClass("active"))
}, n.dispose = function() {
t.removeData(this._element, "bs.button"), this._element = null
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this).data("bs.button");
i || (i = new e(this), t(this).data("bs.button", i)), "toggle" === n && i[n]()
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}]), e
}();
t(document).on("click.bs.button.data-api", '[data-toggle^="button"]', (function(e) {
var n = e.target,
i = n;
if (t(n).hasClass("btn") || (n = t(n).closest(".btn")[0]), !n || n.hasAttribute("disabled") || n.classList.contains("disabled")) e.preventDefault();
else {
var r = n.querySelector('input:not([type="hidden"])');
if (r && (r.hasAttribute("disabled") || r.classList.contains("disabled"))) return void e.preventDefault();
("LABEL" !== i.tagName || r && "checkbox" !== r.type) && u._jQueryInterface.call(t(n), "toggle")
}
})).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', (function(e) {
var n = t(e.target).closest(".btn")[0];
t(n).toggleClass("focus", /^focus(in)?$/.test(e.type))
})), t(window).on("load.bs.button.data-api", (function() {
for (var e = [].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')), t = 0, n = e.length; t < n; t++) {
var i = e[t],
r = i.querySelector('input:not([type="hidden"])');
r.checked || r.hasAttribute("checked") ? i.classList.add("active") : i.classList.remove("active")
}
for (var o = 0, a = (e = [].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length; o < a; o++) {
var s = e[o];
"true" === s.getAttribute("aria-pressed") ? s.classList.add("active") : s.classList.remove("active")
}
})), t.fn.button = u._jQueryInterface, t.fn.button.Constructor = u, t.fn.button.noConflict = function() {
return t.fn.button = c, u._jQueryInterface
};
var d = "carousel",
h = t.fn[d],
f = {
interval: 5e3,
keyboard: !0,
slide: !1,
pause: "hover",
wrap: !0,
touch: !0
},
p = {
interval: "(number|boolean)",
keyboard: "boolean",
slide: "(boolean|string)",
pause: "(string|boolean)",
wrap: "boolean",
touch: "boolean"
},
g = {
TOUCH: "touch",
PEN: "pen"
},
m = function() {
function e(e, t) {
this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(t), this._element = e, this._indicatorsElement = this._element.querySelector(".carousel-indicators"), this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners()
}
var n = e.prototype;
return n.next = function() {
this._isSliding || this._slide("next")
}, n.nextWhenVisible = function() {
!document.hidden && t(this._element).is(":visible") && "hidden" !== t(this._element).css("visibility") && this.next()
}, n.prev = function() {
this._isSliding || this._slide("prev")
}, n.pause = function(e) {
e || (this._isPaused = !0), this._element.querySelector(".carousel-item-next, .carousel-item-prev") && (o.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
}, n.cycle = function(e) {
e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
}, n.to = function(e) {
var n = this;
this._activeElement = this._element.querySelector(".active.carousel-item");
var i = this._getItemIndex(this._activeElement);
if (!(e > this._items.length - 1 || e < 0))
if (this._isSliding) t(this._element).one("slid.bs.carousel", (function() {
return n.to(e)
}));
else {
if (i === e) return this.pause(), void this.cycle();
var r = e > i ? "next" : "prev";
this._slide(r, this._items[e])
}
}, n.dispose = function() {
t(this._element).off(".bs.carousel"), t.removeData(this._element, "bs.carousel"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
}, n._getConfig = function(e) {
return e = r({}, f, e), o.typeCheckConfig(d, e, p), e
}, n._handleSwipe = function() {
var e = Math.abs(this.touchDeltaX);
if (!(e <= 40)) {
var t = e / this.touchDeltaX;
this.touchDeltaX = 0, t > 0 && this.prev(), t < 0 && this.next()
}
}, n._addEventListeners = function() {
var e = this;
this._config.keyboard && t(this._element).on("keydown.bs.carousel", (function(t) {
return e._keydown(t)
})), "hover" === this._config.pause && t(this._element).on("mouseenter.bs.carousel", (function(t) {
return e.pause(t)
})).on("mouseleave.bs.carousel", (function(t) {
return e.cycle(t)
})), this._config.touch && this._addTouchEventListeners()
}, n._addTouchEventListeners = function() {
var e = this;
if (this._touchSupported) {
var n = function(t) {
e._pointerEvent && g[t.originalEvent.pointerType.toUpperCase()] ? e.touchStartX = t.originalEvent.clientX : e._pointerEvent || (e.touchStartX = t.originalEvent.touches[0].clientX)
},
i = function(t) {
e._pointerEvent && g[t.originalEvent.pointerType.toUpperCase()] && (e.touchDeltaX = t.originalEvent.clientX - e.touchStartX), e._handleSwipe(), "hover" === e._config.pause && (e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout((function(t) {
return e.cycle(t)
}), 500 + e._config.interval))
};
t(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel", (function(e) {
return e.preventDefault()
})), this._pointerEvent ? (t(this._element).on("pointerdown.bs.carousel", (function(e) {
return n(e)
})), t(this._element).on("pointerup.bs.carousel", (function(e) {
return i(e)
})), this._element.classList.add("pointer-event")) : (t(this._element).on("touchstart.bs.carousel", (function(e) {
return n(e)
})), t(this._element).on("touchmove.bs.carousel", (function(t) {
return function(t) {
t.originalEvent.touches && t.originalEvent.touches.length > 1 ? e.touchDeltaX = 0 : e.touchDeltaX = t.originalEvent.touches[0].clientX - e.touchStartX
}(t)
})), t(this._element).on("touchend.bs.carousel", (function(e) {
return i(e)
})))
}
}, n._keydown = function(e) {
if (!/input|textarea/i.test(e.target.tagName)) switch (e.which) {
case 37:
e.preventDefault(), this.prev();
break;
case 39:
e.preventDefault(), this.next()
}
}, n._getItemIndex = function(e) {
return this._items = e && e.parentNode ? [].slice.call(e.parentNode.querySelectorAll(".carousel-item")) : [], this._items.indexOf(e)
}, n._getItemByDirection = function(e, t) {
var n = "next" === e,
i = "prev" === e,
r = this._getItemIndex(t),
o = this._items.length - 1;
if ((i && 0 === r || n && r === o) && !this._config.wrap) return t;
var a = (r + ("prev" === e ? -1 : 1)) % this._items.length;
return -1 === a ? this._items[this._items.length - 1] : this._items[a]
}, n._triggerSlideEvent = function(e, n) {
var i = this._getItemIndex(e),
r = this._getItemIndex(this._element.querySelector(".active.carousel-item")),
o = t.Event("slide.bs.carousel", {
relatedTarget: e,
direction: n,
from: r,
to: i
});
return t(this._element).trigger(o), o
}, n._setActiveIndicatorElement = function(e) {
if (this._indicatorsElement) {
var n = [].slice.call(this._indicatorsElement.querySelectorAll(".active"));
t(n).removeClass("active");
var i = this._indicatorsElement.children[this._getItemIndex(e)];
i && t(i).addClass("active")
}
}, n._slide = function(e, n) {
var i, r, a, s = this,
l = this._element.querySelector(".active.carousel-item"),
c = this._getItemIndex(l),
u = n || l && this._getItemByDirection(e, l),
d = this._getItemIndex(u),
h = Boolean(this._interval);
if ("next" === e ? (i = "carousel-item-left", r = "carousel-item-next", a = "left") : (i = "carousel-item-right", r = "carousel-item-prev", a = "right"), u && t(u).hasClass("active")) this._isSliding = !1;
else if (!this._triggerSlideEvent(u, a).isDefaultPrevented() && l && u) {
this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(u);
var f = t.Event("slid.bs.carousel", {
relatedTarget: u,
direction: a,
from: c,
to: d
});
if (t(this._element).hasClass("slide")) {
t(u).addClass(r), o.reflow(u), t(l).addClass(i), t(u).addClass(i);
var p = parseInt(u.getAttribute("data-interval"), 10);
p ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = p) : this._config.interval = this._config.defaultInterval || this._config.interval;
var g = o.getTransitionDurationFromElement(l);
t(l).one(o.TRANSITION_END, (function() {
t(u).removeClass(i + " " + r).addClass("active"), t(l).removeClass("active " + r + " " + i), s._isSliding = !1, setTimeout((function() {
return t(s._element).trigger(f)
}), 0)
})).emulateTransitionEnd(g)
} else t(l).removeClass("active"), t(u).addClass("active"), this._isSliding = !1, t(this._element).trigger(f);
h && this.cycle()
}
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this).data("bs.carousel"),
o = r({}, f, t(this).data());
"object" == typeof n && (o = r({}, o, n));
var a = "string" == typeof n ? n : o.slide;
if (i || (i = new e(this, o), t(this).data("bs.carousel", i)), "number" == typeof n) i.to(n);
else if ("string" == typeof a) {
if (void 0 === i[a]) throw new TypeError('No method named "' + a + '"');
i[a]()
} else o.interval && o.ride && (i.pause(), i.cycle())
}))
}, e._dataApiClickHandler = function(n) {
var i = o.getSelectorFromElement(this);
if (i) {
var a = t(i)[0];
if (a && t(a).hasClass("carousel")) {
var s = r({}, t(a).data(), t(this).data()),
l = this.getAttribute("data-slide-to");
l && (s.interval = !1), e._jQueryInterface.call(t(a), s), l && t(a).data("bs.carousel").to(l), n.preventDefault()
}
}
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return f
}
}]), e
}();
t(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", m._dataApiClickHandler), t(window).on("load.bs.carousel.data-api", (function() {
for (var e = [].slice.call(document.querySelectorAll('[data-ride="carousel"]')), n = 0, i = e.length; n < i; n++) {
var r = t(e[n]);
m._jQueryInterface.call(r, r.data())
}
})), t.fn[d] = m._jQueryInterface, t.fn[d].Constructor = m, t.fn[d].noConflict = function() {
return t.fn[d] = h, m._jQueryInterface
};
var v = "collapse",
y = t.fn[v],
b = {
toggle: !0,
parent: ""
},
w = {
toggle: "boolean",
parent: "(string|element)"
},
x = function() {
function e(e, t) {
this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
for (var n = [].slice.call(document.querySelectorAll('[data-toggle="collapse"]')), i = 0, r = n.length; i < r; i++) {
var a = n[i],
s = o.getSelectorFromElement(a),
l = [].slice.call(document.querySelectorAll(s)).filter((function(t) {
return t === e
}));
null !== s && l.length > 0 && (this._selector = s, this._triggerArray.push(a))
}
this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
}
var n = e.prototype;
return n.toggle = function() {
t(this._element).hasClass("show") ? this.hide() : this.show()
}, n.show = function() {
var n, i, r = this;
if (!(this._isTransitioning || t(this._element).hasClass("show") || (this._parent && 0 === (n = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(e) {
return "string" == typeof r._config.parent ? e.getAttribute("data-parent") === r._config.parent : e.classList.contains("collapse")
}))).length && (n = null), n && (i = t(n).not(this._selector).data("bs.collapse")) && i._isTransitioning))) {
var a = t.Event("show.bs.collapse");
if (t(this._element).trigger(a), !a.isDefaultPrevented()) {
n && (e._jQueryInterface.call(t(n).not(this._selector), "hide"), i || t(n).data("bs.collapse", null));
var s = this._getDimension();
t(this._element).removeClass("collapse").addClass("collapsing"), this._element.style[s] = 0, this._triggerArray.length && t(this._triggerArray).removeClass("collapsed").attr("aria-expanded", !0), this.setTransitioning(!0);
var l = "scroll" + (s[0].toUpperCase() + s.slice(1)),
c = o.getTransitionDurationFromElement(this._element);
t(this._element).one(o.TRANSITION_END, (function() {
t(r._element).removeClass("collapsing").addClass("collapse show"), r._element.style[s] = "", r.setTransitioning(!1), t(r._element).trigger("shown.bs.collapse")
})).emulateTransitionEnd(c), this._element.style[s] = this._element[l] + "px"
}
}
}, n.hide = function() {
var e = this;
if (!this._isTransitioning && t(this._element).hasClass("show")) {
var n = t.Event("hide.bs.collapse");
if (t(this._element).trigger(n), !n.isDefaultPrevented()) {
var i = this._getDimension();
this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", o.reflow(this._element), t(this._element).addClass("collapsing").removeClass("collapse show");
var r = this._triggerArray.length;
if (r > 0)
for (var a = 0; a < r; a++) {
var s = this._triggerArray[a],
l = o.getSelectorFromElement(s);
null !== l && (t([].slice.call(document.querySelectorAll(l))).hasClass("show") || t(s).addClass("collapsed").attr("aria-expanded", !1))
}
this.setTransitioning(!0), this._element.style[i] = "";
var c = o.getTransitionDurationFromElement(this._element);
t(this._element).one(o.TRANSITION_END, (function() {
e.setTransitioning(!1), t(e._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
})).emulateTransitionEnd(c)
}
}
}, n.setTransitioning = function(e) {
this._isTransitioning = e
}, n.dispose = function() {
t.removeData(this._element, "bs.collapse"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
}, n._getConfig = function(e) {
return (e = r({}, b, e)).toggle = Boolean(e.toggle), o.typeCheckConfig(v, e, w), e
}, n._getDimension = function() {
return t(this._element).hasClass("width") ? "width" : "height"
}, n._getParent = function() {
var n, i = this;
o.isElement(this._config.parent) ? (n = this._config.parent, void 0 !== this._config.parent.jquery && (n = this._config.parent[0])) : n = document.querySelector(this._config.parent);
var r = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
a = [].slice.call(n.querySelectorAll(r));
return t(a).each((function(t, n) {
i._addAriaAndCollapsedClass(e._getTargetFromElement(n), [n])
})), n
}, n._addAriaAndCollapsedClass = function(e, n) {
var i = t(e).hasClass("show");
n.length && t(n).toggleClass("collapsed", !i).attr("aria-expanded", i)
}, e._getTargetFromElement = function(e) {
var t = o.getSelectorFromElement(e);
return t ? document.querySelector(t) : null
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this),
o = i.data("bs.collapse"),
a = r({}, b, i.data(), "object" == typeof n && n ? n : {});
if (!o && a.toggle && "string" == typeof n && /show|hide/.test(n) && (a.toggle = !1), o || (o = new e(this, a), i.data("bs.collapse", o)), "string" == typeof n) {
if (void 0 === o[n]) throw new TypeError('No method named "' + n + '"');
o[n]()
}
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return b
}
}]), e
}();
t(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', (function(e) {
"A" === e.currentTarget.tagName && e.preventDefault();
var n = t(this),
i = o.getSelectorFromElement(this),
r = [].slice.call(document.querySelectorAll(i));
t(r).each((function() {
var e = t(this),
i = e.data("bs.collapse") ? "toggle" : n.data();
x._jQueryInterface.call(e, i)
}))
})), t.fn[v] = x._jQueryInterface, t.fn[v].Constructor = x, t.fn[v].noConflict = function() {
return t.fn[v] = y, x._jQueryInterface
};
var _ = "undefined" != typeof window && "undefined" != typeof document && "undefined" != typeof navigator,
C = function() {
for (var e = ["Edge", "Trident", "Firefox"], t = 0; t < e.length; t += 1)
if (_ && navigator.userAgent.indexOf(e[t]) >= 0) return 1;
return 0
}(),
k = _ && window.Promise ? function(e) {
var t = !1;
return function() {
t || (t = !0, window.Promise.resolve().then((function() {
t = !1, e()
})))
}
} : function(e) {
var t = !1;
return function() {
t || (t = !0, setTimeout((function() {
t = !1, e()
}), C))
}
};
function S(e) {
return e && "[object Function]" === {}.toString.call(e)
}
function T(e, t) {
if (1 !== e.nodeType) return [];
var n = e.ownerDocument.defaultView.getComputedStyle(e, null);
return t ? n[t] : n
}
function D(e) {
return "HTML" === e.nodeName ? e : e.parentNode || e.host
}
function E(e) {
if (!e) return document.body;
switch (e.nodeName) {
case "HTML":
case "BODY":
return e.ownerDocument.body;
case "#document":
return e.body
}
var t = T(e),
n = t.overflow,
i = t.overflowX,
r = t.overflowY;
return /(auto|scroll|overlay)/.test(n + r + i) ? e : E(D(e))
}
function A(e) {
return e && e.referenceNode ? e.referenceNode : e
}
var M = _ && !(!window.MSInputMethodContext || !document.documentMode),
O = _ && /MSIE 10/.test(navigator.userAgent);
function I(e) {
return 11 === e ? M : 10 === e ? O : M || O
}
function P(e) {
if (!e) return document.documentElement;
for (var t = I(10) ? document.body : null, n = e.offsetParent || null; n === t && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent;
var i = n && n.nodeName;
return i && "BODY" !== i && "HTML" !== i ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) && "static" === T(n, "position") ? P(n) : n : e ? e.ownerDocument.documentElement : document.documentElement
}
function L(e) {
return null !== e.parentNode ? L(e.parentNode) : e
}
function F(e, t) {
if (!(e && e.nodeType && t && t.nodeType)) return document.documentElement;
var n = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
i = n ? e : t,
r = n ? t : e,
o = document.createRange();
o.setStart(i, 0), o.setEnd(r, 0);
var a, s, l = o.commonAncestorContainer;
if (e !== l && t !== l || i.contains(r)) return "BODY" === (s = (a = l).nodeName) || "HTML" !== s && P(a.firstElementChild) !== a ? P(l) : l;
var c = L(e);
return c.host ? F(c.host, t) : F(e, L(t).host)
}
function N(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "top",
n = "top" === t ? "scrollTop" : "scrollLeft",
i = e.nodeName;
if ("BODY" === i || "HTML" === i) {
var r = e.ownerDocument.documentElement,
o = e.ownerDocument.scrollingElement || r;
return o[n]
}
return e[n]
}
function R(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
i = N(t, "top"),
r = N(t, "left"),
o = n ? -1 : 1;
return e.top += i * o, e.bottom += i * o, e.left += r * o, e.right += r * o, e
}
function j(e, t) {
var n = "x" === t ? "Left" : "Top",
i = "Left" === n ? "Right" : "Bottom";
return parseFloat(e["border" + n + "Width"]) + parseFloat(e["border" + i + "Width"])
}
function $(e, t, n, i) {
return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], I(10) ? parseInt(n["offset" + e]) + parseInt(i["margin" + ("Height" === e ? "Top" : "Left")]) + parseInt(i["margin" + ("Height" === e ? "Bottom" : "Right")]) : 0)
}
function z(e) {
var t = e.body,
n = e.documentElement,
i = I(10) && getComputedStyle(n);
return {
height: $("Height", t, n, i),
width: $("Width", t, n, i)
}
}
var H = function(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
},
B = function() {
function e(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
return function(t, n, i) {
return n && e(t.prototype, n), i && e(t, i), t
}
}(),
q = function(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
},
W = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
};
function U(e) {
return W({}, e, {
right: e.left + e.width,
bottom: e.top + e.height
})
}
function V(e) {
var t = {};
try {
if (I(10)) {
t = e.getBoundingClientRect();
var n = N(e, "top"),
i = N(e, "left");
t.top += n, t.left += i, t.bottom += n, t.right += i
} else t = e.getBoundingClientRect()
} catch (e) {}
var r = {
left: t.left,
top: t.top,
width: t.right - t.left,
height: t.bottom - t.top
},
o = "HTML" === e.nodeName ? z(e.ownerDocument) : {},
a = o.width || e.clientWidth || r.width,
s = o.height || e.clientHeight || r.height,
l = e.offsetWidth - a,
c = e.offsetHeight - s;
if (l || c) {
var u = T(e);
l -= j(u, "x"), c -= j(u, "y"), r.width -= l, r.height -= c
}
return U(r)
}
function Y(e, t) {
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
i = I(10),
r = "HTML" === t.nodeName,
o = V(e),
a = V(t),
s = E(e),
l = T(t),
c = parseFloat(l.borderTopWidth),
u = parseFloat(l.borderLeftWidth);
n && r && (a.top = Math.max(a.top, 0), a.left = Math.max(a.left, 0));
var d = U({
top: o.top - a.top - c,
left: o.left - a.left - u,
width: o.width,
height: o.height
});
if (d.marginTop = 0, d.marginLeft = 0, !i && r) {
var h = parseFloat(l.marginTop),
f = parseFloat(l.marginLeft);
d.top -= c - h, d.bottom -= c - h, d.left -= u - f, d.right -= u - f, d.marginTop = h, d.marginLeft = f
}
return (i && !n ? t.contains(s) : t === s && "BODY" !== s.nodeName) && (d = R(d, t)), d
}
function X(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
n = e.ownerDocument.documentElement,
i = Y(e, n),
r = Math.max(n.clientWidth, window.innerWidth || 0),
o = Math.max(n.clientHeight, window.innerHeight || 0),
a = t ? 0 : N(n),
s = t ? 0 : N(n, "left"),
l = {
top: a - i.top + i.marginTop,
left: s - i.left + i.marginLeft,
width: r,
height: o
};
return U(l)
}
function G(e) {
var t = e.nodeName;
if ("BODY" === t || "HTML" === t) return !1;
if ("fixed" === T(e, "position")) return !0;
var n = D(e);
return !!n && G(n)
}
function Q(e) {
if (!e || !e.parentElement || I()) return document.documentElement;
for (var t = e.parentElement; t && "none" === T(t, "transform");) t = t.parentElement;
return t || document.documentElement
}
function K(e, t, n, i) {
var r = arguments.length > 4 && void 0 !== arguments[4] && arguments[4],
o = {
top: 0,
left: 0
},
a = r ? Q(e) : F(e, A(t));
if ("viewport" === i) o = X(a, r);
else {
var s = void 0;
"scrollParent" === i ? "BODY" === (s = E(D(t))).nodeName && (s = e.ownerDocument.documentElement) : s = "window" === i ? e.ownerDocument.documentElement : i;
var l = Y(s, a, r);
if ("HTML" !== s.nodeName || G(a)) o = l;
else {
var c = z(e.ownerDocument),
u = c.height,
d = c.width;
o.top += l.top - l.marginTop, o.bottom = u + l.top, o.left += l.left - l.marginLeft, o.right = d + l.left
}
}
var h = "number" == typeof(n = n || 0);
return o.left += h ? n : n.left || 0, o.top += h ? n : n.top || 0, o.right -= h ? n : n.right || 0, o.bottom -= h ? n : n.bottom || 0, o
}
function J(e) {
return e.width * e.height
}
function Z(e, t, n, i, r) {
var o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
if (-1 === e.indexOf("auto")) return e;
var a = K(n, i, o, r),
s = {
top: {
width: a.width,
height: t.top - a.top
},
right: {
width: a.right - t.right,
height: a.height
},
bottom: {
width: a.width,
height: a.bottom - t.bottom
},
left: {
width: t.left - a.left,
height: a.height
}
},
l = Object.keys(s).map((function(e) {
return W({
key: e
}, s[e], {
area: J(s[e])
})
})).sort((function(e, t) {
return t.area - e.area
})),
c = l.filter((function(e) {
var t = e.width,
i = e.height;
return t >= n.clientWidth && i >= n.clientHeight
})),
u = c.length > 0 ? c[0].key : l[0].key,
d = e.split("-")[1];
return u + (d ? "-" + d : "")
}
function ee(e, t, n) {
var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null,
r = i ? Q(t) : F(t, A(n));
return Y(n, r, i)
}
function te(e) {
var t = e.ownerDocument.defaultView.getComputedStyle(e),
n = parseFloat(t.marginTop || 0) + parseFloat(t.marginBottom || 0),
i = parseFloat(t.marginLeft || 0) + parseFloat(t.marginRight || 0);
return {
width: e.offsetWidth + i,
height: e.offsetHeight + n
}
}
function ne(e) {
var t = {
left: "right",
right: "left",
bottom: "top",
top: "bottom"
};
return e.replace(/left|right|bottom|top/g, (function(e) {
return t[e]
}))
}
function ie(e, t, n) {
n = n.split("-")[0];
var i = te(e),
r = {
width: i.width,
height: i.height
},
o = -1 !== ["right", "left"].indexOf(n),
a = o ? "top" : "left",
s = o ? "left" : "top",
l = o ? "height" : "width",
c = o ? "width" : "height";
return r[a] = t[a] + t[l] / 2 - i[l] / 2, r[s] = n === s ? t[s] - i[c] : t[ne(s)], r
}
function re(e, t) {
return Array.prototype.find ? e.find(t) : e.filter(t)[0]
}
function oe(e, t, n) {
return (void 0 === n ? e : e.slice(0, function(e, t, n) {
if (Array.prototype.findIndex) return e.findIndex((function(e) {
return e[t] === n
}));
var i = re(e, (function(e) {
return e[t] === n
}));
return e.indexOf(i)
}(e, "name", n))).forEach((function(e) {
e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!");
var n = e.function || e.fn;
e.enabled && S(n) && (t.offsets.popper = U(t.offsets.popper), t.offsets.reference = U(t.offsets.reference), t = n(t, e))
})), t
}
function ae() {
if (!this.state.isDestroyed) {
var e = {
instance: this,
styles: {},
arrowStyles: {},
attributes: {},
flipped: !1,
offsets: {}
};
e.offsets.reference = ee(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = Z(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = ie(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = oe(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
}
}
function se(e, t) {
return e.some((function(e) {
var n = e.name;
return e.enabled && n === t
}))
}
function le(e) {
for (var t = [!1, "ms", "Webkit", "Moz", "O"], n = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < t.length; i++) {
var r = t[i],
o = r ? "" + r + n : e;
if (void 0 !== document.body.style[o]) return o
}
return null
}
function ce() {
return this.state.isDestroyed = !0, se(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[le("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
}
function ue(e) {
var t = e.ownerDocument;
return t ? t.defaultView : window
}
function de() {
this.state.eventsEnabled || (this.state = function(e, t, n, i) {
n.updateBound = i, ue(e).addEventListener("resize", n.updateBound, {
passive: !0
});
var r = E(e);
return function e(t, n, i, r) {
var o = "BODY" === t.nodeName,
a = o ? t.ownerDocument.defaultView : t;
a.addEventListener(n, i, {
passive: !0
}), o || e(E(a.parentNode), n, i, r), r.push(a)
}(r, "scroll", n.updateBound, n.scrollParents), n.scrollElement = r, n.eventsEnabled = !0, n
}(this.reference, this.options, this.state, this.scheduleUpdate))
}
function he() {
var e, t;
this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, ue(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach((function(e) {
e.removeEventListener("scroll", t.updateBound)
})), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t))
}
function fe(e) {
return "" !== e && !isNaN(parseFloat(e)) && isFinite(e)
}
function pe(e, t) {
Object.keys(t).forEach((function(n) {
var i = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(n) && fe(t[n]) && (i = "px"), e.style[n] = t[n] + i
}))
}
var ge = _ && /Firefox/i.test(navigator.userAgent);
function me(e, t, n) {
var i = re(e, (function(e) {
return e.name === t
})),
r = !!i && e.some((function(e) {
return e.name === n && e.enabled && e.order < i.order
}));
if (!r) {
var o = "`" + t + "`",
a = "`" + n + "`";
console.warn(a + " modifier is required by " + o + " modifier in order to work, be sure to include it before " + o + "!")
}
return r
}
var ve = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"],
ye = ve.slice(3);
function be(e) {
var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
n = ye.indexOf(e),
i = ye.slice(n + 1).concat(ye.slice(0, n));
return t ? i.reverse() : i
}
var we = {
placement: "bottom",
positionFixed: !1,
eventsEnabled: !0,
removeOnDestroy: !1,
onCreate: function() {},
onUpdate: function() {},
modifiers: {
shift: {
order: 100,
enabled: !0,
fn: function(e) {
var t = e.placement,
n = t.split("-")[0],
i = t.split("-")[1];
if (i) {
var r = e.offsets,
o = r.reference,
a = r.popper,
s = -1 !== ["bottom", "top"].indexOf(n),
l = s ? "left" : "top",
c = s ? "width" : "height",
u = {
start: q({}, l, o[l]),
end: q({}, l, o[l] + o[c] - a[c])
};
e.offsets.popper = W({}, a, u[i])
}
return e
}
},
offset: {
order: 200,
enabled: !0,
fn: function(e, t) {
var n, i = t.offset,
r = e.placement,
o = e.offsets,
a = o.popper,
s = o.reference,
l = r.split("-")[0];
return n = fe(+i) ? [+i, 0] : function(e, t, n, i) {
var r = [0, 0],
o = -1 !== ["right", "left"].indexOf(i),
a = e.split(/(\+|\-)/).map((function(e) {
return e.trim()
})),
s = a.indexOf(re(a, (function(e) {
return -1 !== e.search(/,|\s/)
})));
a[s] && -1 === a[s].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");
var l = /\s*,\s*|\s+/,
c = -1 !== s ? [a.slice(0, s).concat([a[s].split(l)[0]]), [a[s].split(l)[1]].concat(a.slice(s + 1))] : [a];
return (c = c.map((function(e, i) {
var r = (1 === i ? !o : o) ? "height" : "width",
a = !1;
return e.reduce((function(e, t) {
return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) ? (e[e.length - 1] = t, a = !0, e) : a ? (e[e.length - 1] += t, a = !1, e) : e.concat(t)
}), []).map((function(e) {
return function(e, t, n, i) {
var r = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
o = +r[1],
a = r[2];
if (!o) return e;
if (0 === a.indexOf("%")) {
var s = void 0;
switch (a) {
case "%p":
s = n;
break;
case "%":
case "%r":
default:
s = i
}
return U(s)[t] / 100 * o
}
return "vh" === a || "vw" === a ? ("vh" === a ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * o : o
}(e, r, t, n)
}))
}))).forEach((function(e, t) {
e.forEach((function(n, i) {
fe(n) && (r[t] += n * ("-" === e[i - 1] ? -1 : 1))
}))
})), r
}(i, a, s, l), "left" === l ? (a.top += n[0], a.left -= n[1]) : "right" === l ? (a.top += n[0], a.left += n[1]) : "top" === l ? (a.left += n[0], a.top -= n[1]) : "bottom" === l && (a.left += n[0], a.top += n[1]), e.popper = a, e
},
offset: 0
},
preventOverflow: {
order: 300,
enabled: !0,
fn: function(e, t) {
var n = t.boundariesElement || P(e.instance.popper);
e.instance.reference === n && (n = P(n));
var i = le("transform"),
r = e.instance.popper.style,
o = r.top,
a = r.left,
s = r[i];
r.top = "", r.left = "", r[i] = "";
var l = K(e.instance.popper, e.instance.reference, t.padding, n, e.positionFixed);
r.top = o, r.left = a, r[i] = s, t.boundaries = l;
var c = t.priority,
u = e.offsets.popper,
d = {
primary: function(e) {
var n = u[e];
return u[e] < l[e] && !t.escapeWithReference && (n = Math.max(u[e], l[e])), q({}, e, n)
},
secondary: function(e) {
var n = "right" === e ? "left" : "top",
i = u[n];
return u[e] > l[e] && !t.escapeWithReference && (i = Math.min(u[n], l[e] - ("right" === e ? u.width : u.height))), q({}, n, i)
}
};
return c.forEach((function(e) {
var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary";
u = W({}, u, d[t](e))
})), e.offsets.popper = u, e
},
priority: ["left", "right", "top", "bottom"],
padding: 5,
boundariesElement: "scrollParent"
},
keepTogether: {
order: 400,
enabled: !0,
fn: function(e) {
var t = e.offsets,
n = t.popper,
i = t.reference,
r = e.placement.split("-")[0],
o = Math.floor,
a = -1 !== ["top", "bottom"].indexOf(r),
s = a ? "right" : "bottom",
l = a ? "left" : "top",
c = a ? "width" : "height";
return n[s] < o(i[l]) && (e.offsets.popper[l] = o(i[l]) - n[c]), n[l] > o(i[s]) && (e.offsets.popper[l] = o(i[s])), e
}
},
arrow: {
order: 500,
enabled: !0,
fn: function(e, t) {
var n;
if (!me(e.instance.modifiers, "arrow", "keepTogether")) return e;
var i = t.element;
if ("string" == typeof i) {
if (!(i = e.instance.popper.querySelector(i))) return e
} else if (!e.instance.popper.contains(i)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), e;
var r = e.placement.split("-")[0],
o = e.offsets,
a = o.popper,
s = o.reference,
l = -1 !== ["left", "right"].indexOf(r),
c = l ? "height" : "width",
u = l ? "Top" : "Left",
d = u.toLowerCase(),
h = l ? "left" : "top",
f = l ? "bottom" : "right",
p = te(i)[c];
s[f] - p < a[d] && (e.offsets.popper[d] -= a[d] - (s[f] - p)), s[d] + p > a[f] && (e.offsets.popper[d] += s[d] + p - a[f]), e.offsets.popper = U(e.offsets.popper);
var g = s[d] + s[c] / 2 - p / 2,
m = T(e.instance.popper),
v = parseFloat(m["margin" + u]),
y = parseFloat(m["border" + u + "Width"]),
b = g - e.offsets.popper[d] - v - y;
return b = Math.max(Math.min(a[c] - p, b), 0), e.arrowElement = i, e.offsets.arrow = (q(n = {}, d, Math.round(b)), q(n, h, ""), n), e
},
element: "[x-arrow]"
},
flip: {
order: 600,
enabled: !0,
fn: function(e, t) {
if (se(e.instance.modifiers, "inner")) return e;
if (e.flipped && e.placement === e.originalPlacement) return e;
var n = K(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed),
i = e.placement.split("-")[0],
r = ne(i),
o = e.placement.split("-")[1] || "",
a = [];
switch (t.behavior) {
case "flip":
a = [i, r];
break;
case "clockwise":
a = be(i);
break;
case "counterclockwise":
a = be(i, !0);
break;
default:
a = t.behavior
}
return a.forEach((function(s, l) {
if (i !== s || a.length === l + 1) return e;
i = e.placement.split("-")[0], r = ne(i);
var c = e.offsets.popper,
u = e.offsets.reference,
d = Math.floor,
h = "left" === i && d(c.right) > d(u.left) || "right" === i && d(c.left) < d(u.right) || "top" === i && d(c.bottom) > d(u.top) || "bottom" === i && d(c.top) < d(u.bottom),
f = d(c.left) < d(n.left),
p = d(c.right) > d(n.right),
g = d(c.top) < d(n.top),
m = d(c.bottom) > d(n.bottom),
v = "left" === i && f || "right" === i && p || "top" === i && g || "bottom" === i && m,
y = -1 !== ["top", "bottom"].indexOf(i),
b = !!t.flipVariations && (y && "start" === o && f || y && "end" === o && p || !y && "start" === o && g || !y && "end" === o && m),
w = !!t.flipVariationsByContent && (y && "start" === o && p || y && "end" === o && f || !y && "start" === o && m || !y && "end" === o && g),
x = b || w;
(h || v || x) && (e.flipped = !0, (h || v) && (i = a[l + 1]), x && (o = function(e) {
return "end" === e ? "start" : "start" === e ? "end" : e
}(o)), e.placement = i + (o ? "-" + o : ""), e.offsets.popper = W({}, e.offsets.popper, ie(e.instance.popper, e.offsets.reference, e.placement)), e = oe(e.instance.modifiers, e, "flip"))
})), e
},
behavior: "flip",
padding: 5,
boundariesElement: "viewport",
flipVariations: !1,
flipVariationsByContent: !1
},
inner: {
order: 700,
enabled: !1,
fn: function(e) {
var t = e.placement,
n = t.split("-")[0],
i = e.offsets,
r = i.popper,
o = i.reference,
a = -1 !== ["left", "right"].indexOf(n),
s = -1 === ["top", "left"].indexOf(n);
return r[a ? "left" : "top"] = o[n] - (s ? r[a ? "width" : "height"] : 0), e.placement = ne(t), e.offsets.popper = U(r), e
}
},
hide: {
order: 800,
enabled: !0,
fn: function(e) {
if (!me(e.instance.modifiers, "hide", "preventOverflow")) return e;
var t = e.offsets.reference,
n = re(e.instance.modifiers, (function(e) {
return "preventOverflow" === e.name
})).boundaries;
if (t.bottom < n.top || t.left > n.right || t.top > n.bottom || t.right < n.left) {
if (!0 === e.hide) return e;
e.hide = !0, e.attributes["x-out-of-boundaries"] = ""
} else {
if (!1 === e.hide) return e;
e.hide = !1, e.attributes["x-out-of-boundaries"] = !1
}
return e
}
},
computeStyle: {
order: 850,
enabled: !0,
fn: function(e, t) {
var n = t.x,
i = t.y,
r = e.offsets.popper,
o = re(e.instance.modifiers, (function(e) {
return "applyStyle" === e.name
})).gpuAcceleration;
void 0 !== o && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");
var a, s, l = void 0 !== o ? o : t.gpuAcceleration,
c = P(e.instance.popper),
u = V(c),
d = {
position: r.position
},
h = function(e, t) {
var n = e.offsets,
i = n.popper,
r = n.reference,
o = Math.round,
a = Math.floor,
s = function(e) {
return e
},
l = o(r.width),
c = o(i.width),
u = -1 !== ["left", "right"].indexOf(e.placement),
d = -1 !== e.placement.indexOf("-"),
h = t ? u || d || l % 2 == c % 2 ? o : a : s,
f = t ? o : s;
return {
left: h(l % 2 == 1 && c % 2 == 1 && !d && t ? i.left - 1 : i.left),
top: f(i.top),
bottom: f(i.bottom),
right: h(i.right)
}
}(e, window.devicePixelRatio < 2 || !ge),
f = "bottom" === n ? "top" : "bottom",
p = "right" === i ? "left" : "right",
g = le("transform");
if (s = "bottom" === f ? "HTML" === c.nodeName ? -c.clientHeight + h.bottom : -u.height + h.bottom : h.top, a = "right" === p ? "HTML" === c.nodeName ? -c.clientWidth + h.right : -u.width + h.right : h.left, l && g) d[g] = "translate3d(" + a + "px, " + s + "px, 0)", d[f] = 0, d[p] = 0, d.willChange = "transform";
else {
var m = "bottom" === f ? -1 : 1,
v = "right" === p ? -1 : 1;
d[f] = s * m, d[p] = a * v, d.willChange = f + ", " + p
}
var y = {
"x-placement": e.placement
};
return e.attributes = W({}, y, e.attributes), e.styles = W({}, d, e.styles), e.arrowStyles = W({}, e.offsets.arrow, e.arrowStyles), e
},
gpuAcceleration: !0,
x: "bottom",
y: "right"
},
applyStyle: {
order: 900,
enabled: !0,
fn: function(e) {
var t, n;
return pe(e.instance.popper, e.styles), t = e.instance.popper, n = e.attributes, Object.keys(n).forEach((function(e) {
!1 !== n[e] ? t.setAttribute(e, n[e]) : t.removeAttribute(e)
})), e.arrowElement && Object.keys(e.arrowStyles).length && pe(e.arrowElement, e.arrowStyles), e
},
onLoad: function(e, t, n, i, r) {
var o = ee(r, t, e, n.positionFixed),
a = Z(n.placement, o, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding);
return t.setAttribute("x-placement", a), pe(t, {
position: n.positionFixed ? "fixed" : "absolute"
}), n
},
gpuAcceleration: void 0
}
}
},
xe = function() {
function e(t, n) {
var i = this,
r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
H(this, e), this.scheduleUpdate = function() {
return requestAnimationFrame(i.update)
}, this.update = k(this.update.bind(this)), this.options = W({}, e.Defaults, r), this.state = {
isDestroyed: !1,
isCreated: !1,
scrollParents: []
}, this.reference = t && t.jquery ? t[0] : t, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(W({}, e.Defaults.modifiers, r.modifiers)).forEach((function(t) {
i.options.modifiers[t] = W({}, e.Defaults.modifiers[t] || {}, r.modifiers ? r.modifiers[t] : {})
})), this.modifiers = Object.keys(this.options.modifiers).map((function(e) {
return W({
name: e
}, i.options.modifiers[e])
})).sort((function(e, t) {
return e.order - t.order
})), this.modifiers.forEach((function(e) {
e.enabled && S(e.onLoad) && e.onLoad(i.reference, i.popper, i.options, e, i.state)
})), this.update();
var o = this.options.eventsEnabled;
o && this.enableEventListeners(), this.state.eventsEnabled = o
}
return B(e, [{
key: "update",
value: function() {
return ae.call(this)
}
}, {
key: "destroy",
value: function() {
return ce.call(this)
}
}, {
key: "enableEventListeners",
value: function() {
return de.call(this)
}
}, {
key: "disableEventListeners",
value: function() {
return he.call(this)
}
}]), e
}();
xe.Utils = ("undefined" != typeof window ? window : global).PopperUtils, xe.placements = ve, xe.Defaults = we;
var _e = "dropdown",
Ce = t.fn[_e],
ke = new RegExp("38|40|27"),
Se = {
offset: 0,
flip: !0,
boundary: "scrollParent",
reference: "toggle",
display: "dynamic",
popperConfig: null
},
Te = {
offset: "(number|string|function)",
flip: "boolean",
boundary: "(string|element)",
reference: "(string|element)",
display: "string",
popperConfig: "(null|object)"
},
De = function() {
function e(e, t) {
this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
}
var n = e.prototype;
return n.toggle = function() {
if (!this._element.disabled && !t(this._element).hasClass("disabled")) {
var n = t(this._menu).hasClass("show");
e._clearMenus(), n || this.show(!0)
}
}, n.show = function(n) {
if (void 0 === n && (n = !1), !(this._element.disabled || t(this._element).hasClass("disabled") || t(this._menu).hasClass("show"))) {
var i = {
relatedTarget: this._element
},
r = t.Event("show.bs.dropdown", i),
a = e._getParentFromElement(this._element);
if (t(a).trigger(r), !r.isDefaultPrevented()) {
if (!this._inNavbar && n) {
if (void 0 === xe) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
var s = this._element;
"parent" === this._config.reference ? s = a : o.isElement(this._config.reference) && (s = this._config.reference, void 0 !== this._config.reference.jquery && (s = this._config.reference[0])), "scrollParent" !== this._config.boundary && t(a).addClass("position-static"), this._popper = new xe(s, this._menu, this._getPopperConfig())
}
"ontouchstart" in document.documentElement && 0 === t(a).closest(".navbar-nav").length && t(document.body).children().on("mouseover", null, t.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), t(this._menu).toggleClass("show"), t(a).toggleClass("show").trigger(t.Event("shown.bs.dropdown", i))
}
}
}, n.hide = function() {
if (!this._element.disabled && !t(this._element).hasClass("disabled") && t(this._menu).hasClass("show")) {
var n = {
relatedTarget: this._element
},
i = t.Event("hide.bs.dropdown", n),
r = e._getParentFromElement(this._element);
t(r).trigger(i), i.isDefaultPrevented() || (this._popper && this._popper.destroy(), t(this._menu).toggleClass("show"), t(r).toggleClass("show").trigger(t.Event("hidden.bs.dropdown", n)))
}
}, n.dispose = function() {
t.removeData(this._element, "bs.dropdown"), t(this._element).off(".bs.dropdown"), this._element = null, this._menu = null, null !== this._popper && (this._popper.destroy(), this._popper = null)
}, n.update = function() {
this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
}, n._addEventListeners = function() {
var e = this;
t(this._element).on("click.bs.dropdown", (function(t) {
t.preventDefault(), t.stopPropagation(), e.toggle()
}))
}, n._getConfig = function(e) {
return e = r({}, this.constructor.Default, t(this._element).data(), e), o.typeCheckConfig(_e, e, this.constructor.DefaultType), e
}, n._getMenuElement = function() {
if (!this._menu) {
var t = e._getParentFromElement(this._element);
t && (this._menu = t.querySelector(".dropdown-menu"))
}
return this._menu
}, n._getPlacement = function() {
var e = t(this._element.parentNode),
n = "bottom-start";
return e.hasClass("dropup") ? n = t(this._menu).hasClass("dropdown-menu-right") ? "top-end" : "top-start" : e.hasClass("dropright") ? n = "right-start" : e.hasClass("dropleft") ? n = "left-start" : t(this._menu).hasClass("dropdown-menu-right") && (n = "bottom-end"), n
}, n._detectNavbar = function() {
return t(this._element).closest(".navbar").length > 0
}, n._getOffset = function() {
var e = this,
t = {};
return "function" == typeof this._config.offset ? t.fn = function(t) {
return t.offsets = r({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t
} : t.offset = this._config.offset, t
}, n._getPopperConfig = function() {
var e = {
placement: this._getPlacement(),
modifiers: {
offset: this._getOffset(),
flip: {
enabled: this._config.flip
},
preventOverflow: {
boundariesElement: this._config.boundary
}
}
};
return "static" === this._config.display && (e.modifiers.applyStyle = {
enabled: !1
}), r({}, e, this._config.popperConfig)
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this).data("bs.dropdown");
if (i || (i = new e(this, "object" == typeof n ? n : null), t(this).data("bs.dropdown", i)), "string" == typeof n) {
if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"');
i[n]()
}
}))
}, e._clearMenus = function(n) {
if (!n || 3 !== n.which && ("keyup" !== n.type || 9 === n.which))
for (var i = [].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')), r = 0, o = i.length; r < o; r++) {
var a = e._getParentFromElement(i[r]),
s = t(i[r]).data("bs.dropdown"),
l = {
relatedTarget: i[r]
};
if (n && "click" === n.type && (l.clickEvent = n), s) {
var c = s._menu;
if (t(a).hasClass("show") && !(n && ("click" === n.type && /input|textarea/i.test(n.target.tagName) || "keyup" === n.type && 9 === n.which) && t.contains(a, n.target))) {
var u = t.Event("hide.bs.dropdown", l);
t(a).trigger(u), u.isDefaultPrevented() || ("ontouchstart" in document.documentElement && t(document.body).children().off("mouseover", null, t.noop), i[r].setAttribute("aria-expanded", "false"), s._popper && s._popper.destroy(), t(c).removeClass("show"), t(a).removeClass("show").trigger(t.Event("hidden.bs.dropdown", l)))
}
}
}
}, e._getParentFromElement = function(e) {
var t, n = o.getSelectorFromElement(e);
return n && (t = document.querySelector(n)), t || e.parentNode
}, e._dataApiKeydownHandler = function(n) {
if (!(/input|textarea/i.test(n.target.tagName) ? 32 === n.which || 27 !== n.which && (40 !== n.which && 38 !== n.which || t(n.target).closest(".dropdown-menu").length) : !ke.test(n.which)) && !this.disabled && !t(this).hasClass("disabled")) {
var i = e._getParentFromElement(this),
r = t(i).hasClass("show");
if (r || 27 !== n.which) {
if (n.preventDefault(), n.stopPropagation(), !r || r && (27 === n.which || 32 === n.which)) return 27 === n.which && t(i.querySelector('[data-toggle="dropdown"]')).trigger("focus"), void t(this).trigger("click");
var o = [].slice.call(i.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(e) {
return t(e).is(":visible")
}));
if (0 !== o.length) {
var a = o.indexOf(n.target);
38 === n.which && a > 0 && a--, 40 === n.which && a < o.length - 1 && a++, a < 0 && (a = 0), o[a].focus()
}
}
}
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return Se
}
}, {
key: "DefaultType",
get: function() {
return Te
}
}]), e
}();
t(document).on("keydown.bs.dropdown.data-api", '[data-toggle="dropdown"]', De._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api", ".dropdown-menu", De._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api", De._clearMenus).on("click.bs.dropdown.data-api", '[data-toggle="dropdown"]', (function(e) {
e.preventDefault(), e.stopPropagation(), De._jQueryInterface.call(t(this), "toggle")
})).on("click.bs.dropdown.data-api", ".dropdown form", (function(e) {
e.stopPropagation()
})), t.fn[_e] = De._jQueryInterface, t.fn[_e].Constructor = De, t.fn[_e].noConflict = function() {
return t.fn[_e] = Ce, De._jQueryInterface
};
var Ee = t.fn.modal,
Ae = {
backdrop: !0,
keyboard: !0,
focus: !0,
show: !0
},
Me = {
backdrop: "(boolean|string)",
keyboard: "boolean",
focus: "boolean",
show: "boolean"
},
Oe = function() {
function e(e, t) {
this._config = this._getConfig(t), this._element = e, this._dialog = e.querySelector(".modal-dialog"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0
}
var n = e.prototype;
return n.toggle = function(e) {
return this._isShown ? this.hide() : this.show(e)
}, n.show = function(e) {
var n = this;
if (!this._isShown && !this._isTransitioning) {
t(this._element).hasClass("fade") && (this._isTransitioning = !0);
var i = t.Event("show.bs.modal", {
relatedTarget: e
});
t(this._element).trigger(i), this._isShown || i.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), t(this._element).on("click.dismiss.bs.modal", '[data-dismiss="modal"]', (function(e) {
return n.hide(e)
})), t(this._dialog).on("mousedown.dismiss.bs.modal", (function() {
t(n._element).one("mouseup.dismiss.bs.modal", (function(e) {
t(e.target).is(n._element) && (n._ignoreBackdropClick = !0)
}))
})), this._showBackdrop((function() {
return n._showElement(e)
})))
}
}, n.hide = function(e) {
var n = this;
if (e && e.preventDefault(), this._isShown && !this._isTransitioning) {
var i = t.Event("hide.bs.modal");
if (t(this._element).trigger(i), this._isShown && !i.isDefaultPrevented()) {
this._isShown = !1;
var r = t(this._element).hasClass("fade");
if (r && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), t(document).off("focusin.bs.modal"), t(this._element).removeClass("show"), t(this._element).off("click.dismiss.bs.modal"), t(this._dialog).off("mousedown.dismiss.bs.modal"), r) {
var a = o.getTransitionDurationFromElement(this._element);
t(this._element).one(o.TRANSITION_END, (function(e) {
return n._hideModal(e)
})).emulateTransitionEnd(a)
} else this._hideModal()
}
}
}, n.dispose = function() {
[window, this._element, this._dialog].forEach((function(e) {
return t(e).off(".bs.modal")
})), t(document).off("focusin.bs.modal"), t.removeData(this._element, "bs.modal"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null
}, n.handleUpdate = function() {
this._adjustDialog()
}, n._getConfig = function(e) {
return e = r({}, Ae, e), o.typeCheckConfig("modal", e, Me), e
}, n._triggerBackdropTransition = function() {
var e = this;
if ("static" === this._config.backdrop) {
var n = t.Event("hidePrevented.bs.modal");
if (t(this._element).trigger(n), n.defaultPrevented) return;
var i = this._element.scrollHeight > document.documentElement.clientHeight;
i || (this._element.style.overflowY = "hidden"), this._element.classList.add("modal-static");
var r = o.getTransitionDurationFromElement(this._dialog);
t(this._element).off(o.TRANSITION_END), t(this._element).one(o.TRANSITION_END, (function() {
e._element.classList.remove("modal-static"), i || t(e._element).one(o.TRANSITION_END, (function() {
e._element.style.overflowY = ""
})).emulateTransitionEnd(e._element, r)
})).emulateTransitionEnd(r), this._element.focus()
} else this.hide()
}, n._showElement = function(e) {
var n = this,
i = t(this._element).hasClass("fade"),
r = this._dialog ? this._dialog.querySelector(".modal-body") : null;
this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), t(this._dialog).hasClass("modal-dialog-scrollable") && r ? r.scrollTop = 0 : this._element.scrollTop = 0, i && o.reflow(this._element), t(this._element).addClass("show"), this._config.focus && this._enforceFocus();
var a = t.Event("shown.bs.modal", {
relatedTarget: e
}),
s = function() {
n._config.focus && n._element.focus(), n._isTransitioning = !1, t(n._element).trigger(a)
};
if (i) {
var l = o.getTransitionDurationFromElement(this._dialog);
t(this._dialog).one(o.TRANSITION_END, s).emulateTransitionEnd(l)
} else s()
}, n._enforceFocus = function() {
var e = this;
t(document).off("focusin.bs.modal").on("focusin.bs.modal", (function(n) {
document !== n.target && e._element !== n.target && 0 === t(e._element).has(n.target).length && e._element.focus()
}))
}, n._setEscapeEvent = function() {
var e = this;
this._isShown ? t(this._element).on("keydown.dismiss.bs.modal", (function(t) {
e._config.keyboard && 27 === t.which ? (t.preventDefault(), e.hide()) : e._config.keyboard || 27 !== t.which || e._triggerBackdropTransition()
})) : this._isShown || t(this._element).off("keydown.dismiss.bs.modal")
}, n._setResizeEvent = function() {
var e = this;
this._isShown ? t(window).on("resize.bs.modal", (function(t) {
return e.handleUpdate(t)
})) : t(window).off("resize.bs.modal")
}, n._hideModal = function() {
var e = this;
this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._showBackdrop((function() {
t(document.body).removeClass("modal-open"), e._resetAdjustments(), e._resetScrollbar(), t(e._element).trigger("hidden.bs.modal")
}))
}, n._removeBackdrop = function() {
this._backdrop && (t(this._backdrop).remove(), this._backdrop = null)
}, n._showBackdrop = function(e) {
var n = this,
i = t(this._element).hasClass("fade") ? "fade" : "";
if (this._isShown && this._config.backdrop) {
if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", i && this._backdrop.classList.add(i), t(this._backdrop).appendTo(document.body), t(this._element).on("click.dismiss.bs.modal", (function(e) {
n._ignoreBackdropClick ? n._ignoreBackdropClick = !1 : e.target === e.currentTarget && n._triggerBackdropTransition()
})), i && o.reflow(this._backdrop), t(this._backdrop).addClass("show"), !e) return;
if (!i) return void e();
var r = o.getTransitionDurationFromElement(this._backdrop);
t(this._backdrop).one(o.TRANSITION_END, e).emulateTransitionEnd(r)
} else if (!this._isShown && this._backdrop) {
t(this._backdrop).removeClass("show");
var a = function() {
n._removeBackdrop(), e && e()
};
if (t(this._element).hasClass("fade")) {
var s = o.getTransitionDurationFromElement(this._backdrop);
t(this._backdrop).one(o.TRANSITION_END, a).emulateTransitionEnd(s)
} else a()
} else e && e()
}, n._adjustDialog = function() {
var e = this._element.scrollHeight > document.documentElement.clientHeight;
!this._isBodyOverflowing && e && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !e && (this._element.style.paddingRight = this._scrollbarWidth + "px")
}, n._resetAdjustments = function() {
this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
}, n._checkScrollbar = function() {
var e = document.body.getBoundingClientRect();
this._isBodyOverflowing = Math.round(e.left + e.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
}, n._setScrollbar = function() {
var e = this;
if (this._isBodyOverflowing) {
var n = [].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")),
i = [].slice.call(document.querySelectorAll(".sticky-top"));
t(n).each((function(n, i) {
var r = i.style.paddingRight,
o = t(i).css("padding-right");
t(i).data("padding-right", r).css("padding-right", parseFloat(o) + e._scrollbarWidth + "px")
})), t(i).each((function(n, i) {
var r = i.style.marginRight,
o = t(i).css("margin-right");
t(i).data("margin-right", r).css("margin-right", parseFloat(o) - e._scrollbarWidth + "px")
}));
var r = document.body.style.paddingRight,
o = t(document.body).css("padding-right");
t(document.body).data("padding-right", r).css("padding-right", parseFloat(o) + this._scrollbarWidth + "px")
}
t(document.body).addClass("modal-open")
}, n._resetScrollbar = function() {
var e = [].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));
t(e).each((function(e, n) {
var i = t(n).data("padding-right");
t(n).removeData("padding-right"), n.style.paddingRight = i || ""
}));
var n = [].slice.call(document.querySelectorAll(".sticky-top"));
t(n).each((function(e, n) {
var i = t(n).data("margin-right");
void 0 !== i && t(n).css("margin-right", i).removeData("margin-right")
}));
var i = t(document.body).data("padding-right");
t(document.body).removeData("padding-right"), document.body.style.paddingRight = i || ""
}, n._getScrollbarWidth = function() {
var e = document.createElement("div");
e.className = "modal-scrollbar-measure", document.body.appendChild(e);
var t = e.getBoundingClientRect().width - e.clientWidth;
return document.body.removeChild(e), t
}, e._jQueryInterface = function(n, i) {
return this.each((function() {
var o = t(this).data("bs.modal"),
a = r({}, Ae, t(this).data(), "object" == typeof n && n ? n : {});
if (o || (o = new e(this, a), t(this).data("bs.modal", o)), "string" == typeof n) {
if (void 0 === o[n]) throw new TypeError('No method named "' + n + '"');
o[n](i)
} else a.show && o.show(i)
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return Ae
}
}]), e
}();
t(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', (function(e) {
var n, i = this,
a = o.getSelectorFromElement(this);
a && (n = document.querySelector(a));
var s = t(n).data("bs.modal") ? "toggle" : r({}, t(n).data(), t(this).data());
"A" !== this.tagName && "AREA" !== this.tagName || e.preventDefault();
var l = t(n).one("show.bs.modal", (function(e) {
e.isDefaultPrevented() || l.one("hidden.bs.modal", (function() {
t(i).is(":visible") && i.focus()
}))
}));
Oe._jQueryInterface.call(t(n), s, this)
})), t.fn.modal = Oe._jQueryInterface, t.fn.modal.Constructor = Oe, t.fn.modal.noConflict = function() {
return t.fn.modal = Ee, Oe._jQueryInterface
};
var Ie = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
Pe = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,
Le = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
function Fe(e, t, n) {
if (0 === e.length) return e;
if (n && "function" == typeof n) return n(e);
for (var i = (new window.DOMParser).parseFromString(e, "text/html"), r = Object.keys(t), o = [].slice.call(i.body.querySelectorAll("*")), a = function(e, n) {
var i = o[e],
a = i.nodeName.toLowerCase();
if (-1 === r.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), "continue";
var s = [].slice.call(i.attributes),
l = [].concat(t["*"] || [], t[a] || []);
s.forEach((function(e) {
(function(e, t) {
var n = e.nodeName.toLowerCase();
if (-1 !== t.indexOf(n)) return -1 === Ie.indexOf(n) || Boolean(e.nodeValue.match(Pe) || e.nodeValue.match(Le));
for (var i = t.filter((function(e) {
return e instanceof RegExp
})), r = 0, o = i.length; r < o; r++)
if (n.match(i[r])) return !0;
return !1
})(e, l) || i.removeAttribute(e.nodeName)
}))
}, s = 0, l = o.length; s < l; s++) a(s);
return i.body.innerHTML
}
var Ne = "tooltip",
Re = t.fn[Ne],
je = new RegExp("(^|\\s)bs-tooltip\\S+", "g"),
$e = ["sanitize", "whiteList", "sanitizeFn"],
ze = {
animation: "boolean",
template: "string",
title: "(string|element|function)",
trigger: "string",
delay: "(number|object)",
html: "boolean",
selector: "(string|boolean)",
placement: "(string|function)",
offset: "(number|string|function)",
container: "(string|element|boolean)",
fallbackPlacement: "(string|array)",
boundary: "(string|element)",
sanitize: "boolean",
sanitizeFn: "(null|function)",
whiteList: "object",
popperConfig: "(null|object)"
},
He = {
AUTO: "auto",
TOP: "top",
RIGHT: "right",
BOTTOM: "bottom",
LEFT: "left"
},
Be = {
animation: !0,
template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
selector: !1,
placement: "top",
offset: 0,
container: !1,
fallbackPlacement: "flip",
boundary: "scrollParent",
sanitize: !0,
sanitizeFn: null,
whiteList: {
"*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
a: ["target", "href", "title", "rel"],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ["src", "srcset", "alt", "title", "width", "height"],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
},
popperConfig: null
},
qe = {
HIDE: "hide.bs.tooltip",
HIDDEN: "hidden.bs.tooltip",
SHOW: "show.bs.tooltip",
SHOWN: "shown.bs.tooltip",
INSERTED: "inserted.bs.tooltip",
CLICK: "click.bs.tooltip",
FOCUSIN: "focusin.bs.tooltip",
FOCUSOUT: "focusout.bs.tooltip",
MOUSEENTER: "mouseenter.bs.tooltip",
MOUSELEAVE: "mouseleave.bs.tooltip"
},
We = function() {
function e(e, t) {
if (void 0 === xe) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(t), this.tip = null, this._setListeners()
}
var n = e.prototype;
return n.enable = function() {
this._isEnabled = !0
}, n.disable = function() {
this._isEnabled = !1
}, n.toggleEnabled = function() {
this._isEnabled = !this._isEnabled
}, n.toggle = function(e) {
if (this._isEnabled)
if (e) {
var n = this.constructor.DATA_KEY,
i = t(e.currentTarget).data(n);
i || (i = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(n, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i)
} else {
if (t(this.getTipElement()).hasClass("show")) return void this._leave(null, this);
this._enter(null, this)
}
}, n.dispose = function() {
clearTimeout(this._timeout), t.removeData(this.element, this.constructor.DATA_KEY), t(this.element).off(this.constructor.EVENT_KEY), t(this.element).closest(".modal").off("hide.bs.modal", this._hideModalHandler), this.tip && t(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
}, n.show = function() {
var e = this;
if ("none" === t(this.element).css("display")) throw new Error("Please use show on visible elements");
var n = t.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
t(this.element).trigger(n);
var i = o.findShadowRoot(this.element),
r = t.contains(null !== i ? i : this.element.ownerDocument.documentElement, this.element);
if (n.isDefaultPrevented() || !r) return;
var a = this.getTipElement(),
s = o.getUID(this.constructor.NAME);
a.setAttribute("id", s), this.element.setAttribute("aria-describedby", s), this.setContent(), this.config.animation && t(a).addClass("fade");
var l = "function" == typeof this.config.placement ? this.config.placement.call(this, a, this.element) : this.config.placement,
c = this._getAttachment(l);
this.addAttachmentClass(c);
var u = this._getContainer();
t(a).data(this.constructor.DATA_KEY, this), t.contains(this.element.ownerDocument.documentElement, this.tip) || t(a).appendTo(u), t(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new xe(this.element, a, this._getPopperConfig(c)), t(a).addClass("show"), "ontouchstart" in document.documentElement && t(document.body).children().on("mouseover", null, t.noop);
var d = function() {
e.config.animation && e._fixTransition();
var n = e._hoverState;
e._hoverState = null, t(e.element).trigger(e.constructor.Event.SHOWN), "out" === n && e._leave(null, e)
};
if (t(this.tip).hasClass("fade")) {
var h = o.getTransitionDurationFromElement(this.tip);
t(this.tip).one(o.TRANSITION_END, d).emulateTransitionEnd(h)
} else d()
}
}, n.hide = function(e) {
var n = this,
i = this.getTipElement(),
r = t.Event(this.constructor.Event.HIDE),
a = function() {
"show" !== n._hoverState && i.parentNode && i.parentNode.removeChild(i), n._cleanTipClass(), n.element.removeAttribute("aria-describedby"), t(n.element).trigger(n.constructor.Event.HIDDEN), null !== n._popper && n._popper.destroy(), e && e()
};
if (t(this.element).trigger(r), !r.isDefaultPrevented()) {
if (t(i).removeClass("show"), "ontouchstart" in document.documentElement && t(document.body).children().off("mouseover", null, t.noop), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, t(this.tip).hasClass("fade")) {
var s = o.getTransitionDurationFromElement(i);
t(i).one(o.TRANSITION_END, a).emulateTransitionEnd(s)
} else a();
this._hoverState = ""
}
}, n.update = function() {
null !== this._popper && this._popper.scheduleUpdate()
}, n.isWithContent = function() {
return Boolean(this.getTitle())
}, n.addAttachmentClass = function(e) {
t(this.getTipElement()).addClass("bs-tooltip-" + e)
}, n.getTipElement = function() {
return this.tip = this.tip || t(this.config.template)[0], this.tip
}, n.setContent = function() {
var e = this.getTipElement();
this.setElementContent(t(e.querySelectorAll(".tooltip-inner")), this.getTitle()), t(e).removeClass("fade show")
}, n.setElementContent = function(e, n) {
"object" != typeof n || !n.nodeType && !n.jquery ? this.config.html ? (this.config.sanitize && (n = Fe(n, this.config.whiteList, this.config.sanitizeFn)), e.html(n)) : e.text(n) : this.config.html ? t(n).parent().is(e) || e.empty().append(n) : e.text(t(n).text())
}, n.getTitle = function() {
var e = this.element.getAttribute("data-original-title");
return e || (e = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), e
}, n._getPopperConfig = function(e) {
var t = this;
return r({}, {
placement: e,
modifiers: {
offset: this._getOffset(),
flip: {
behavior: this.config.fallbackPlacement
},
arrow: {
element: ".arrow"
},
preventOverflow: {
boundariesElement: this.config.boundary
}
},
onCreate: function(e) {
e.originalPlacement !== e.placement && t._handlePopperPlacementChange(e)
},
onUpdate: function(e) {
return t._handlePopperPlacementChange(e)
}
}, this.config.popperConfig)
}, n._getOffset = function() {
var e = this,
t = {};
return "function" == typeof this.config.offset ? t.fn = function(t) {
return t.offsets = r({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t
} : t.offset = this.config.offset, t
}, n._getContainer = function() {
return !1 === this.config.container ? document.body : o.isElement(this.config.container) ? t(this.config.container) : t(document).find(this.config.container)
}, n._getAttachment = function(e) {
return He[e.toUpperCase()]
}, n._setListeners = function() {
var e = this;
this.config.trigger.split(" ").forEach((function(n) {
if ("click" === n) t(e.element).on(e.constructor.Event.CLICK, e.config.selector, (function(t) {
return e.toggle(t)
}));
else if ("manual" !== n) {
var i = "hover" === n ? e.constructor.Event.MOUSEENTER : e.constructor.Event.FOCUSIN,
r = "hover" === n ? e.constructor.Event.MOUSELEAVE : e.constructor.Event.FOCUSOUT;
t(e.element).on(i, e.config.selector, (function(t) {
return e._enter(t)
})).on(r, e.config.selector, (function(t) {
return e._leave(t)
}))
}
})), this._hideModalHandler = function() {
e.element && e.hide()
}, t(this.element).closest(".modal").on("hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = r({}, this.config, {
trigger: "manual",
selector: ""
}) : this._fixTitle()
}, n._fixTitle = function() {
var e = typeof this.element.getAttribute("data-original-title");
(this.element.getAttribute("title") || "string" !== e) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
}, n._enter = function(e, n) {
var i = this.constructor.DATA_KEY;
(n = n || t(e.currentTarget).data(i)) || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(i, n)), e && (n._activeTrigger["focusin" === e.type ? "focus" : "hover"] = !0), t(n.getTipElement()).hasClass("show") || "show" === n._hoverState ? n._hoverState = "show" : (clearTimeout(n._timeout), n._hoverState = "show", n.config.delay && n.config.delay.show ? n._timeout = setTimeout((function() {
"show" === n._hoverState && n.show()
}), n.config.delay.show) : n.show())
}, n._leave = function(e, n) {
var i = this.constructor.DATA_KEY;
(n = n || t(e.currentTarget).data(i)) || (n = new this.constructor(e.currentTarget, this._getDelegateConfig()), t(e.currentTarget).data(i, n)), e && (n._activeTrigger["focusout" === e.type ? "focus" : "hover"] = !1), n._isWithActiveTrigger() || (clearTimeout(n._timeout), n._hoverState = "out", n.config.delay && n.config.delay.hide ? n._timeout = setTimeout((function() {
"out" === n._hoverState && n.hide()
}), n.config.delay.hide) : n.hide())
}, n._isWithActiveTrigger = function() {
for (var e in this._activeTrigger)
if (this._activeTrigger[e]) return !0;
return !1
}, n._getConfig = function(e) {
var n = t(this.element).data();
return Object.keys(n).forEach((function(e) {
-1 !== $e.indexOf(e) && delete n[e]
})), "number" == typeof(e = r({}, this.constructor.Default, n, "object" == typeof e && e ? e : {})).delay && (e.delay = {
show: e.delay,
hide: e.delay
}), "number" == typeof e.title && (e.title = e.title.toString()), "number" == typeof e.content && (e.content = e.content.toString()), o.typeCheckConfig(Ne, e, this.constructor.DefaultType), e.sanitize && (e.template = Fe(e.template, e.whiteList, e.sanitizeFn)), e
}, n._getDelegateConfig = function() {
var e = {};
if (this.config)
for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]);
return e
}, n._cleanTipClass = function() {
var e = t(this.getTipElement()),
n = e.attr("class").match(je);
null !== n && n.length && e.removeClass(n.join(""))
}, n._handlePopperPlacementChange = function(e) {
this.tip = e.instance.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(e.placement))
}, n._fixTransition = function() {
var e = this.getTipElement(),
n = this.config.animation;
null === e.getAttribute("x-placement") && (t(e).removeClass("fade"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = n)
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this).data("bs.tooltip"),
r = "object" == typeof n && n;
if ((i || !/dispose|hide/.test(n)) && (i || (i = new e(this, r), t(this).data("bs.tooltip", i)), "string" == typeof n)) {
if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"');
i[n]()
}
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return Be
}
}, {
key: "NAME",
get: function() {
return Ne
}
}, {
key: "DATA_KEY",
get: function() {
return "bs.tooltip"
}
}, {
key: "Event",
get: function() {
return qe
}
}, {
key: "EVENT_KEY",
get: function() {
return ".bs.tooltip"
}
}, {
key: "DefaultType",
get: function() {
return ze
}
}]), e
}();
t.fn[Ne] = We._jQueryInterface, t.fn[Ne].Constructor = We, t.fn[Ne].noConflict = function() {
return t.fn[Ne] = Re, We._jQueryInterface
};
var Ue = "popover",
Ve = t.fn[Ue],
Ye = new RegExp("(^|\\s)bs-popover\\S+", "g"),
Xe = r({}, We.Default, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
}),
Ge = r({}, We.DefaultType, {
content: "(string|element|function)"
}),
Qe = {
HIDE: "hide.bs.popover",
HIDDEN: "hidden.bs.popover",
SHOW: "show.bs.popover",
SHOWN: "shown.bs.popover",
INSERTED: "inserted.bs.popover",
CLICK: "click.bs.popover",
FOCUSIN: "focusin.bs.popover",
FOCUSOUT: "focusout.bs.popover",
MOUSEENTER: "mouseenter.bs.popover",
MOUSELEAVE: "mouseleave.bs.popover"
},
Ke = function(e) {
var n, r;
function o() {
return e.apply(this, arguments) || this
}
r = e, (n = o).prototype = Object.create(r.prototype), n.prototype.constructor = n, n.__proto__ = r;
var a = o.prototype;
return a.isWithContent = function() {
return this.getTitle() || this._getContent()
}, a.addAttachmentClass = function(e) {
t(this.getTipElement()).addClass("bs-popover-" + e)
}, a.getTipElement = function() {
return this.tip = this.tip || t(this.config.template)[0], this.tip
}, a.setContent = function() {
var e = t(this.getTipElement());
this.setElementContent(e.find(".popover-header"), this.getTitle());
var n = this._getContent();
"function" == typeof n && (n = n.call(this.element)), this.setElementContent(e.find(".popover-body"), n), e.removeClass("fade show")
}, a._getContent = function() {
return this.element.getAttribute("data-content") || this.config.content
}, a._cleanTipClass = function() {
var e = t(this.getTipElement()),
n = e.attr("class").match(Ye);
null !== n && n.length > 0 && e.removeClass(n.join(""))
}, o._jQueryInterface = function(e) {
return this.each((function() {
var n = t(this).data("bs.popover"),
i = "object" == typeof e ? e : null;
if ((n || !/dispose|hide/.test(e)) && (n || (n = new o(this, i), t(this).data("bs.popover", n)), "string" == typeof e)) {
if (void 0 === n[e]) throw new TypeError('No method named "' + e + '"');
n[e]()
}
}))
}, i(o, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return Xe
}
}, {
key: "NAME",
get: function() {
return Ue
}
}, {
key: "DATA_KEY",
get: function() {
return "bs.popover"
}
}, {
key: "Event",
get: function() {
return Qe
}
}, {
key: "EVENT_KEY",
get: function() {
return ".bs.popover"
}
}, {
key: "DefaultType",
get: function() {
return Ge
}
}]), o
}(We);
t.fn[Ue] = Ke._jQueryInterface, t.fn[Ue].Constructor = Ke, t.fn[Ue].noConflict = function() {
return t.fn[Ue] = Ve, Ke._jQueryInterface
};
var Je = "scrollspy",
Ze = t.fn[Je],
et = {
offset: 10,
method: "auto",
target: ""
},
tt = {
offset: "number",
method: "string",
target: "(string|element)"
},
nt = function() {
function e(e, n) {
var i = this;
this._element = e, this._scrollElement = "BODY" === e.tagName ? window : e, this._config = this._getConfig(n), this._selector = this._config.target + " .nav-link," + this._config.target + " .list-group-item," + this._config.target + " .dropdown-item", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, t(this._scrollElement).on("scroll.bs.scrollspy", (function(e) {
return i._process(e)
})), this.refresh(), this._process()
}
var n = e.prototype;
return n.refresh = function() {
var e = this,
n = this._scrollElement === this._scrollElement.window ? "offset" : "position",
i = "auto" === this._config.method ? n : this._config.method,
r = "position" === i ? this._getScrollTop() : 0;
this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map((function(e) {
var n, a = o.getSelectorFromElement(e);
if (a && (n = document.querySelector(a)), n) {
var s = n.getBoundingClientRect();
if (s.width || s.height) return [t(n)[i]().top + r, a]
}
return null
})).filter((function(e) {
return e
})).sort((function(e, t) {
return e[0] - t[0]
})).forEach((function(t) {
e._offsets.push(t[0]), e._targets.push(t[1])
}))
}, n.dispose = function() {
t.removeData(this._element, "bs.scrollspy"), t(this._scrollElement).off(".bs.scrollspy"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
}, n._getConfig = function(e) {
if ("string" != typeof(e = r({}, et, "object" == typeof e && e ? e : {})).target && o.isElement(e.target)) {
var n = t(e.target).attr("id");
n || (n = o.getUID(Je), t(e.target).attr("id", n)), e.target = "#" + n
}
return o.typeCheckConfig(Je, e, tt), e
}, n._getScrollTop = function() {
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
}, n._getScrollHeight = function() {
return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
}, n._getOffsetHeight = function() {
return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
}, n._process = function() {
var e = this._getScrollTop() + this._config.offset,
t = this._getScrollHeight(),
n = this._config.offset + t - this._getOffsetHeight();
if (this._scrollHeight !== t && this.refresh(), e >= n) {
var i = this._targets[this._targets.length - 1];
this._activeTarget !== i && this._activate(i)
} else {
if (this._activeTarget && e < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();
for (var r = this._offsets.length; r--;) this._activeTarget !== this._targets[r] && e >= this._offsets[r] && (void 0 === this._offsets[r + 1] || e < this._offsets[r + 1]) && this._activate(this._targets[r])
}
}, n._activate = function(e) {
this._activeTarget = e, this._clear();
var n = this._selector.split(",").map((function(t) {
return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
})),
i = t([].slice.call(document.querySelectorAll(n.join(","))));
i.hasClass("dropdown-item") ? (i.closest(".dropdown").find(".dropdown-toggle").addClass("active"), i.addClass("active")) : (i.addClass("active"), i.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"), i.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")), t(this._scrollElement).trigger("activate.bs.scrollspy", {
relatedTarget: e
})
}, n._clear = function() {
[].slice.call(document.querySelectorAll(this._selector)).filter((function(e) {
return e.classList.contains("active")
})).forEach((function(e) {
return e.classList.remove("active")
}))
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this).data("bs.scrollspy");
if (i || (i = new e(this, "object" == typeof n && n), t(this).data("bs.scrollspy", i)), "string" == typeof n) {
if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"');
i[n]()
}
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "Default",
get: function() {
return et
}
}]), e
}();
t(window).on("load.bs.scrollspy.data-api", (function() {
for (var e = [].slice.call(document.querySelectorAll('[data-spy="scroll"]')), n = e.length; n--;) {
var i = t(e[n]);
nt._jQueryInterface.call(i, i.data())
}
})), t.fn[Je] = nt._jQueryInterface, t.fn[Je].Constructor = nt, t.fn[Je].noConflict = function() {
return t.fn[Je] = Ze, nt._jQueryInterface
};
var it = t.fn.tab,
rt = function() {
function e(e) {
this._element = e
}
var n = e.prototype;
return n.show = function() {
var e = this;
if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && t(this._element).hasClass("active") || t(this._element).hasClass("disabled"))) {
var n, i, r = t(this._element).closest(".nav, .list-group")[0],
a = o.getSelectorFromElement(this._element);
if (r) {
var s = "UL" === r.nodeName || "OL" === r.nodeName ? "> li > .active" : ".active";
i = (i = t.makeArray(t(r).find(s)))[i.length - 1]
}
var l = t.Event("hide.bs.tab", {
relatedTarget: this._element
}),
c = t.Event("show.bs.tab", {
relatedTarget: i
});
if (i && t(i).trigger(l), t(this._element).trigger(c), !c.isDefaultPrevented() && !l.isDefaultPrevented()) {
a && (n = document.querySelector(a)), this._activate(this._element, r);
var u = function() {
var n = t.Event("hidden.bs.tab", {
relatedTarget: e._element
}),
r = t.Event("shown.bs.tab", {
relatedTarget: i
});
t(i).trigger(n), t(e._element).trigger(r)
};
n ? this._activate(n, n.parentNode, u) : u()
}
}
}, n.dispose = function() {
t.removeData(this._element, "bs.tab"), this._element = null
}, n._activate = function(e, n, i) {
var r = this,
a = (!n || "UL" !== n.nodeName && "OL" !== n.nodeName ? t(n).children(".active") : t(n).find("> li > .active"))[0],
s = i && a && t(a).hasClass("fade"),
l = function() {
return r._transitionComplete(e, a, i)
};
if (a && s) {
var c = o.getTransitionDurationFromElement(a);
t(a).removeClass("show").one(o.TRANSITION_END, l).emulateTransitionEnd(c)
} else l()
}, n._transitionComplete = function(e, n, i) {
if (n) {
t(n).removeClass("active");
var r = t(n.parentNode).find("> .dropdown-menu .active")[0];
r && t(r).removeClass("active"), "tab" === n.getAttribute("role") && n.setAttribute("aria-selected", !1)
}
if (t(e).addClass("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !0), o.reflow(e), e.classList.contains("fade") && e.classList.add("show"), e.parentNode && t(e.parentNode).hasClass("dropdown-menu")) {
var a = t(e).closest(".dropdown")[0];
if (a) {
var s = [].slice.call(a.querySelectorAll(".dropdown-toggle"));
t(s).addClass("active")
}
e.setAttribute("aria-expanded", !0)
}
i && i()
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this),
r = i.data("bs.tab");
if (r || (r = new e(this), i.data("bs.tab", r)), "string" == typeof n) {
if (void 0 === r[n]) throw new TypeError('No method named "' + n + '"');
r[n]()
}
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}]), e
}();
t(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', (function(e) {
e.preventDefault(), rt._jQueryInterface.call(t(this), "show")
})), t.fn.tab = rt._jQueryInterface, t.fn.tab.Constructor = rt, t.fn.tab.noConflict = function() {
return t.fn.tab = it, rt._jQueryInterface
};
var ot = t.fn.toast,
at = {
animation: "boolean",
autohide: "boolean",
delay: "number"
},
st = {
animation: !0,
autohide: !0,
delay: 500
},
lt = function() {
function e(e, t) {
this._element = e, this._config = this._getConfig(t), this._timeout = null, this._setListeners()
}
var n = e.prototype;
return n.show = function() {
var e = this,
n = t.Event("show.bs.toast");
if (t(this._element).trigger(n), !n.isDefaultPrevented()) {
this._clearTimeout(), this._config.animation && this._element.classList.add("fade");
var i = function() {
e._element.classList.remove("showing"), e._element.classList.add("show"), t(e._element).trigger("shown.bs.toast"), e._config.autohide && (e._timeout = setTimeout((function() {
e.hide()
}), e._config.delay))
};
if (this._element.classList.remove("hide"), o.reflow(this._element), this._element.classList.add("showing"), this._config.animation) {
var r = o.getTransitionDurationFromElement(this._element);
t(this._element).one(o.TRANSITION_END, i).emulateTransitionEnd(r)
} else i()
}
}, n.hide = function() {
if (this._element.classList.contains("show")) {
var e = t.Event("hide.bs.toast");
t(this._element).trigger(e), e.isDefaultPrevented() || this._close()
}
}, n.dispose = function() {
this._clearTimeout(), this._element.classList.contains("show") && this._element.classList.remove("show"), t(this._element).off("click.dismiss.bs.toast"), t.removeData(this._element, "bs.toast"), this._element = null, this._config = null
}, n._getConfig = function(e) {
return e = r({}, st, t(this._element).data(), "object" == typeof e && e ? e : {}), o.typeCheckConfig("toast", e, this.constructor.DefaultType), e
}, n._setListeners = function() {
var e = this;
t(this._element).on("click.dismiss.bs.toast", '[data-dismiss="toast"]', (function() {
return e.hide()
}))
}, n._close = function() {
var e = this,
n = function() {
e._element.classList.add("hide"), t(e._element).trigger("hidden.bs.toast")
};
if (this._element.classList.remove("show"), this._config.animation) {
var i = o.getTransitionDurationFromElement(this._element);
t(this._element).one(o.TRANSITION_END, n).emulateTransitionEnd(i)
} else n()
}, n._clearTimeout = function() {
clearTimeout(this._timeout), this._timeout = null
}, e._jQueryInterface = function(n) {
return this.each((function() {
var i = t(this),
r = i.data("bs.toast");
if (r || (r = new e(this, "object" == typeof n && n), i.data("bs.toast", r)), "string" == typeof n) {
if (void 0 === r[n]) throw new TypeError('No method named "' + n + '"');
r[n](this)
}
}))
}, i(e, null, [{
key: "VERSION",
get: function() {
return "4.5.2"
}
}, {
key: "DefaultType",
get: function() {
return at
}
}, {
key: "Default",
get: function() {
return st
}
}]), e
}();
t.fn.toast = lt._jQueryInterface, t.fn.toast.Constructor = lt, t.fn.toast.noConflict = function() {
return t.fn.toast = ot, lt._jQueryInterface
}, e.Alert = l, e.Button = u, e.Carousel = m, e.Collapse = x, e.Dropdown = De, e.Modal = Oe, e.Popover = Ke, e.Scrollspy = nt, e.Tab = rt, e.Toast = lt, e.Tooltip = We, e.Util = o, Object.defineProperty(e, "__esModule", {
value: !0
})
}));
var NioApp = function(e, t) {
"use strict";
var n = t(window),
i = t("body"),
r = "nio-theme";
function o(e, t) {
return Object.keys(t).forEach((function(n) {
e[n] = t[n]
})), e
}
return t.fn.exists = function() {
return 0 < this.length
}, t.fn.csskey = function(e, t) {
for (var n = t ? t + "-" : "", i = e ? e.split(" ") : "", r = 0; r < i.length; r++) i[r] = n + i[r];
return i.toString().replace(",", " ")
}, e.BS = {}, e.TGL = {}, e.Ani = {}, e.Addons = {}, e.Slider = {}, e.Picker = {}, e.Win = {
height: n.height(),
width: n.outerWidth()
}, e.Break = {
mb: 420,
sm: 576,
md: 768,
lg: 992,
xl: 1200,
xxl: 1540,
any: 1 / 0
}, e.Host = {
name: window.location.hostname,
locat: r.slice(-5) + r.slice(0, 3)
}, e.isDark = !(!i.hasClass("dark-mode") && "dark" !== i.data("theme")), e.State = {
isRTL: !(!i.hasClass("has-rtl") && "rtl" !== i.attr("dir")),
isTouch: "ontouchstart" in document.documentElement,
isMobile: !!navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Windows Phone|/i),
asMobile: e.Win.width < e.Break.md,
asServe: e.Host.name.split(".").indexOf(e.Host.locat)
}, e.hexRGB = function(e, t) {
var n, i, r = t || 1;
if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(e)) return 3 === (n = e.substring(1).split("")).length && (n = [n[0], n[0], n[1], n[1], n[2], n[2]]), i = [(n = "0x" + n.join("")) >> 16 & 255, n >> 8 & 255, 255 & n].join(","), 1 <= r ? "rgba(" + i + ")" : "rgba(" + i + "," + r + ")";
throw new Error("bad hex")
}, e.StateUpdate = function() {
e.Win = {
height: n.height(),
width: n.outerWidth()
}, e.State.asMobile = e.Win.width < e.Break.md
}, e.ClassInit = function() {
function t() {
!0 === e.State.asMobile ? i.addClass("as-mobile") : i.removeClass("as-mobile")
}!0 === e.State.isTouch ? i.addClass("has-touch") : i.addClass("no-touch"), t(), !0 === e.State.isRTL && i.addClass("has-rtl"), i.addClass("nk-" + r), n.on("resize", t)
}, e.ColorBG = function() {
function e(e, n) {
var i = t(e),
r = n || "bg",
o = i.data(r);
"" !== o && ("bg-color" === r ? i.css("background-color", o) : "bg-image" === r ? i.css("background-image", 'url("' + o + '")') : i.css("background", o))
}
t("[data-bg]").each((function() {
e(this, "bg")
})), t("[data-bg-color]").each((function() {
e(this, "bg-color")
})), t("[data-bg-image]").each((function() {
e(this, "bg-image")
}))
}, e.ColorTXT = function() {
t("[data-color]").each((function() {
var e, n;
"" !== (n = (e = t(this)).data("color")) && e.css("color", n)
}))
}, e.BreakClass = function(n, i, r) {
var a = n || ".header-menu",
s = i || e.Break.md,
l = {
timeOut: 1e3,
classAdd: "mobile-menu"
},
c = r ? o(l, r) : l,
u = !!c.ignore && c.ignore;
if (u && t(a).hasClass(u)) return !1;
e.Win.width < s ? setTimeout((function() {
e.Win.width < s && t(a).addClass(c.classAdd)
}), c.timeOut) : t(a).removeClass(c.classAdd)
}, e.Passcode = function(e, n) {
var i = {
showClass: "is-shown",
hideClass: "is-hidden"
},
r = n ? o(i, n) : i;
t(e).exists() && t(e).on("click", (function(e) {
var n = t(this),
i = n.data("target"),
o = t("#" + i);
e.preventDefault(), o.hasClass(r.showClass) ? (n.add(o).addClass(r.hideClass).removeClass(r.showClass), o.attr("type", "password")) : (n.add(o).addClass(r.showClass).removeClass(r.hideClass), o.attr("type", "text"))
}))
}, e.LinkOff = function(e) {
t(e).on("click", (function(e) {
e.preventDefault()
}))
}, e.SetHW = function(e, n) {
n = "height" == n || "h" == n ? "height" : "width";
var i = e || "[data-" + n + "]";
t(i).exists() && t(i).each((function() {
t(this).css(n, t(this).data(n))
}))
}, e.AddInBody = function(e, n) {
var r = {
prefix: "nk-",
class: "",
has: "has"
},
a = n ? o(r, n) : r,
s = e.replace(".", "").replace(a.prefix, ""),
l = s;
a.prefix = !1 !== a.prefix ? a.prefix : "", a.has = "" !== a.has ? a.has + "-" : "", l = "" !== a.class ? a.class : a.has + l, t("." + a.prefix + s).exists() && !i.hasClass(l) && i.addClass(l)
}, e.Toggle = {
trigger: function(e, n) {
var r = {
self: e,
active: "active",
content: "expanded",
data: "content",
olay: "toggle-overlay",
speed: 400
},
a = n ? o(r, n) : r,
s = t("[data-target=" + e + "]"),
l = t("[data-" + a.data + "=" + e + "]"),
c = l.data("toggle-body");
l.data("toggle-overlay") && (a.overlay = a.olay), c && (a.body = "toggle-shown"), l.hasClass(a.content) ? (s.removeClass(a.active), 1 == a.toggle ? l.slideUp(a.speed).removeClass(a.content) : l.removeClass(a.content)) : (s.addClass(a.active), 1 == a.toggle ? l.slideDown(a.speed).addClass(a.content) : l.addClass(a.content)), a.body && i.toggleClass(a.body), a.overlay && this.overlay(l, a.overlay, a)
},
removed: function(e, n) {
var r = {
self: e,
active: "active",
content: "expanded",
body: "",
data: "content",
olay: "toggle-overlay"
},
a = n ? o(r, n) : r,
s = t("[data-target=" + e + "]"),
l = t("[data-" + a.data + "=" + e + "]"),
c = l.data("toggle-body");
l.data("toggle-overlay") && (a.overlay = a.olay), c && (a.body = "toggle-shown"), (s.hasClass(a.active) || l.hasClass(a.content)) && (s.removeClass(a.active), l.removeClass(a.content), !0 === a.toggle && l.slideUp(a.speed)), a.body && i.hasClass(a.body) && i.removeClass(a.body), a.close && (!0 === a.close.profile && this.closeProfile(l), !0 === a.close.menu && this.closeMenu(l)), a.overlay && this.overlayRemove(a.overlay)
},
overlay: function(n, i, r) {
var o;
!0 === r.break && (o = t(n).data("toggle-screen"), r.break = e.Break[o]), t(n).hasClass(r.content) && e.Win.width < r.break ? t(n).after('<div class="' + i + '" data-target="' + r.self + '"></div>') : this.overlayRemove(i)
},
overlayRemove: function(e) {
t("." + e).fadeOut(300).remove()
},
dropMenu: function(e, n) {
var i = {
active: "active",
self: "link-toggle",
child: "menu-sub",
speed: 400
},
r = n ? o(i, n) : i,
a = t(e).parent(),
s = a.children("." + r.child);
r.speed = 5 < s.children().length ? r.speed + 20 * s.children().length : r.speed, s.slideToggle(r.speed).find("." + r.child).slideUp(r.speed), a.toggleClass(r.active).siblings().removeClass(r.active).find("." + r.child).slideUp(r.speed)
},
closeProfile: function(e) {
var n = t(e).find(".nk-profile-toggle.active"),
i = t(e).find(".nk-profile-content.expanded");
n.exists() && (n.removeClass("active"), i.slideUp().removeClass("expanded"))
},
closeMenu: function(e) {
var n = t(e).find(".nk-menu-item.active");
n.exists() && n.removeClass("active").find(".nk-menu-sub").slideUp()
}
}, e.BS.tooltip = function(e, n) {
var i = {
boundary: "window",
trigger: "hover"
},
r = n ? o(i, n) : i;
t(e).exists() && "function" == typeof t.fn.tooltip && t(e).tooltip(r)
}, e.BS.menutip = function(t) {
e.BS.tooltip(t, {
boundary: "window",
placement: "right"
})
}, e.BS.popover = function(e) {
t(e).exists() && "function" == typeof t.fn.popover && t(e).popover()
}, e.BS.progress = function(e) {
t(e).exists() && t(e).each((function() {
t(this).css("width", t(this).data("progress") + "%")
}))
}, e.BS.modalfix = function(e) {
var n = e || ".modal";
t(n).exists() && "function" == typeof t.fn.modal && t(n).on("shown.bs.modal", (function() {
i.hasClass("modal-open") || i.addClass("modal-open")
}))
}, e.BS.fileinput = function(e) {
t(e).exists() && t(e).each((function() {
var e = t(this).next().text(),
n = [];
t(this).on("change", (function() {
for (var i = 0; i < this.files.length; i++) n[i] = this.files[i].name;
e = n ? n.join(", ") : e, t(this).next().html(e)
}))
}))
}, e.Picker.date = function(n, i) {
t(n).exists() && "function" == typeof t.fn.datepicker && t(n).each((function() {
var n = t(this).data("date-format"),
r = {
format: "" !== n ? n : "mm/dd/yyyy",
maxViewMode: 2,
clearBtn: !0,
autoclose: !0,
todayHighlight: !0,
rtl: e.State.isRTL
},
a = i ? o(r, i) : r;
t(this).datepicker(a)
}))
}, e.Picker.dob = function(t, n) {
var i = {
startView: 2,
todayHighlight: !1
},
r = n ? o(i, n) : i;
e.Picker.date(t, r)
}, e.Picker.time = function(e, n) {
t(e).exists() && "function" == typeof t.fn.timepicker && t(e).each((function() {
t(this).parent().addClass("has-timepicker");
var e = t(this).data("time-format"),
i = t(this).data("time-interval"),
r = {
timeFormat: "" !== e ? e : "HH:mm",
interval: "" !== i ? i : 15
},
a = n ? o(r, n) : r;
t(this).timepicker(a)
}))
}, e.Slick = function(n, i) {
t(n).exists() && "function" == typeof t.fn.slick && t(n).each((function() {
var n = {
prevArrow: '<div class="slick-arrow-prev"><a href="javascript:void(0);" class="slick-prev"><em class="icon ni ni-chevron-left"></em></a></div>',
nextArrow: '<div class="slick-arrow-next"><a href="javascript:void(0);" class="slick-next"><em class="icon ni ni-chevron-right"></em></a></div>',
rtl: e.State.isRTL
},
r = i ? o(n, i) : n;
t(this).slick(r)
}))
}, e.Knob = function(e, n) {
var i, r;
t(e).exists() && "function" == typeof t.fn.knob && (i = {
min: 0
}, r = n ? o(i, n) : i, t(e).each((function() {
t(this).knob(r)
})))
}, e.Range = function(n, i) {
t(n).exists() && "undefined" != typeof noUiSlider && t(n).each((function() {
var n = t(this).attr("id"),
r = document.getElementById(n),
a = {
start: [25],
connect: "lower",
direction: e.State.isRTL ? "rtl" : "ltr",
range: {
min: 0,
max: 100
}
},
s = i ? o(a, i) : a;
noUiSlider.create(r, s)
}))
}, e.Select2 = function(n, i) {
t(n).exists() && "function" == typeof t.fn.select2 && t(n).each((function() {
var n = t(this),
r = {
placeholder: n.data("placeholder"),
clear: n.data("clear"),
search: n.data("search"),
width: n.data("width"),
theme: n.data("theme"),
ui: n.data("ui")
};
r.ui = r.ui ? " " + n.csskey(r.ui, "select2") : "";
var a = {
theme: r.theme ? r.theme + " " + r.ui : "default" + r.ui,
allowClear: !!r.clear && r.clear,
placeholder: r.placeholder ? r.placeholder : "",
dropdownAutoWidth: !(!r.width || "auto" !== r.width),
minimumResultsForSearch: r.search && "on" === r.search ? 1 : -1,
dir: e.State.isRTL ? "rtl" : "ltr"
},
s = i ? o(a, i) : a;
t(this).select2(s)
}))
}, e.coreInit = function() {
e.coms.onResize.push(e.StateUpdate), e.coms.docReady.push(e.ClassInit)
}, e.coreInit(), e
}(NioApp = function(e, t, n) {
"use strict";
var i = {
AppInfo: {
name: "NioApp",
version: "1.0.6",
author: "Softnio"
},
Package: {
name: "DashLite",
version: "2.0"
}
},
r = {
docReady: [],
docReadyDefer: [],
winLoad: [],
winLoadDefer: [],
onResize: [],
onResizeDefer: []
};
function o(t) {
t = void 0 === t ? e : t, r.docReady.concat(r.docReadyDefer).forEach((function(e) {
null != e && e(t)
}))
}
function a(t) {
t = "object" == typeof t ? e : t, r.winLoad.concat(r.winLoadDefer).forEach((function(e) {
null != e && e(t)
}))
}
function s(t) {
t = "object" == typeof t ? e : t, r.onResize.concat(r.onResizeDefer).forEach((function(e) {
null != e && e(t)
}))
}
return e(n).ready(o), e(t).on("load", a), e(t).on("resize", s), i.coms = r, i.docReady = o, i.winLoad = a, i.onResize = s, i
}(jQuery, window, document), jQuery);
function _typeof(e) {
return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
function _inherits(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
writable: !0,
configurable: !0
}
}), t && _setPrototypeOf(e, t)
}
function _setPrototypeOf(e, t) {
return (_setPrototypeOf = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e
})(e, t)
}
function _createSuper(e) {
var t = _isNativeReflectConstruct();
return function() {
var n, i = _getPrototypeOf(e);
if (t) {
var r = _getPrototypeOf(this).constructor;
n = Reflect.construct(i, arguments, r)
} else n = i.apply(this, arguments);
return _possibleConstructorReturn(this, n)
}
}
function _possibleConstructorReturn(e, t) {
return !t || "object" !== _typeof(t) && "function" != typeof t ? _assertThisInitialized(e) : t
}
function _assertThisInitialized(e) {
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return e
}
function _isNativeReflectConstruct() {
if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
if (Reflect.construct.sham) return !1;
if ("function" == typeof Proxy) return !0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0
} catch (e) {
return !1
}
}
function _getPrototypeOf(e) {
return (_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e)
})(e)
}
function _createForOfIteratorHelper(e, t) {
var n;
if ("undefined" == typeof Symbol || null == e[Symbol.iterator]) {
if (Array.isArray(e) || (n = _unsupportedIterableToArray(e)) || t && e && "number" == typeof e.length) {
n && (e = n);
var i = 0,
r = function() {};
return {
s: r,
n: function() {
return i >= e.length ? {
done: !0
} : {
done: !1,
value: e[i++]
}
},
e: function(e) {
throw e
},
f: r
}
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}
var o, a = !0,
s = !1;
return {
s: function() {
n = e[Symbol.iterator]()
},
n: function() {
var e = n.next();
return a = e.done, e
},
e: function(e) {
s = !0, o = e
},
f: function() {
try {
a || null == n.return || n.return()
} finally {
if (s) throw o
}
}
}
}
function _unsupportedIterableToArray(e, t) {
if (e) {
if ("string" == typeof e) return _arrayLikeToArray(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? _arrayLikeToArray(e, t) : void 0
}
}
function _arrayLikeToArray(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, i = new Array(t); n < t; n++) i[n] = e[n];
return i
}
function _classCallCheck(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function _defineProperties(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function _createClass(e, t, n) {
return t && _defineProperties(e.prototype, t), n && _defineProperties(e, n), e
}! function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = e || self).SimpleBar = t()
}(this, (function() {
"use strict";
var e = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {};
function t(e, t) {
return e(t = {
exports: {}
}, t.exports), t.exports
}
var n, i, r, o = "object",
a = function(e) {
return e && e.Math == Math && e
},
s = a(typeof globalThis == o && globalThis) || a(typeof window == o && window) || a(typeof self == o && self) || a(typeof e == o && e) || Function("return this")(),
l = function(e) {
try {
return !!e()
} catch (e) {
return !0
}
},
c = !l((function() {
return 7 != Object.defineProperty({}, "a", {
get: function() {
return 7
}
}).a
})),
u = {}.propertyIsEnumerable,
d = Object.getOwnPropertyDescriptor,
h = {
f: d && !u.call({
1: 2
}, 1) ? function(e) {
var t = d(this, e);
return !!t && t.enumerable
} : u
},
f = function(e, t) {
return {
enumerable: !(1 & e),
configurable: !(2 & e),
writable: !(4 & e),
value: t
}
},
p = {}.toString,
g = function(e) {
return p.call(e).slice(8, -1)
},
m = "".split,
v = l((function() {
return !Object("z").propertyIsEnumerable(0)
})) ? function(e) {
return "String" == g(e) ? m.call(e, "") : Object(e)
} : Object,
y = function(e) {
if (null == e) throw TypeError("Can't call method on " + e);
return e
},
b = function(e) {
return v(y(e))
},
w = function(e) {
return "object" == typeof e ? null !== e : "function" == typeof e
},
x = function(e, t) {
if (!w(e)) return e;
var n, i;
if (t && "function" == typeof(n = e.toString) && !w(i = n.call(e))) return i;
if ("function" == typeof(n = e.valueOf) && !w(i = n.call(e))) return i;
if (!t && "function" == typeof(n = e.toString) && !w(i = n.call(e))) return i;
throw TypeError("Can't convert object to primitive value")
},
_ = {}.hasOwnProperty,
C = function(e, t) {
return _.call(e, t)
},
k = s.document,
S = w(k) && w(k.createElement),
T = function(e) {
return S ? k.createElement(e) : {}
},
D = !c && !l((function() {
return 7 != Object.defineProperty(T("div"), "a", {
get: function() {
return 7
}
}).a
})),
E = Object.getOwnPropertyDescriptor,
A = {
f: c ? E : function(e, t) {
if (e = b(e), t = x(t, !0), D) try {
return E(e, t)
} catch (e) {}
if (C(e, t)) return f(!h.f.call(e, t), e[t])
}
},
M = function(e) {
if (!w(e)) throw TypeError(String(e) + " is not an object");
return e
},
O = Object.defineProperty,
I = {
f: c ? O : function(e, t, n) {
if (M(e), t = x(t, !0), M(n), D) try {
return O(e, t, n)
} catch (e) {}
if ("get" in n || "set" in n) throw TypeError("Accessors not supported");
return "value" in n && (e[t] = n.value), e
}
},
P = c ? function(e, t, n) {
return I.f(e, t, f(1, n))
} : function(e, t, n) {
return e[t] = n, e
},
L = function(e, t) {
try {
P(s, e, t)
} catch (n) {
s[e] = t
}
return t
},
F = t((function(e) {
var t = s["__core-js_shared__"] || L("__core-js_shared__", {});
(e.exports = function(e, n) {
return t[e] || (t[e] = void 0 !== n ? n : {})
})("versions", []).push({
version: "3.2.1",
mode: "global",
copyright: "© 2019 Denis Pushkarev (zloirock.ru)"
})
})),
N = F("native-function-to-string", Function.toString),
R = s.WeakMap,
j = "function" == typeof R && /native code/.test(N.call(R)),
$ = 0,
z = Math.random(),
H = function(e) {
return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++$ + z).toString(36)
},
B = F("keys"),
q = function(e) {
return B[e] || (B[e] = H(e))
},
W = {},
U = s.WeakMap;
if (j) {
var V = new U,
Y = V.get,
X = V.has,
G = V.set;
n = function(e, t) {
return G.call(V, e, t), t
}, i = function(e) {
return Y.call(V, e) || {}
}, r = function(e) {
return X.call(V, e)
}
} else {
var Q = q("state");
W[Q] = !0, n = function(e, t) {
return P(e, Q, t), t
}, i = function(e) {
return C(e, Q) ? e[Q] : {}
}, r = function(e) {
return C(e, Q)
}
}
var K = {
set: n,
get: i,
has: r,
enforce: function(e) {
return r(e) ? i(e) : n(e, {})
},
getterFor: function(e) {
return function(t) {
var n;
if (!w(t) || (n = i(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required");
return n
}
}
},
J = t((function(e) {
var t = K.get,
n = K.enforce,
i = String(N).split("toString");
F("inspectSource", (function(e) {
return N.call(e)
})), (e.exports = function(e, t, r, o) {
var a = !!o && !!o.unsafe,
l = !!o && !!o.enumerable,
c = !!o && !!o.noTargetGet;
"function" == typeof r && ("string" != typeof t || C(r, "name") || P(r, "name", t), n(r).source = i.join("string" == typeof t ? t : "")), e !== s ? (a ? !c && e[t] && (l = !0) : delete e[t], l ? e[t] = r : P(e, t, r)) : l ? e[t] = r : L(t, r)
})(Function.prototype, "toString", (function() {
return "function" == typeof this && t(this).source || N.call(this)
}))
})),
Z = s,
ee = function(e) {
return "function" == typeof e ? e : void 0
},
te = function(e, t) {
return arguments.length < 2 ? ee(Z[e]) || ee(s[e]) : Z[e] && Z[e][t] || s[e] && s[e][t]
},
ne = Math.ceil,
ie = Math.floor,
re = function(e) {
return isNaN(e = +e) ? 0 : (e > 0 ? ie : ne)(e)
},
oe = Math.min,
ae = function(e) {
return e > 0 ? oe(re(e), 9007199254740991) : 0
},
se = Math.max,
le = Math.min,
ce = function(e) {
return function(t, n, i) {
var r, o = b(t),
a = ae(o.length),
s = function(e, t) {
var n = re(e);
return n < 0 ? se(n + t, 0) : le(n, t)
}(i, a);
if (e && n != n) {
for (; a > s;)
if ((r = o[s++]) != r) return !0
} else
for (; a > s; s++)
if ((e || s in o) && o[s] === n) return e || s || 0;
return !e && -1
}
},
ue = (ce(!0), ce(!1)),
de = function(e, t) {
var n, i = b(e),
r = 0,
o = [];
for (n in i) !C(W, n) && C(i, n) && o.push(n);
for (; t.length > r;) C(i, n = t[r++]) && (~ue(o, n) || o.push(n));
return o
},
he = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"],
fe = he.concat("length", "prototype"),
pe = {
f: Object.getOwnPropertyNames || function(e) {
return de(e, fe)
}
},
ge = {
f: Object.getOwnPropertySymbols
},
me = te("Reflect", "ownKeys") || function(e) {
var t = pe.f(M(e)),
n = ge.f;
return n ? t.concat(n(e)) : t
},
ve = function(e, t) {
for (var n = me(t), i = I.f, r = A.f, o = 0; o < n.length; o++) {
var a = n[o];
C(e, a) || i(e, a, r(t, a))
}
},
ye = /#|\.prototype\./,
be = function(e, t) {
var n = xe[we(e)];
return n == Ce || n != _e && ("function" == typeof t ? l(t) : !!t)
},
we = be.normalize = function(e) {
return String(e).replace(ye, ".").toLowerCase()
},
xe = be.data = {},
_e = be.NATIVE = "N",
Ce = be.POLYFILL = "P",
ke = be,
Se = A.f,
Te = function(e, t) {
var n, i, r, o, a, l = e.target,
c = e.global,
u = e.stat;
if (n = c ? s : u ? s[l] || L(l, {}) : (s[l] || {}).prototype)
for (i in t) {
if (o = t[i], r = e.noTargetGet ? (a = Se(n, i)) && a.value : n[i], !ke(c ? i : l + (u ? "." : "#") + i, e.forced) && void 0 !== r) {
if (typeof o == typeof r) continue;
ve(o, r)
}(e.sham || r && r.sham) && P(o, "sham", !0), J(n, i, o, e)
}
},
De = function(e) {
if ("function" != typeof e) throw TypeError(String(e) + " is not a function");
return e
},
Ee = function(e, t, n) {
if (De(e), void 0 === t) return e;
switch (n) {
case 0:
return function() {
return e.call(t)
};
case 1:
return function(n) {
return e.call(t, n)
};
case 2:
return function(n, i) {
return e.call(t, n, i)
};
case 3:
return function(n, i, r) {
return e.call(t, n, i, r)
}
}
return function() {
return e.apply(t, arguments)
}
},
Ae = function(e) {
return Object(y(e))
},
Me = Array.isArray || function(e) {
return "Array" == g(e)
},
Oe = !!Object.getOwnPropertySymbols && !l((function() {
return !String(Symbol())
})),
Ie = s.Symbol,
Pe = F("wks"),
Le = function(e) {
return Pe[e] || (Pe[e] = Oe && Ie[e] || (Oe ? Ie : H)("Symbol." + e))
},
Fe = Le("species"),
Ne = function(e, t) {
var n;
return Me(e) && ("function" != typeof(n = e.constructor) || n !== Array && !Me(n.prototype) ? w(n) && null === (n = n[Fe]) && (n = void 0) : n = void 0), new(void 0 === n ? Array : n)(0 === t ? 0 : t)
},
Re = [].push,
je = function(e) {
var t = 1 == e,
n = 2 == e,
i = 3 == e,
r = 4 == e,
o = 6 == e,
a = 5 == e || o;
return function(s, l, c, u) {
for (var d, h, f = Ae(s), p = v(f), g = Ee(l, c, 3), m = ae(p.length), y = 0, b = u || Ne, w = t ? b(s, m) : n ? b(s, 0) : void 0; m > y; y++)
if ((a || y in p) && (h = g(d = p[y], y, f), e))
if (t) w[y] = h;
else if (h) switch (e) {
case 3:
return !0;
case 5:
return d;
case 6:
return y;
case 2:
Re.call(w, d)
} else if (r) return !1;
return o ? -1 : i || r ? r : w
}
},
$e = {
forEach: je(0),
map: je(1),
filter: je(2),
some: je(3),
every: je(4),
find: je(5),
findIndex: je(6)
},
ze = function(e, t) {
var n = [][e];
return !n || !l((function() {
n.call(null, t || function() {
throw 1
}, 1)
}))
},
He = $e.forEach,
Be = ze("forEach") ? function(e) {
return He(this, e, arguments.length > 1 ? arguments[1] : void 0)
} : [].forEach;
Te({
target: "Array",
proto: !0,
forced: [].forEach != Be
}, {
forEach: Be
});
var qe = {
CSSRuleList: 0,
CSSStyleDeclaration: 0,
CSSValueList: 0,
ClientRectList: 0,
DOMRectList: 0,
DOMStringList: 0,
DOMTokenList: 1,
DataTransferItemList: 0,
FileList: 0,
HTMLAllCollection: 0,
HTMLCollection: 0,
HTMLFormElement: 0,
HTMLSelectElement: 0,
MediaList: 0,
MimeTypeArray: 0,
NamedNodeMap: 0,
NodeList: 1,
PaintRequestList: 0,
Plugin: 0,
PluginArray: 0,
SVGLengthList: 0,
SVGNumberList: 0,
SVGPathSegList: 0,
SVGPointList: 0,
SVGStringList: 0,
SVGTransformList: 0,
SourceBufferList: 0,
StyleSheetList: 0,
TextTrackCueList: 0,
TextTrackList: 0,
TouchList: 0
};
for (var We in qe) {
var Ue = s[We],
Ve = Ue && Ue.prototype;
if (Ve && Ve.forEach !== Be) try {
P(Ve, "forEach", Be)
} catch (e) {
Ve.forEach = Be
}
}
var Ye = !("undefined" == typeof window || !window.document || !window.document.createElement),
Xe = Le("species"),
Ge = $e.filter;
Te({
target: "Array",
proto: !0,
forced: !!l((function() {
var e = [];
return (e.constructor = {})[Xe] = function() {
return {
foo: 1
}
}, 1 !== e.filter(Boolean).foo
}))
}, {
filter: function(e) {
return Ge(this, e, arguments.length > 1 ? arguments[1] : void 0)
}
});
var Qe = Object.keys || function(e) {
return de(e, he)
},
Ke = c ? Object.defineProperties : function(e, t) {
M(e);
for (var n, i = Qe(t), r = i.length, o = 0; r > o;) I.f(e, n = i[o++], t[n]);
return e
},
Je = te("document", "documentElement"),
Ze = q("IE_PROTO"),
et = function() {},
tt = function() {
var e, t = T("iframe"),
n = he.length;
for (t.style.display = "none", Je.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write("<script>document.F=Object<\/script>"), e.close(), tt = e.F; n--;) delete tt.prototype[he[n]];
return tt()
},
nt = Object.create || function(e, t) {
var n;
return null !== e ? (et.prototype = M(e), n = new et, et.prototype = null, n[Ze] = e) : n = tt(), void 0 === t ? n : Ke(n, t)
};
W[Ze] = !0;
var it = Le("unscopables"),
rt = Array.prototype;
null == rt[it] && P(rt, it, nt(null));
var ot, at, st, lt = function(e) {
rt[it][e] = !0
},
ct = {},
ut = !l((function() {
function e() {}
return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype
})),
dt = q("IE_PROTO"),
ht = Object.prototype,
ft = ut ? Object.getPrototypeOf : function(e) {
return e = Ae(e), C(e, dt) ? e[dt] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? ht : null
},
pt = Le("iterator"),
gt = !1;
[].keys && ("next" in (st = [].keys()) ? (at = ft(ft(st))) !== Object.prototype && (ot = at) : gt = !0), null == ot && (ot = {}), C(ot, pt) || P(ot, pt, (function() {
return this
}));
var mt = {
IteratorPrototype: ot,
BUGGY_SAFARI_ITERATORS: gt
},
vt = I.f,
yt = Le("toStringTag"),
bt = function(e, t, n) {
e && !C(e = n ? e : e.prototype, yt) && vt(e, yt, {
configurable: !0,
value: t
})
},
wt = mt.IteratorPrototype,
xt = function() {
return this
},
_t = Object.setPrototypeOf || ("__proto__" in {} ? function() {
var e, t = !1,
n = {};
try {
(e = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set).call(n, []), t = n instanceof Array
} catch (e) {}
return function(n, i) {
return M(n),
function(e) {
if (!w(e) && null !== e) throw TypeError("Can't set " + String(e) + " as a prototype")
}(i), t ? e.call(n, i) : n.__proto__ = i, n
}
}() : void 0),
Ct = mt.IteratorPrototype,
kt = mt.BUGGY_SAFARI_ITERATORS,
St = Le("iterator"),
Tt = function() {
return this
},
Dt = function(e, t, n, i, r, o, a) {
! function(e, t, n) {
var i = t + " Iterator";
e.prototype = nt(wt, {
next: f(1, n)
}), bt(e, i, !1), ct[i] = xt
}(n, t, i);
var s, l, c, u = function(e) {
if (e === r && m) return m;
if (!kt && e in p) return p[e];
switch (e) {
case "keys":
case "values":
case "entries":
return function() {
return new n(this, e)
}
}
return function() {
return new n(this)
}
},
d = t + " Iterator",
h = !1,
p = e.prototype,
g = p[St] || p["@@iterator"] || r && p[r],
m = !kt && g || u(r),
v = "Array" == t && p.entries || g;
if (v && (s = ft(v.call(new e)), Ct !== Object.prototype && s.next && (ft(s) !== Ct && (_t ? _t(s, Ct) : "function" != typeof s[St] && P(s, St, Tt)), bt(s, d, !0))), "values" == r && g && "values" !== g.name && (h = !0, m = function() {
return g.call(this)
}), p[St] !== m && P(p, St, m), ct[t] = m, r)
if (l = {
values: u("values"),
keys: o ? m : u("keys"),
entries: u("entries")
}, a)
for (c in l) !kt && !h && c in p || J(p, c, l[c]);
else Te({
target: t,
proto: !0,
forced: kt || h
}, l);
return l
},
Et = K.set,
At = K.getterFor("Array Iterator"),
Mt = Dt(Array, "Array", (function(e, t) {
Et(this, {
type: "Array Iterator",
target: b(e),
index: 0,
kind: t
})
}), (function() {
var e = At(this),
t = e.target,
n = e.kind,
i = e.index++;
return !t || i >= t.length ? (e.target = void 0, {
value: void 0,
done: !0
}) : "keys" == n ? {
value: i,
done: !1
} : "values" == n ? {
value: t[i],
done: !1
} : {
value: [i, t[i]],
done: !1
}
}), "values");
ct.Arguments = ct.Array, lt("keys"), lt("values"), lt("entries");
var Ot = Object.assign,
It = !Ot || l((function() {
var e = {},
t = {},
n = Symbol();
return e[n] = 7, "abcdefghijklmnopqrst".split("").forEach((function(e) {
t[e] = e
})), 7 != Ot({}, e)[n] || "abcdefghijklmnopqrst" != Qe(Ot({}, t)).join("")
})) ? function(e, t) {
for (var n = Ae(e), i = arguments.length, r = 1, o = ge.f, a = h.f; i > r;)
for (var s, l = v(arguments[r++]), u = o ? Qe(l).concat(o(l)) : Qe(l), d = u.length, f = 0; d > f;) s = u[f++], c && !a.call(l, s) || (n[s] = l[s]);
return n
} : Ot;
Te({
target: "Object",
stat: !0,
forced: Object.assign !== It
}, {
assign: It
});
var Pt = Le("toStringTag"),
Lt = "Arguments" == g(function() {
return arguments
}()),
Ft = function(e) {
var t, n, i;
return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof(n = function(e, t) {
try {
return e[t]
} catch (e) {}
}(t = Object(e), Pt)) ? n : Lt ? g(t) : "Object" == (i = g(t)) && "function" == typeof t.callee ? "Arguments" : i
},
Nt = {};
Nt[Le("toStringTag")] = "z";
var Rt = "[object z]" !== String(Nt) ? function() {
return "[object " + Ft(this) + "]"
} : Nt.toString,
jt = Object.prototype;
Rt !== jt.toString && J(jt, "toString", Rt, {
unsafe: !0
});
var $t = "\t\n\v\f\r \u2028\u2029\ufeff",
zt = "[" + $t + "]",
Ht = RegExp("^" + zt + zt + "*"),
Bt = RegExp(zt + zt + "*$"),
qt = function(e) {
return function(t) {
var n = String(y(t));
return 1 & e && (n = n.replace(Ht, "")), 2 & e && (n = n.replace(Bt, "")), n
}
},
Wt = (qt(1), qt(2), qt(3)),
Ut = s.parseInt,
Vt = /^[+-]?0[Xx]/,
Yt = 8 !== Ut($t + "08") || 22 !== Ut($t + "0x16") ? function(e, t) {
var n = Wt(String(e));
return Ut(n, t >>> 0 || (Vt.test(n) ? 16 : 10))
} : Ut;
Te({
global: !0,
forced: parseInt != Yt
}, {
parseInt: Yt
});
var Xt = function(e) {
return function(t, n) {
var i, r, o = String(y(t)),
a = re(n),
s = o.length;
return a < 0 || a >= s ? e ? "" : void 0 : (i = o.charCodeAt(a)) < 55296 || i > 56319 || a + 1 === s || (r = o.charCodeAt(a + 1)) < 56320 || r > 57343 ? e ? o.charAt(a) : i : e ? o.slice(a, a + 2) : r - 56320 + (i - 55296 << 10) + 65536
}
},
Gt = {
codeAt: Xt(!1),
charAt: Xt(!0)
},
Qt = Gt.charAt,
Kt = K.set,
Jt = K.getterFor("String Iterator");
Dt(String, "String", (function(e) {
Kt(this, {
type: "String Iterator",
string: String(e),
index: 0
})
}), (function() {
var e, t = Jt(this),
n = t.string,
i = t.index;
return i >= n.length ? {
value: void 0,
done: !0
} : (e = Qt(n, i), t.index += e.length, {
value: e,
done: !1
})
}));
var Zt = function(e, t, n) {
for (var i in t) J(e, i, t[i], n);
return e
},
en = !l((function() {
return Object.isExtensible(Object.preventExtensions({}))
})),
tn = t((function(e) {
var t = I.f,
n = H("meta"),
i = 0,
r = Object.isExtensible || function() {
return !0
},
o = function(e) {
t(e, n, {
value: {
objectID: "O" + ++i,
weakData: {}
}
})
},
a = e.exports = {
REQUIRED: !1,
fastKey: function(e, t) {
if (!w(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e;
if (!C(e, n)) {
if (!r(e)) return "F";
if (!t) return "E";
o(e)
}
return e[n].objectID
},
getWeakData: function(e, t) {
if (!C(e, n)) {
if (!r(e)) return !0;
if (!t) return !1;
o(e)
}
return e[n].weakData
},
onFreeze: function(e) {
return en && a.REQUIRED && r(e) && !C(e, n) && o(e), e
}
};
W[n] = !0
})),
nn = (tn.REQUIRED, tn.fastKey, tn.getWeakData, tn.onFreeze, Le("iterator")),
rn = Array.prototype,
on = Le("iterator"),
an = function(e, t, n, i) {
try {
return i ? t(M(n)[0], n[1]) : t(n)
} catch (t) {
var r = e.return;
throw void 0 !== r && M(r.call(e)), t
}
},
sn = t((function(e) {
var t = function(e, t) {
this.stopped = e, this.result = t
};
(e.exports = function(e, n, i, r, o) {
var a, s, l, c, u, d, h, f = Ee(n, i, r ? 2 : 1);
if (o) a = e;
else {
if ("function" != typeof(s = function(e) {
if (null != e) return e[on] || e["@@iterator"] || ct[Ft(e)]
}(e))) throw TypeError("Target is not iterable");
if (void 0 !== (h = s) && (ct.Array === h || rn[nn] === h)) {
for (l = 0, c = ae(e.length); c > l; l++)
if ((u = r ? f(M(d = e[l])[0], d[1]) : f(e[l])) && u instanceof t) return u;
return new t(!1)
}
a = s.call(e)
}
for (; !(d = a.next()).done;)
if ((u = an(a, f, d.value, r)) && u instanceof t) return u;
return new t(!1)
}).stop = function(e) {
return new t(!0, e)
}
})),
ln = function(e, t, n) {
if (!(e instanceof t)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation");
return e
},
cn = Le("iterator"),
un = !1;
try {
var dn = 0,
hn = {
next: function() {
return {
done: !!dn++
}
},
return: function() {
un = !0
}
};
hn[cn] = function() {
return this
}, Array.from(hn, (function() {
throw 2
}))
} catch (e) {}
var fn = function(e, t, n, i, r) {
var o = s[e],
a = o && o.prototype,
c = o,
u = i ? "set" : "add",
d = {},
h = function(e) {
var t = a[e];
J(a, e, "add" == e ? function(e) {
return t.call(this, 0 === e ? 0 : e), this
} : "delete" == e ? function(e) {
return !(r && !w(e)) && t.call(this, 0 === e ? 0 : e)
} : "get" == e ? function(e) {
return r && !w(e) ? void 0 : t.call(this, 0 === e ? 0 : e)
} : "has" == e ? function(e) {
return !(r && !w(e)) && t.call(this, 0 === e ? 0 : e)
} : function(e, n) {
return t.call(this, 0 === e ? 0 : e, n), this
})
};
if (ke(e, "function" != typeof o || !(r || a.forEach && !l((function() {
(new o).entries().next()
}))))) c = n.getConstructor(t, e, i, u), tn.REQUIRED = !0;
else if (ke(e, !0)) {
var f = new c,
p = f[u](r ? {} : -0, 1) != f,
g = l((function() {
f.has(1)
})),
m = function(e, t) {
if (!un) return !1;
var n = !1;
try {
var i = {};
i[cn] = function() {
return {
next: function() {
return {
done: n = !0
}
}
}
},
function(e) {
new o(e)
}(i)
} catch (e) {}
return n
}(),
v = !r && l((function() {
for (var e = new o, t = 5; t--;) e[u](t, t);
return !e.has(-0)
}));
m || ((c = t((function(t, n) {
ln(t, c, e);
var r = function(e, t, n) {
var i, r;
return _t && "function" == typeof(i = t.constructor) && i !== n && w(r = i.prototype) && r !== n.prototype && _t(e, r), e
}(new o, t, c);
return null != n && sn(n, r[u], r, i), r
}))).prototype = a, a.constructor = c), (g || v) && (h("delete"), h("has"), i && h("get")), (v || p) && h(u), r && a.clear && delete a.clear
}
return d[e] = c, Te({
global: !0,
forced: c != o
}, d), bt(c, e), r || n.setStrong(c, e, i), c
},
pn = tn.getWeakData,
gn = K.set,
mn = K.getterFor,
vn = $e.find,
yn = $e.findIndex,
bn = 0,
wn = function(e) {
return e.frozen || (e.frozen = new xn)
},
xn = function() {
this.entries = []
},
_n = function(e, t) {
return vn(e.entries, (function(e) {
return e[0] === t
}))
};
xn.prototype = {
get: function(e) {
var t = _n(this, e);
if (t) return t[1]
},
has: function(e) {
return !!_n(this, e)
},
set: function(e, t) {
var n = _n(this, e);
n ? n[1] = t : this.entries.push([e, t])
},
delete: function(e) {
var t = yn(this.entries, (function(t) {
return t[0] === e
}));
return ~t && this.entries.splice(t, 1), !!~t
}
};
var Cn = {
getConstructor: function(e, t, n, i) {
var r = e((function(e, o) {
ln(e, r, t), gn(e, {
type: t,
id: bn++,
frozen: void 0
}), null != o && sn(o, e[i], e, n)
})),
o = mn(t),
a = function(e, t, n) {
var i = o(e),
r = pn(M(t), !0);
return !0 === r ? wn(i).set(t, n) : r[i.id] = n, e
};
return Zt(r.prototype, {
delete: function(e) {
var t = o(this);
if (!w(e)) return !1;
var n = pn(e);
return !0 === n ? wn(t).delete(e) : n && C(n, t.id) && delete n[t.id]
},
has: function(e) {
var t = o(this);
if (!w(e)) return !1;
var n = pn(e);
return !0 === n ? wn(t).has(e) : n && C(n, t.id)
}
}), Zt(r.prototype, n ? {
get: function(e) {
var t = o(this);
if (w(e)) {
var n = pn(e);
return !0 === n ? wn(t).get(e) : n ? n[t.id] : void 0
}
},
set: function(e, t) {
return a(this, e, t)
}
} : {
add: function(e) {
return a(this, e, !0)
}
}), r
}
},
kn = (t((function(e) {
var t, n = K.enforce,
i = !s.ActiveXObject && "ActiveXObject" in s,
r = Object.isExtensible,
o = function(e) {
return function() {
return e(this, arguments.length ? arguments[0] : void 0)
}
},
a = e.exports = fn("WeakMap", o, Cn, !0, !0);
if (j && i) {
t = Cn.getConstructor(o, "WeakMap", !0), tn.REQUIRED = !0;
var l = a.prototype,
c = l.delete,
u = l.has,
d = l.get,
h = l.set;
Zt(l, {
delete: function(e) {
if (w(e) && !r(e)) {
var i = n(this);
return i.frozen || (i.frozen = new t), c.call(this, e) || i.frozen.delete(e)
}
return c.call(this, e)
},
has: function(e) {
if (w(e) && !r(e)) {
var i = n(this);
return i.frozen || (i.frozen = new t), u.call(this, e) || i.frozen.has(e)
}
return u.call(this, e)
},
get: function(e) {
if (w(e) && !r(e)) {
var i = n(this);
return i.frozen || (i.frozen = new t), u.call(this, e) ? d.call(this, e) : i.frozen.get(e)
}
return d.call(this, e)
},
set: function(e, i) {
if (w(e) && !r(e)) {
var o = n(this);
o.frozen || (o.frozen = new t), u.call(this, e) ? h.call(this, e, i) : o.frozen.set(e, i)
} else h.call(this, e, i);
return this
}
})
}
})), Le("iterator")),
Sn = Le("toStringTag"),
Tn = Mt.values;
for (var Dn in qe) {
var En = s[Dn],
An = En && En.prototype;
if (An) {
if (An[kn] !== Tn) try {
P(An, kn, Tn)
} catch (e) {
An[kn] = Tn
}
if (An[Sn] || P(An, Sn, Dn), qe[Dn])
for (var Mn in Mt)
if (An[Mn] !== Mt[Mn]) try {
P(An, Mn, Mt[Mn])
} catch (e) {
An[Mn] = Mt[Mn]
}
}
}
var On = "Expected a function",
In = /^\s+|\s+$/g,
Pn = /^[-+]0x[0-9a-f]+$/i,
Ln = /^0b[01]+$/i,
Fn = /^0o[0-7]+$/i,
Nn = parseInt,
Rn = "object" == typeof e && e && e.Object === Object && e,
jn = "object" == typeof self && self && self.Object === Object && self,
$n = Rn || jn || Function("return this")(),
zn = Object.prototype.toString,
Hn = Math.max,
Bn = Math.min,
qn = function() {
return $n.Date.now()
};
function Wn(e) {
var t = typeof e;
return !!e && ("object" == t || "function" == t)
}
function Un(e) {
if ("number" == typeof e) return e;
if (function(e) {
return "symbol" == typeof e || function(e) {
return !!e && "object" == typeof e
}(e) && "[object Symbol]" == zn.call(e)
}(e)) return NaN;
if (Wn(e)) {
var t = "function" == typeof e.valueOf ? e.valueOf() : e;
e = Wn(t) ? t + "" : t
}
if ("string" != typeof e) return 0 === e ? e : +e;
e = e.replace(In, "");
var n = Ln.test(e);
return n || Fn.test(e) ? Nn(e.slice(2), n ? 2 : 8) : Pn.test(e) ? NaN : +e
}
var Vn = function(e, t, n) {
var i = !0,
r = !0;
if ("function" != typeof e) throw new TypeError(On);
return Wn(n) && (i = "leading" in n ? !!n.leading : i, r = "trailing" in n ? !!n.trailing : r),
function(e, t, n) {
var i, r, o, a, s, l, c = 0,
u = !1,
d = !1,
h = !0;
if ("function" != typeof e) throw new TypeError(On);
function f(t) {
var n = i,
o = r;
return i = r = void 0, c = t, a = e.apply(o, n)
}
function p(e) {
var n = e - l;
return void 0 === l || n >= t || n < 0 || d && e - c >= o
}
function g() {
var e = qn();
if (p(e)) return m(e);
s = setTimeout(g, function(e) {
var n = t - (e - l);
return d ? Bn(n, o - (e - c)) : n
}(e))
}
function m(e) {
return s = void 0, h && i ? f(e) : (i = r = void 0, a)
}
function v() {
var e = qn(),
n = p(e);
if (i = arguments, r = this, l = e, n) {
if (void 0 === s) return function(e) {
return c = e, s = setTimeout(g, t), u ? f(e) : a
}(l);
if (d) return s = setTimeout(g, t), f(l)
}
return void 0 === s && (s = setTimeout(g, t)), a
}
return t = Un(t) || 0, Wn(n) && (u = !!n.leading, o = (d = "maxWait" in n) ? Hn(Un(n.maxWait) || 0, t) : o, h = "trailing" in n ? !!n.trailing : h), v.cancel = function() {
void 0 !== s && clearTimeout(s), c = 0, i = l = r = s = void 0
}, v.flush = function() {
return void 0 === s ? a : m(qn())
}, v
}(e, t, {
leading: i,
maxWait: t,
trailing: r
})
},
Yn = /^\s+|\s+$/g,
Xn = /^[-+]0x[0-9a-f]+$/i,
Gn = /^0b[01]+$/i,
Qn = /^0o[0-7]+$/i,
Kn = parseInt,
Jn = "object" == typeof e && e && e.Object === Object && e,
Zn = "object" == typeof self && self && self.Object === Object && self,
ei = Jn || Zn || Function("return this")(),
ti = Object.prototype.toString,
ni = Math.max,
ii = Math.min,
ri = function() {
return ei.Date.now()
};
function oi(e) {
var t = typeof e;
return !!e && ("object" == t || "function" == t)
}
function ai(e) {
if ("number" == typeof e) return e;
if (function(e) {
return "symbol" == typeof e || function(e) {
return !!e && "object" == typeof e
}(e) && "[object Symbol]" == ti.call(e)
}(e)) return NaN;
if (oi(e)) {
var t = "function" == typeof e.valueOf ? e.valueOf() : e;
e = oi(t) ? t + "" : t
}
if ("string" != typeof e) return 0 === e ? e : +e;
e = e.replace(Yn, "");
var n = Gn.test(e);
return n || Qn.test(e) ? Kn(e.slice(2), n ? 2 : 8) : Xn.test(e) ? NaN : +e
}
var si = function(e, t, n) {
var i, r, o, a, s, l, c = 0,
u = !1,
d = !1,
h = !0;
if ("function" != typeof e) throw new TypeError("Expected a function");
function f(t) {
var n = i,
o = r;
return i = r = void 0, c = t, a = e.apply(o, n)
}
function p(e) {
var n = e - l;
return void 0 === l || n >= t || n < 0 || d && e - c >= o
}
function g() {
var e = ri();
if (p(e)) return m(e);
s = setTimeout(g, function(e) {
var n = t - (e - l);
return d ? ii(n, o - (e - c)) : n
}(e))
}
function m(e) {
return s = void 0, h && i ? f(e) : (i = r = void 0, a)
}
function v() {
var e = ri(),
n = p(e);
if (i = arguments, r = this, l = e, n) {
if (void 0 === s) return function(e) {
return c = e, s = setTimeout(g, t), u ? f(e) : a
}(l);
if (d) return s = setTimeout(g, t), f(l)
}
return void 0 === s && (s = setTimeout(g, t)), a
}
return t = ai(t) || 0, oi(n) && (u = !!n.leading, o = (d = "maxWait" in n) ? ni(ai(n.maxWait) || 0, t) : o, h = "trailing" in n ? !!n.trailing : h), v.cancel = function() {
void 0 !== s && clearTimeout(s), c = 0, i = l = r = s = void 0
}, v.flush = function() {
return void 0 === s ? a : m(ri())
}, v
},
li = "__lodash_hash_undefined__",
ci = /^\[object .+?Constructor\]$/,
ui = "object" == typeof e && e && e.Object === Object && e,
di = "object" == typeof self && self && self.Object === Object && self,
hi = ui || di || Function("return this")(),
fi = Array.prototype,
pi = Function.prototype,
gi = Object.prototype,
mi = hi["__core-js_shared__"],
vi = function() {
var e = /[^.]+$/.exec(mi && mi.keys && mi.keys.IE_PROTO || "");
return e ? "Symbol(src)_1." + e : ""
}(),
yi = pi.toString,
bi = gi.hasOwnProperty,
wi = gi.toString,
xi = RegExp("^" + yi.call(bi).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
_i = fi.splice,
Ci = Mi(hi, "Map"),
ki = Mi(Object, "create");
function Si(e) {
var t = -1,
n = e ? e.length : 0;
for (this.clear(); ++t < n;) {
var i = e[t];
this.set(i[0], i[1])
}
}
function Ti(e) {
var t = -1,
n = e ? e.length : 0;
for (this.clear(); ++t < n;) {
var i = e[t];
this.set(i[0], i[1])
}
}
function Di(e) {
var t = -1,
n = e ? e.length : 0;
for (this.clear(); ++t < n;) {
var i = e[t];
this.set(i[0], i[1])
}
}
function Ei(e, t) {
for (var n, i, r = e.length; r--;)
if ((n = e[r][0]) === (i = t) || n != n && i != i) return r;
return -1
}
function Ai(e, t) {
var n, i, r = e.__data__;
return ("string" == (i = typeof(n = t)) || "number" == i || "symbol" == i || "boolean" == i ? "__proto__" !== n : null === n) ? r["string" == typeof t ? "string" : "hash"] : r.map
}
function Mi(e, t) {
var n = function(e, t) {
return null == e ? void 0 : e[t]
}(e, t);
return function(e) {
return !(!Ii(e) || (t = e, vi && vi in t)) && (function(e) {
var t = Ii(e) ? wi.call(e) : "";
return "[object Function]" == t || "[object GeneratorFunction]" == t
}(e) || function(e) {
var t = !1;
if (null != e && "function" != typeof e.toString) try {
t = !!(e + "")
} catch (e) {}
return t
}(e) ? xi : ci).test(function(e) {
if (null != e) {
try {
return yi.call(e)
} catch (e) {}
try {
return e + ""
} catch (e) {}
}
return ""
}(e));
var t
}(n) ? n : void 0
}
function Oi(e, t) {
if ("function" != typeof e || t && "function" != typeof t) throw new TypeError("Expected a function");
var n = function() {
var i = arguments,
r = t ? t.apply(this, i) : i[0],
o = n.cache;
if (o.has(r)) return o.get(r);
var a = e.apply(this, i);
return n.cache = o.set(r, a), a
};
return n.cache = new(Oi.Cache || Di), n
}
function Ii(e) {
var t = typeof e;
return !!e && ("object" == t || "function" == t)
}
Si.prototype.clear = function() {
this.__data__ = ki ? ki(null) : {}
}, Si.prototype.delete = function(e) {
return this.has(e) && delete this.__data__[e]
}, Si.prototype.get = function(e) {
var t = this.__data__;
if (ki) {
var n = t[e];
return n === li ? void 0 : n
}
return bi.call(t, e) ? t[e] : void 0
}, Si.prototype.has = function(e) {
var t = this.__data__;
return ki ? void 0 !== t[e] : bi.call(t, e)
}, Si.prototype.set = function(e, t) {
return this.__data__[e] = ki && void 0 === t ? li : t, this
}, Ti.prototype.clear = function() {
this.__data__ = []
}, Ti.prototype.delete = function(e) {
var t = this.__data__,
n = Ei(t, e);
return !(n < 0 || (n == t.length - 1 ? t.pop() : _i.call(t, n, 1), 0))
}, Ti.prototype.get = function(e) {
var t = this.__data__,
n = Ei(t, e);
return n < 0 ? void 0 : t[n][1]
}, Ti.prototype.has = function(e) {
return Ei(this.__data__, e) > -1
}, Ti.prototype.set = function(e, t) {
var n = this.__data__,
i = Ei(n, e);
return i < 0 ? n.push([e, t]) : n[i][1] = t, this
}, Di.prototype.clear = function() {
this.__data__ = {
hash: new Si,
map: new(Ci || Ti),
string: new Si
}
}, Di.prototype.delete = function(e) {
return Ai(this, e).delete(e)
}, Di.prototype.get = function(e) {
return Ai(this, e).get(e)
}, Di.prototype.has = function(e) {
return Ai(this, e).has(e)
}, Di.prototype.set = function(e, t) {
return Ai(this, e).set(e, t), this
}, Oi.Cache = Di;
var Pi = Oi,
Li = function() {
if ("undefined" != typeof Map) return Map;
function e(e, t) {
var n = -1;
return e.some((function(e, i) {
return e[0] === t && (n = i, !0)
})), n
}
return function() {
function t() {
this.__entries__ = []
}
return Object.defineProperty(t.prototype, "size", {
get: function() {
return this.__entries__.length
},
enumerable: !0,
configurable: !0
}), t.prototype.get = function(t) {
var n = e(this.__entries__, t),
i = this.__entries__[n];
return i && i[1]
}, t.prototype.set = function(t, n) {
var i = e(this.__entries__, t);
~i ? this.__entries__[i][1] = n : this.__entries__.push([t, n])
}, t.prototype.delete = function(t) {
var n = this.__entries__,
i = e(n, t);
~i && n.splice(i, 1)
}, t.prototype.has = function(t) {
return !!~e(this.__entries__, t)
}, t.prototype.clear = function() {
this.__entries__.splice(0)
}, t.prototype.forEach = function(e, t) {
void 0 === t && (t = null);
for (var n = 0, i = this.__entries__; n < i.length; n++) {
var r = i[n];
e.call(t, r[1], r[0])
}
}, t
}()
}(),
Fi = "undefined" != typeof window && "undefined" != typeof document && window.document === document,
Ni = "undefined" != typeof global && global.Math === Math ? global : "undefined" != typeof self && self.Math === Math ? self : "undefined" != typeof window && window.Math === Math ? window : Function("return this")(),
Ri = "function" == typeof requestAnimationFrame ? requestAnimationFrame.bind(Ni) : function(e) {
return setTimeout((function() {
return e(Date.now())
}), 1e3 / 60)
},
ji = ["top", "right", "bottom", "left", "width", "height", "size", "weight"],
$i = "undefined" != typeof MutationObserver,
zi = function() {
function e() {
this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = function(e, t) {
var n = !1,
i = !1,
r = 0;
function o() {
n && (n = !1, e()), i && s()
}
function a() {
Ri(o)
}
function s() {
var e = Date.now();
if (n) {
if (e - r < 2) return;
i = !0
} else n = !0, i = !1, setTimeout(a, 20);
r = e
}
return s
}(this.refresh.bind(this))
}
return e.prototype.addObserver = function(e) {
~this.observers_.indexOf(e) || this.observers_.push(e), this.connected_ || this.connect_()
}, e.prototype.removeObserver = function(e) {
var t = this.observers_,
n = t.indexOf(e);
~n && t.splice(n, 1), !t.length && this.connected_ && this.disconnect_()
}, e.prototype.refresh = function() {
this.updateObservers_() && this.refresh()
}, e.prototype.updateObservers_ = function() {
var e = this.observers_.filter((function(e) {
return e.gatherActive(), e.hasActive()
}));
return e.forEach((function(e) {
return e.broadcastActive()
})), e.length > 0
}, e.prototype.connect_ = function() {
Fi && !this.connected_ && (document.addEventListener("transitionend", this.onTransitionEnd_), window.addEventListener("resize", this.refresh), $i ? (this.mutationsObserver_ = new MutationObserver(this.refresh), this.mutationsObserver_.observe(document, {
attributes: !0,
childList: !0,
characterData: !0,
subtree: !0
})) : (document.addEventListener("DOMSubtreeModified", this.refresh), this.mutationEventsAdded_ = !0), this.connected_ = !0)
}, e.prototype.disconnect_ = function() {
Fi && this.connected_ && (document.removeEventListener("transitionend", this.onTransitionEnd_), window.removeEventListener("resize", this.refresh), this.mutationsObserver_ && this.mutationsObserver_.disconnect(), this.mutationEventsAdded_ && document.removeEventListener("DOMSubtreeModified", this.refresh), this.mutationsObserver_ = null, this.mutationEventsAdded_ = !1, this.connected_ = !1)
}, e.prototype.onTransitionEnd_ = function(e) {
var t = e.propertyName,
n = void 0 === t ? "" : t;
ji.some((function(e) {
return !!~n.indexOf(e)
})) && this.refresh()
}, e.getInstance = function() {
return this.instance_ || (this.instance_ = new e), this.instance_
}, e.instance_ = null, e
}(),
Hi = function(e, t) {
for (var n = 0, i = Object.keys(t); n < i.length; n++) {
var r = i[n];
Object.defineProperty(e, r, {
value: t[r],
enumerable: !1,
writable: !1,
configurable: !0
})
}
return e
},
Bi = function(e) {
return e && e.ownerDocument && e.ownerDocument.defaultView || Ni
},
qi = Xi(0, 0, 0, 0);
function Wi(e) {
return parseFloat(e) || 0
}
function Ui(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
return t.reduce((function(t, n) {
return t + Wi(e["border-" + n + "-width"])
}), 0)
}
var Vi = "undefined" != typeof SVGGraphicsElement ? function(e) {
return e instanceof Bi(e).SVGGraphicsElement
} : function(e) {
return e instanceof Bi(e).SVGElement && "function" == typeof e.getBBox
};
function Yi(e) {
return Fi ? Vi(e) ? function(e) {
var t = e.getBBox();
return Xi(0, 0, t.width, t.height)
}(e) : function(e) {
var t = e.clientWidth,
n = e.clientHeight;
if (!t && !n) return qi;
var i = Bi(e).getComputedStyle(e),
r = function(e) {
for (var t = {}, n = 0, i = ["top", "right", "bottom", "left"]; n < i.length; n++) {
var r = i[n],
o = e["padding-" + r];
t[r] = Wi(o)
}
return t
}(i),
o = r.left + r.right,
a = r.top + r.bottom,
s = Wi(i.width),
l = Wi(i.height);
if ("border-box" === i.boxSizing && (Math.round(s + o) !== t && (s -= Ui(i, "left", "right") + o), Math.round(l + a) !== n && (l -= Ui(i, "top", "bottom") + a)), ! function(e) {
return e === Bi(e).document.documentElement
}(e)) {
var c = Math.round(s + o) - t,
u = Math.round(l + a) - n;
1 !== Math.abs(c) && (s -= c), 1 !== Math.abs(u) && (l -= u)
}
return Xi(r.left, r.top, s, l)
}(e) : qi
}
function Xi(e, t, n, i) {
return {
x: e,
y: t,
width: n,
height: i
}
}
var Gi = function() {
function e(e) {
this.broadcastWidth = 0, this.broadcastHeight = 0, this.contentRect_ = Xi(0, 0, 0, 0), this.target = e
}
return e.prototype.isActive = function() {
var e = Yi(this.target);
return this.contentRect_ = e, e.width !== this.broadcastWidth || e.height !== this.broadcastHeight
}, e.prototype.broadcastRect = function() {
var e = this.contentRect_;
return this.broadcastWidth = e.width, this.broadcastHeight = e.height, e
}, e
}(),
Qi = function(e, t) {
var n, i, r, o, a, s, l, c = (i = (n = t).x, r = n.y, o = n.width, a = n.height, s = "undefined" != typeof DOMRectReadOnly ? DOMRectReadOnly : Object, l = Object.create(s.prototype), Hi(l, {
x: i,
y: r,
width: o,
height: a,
top: r,
right: i + o,
bottom: a + r,
left: i
}), l);
Hi(this, {
target: e,
contentRect: c
})
},
Ki = function() {
function e(e, t, n) {
if (this.activeObservations_ = [], this.observations_ = new Li, "function" != typeof e) throw new TypeError("The callback provided as parameter 1 is not a function.");
this.callback_ = e, this.controller_ = t, this.callbackCtx_ = n
}
return e.prototype.observe = function(e) {
if (!arguments.length) throw new TypeError("1 argument required, but only 0 present.");
if ("undefined" != typeof Element && Element instanceof Object) {
if (!(e instanceof Bi(e).Element)) throw new TypeError('parameter 1 is not of type "Element".');
var t = this.observations_;
t.has(e) || (t.set(e, new Gi(e)), this.controller_.addObserver(this), this.controller_.refresh())
}
}, e.prototype.unobserve = function(e) {
if (!arguments.length) throw new TypeError("1 argument required, but only 0 present.");
if ("undefined" != typeof Element && Element instanceof Object) {
if (!(e instanceof Bi(e).Element)) throw new TypeError('parameter 1 is not of type "Element".');
var t = this.observations_;
t.has(e) && (t.delete(e), t.size || this.controller_.removeObserver(this))
}
}, e.prototype.disconnect = function() {
this.clearActive(), this.observations_.clear(), this.controller_.removeObserver(this)
}, e.prototype.gatherActive = function() {
var e = this;
this.clearActive(), this.observations_.forEach((function(t) {
t.isActive() && e.activeObservations_.push(t)
}))
}, e.prototype.broadcastActive = function() {
if (this.hasActive()) {
var e = this.callbackCtx_,
t = this.activeObservations_.map((function(e) {
return new Qi(e.target, e.broadcastRect())
}));
this.callback_.call(e, t, e), this.clearActive()
}
}, e.prototype.clearActive = function() {
this.activeObservations_.splice(0)
}, e.prototype.hasActive = function() {
return this.activeObservations_.length > 0
}, e
}(),
Ji = "undefined" != typeof WeakMap ? new WeakMap : new Li,
Zi = function e(t) {
if (!(this instanceof e)) throw new TypeError("Cannot call a class as a function.");
if (!arguments.length) throw new TypeError("1 argument required, but only 0 present.");
var n = zi.getInstance(),
i = new Ki(t, n, this);
Ji.set(this, i)
};
["observe", "unobserve", "disconnect"].forEach((function(e) {
Zi.prototype[e] = function() {
var t;
return (t = Ji.get(this))[e].apply(t, arguments)
}
}));
var er = void 0 !== Ni.ResizeObserver ? Ni.ResizeObserver : Zi,
tr = null,
nr = null;
function ir() {
if (null === tr) {
if ("undefined" == typeof document) return tr = 0;
var e = document.body,
t = document.createElement("div");
t.classList.add("simplebar-hide-scrollbar"), e.appendChild(t);
var n = t.getBoundingClientRect().right;
e.removeChild(t), tr = n
}
return tr
}
Ye && window.addEventListener("resize", (function() {
nr !== window.devicePixelRatio && (nr = window.devicePixelRatio, tr = null)
}));
var rr = function(e) {
return function(t, n, i, r) {
De(n);
var o = Ae(t),
a = v(o),
s = ae(o.length),
l = e ? s - 1 : 0,
c = e ? -1 : 1;
if (i < 2)
for (;;) {
if (l in a) {
r = a[l], l += c;
break
}
if (l += c, e ? l < 0 : s <= l) throw TypeError("Reduce of empty array with no initial value")
}
for (; e ? l >= 0 : s > l; l += c) l in a && (r = n(r, a[l], l, o));
return r
}
},
or = [rr(!1), rr(!0)][0];
Te({
target: "Array",
proto: !0,
forced: ze("reduce")
}, {
reduce: function(e) {
return or(this, e, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
}
});
var ar = I.f,
sr = Function.prototype,
lr = sr.toString,
cr = /^\s*function ([^ (]*)/;
!c || "name" in sr || ar(sr, "name", {
configurable: !0,
get: function() {
try {
return lr.call(this).match(cr)[1]
} catch (e) {
return ""
}
}
});
var ur, dr, hr = function() {
var e = M(this),
t = "";
return e.global && (t += "g"), e.ignoreCase && (t += "i"), e.multiline && (t += "m"), e.dotAll && (t += "s"), e.unicode && (t += "u"), e.sticky && (t += "y"), t
},
fr = RegExp.prototype.exec,
pr = String.prototype.replace,
gr = fr,
mr = (ur = /a/, dr = /b*/g, fr.call(ur, "a"), fr.call(dr, "a"), 0 !== ur.lastIndex || 0 !== dr.lastIndex),
vr = void 0 !== /()??/.exec("")[1];
(mr || vr) && (gr = function(e) {
var t, n, i, r, o = this;
return vr && (n = new RegExp("^" + o.source + "$(?!\\s)", hr.call(o))), mr && (t = o.lastIndex), i = fr.call(o, e), mr && i && (o.lastIndex = o.global ? i.index + i[0].length : t), vr && i && i.length > 1 && pr.call(i[0], n, (function() {
for (r = 1; r < arguments.length - 2; r++) void 0 === arguments[r] && (i[r] = void 0)
})), i
});
var yr = gr;
Te({
target: "RegExp",
proto: !0,
forced: /./.exec !== yr
}, {
exec: yr
});
var br = Le("species"),
wr = !l((function() {
var e = /./;
return e.exec = function() {
var e = [];
return e.groups = {
a: "7"
}, e
}, "7" !== "".replace(e, "$<a>")
})),
xr = !l((function() {
var e = /(?:)/,
t = e.exec;
e.exec = function() {
return t.apply(this, arguments)
};
var n = "ab".split(e);
return 2 !== n.length || "a" !== n[0] || "b" !== n[1]
})),
_r = function(e, t, n, i) {
var r = Le(e),
o = !l((function() {
var t = {};
return t[r] = function() {
return 7
}, 7 != "" [e](t)
})),
a = o && !l((function() {
var t = !1,
n = /a/;
return n.exec = function() {
return t = !0, null
}, "split" === e && (n.constructor = {}, n.constructor[br] = function() {
return n
}), n[r](""), !t
}));
if (!o || !a || "replace" === e && !wr || "split" === e && !xr) {
var s = /./ [r],
c = n(r, "" [e], (function(e, t, n, i, r) {
return t.exec === yr ? o && !r ? {
done: !0,
value: s.call(t, n, i)
} : {
done: !0,
value: e.call(n, t, i)
} : {
done: !1
}
})),
u = c[0],
d = c[1];
J(String.prototype, e, u), J(RegExp.prototype, r, 2 == t ? function(e, t) {
return d.call(e, this, t)
} : function(e) {
return d.call(e, this)
}), i && P(RegExp.prototype[r], "sham", !0)
}
},
Cr = Gt.charAt,
kr = function(e, t, n) {
return t + (n ? Cr(e, t).length : 1)
},
Sr = function(e, t) {
var n = e.exec;
if ("function" == typeof n) {
var i = n.call(e, t);
if ("object" != typeof i) throw TypeError("RegExp exec method returned something other than an Object or null");
return i
}
if ("RegExp" !== g(e)) throw TypeError("RegExp#exec called on incompatible receiver");
return yr.call(e, t)
};
_r("match", 1, (function(e, t, n) {
return [function(t) {
var n = y(this),
i = null == t ? void 0 : t[e];
return void 0 !== i ? i.call(t, n) : new RegExp(t)[e](String(n))
}, function(e) {
var i = n(t, e, this);
if (i.done) return i.value;
var r = M(e),
o = String(this);
if (!r.global) return Sr(r, o);
var a = r.unicode;
r.lastIndex = 0;
for (var s, l = [], c = 0; null !== (s = Sr(r, o));) {
var u = String(s[0]);
l[c] = u, "" === u && (r.lastIndex = kr(o, ae(r.lastIndex), a)), c++
}
return 0 === c ? null : l
}]
}));
var Tr = Math.max,
Dr = Math.min,
Er = Math.floor,
Ar = /\$([$&'`]|\d\d?|<[^>]*>)/g,
Mr = /\$([$&'`]|\d\d?)/g;
_r("replace", 2, (function(e, t, n) {
return [function(n, i) {
var r = y(this),
o = null == n ? void 0 : n[e];
return void 0 !== o ? o.call(n, r, i) : t.call(String(r), n, i)
}, function(e, r) {
var o = n(t, e, this, r);
if (o.done) return o.value;
var a = M(e),
s = String(this),
l = "function" == typeof r;
l || (r = String(r));
var c = a.global;
if (c) {
var u = a.unicode;
a.lastIndex = 0
}
for (var d = [];;) {
var h = Sr(a, s);
if (null === h) break;
if (d.push(h), !c) break;
"" === String(h[0]) && (a.lastIndex = kr(s, ae(a.lastIndex), u))
}
for (var f, p = "", g = 0, m = 0; m < d.length; m++) {
h = d[m];
for (var v = String(h[0]), y = Tr(Dr(re(h.index), s.length), 0), b = [], w = 1; w < h.length; w++) b.push(void 0 === (f = h[w]) ? f : String(f));
var x = h.groups;
if (l) {
var _ = [v].concat(b, y, s);
void 0 !== x && _.push(x);
var C = String(r.apply(void 0, _))
} else C = i(v, s, y, b, x, r);
y >= g && (p += s.slice(g, y) + C, g = y + v.length)
}
return p + s.slice(g)
}];
function i(e, n, i, r, o, a) {
var s = i + e.length,
l = r.length,
c = Mr;
return void 0 !== o && (o = Ae(o), c = Ar), t.call(a, c, (function(t, a) {
var c;
switch (a.charAt(0)) {
case "$":
return "$";
case "&":
return e;
case "`":
return n.slice(0, i);
case "'":
return n.slice(s);
case "<":
c = o[a.slice(1, -1)];
break;
default:
var u = +a;
if (0 === u) return t;
if (u > l) {
var d = Er(u / 10);
return 0 === d ? t : d <= l ? void 0 === r[d - 1] ? a.charAt(1) : r[d - 1] + a.charAt(1) : t
}
c = r[u - 1]
}
return void 0 === c ? "" : c
}))
}
}));
var Or = function(e) {
return Array.prototype.reduce.call(e, (function(e, t) {
var n = t.name.match(/data-simplebar-(.+)/);
if (n) {
var i = n[1].replace(/\W+(.)/g, (function(e, t) {
return t.toUpperCase()
}));
switch (t.value) {
case "true":
e[i] = !0;
break;
case "false":
e[i] = !1;
break;
case void 0:
e[i] = !0;
break;
default:
e[i] = t.value
}
}
return e
}), {})
};
function Ir(e) {
return e && e.ownerDocument && e.ownerDocument.defaultView ? e.ownerDocument.defaultView : window
}
function Pr(e) {
return e && e.ownerDocument ? e.ownerDocument : document
}
var Lr = function() {
function e(t, n) {
var i = this;
this.onScroll = function() {
var e = Ir(i.el);
i.scrollXTicking || (e.requestAnimationFrame(i.scrollX), i.scrollXTicking = !0), i.scrollYTicking || (e.requestAnimationFrame(i.scrollY), i.scrollYTicking = !0)
}, this.scrollX = function() {
i.axis.x.isOverflowing && (i.showScrollbar("x"), i.positionScrollbar("x")), i.scrollXTicking = !1
}, this.scrollY = function() {
i.axis.y.isOverflowing && (i.showScrollbar("y"), i.positionScrollbar("y")), i.scrollYTicking = !1
}, this.onMouseEnter = function() {
i.showScrollbar("x"), i.showScrollbar("y")
}, this.onMouseMove = function(e) {
i.mouseX = e.clientX, i.mouseY = e.clientY, (i.axis.x.isOverflowing || i.axis.x.forceVisible) && i.onMouseMoveForAxis("x"), (i.axis.y.isOverflowing || i.axis.y.forceVisible) && i.onMouseMoveForAxis("y")
}, this.onMouseLeave = function() {
i.onMouseMove.cancel(), (i.axis.x.isOverflowing || i.axis.x.forceVisible) && i.onMouseLeaveForAxis("x"), (i.axis.y.isOverflowing || i.axis.y.forceVisible) && i.onMouseLeaveForAxis("y"), i.mouseX = -1, i.mouseY = -1
}, this.onWindowResize = function() {
i.scrollbarWidth = i.getScrollbarWidth(), i.hideNativeScrollbar()
}, this.hideScrollbars = function() {
i.axis.x.track.rect = i.axis.x.track.el.getBoundingClientRect(), i.axis.y.track.rect = i.axis.y.track.el.getBoundingClientRect(), i.isWithinBounds(i.axis.y.track.rect) || (i.axis.y.scrollbar.el.classList.remove(i.classNames.visible), i.axis.y.isVisible = !1), i.isWithinBounds(i.axis.x.track.rect) || (i.axis.x.scrollbar.el.classList.remove(i.classNames.visible), i.axis.x.isVisible = !1)
}, this.onPointerEvent = function(e) {
var t, n;
i.axis.x.track.rect = i.axis.x.track.el.getBoundingClientRect(), i.axis.y.track.rect = i.axis.y.track.el.getBoundingClientRect(), (i.axis.x.isOverflowing || i.axis.x.forceVisible) && (t = i.isWithinBounds(i.axis.x.track.rect)), (i.axis.y.isOverflowing || i.axis.y.forceVisible) && (n = i.isWithinBounds(i.axis.y.track.rect)), (t || n) && (e.preventDefault(), e.stopPropagation(), "mousedown" === e.type && (t && (i.axis.x.scrollbar.rect = i.axis.x.scrollbar.el.getBoundingClientRect(), i.isWithinBounds(i.axis.x.scrollbar.rect) ? i.onDragStart(e, "x") : i.onTrackClick(e, "x")), n && (i.axis.y.scrollbar.rect = i.axis.y.scrollbar.el.getBoundingClientRect(), i.isWithinBounds(i.axis.y.scrollbar.rect) ? i.onDragStart(e, "y") : i.onTrackClick(e, "y"))))
}, this.drag = function(t) {
var n = i.axis[i.draggedAxis].track,
r = n.rect[i.axis[i.draggedAxis].sizeAttr],
o = i.axis[i.draggedAxis].scrollbar,
a = i.contentWrapperEl[i.axis[i.draggedAxis].scrollSizeAttr],
s = parseInt(i.elStyles[i.axis[i.draggedAxis].sizeAttr], 10);
t.preventDefault(), t.stopPropagation();
var l = (("y" === i.draggedAxis ? t.pageY : t.pageX) - n.rect[i.axis[i.draggedAxis].offsetAttr] - i.axis[i.draggedAxis].dragOffset) / (r - o.size) * (a - s);
"x" === i.draggedAxis && (l = i.isRtl && e.getRtlHelpers().isRtlScrollbarInverted ? l - (r + o.size) : l, l = i.isRtl && e.getRtlHelpers().isRtlScrollingInverted ? -l : l), i.contentWrapperEl[i.axis[i.draggedAxis].scrollOffsetAttr] = l
}, this.onEndDrag = function(e) {
var t = Pr(i.el),
n = Ir(i.el);
e.preventDefault(), e.stopPropagation(), i.el.classList.remove(i.classNames.dragging), t.removeEventListener("mousemove", i.drag, !0), t.removeEventListener("mouseup", i.onEndDrag, !0), i.removePreventClickId = n.setTimeout((function() {
t.removeEventListener("click", i.preventClick, !0), t.removeEventListener("dblclick", i.preventClick, !0), i.removePreventClickId = null
}))
}, this.preventClick = function(e) {
e.preventDefault(), e.stopPropagation()
}, this.el = t, this.minScrollbarWidth = 20, this.options = Object.assign({}, e.defaultOptions, {}, n), this.classNames = Object.assign({}, e.defaultOptions.classNames, {}, this.options.classNames), this.axis = {
x: {
scrollOffsetAttr: "scrollLeft",
sizeAttr: "width",
scrollSizeAttr: "scrollWidth",
offsetSizeAttr: "offsetWidth",
offsetAttr: "left",
overflowAttr: "overflowX",
dragOffset: 0,
isOverflowing: !0,
isVisible: !1,
forceVisible: !1,
track: {},
scrollbar: {}
},
y: {
scrollOffsetAttr: "scrollTop",
sizeAttr: "height",
scrollSizeAttr: "scrollHeight",
offsetSizeAttr: "offsetHeight",
offsetAttr: "top",
overflowAttr: "overflowY",
dragOffset: 0,
isOverflowing: !0,
isVisible: !1,
forceVisible: !1,
track: {},
scrollbar: {}
}
}, this.removePreventClickId = null, e.instances.has(this.el) || (this.recalculate = Vn(this.recalculate.bind(this), 64), this.onMouseMove = Vn(this.onMouseMove.bind(this), 64), this.hideScrollbars = si(this.hideScrollbars.bind(this), this.options.timeout), this.onWindowResize = si(this.onWindowResize.bind(this), 64, {
leading: !0
}), e.getRtlHelpers = Pi(e.getRtlHelpers), this.init())
}
e.getRtlHelpers = function() {
var t = document.createElement("div");
t.innerHTML = '<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';
var n = t.firstElementChild;
document.body.appendChild(n);
var i = n.firstElementChild;
n.scrollLeft = 0;
var r = e.getOffset(n),
o = e.getOffset(i);
n.scrollLeft = 999;
var a = e.getOffset(i);
return {
isRtlScrollingInverted: r.left !== o.left && o.left - a.left != 0,
isRtlScrollbarInverted: r.left !== o.left
}
}, e.getOffset = function(e) {
var t = e.getBoundingClientRect(),
n = Pr(e),
i = Ir(e);
return {
top: t.top + (i.pageYOffset || n.documentElement.scrollTop),
left: t.left + (i.pageXOffset || n.documentElement.scrollLeft)
}
};
var t = e.prototype;
return t.init = function() {
e.instances.set(this.el, this), Ye && (this.initDOM(), this.scrollbarWidth = this.getScrollbarWidth(), this.recalculate(), this.initListeners())
}, t.initDOM = function() {
var e = this;
if (Array.prototype.filter.call(this.el.children, (function(t) {
return t.classList.contains(e.classNames.wrapper)
})).length) this.wrapperEl = this.el.querySelector("." + this.classNames.wrapper), this.contentWrapperEl = this.options.scrollableNode || this.el.querySelector("." + this.classNames.contentWrapper), this.contentEl = this.options.contentNode || this.el.querySelector("." + this.classNames.contentEl), this.offsetEl = this.el.querySelector("." + this.classNames.offset), this.maskEl = this.el.querySelector("." + this.classNames.mask), this.placeholderEl = this.findChild(this.wrapperEl, "." + this.classNames.placeholder), this.heightAutoObserverWrapperEl = this.el.querySelector("." + this.classNames.heightAutoObserverWrapperEl), this.heightAutoObserverEl = this.el.querySelector("." + this.classNames.heightAutoObserverEl), this.axis.x.track.el = this.findChild(this.el, "." + this.classNames.track + "." + this.classNames.horizontal), this.axis.y.track.el = this.findChild(this.el, "." + this.classNames.track + "." + this.classNames.vertical);
else {
for (this.wrapperEl = document.createElement("div"), this.contentWrapperEl = document.createElement("div"), this.offsetEl = document.createElement("div"), this.maskEl = document.createElement("div"), this.contentEl = document.createElement("div"), this.placeholderEl = document.createElement("div"), this.heightAutoObserverWrapperEl = document.createElement("div"), this.heightAutoObserverEl = document.createElement("div"), this.wrapperEl.classList.add(this.classNames.wrapper), this.contentWrapperEl.classList.add(this.classNames.contentWrapper), this.offsetEl.classList.add(this.classNames.offset), this.maskEl.classList.add(this.classNames.mask), this.contentEl.classList.add(this.classNames.contentEl), this.placeholderEl.classList.add(this.classNames.placeholder), this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl), this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl); this.el.firstChild;) this.contentEl.appendChild(this.el.firstChild);
this.contentWrapperEl.appendChild(this.contentEl), this.offsetEl.appendChild(this.contentWrapperEl), this.maskEl.appendChild(this.offsetEl), this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl), this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl), this.wrapperEl.appendChild(this.maskEl), this.wrapperEl.appendChild(this.placeholderEl), this.el.appendChild(this.wrapperEl)
}
if (!this.axis.x.track.el || !this.axis.y.track.el) {
var t = document.createElement("div"),
n = document.createElement("div");
t.classList.add(this.classNames.track), n.classList.add(this.classNames.scrollbar), t.appendChild(n), this.axis.x.track.el = t.cloneNode(!0), this.axis.x.track.el.classList.add(this.classNames.horizontal), this.axis.y.track.el = t.cloneNode(!0), this.axis.y.track.el.classList.add(this.classNames.vertical), this.el.appendChild(this.axis.x.track.el), this.el.appendChild(this.axis.y.track.el)
}
this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector("." + this.classNames.scrollbar), this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector("." + this.classNames.scrollbar), this.options.autoHide || (this.axis.x.scrollbar.el.classList.add(this.classNames.visible), this.axis.y.scrollbar.el.classList.add(this.classNames.visible)), this.el.setAttribute("data-simplebar", "init")
}, t.initListeners = function() {
var e = this,
t = Ir(this.el);
this.options.autoHide && this.el.addEventListener("mouseenter", this.onMouseEnter), ["mousedown", "click", "dblclick"].forEach((function(t) {
e.el.addEventListener(t, e.onPointerEvent, !0)
})), ["touchstart", "touchend", "touchmove"].forEach((function(t) {
e.el.addEventListener(t, e.onPointerEvent, {
capture: !0,
passive: !0
})
})), this.el.addEventListener("mousemove", this.onMouseMove), this.el.addEventListener("mouseleave", this.onMouseLeave), this.contentWrapperEl.addEventListener("scroll", this.onScroll), t.addEventListener("resize", this.onWindowResize);
var n = !1,
i = t.ResizeObserver || er;
this.resizeObserver = new i((function() {
n && e.recalculate()
})), this.resizeObserver.observe(this.el), this.resizeObserver.observe(this.contentEl), t.requestAnimationFrame((function() {
n = !0
})), this.mutationObserver = new t.MutationObserver(this.recalculate), this.mutationObserver.observe(this.contentEl, {
childList: !0,
subtree: !0,
characterData: !0
})
}, t.recalculate = function() {
var e = Ir(this.el);
this.elStyles = e.getComputedStyle(this.el), this.isRtl = "rtl" === this.elStyles.direction;
var t = this.heightAutoObserverEl.offsetHeight <= 1,
n = this.heightAutoObserverEl.offsetWidth <= 1,
i = this.contentEl.offsetWidth,
r = this.contentWrapperEl.offsetWidth,
o = this.elStyles.overflowX,
a = this.elStyles.overflowY;
this.contentEl.style.padding = this.elStyles.paddingTop + " " + this.elStyles.paddingRight + " " + this.elStyles.paddingBottom + " " + this.elStyles.paddingLeft, this.wrapperEl.style.margin = "-" + this.elStyles.paddingTop + " -" + this.elStyles.paddingRight + " -" + this.elStyles.paddingBottom + " -" + this.elStyles.paddingLeft;
var s = this.contentEl.scrollHeight,
l = this.contentEl.scrollWidth;
this.contentWrapperEl.style.height = t ? "auto" : "100%", this.placeholderEl.style.width = n ? i + "px" : "auto", this.placeholderEl.style.height = s + "px";
var c = this.contentWrapperEl.offsetHeight;
this.axis.x.isOverflowing = l > i, this.axis.y.isOverflowing = s > c, this.axis.x.isOverflowing = "hidden" !== o && this.axis.x.isOverflowing, this.axis.y.isOverflowing = "hidden" !== a && this.axis.y.isOverflowing, this.axis.x.forceVisible = "x" === this.options.forceVisible || !0 === this.options.forceVisible, this.axis.y.forceVisible = "y" === this.options.forceVisible || !0 === this.options.forceVisible, this.hideNativeScrollbar();
var u = this.axis.x.isOverflowing ? this.scrollbarWidth : 0,
d = this.axis.y.isOverflowing ? this.scrollbarWidth : 0;
this.axis.x.isOverflowing = this.axis.x.isOverflowing && l > r - d, this.axis.y.isOverflowing = this.axis.y.isOverflowing && s > c - u, this.axis.x.scrollbar.size = this.getScrollbarSize("x"), this.axis.y.scrollbar.size = this.getScrollbarSize("y"), this.axis.x.scrollbar.el.style.width = this.axis.x.scrollbar.size + "px", this.axis.y.scrollbar.el.style.height = this.axis.y.scrollbar.size + "px", this.positionScrollbar("x"), this.positionScrollbar("y"), this.toggleTrackVisibility("x"), this.toggleTrackVisibility("y")
}, t.getScrollbarSize = function(e) {
if (void 0 === e && (e = "y"), !this.axis[e].isOverflowing) return 0;
var t, n = this.contentEl[this.axis[e].scrollSizeAttr],
i = this.axis[e].track.el[this.axis[e].offsetSizeAttr],
r = i / n;
return t = Math.max(~~(r * i), this.options.scrollbarMinSize), this.options.scrollbarMaxSize && (t = Math.min(t, this.options.scrollbarMaxSize)), t
}, t.positionScrollbar = function(t) {
if (void 0 === t && (t = "y"), this.axis[t].isOverflowing) {
var n = this.contentWrapperEl[this.axis[t].scrollSizeAttr],
i = this.axis[t].track.el[this.axis[t].offsetSizeAttr],
r = parseInt(this.elStyles[this.axis[t].sizeAttr], 10),
o = this.axis[t].scrollbar,
a = this.contentWrapperEl[this.axis[t].scrollOffsetAttr],
s = (a = "x" === t && this.isRtl && e.getRtlHelpers().isRtlScrollingInverted ? -a : a) / (n - r),
l = ~~((i - o.size) * s);
l = "x" === t && this.isRtl && e.getRtlHelpers().isRtlScrollbarInverted ? l + (i - o.size) : l, o.el.style.transform = "x" === t ? "translate3d(" + l + "px, 0, 0)" : "translate3d(0, " + l + "px, 0)"
}
}, t.toggleTrackVisibility = function(e) {
void 0 === e && (e = "y");
var t = this.axis[e].track.el,
n = this.axis[e].scrollbar.el;
this.axis[e].isOverflowing || this.axis[e].forceVisible ? (t.style.visibility = "visible", this.contentWrapperEl.style[this.axis[e].overflowAttr] = "scroll") : (t.style.visibility = "hidden", this.contentWrapperEl.style[this.axis[e].overflowAttr] = "hidden"), this.axis[e].isOverflowing ? n.style.display = "block" : n.style.display = "none"
}, t.hideNativeScrollbar = function() {
this.offsetEl.style[this.isRtl ? "left" : "right"] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? "-" + this.scrollbarWidth + "px" : 0, this.offsetEl.style.bottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? "-" + this.scrollbarWidth + "px" : 0
}, t.onMouseMoveForAxis = function(e) {
void 0 === e && (e = "y"), this.axis[e].track.rect = this.axis[e].track.el.getBoundingClientRect(), this.axis[e].scrollbar.rect = this.axis[e].scrollbar.el.getBoundingClientRect(), this.isWithinBounds(this.axis[e].scrollbar.rect) ? this.axis[e].scrollbar.el.classList.add(this.classNames.hover) : this.axis[e].scrollbar.el.classList.remove(this.classNames.hover), this.isWithinBounds(this.axis[e].track.rect) ? (this.showScrollbar(e), this.axis[e].track.el.classList.add(this.classNames.hover)) : this.axis[e].track.el.classList.remove(this.classNames.hover)
}, t.onMouseLeaveForAxis = function(e) {
void 0 === e && (e = "y"), this.axis[e].track.el.classList.remove(this.classNames.hover), this.axis[e].scrollbar.el.classList.remove(this.classNames.hover)
}, t.showScrollbar = function(e) {
void 0 === e && (e = "y");
var t = this.axis[e].scrollbar.el;
this.axis[e].isVisible || (t.classList.add(this.classNames.visible), this.axis[e].isVisible = !0), this.options.autoHide && this.hideScrollbars()
}, t.onDragStart = function(e, t) {
void 0 === t && (t = "y");
var n = Pr(this.el),
i = Ir(this.el),
r = this.axis[t].scrollbar,
o = "y" === t ? e.pageY : e.pageX;
this.axis[t].dragOffset = o - r.rect[this.axis[t].offsetAttr], this.draggedAxis = t, this.el.classList.add(this.classNames.dragging), n.addEventListener("mousemove", this.drag, !0), n.addEventListener("mouseup", this.onEndDrag, !0), null === this.removePreventClickId ? (n.addEventListener("click", this.preventClick, !0), n.addEventListener("dblclick", this.preventClick, !0)) : (i.clearTimeout(this.removePreventClickId), this.removePreventClickId = null)
}, t.onTrackClick = function(e, t) {
var n = this;
if (void 0 === t && (t = "y"), this.options.clickOnTrack) {
var i = Ir(this.el);
this.axis[t].scrollbar.rect = this.axis[t].scrollbar.el.getBoundingClientRect();
var r = this.axis[t].scrollbar.rect[this.axis[t].offsetAttr],
o = parseInt(this.elStyles[this.axis[t].sizeAttr], 10),
a = this.contentWrapperEl[this.axis[t].scrollOffsetAttr],
s = ("y" === t ? this.mouseY - r : this.mouseX - r) < 0 ? -1 : 1,
l = -1 === s ? a - o : a + o;
! function e() {
var r, o; - 1 === s ? a > l && (a -= n.options.clickOnTrackSpeed, n.contentWrapperEl.scrollTo(((r = {})[n.axis[t].offsetAttr] = a, r)), i.requestAnimationFrame(e)) : a < l && (a += n.options.clickOnTrackSpeed, n.contentWrapperEl.scrollTo(((o = {})[n.axis[t].offsetAttr] = a, o)), i.requestAnimationFrame(e))
}()
}
}, t.getContentElement = function() {
return this.contentEl
}, t.getScrollElement = function() {
return this.contentWrapperEl
}, t.getScrollbarWidth = function() {
try {
return "none" === getComputedStyle(this.contentWrapperEl, "::-webkit-scrollbar").display || "scrollbarWidth" in document.documentElement.style || "-ms-overflow-style" in document.documentElement.style ? 0 : ir()
} catch (e) {
return ir()
}
}, t.removeListeners = function() {
var e = this,
t = Ir(this.el);
this.options.autoHide && this.el.removeEventListener("mouseenter", this.onMouseEnter), ["mousedown", "click", "dblclick"].forEach((function(t) {
e.el.removeEventListener(t, e.onPointerEvent, !0)
})), ["touchstart", "touchend", "touchmove"].forEach((function(t) {
e.el.removeEventListener(t, e.onPointerEvent, {
capture: !0,
passive: !0
})
})), this.el.removeEventListener("mousemove", this.onMouseMove), this.el.removeEventListener("mouseleave", this.onMouseLeave), this.contentWrapperEl && this.contentWrapperEl.removeEventListener("scroll", this.onScroll), t.removeEventListener("resize", this.onWindowResize), this.mutationObserver && this.mutationObserver.disconnect(), this.resizeObserver && this.resizeObserver.disconnect(), this.recalculate.cancel(), this.onMouseMove.cancel(), this.hideScrollbars.cancel(), this.onWindowResize.cancel()
}, t.unMount = function() {
this.removeListeners(), e.instances.delete(this.el)
}, t.isWithinBounds = function(e) {
return this.mouseX >= e.left && this.mouseX <= e.left + e.width && this.mouseY >= e.top && this.mouseY <= e.top + e.height
}, t.findChild = function(e, t) {
var n = e.matches || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector;
return Array.prototype.filter.call(e.children, (function(e) {
return n.call(e, t)
}))[0]
}, e
}();
return Lr.defaultOptions = {
autoHide: !0,
forceVisible: !1,
clickOnTrack: !0,
clickOnTrackSpeed: 40,
classNames: {
contentEl: "simplebar-content",
contentWrapper: "simplebar-content-wrapper",
offset: "simplebar-offset",
mask: "simplebar-mask",
wrapper: "simplebar-wrapper",
placeholder: "simplebar-placeholder",
scrollbar: "simplebar-scrollbar",
track: "simplebar-track",
heightAutoObserverWrapperEl: "simplebar-height-auto-observer-wrapper",
heightAutoObserverEl: "simplebar-height-auto-observer",
visible: "simplebar-visible",
horizontal: "simplebar-horizontal",
vertical: "simplebar-vertical",
hover: "simplebar-hover",
dragging: "simplebar-dragging"
},
scrollbarMinSize: 25,
scrollbarMaxSize: 0,
timeout: 1e3
}, Lr.instances = new WeakMap, Lr.initDOMLoadedElements = function() {
document.removeEventListener("DOMContentLoaded", this.initDOMLoadedElements), window.removeEventListener("load", this.initDOMLoadedElements), Array.prototype.forEach.call(document.querySelectorAll("[data-simplebar]"), (function(e) {
"init" === e.getAttribute("data-simplebar") || Lr.instances.has(e) || new Lr(e, Or(e.attributes))
}))
}, Lr.removeObserver = function() {
this.globalObserver.disconnect()
}, Lr.initHtmlApi = function() {
this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this), "undefined" != typeof MutationObserver && (this.globalObserver = new MutationObserver(Lr.handleMutations), this.globalObserver.observe(document, {
childList: !0,
subtree: !0
})), "complete" === document.readyState || "loading" !== document.readyState && !document.documentElement.doScroll ? window.setTimeout(this.initDOMLoadedElements) : (document.addEventListener("DOMContentLoaded", this.initDOMLoadedElements), window.addEventListener("load", this.initDOMLoadedElements))
}, Lr.handleMutations = function(e) {
e.forEach((function(e) {
Array.prototype.forEach.call(e.addedNodes, (function(e) {
1 === e.nodeType && (e.hasAttribute("data-simplebar") ? !Lr.instances.has(e) && new Lr(e, Or(e.attributes)) : Array.prototype.forEach.call(e.querySelectorAll("[data-simplebar]"), (function(e) {
"init" === e.getAttribute("data-simplebar") || Lr.instances.has(e) || new Lr(e, Or(e.attributes))
})))
})), Array.prototype.forEach.call(e.removedNodes, (function(e) {
1 === e.nodeType && (e.hasAttribute('[data-simplebar="init"]') ? Lr.instances.has(e) && Lr.instances.get(e).unMount() : Array.prototype.forEach.call(e.querySelectorAll('[data-simplebar="init"]'), (function(e) {
Lr.instances.has(e) && Lr.instances.get(e).unMount()
})))
}))
}))
}, Lr.getOptions = Or, Ye && Lr.initHtmlApi(), Lr
})),
function(e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = function(t, n) {
return void 0 === n && (n = "undefined" != typeof window ? require("jquery") : require("jquery")(t)), e(n), n
} : e(jQuery)
}((function(e) {
var t = function() {
if (e && e.fn && e.fn.select2 && e.fn.select2.amd) var t = e.fn.select2.amd;
var n, i, r, o, a, s, l, c, u, d, h, f, p, g, m, v;
function y(e, t) {
return p.call(e, t)
}
function b(e, t) {
var n, i, r, o, a, s, l, c, u, d, f, p = t && t.split("/"),
g = h.map,
v = g && g["*"] || {};
if (e) {
for (a = (e = e.split("/")).length - 1, h.nodeIdCompat && m.test(e[a]) && (e[a] = e[a].replace(m, "")), "." === e[0].charAt(0) && p && (e = p.slice(0, p.length - 1).concat(e)), u = 0; u < e.length; u++)
if ("." === (f = e[u])) e.splice(u, 1), --u;
else if (".." === f) {
if (0 === u || 1 === u && ".." === e[2] || ".." === e[u - 1]) continue;
0 < u && (e.splice(u - 1, 2), u -= 2)
}
e = e.join("/")
}
if ((p || v) && g) {
for (u = (n = e.split("/")).length; 0 < u; --u) {
if (i = n.slice(0, u).join("/"), p)
for (d = p.length; 0 < d; --d)
if (r = (r = g[p.slice(0, d).join("/")]) && r[i]) {
o = r, s = u;
break
}
if (o) break;
!l && v && v[i] && (l = v[i], c = u)
}!o && l && (o = l, s = c), o && (n.splice(0, s, o), e = n.join("/"))
}
return e
}
function w(e, t) {
return function() {
var n = g.call(arguments, 0);
return "string" != typeof n[0] && 1 === n.length && n.push(null), s.apply(o, n.concat([e, t]))
}
}
function x(e) {
return function(t) {
u[e] = t
}
}
function _(e) {
if (y(d, e)) {
var t = d[e];
delete d[e], f[e] = !0, a.apply(o, t)
}
if (!y(u, e) && !y(f, e)) throw new Error("No " + e);
return u[e]
}
function C(e) {
var t, n = e ? e.indexOf("!") : -1;
return -1 < n && (t = e.substring(0, n), e = e.substring(n + 1, e.length)), [t, e]
}
function k(e) {
return e ? C(e) : []
}
return t && t.requirejs || (t ? i = t : t = {}, u = {}, d = {}, h = {}, f = {}, p = Object.prototype.hasOwnProperty, g = [].slice, m = /\.js$/, l = function(e, t) {
var n, i, r = C(e),
o = r[0],
a = t[1];
return e = r[1], o && (n = _(o = b(o, a))), o ? e = n && n.normalize ? n.normalize(e, (i = a, function(e) {
return b(e, i)
})) : b(e, a) : (o = (r = C(e = b(e, a)))[0], e = r[1], o && (n = _(o))), {
f: o ? o + "!" + e : e,
n: e,
pr: o,
p: n
}
}, c = {
require: function(e) {
return w(e)
},
exports: function(e) {
var t = u[e];
return void 0 !== t ? t : u[e] = {}
},
module: function(e) {
return {
id: e,
uri: "",
exports: u[e],
config: (t = e, function() {
return h && h.config && h.config[t] || {}
})
};
var t
}
}, a = function(e, t, n, i) {
var r, a, s, h, p, g, m, v = [],
b = typeof n;
if (g = k(i = i || e), "undefined" == b || "function" == b) {
for (t = !t.length && n.length ? ["require", "exports", "module"] : t, p = 0; p < t.length; p += 1)
if ("require" === (a = (h = l(t[p], g)).f)) v[p] = c.require(e);
else if ("exports" === a) v[p] = c.exports(e), m = !0;
else if ("module" === a) r = v[p] = c.module(e);
else if (y(u, a) || y(d, a) || y(f, a)) v[p] = _(a);
else {
if (!h.p) throw new Error(e + " missing " + a);
h.p.load(h.n, w(i, !0), x(a), {}), v[p] = u[a]
}
s = n ? n.apply(u[e], v) : void 0, e && (r && r.exports !== o && r.exports !== u[e] ? u[e] = r.exports : s === o && m || (u[e] = s))
} else e && (u[e] = n)
}, n = i = s = function(e, t, n, i, r) {
if ("string" == typeof e) return c[e] ? c[e](t) : _(l(e, k(t)).f);
if (!e.splice) {
if ((h = e).deps && s(h.deps, h.callback), !t) return;
t.splice ? (e = t, t = n, n = null) : e = o
}
return t = t || function() {}, "function" == typeof n && (n = i, i = r), i ? a(o, e, t, n) : setTimeout((function() {
a(o, e, t, n)
}), 4), s
}, s.config = function(e) {
return s(e)
}, n._defined = u, (r = function(e, t, n) {
if ("string" != typeof e) throw new Error("See almond README: incorrect module build, no module name");
t.splice || (n = t, t = []), y(u, e) || y(d, e) || (d[e] = [e, t, n])
}).amd = {
jQuery: !0
}, t.requirejs = n, t.require = i, t.define = r), t.define("almond", (function() {})), t.define("jquery", [], (function() {
var t = e || $;
return null == t && console && console.error && console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."), t
})), t.define("select2/utils", ["jquery"], (function(e) {
var t = {};
function n(e) {
var t = e.prototype,
n = [];
for (var i in t) "function" == typeof t[i] && "constructor" !== i && n.push(i);
return n
}
function i() {
this.listeners = {}
}
t.Extend = function(e, t) {
var n = {}.hasOwnProperty;
function i() {
this.constructor = e
}
for (var r in t) n.call(t, r) && (e[r] = t[r]);
return i.prototype = t.prototype, e.prototype = new i, e.__super__ = t.prototype, e
}, t.Decorate = function(e, t) {
var i = n(t),
r = n(e);
function o() {
var n = Array.prototype.unshift,
i = t.prototype.constructor.length,
r = e.prototype.constructor;
0 < i && (n.call(arguments, e.prototype.constructor), r = t.prototype.constructor), r.apply(this, arguments)
}
t.displayName = e.displayName, o.prototype = new function() {
this.constructor = o
};
for (var a = 0; a < r.length; a++) {
var s = r[a];
o.prototype[s] = e.prototype[s]
}
function l(e) {
var n = function() {};
e in o.prototype && (n = o.prototype[e]);
var i = t.prototype[e];
return function() {
return Array.prototype.unshift.call(arguments, n), i.apply(this, arguments)
}
}
for (var c = 0; c < i.length; c++) {
var u = i[c];
o.prototype[u] = l(u)
}
return o
}, i.prototype.on = function(e, t) {
this.listeners = this.listeners || {}, e in this.listeners ? this.listeners[e].push(t) : this.listeners[e] = [t]
}, i.prototype.trigger = function(e) {
var t = Array.prototype.slice,
n = t.call(arguments, 1);
this.listeners = this.listeners || {}, null == n && (n = []), 0 === n.length && n.push({}), (n[0]._type = e) in this.listeners && this.invoke(this.listeners[e], t.call(arguments, 1)), "*" in this.listeners && this.invoke(this.listeners["*"], arguments)
}, i.prototype.invoke = function(e, t) {
for (var n = 0, i = e.length; n < i; n++) e[n].apply(this, t)
}, t.Observable = i, t.generateChars = function(e) {
for (var t = "", n = 0; n < e; n++) t += Math.floor(36 * Math.random()).toString(36);
return t
}, t.bind = function(e, t) {
return function() {
e.apply(t, arguments)
}
}, t._convertData = function(e) {
for (var t in e) {
var n = t.split("-"),
i = e;
if (1 !== n.length) {
for (var r = 0; r < n.length; r++) {
var o = n[r];
(o = o.substring(0, 1).toLowerCase() + o.substring(1)) in i || (i[o] = {}), r == n.length - 1 && (i[o] = e[t]), i = i[o]
}
delete e[t]
}
}
return e
}, t.hasScroll = function(t, n) {
var i = e(n),
r = n.style.overflowX,
o = n.style.overflowY;
return (r !== o || "hidden" !== o && "visible" !== o) && ("scroll" === r || "scroll" === o || i.innerHeight() < n.scrollHeight || i.innerWidth() < n.scrollWidth)
}, t.escapeMarkup = function(e) {
var t = {
"\\": "\",
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"/": "/"
};
return "string" != typeof e ? e : String(e).replace(/[&<>"'\/\\]/g, (function(e) {
return t[e]
}))
}, t.appendMany = function(t, n) {
if ("1.7" === e.fn.jquery.substr(0, 3)) {
var i = e();
e.map(n, (function(e) {
i = i.add(e)
})), n = i
}
t.append(n)
}, t.__cache = {};
var r = 0;
return t.GetUniqueElementId = function(e) {
var t = e.getAttribute("data-select2-id");
return null == t && (e.id ? (t = e.id, e.setAttribute("data-select2-id", t)) : (e.setAttribute("data-select2-id", ++r), t = r.toString())), t
}, t.StoreData = function(e, n, i) {
var r = t.GetUniqueElementId(e);
t.__cache[r] || (t.__cache[r] = {}), t.__cache[r][n] = i
}, t.GetData = function(n, i) {
var r = t.GetUniqueElementId(n);
return i ? t.__cache[r] && null != t.__cache[r][i] ? t.__cache[r][i] : e(n).data(i) : t.__cache[r]
}, t.RemoveData = function(e) {
var n = t.GetUniqueElementId(e);
null != t.__cache[n] && delete t.__cache[n], e.removeAttribute("data-select2-id")
}, t
})), t.define("select2/results", ["jquery", "./utils"], (function(e, t) {
function n(e, t, i) {
this.$element = e, this.data = i, this.options = t, n.__super__.constructor.call(this)
}
return t.Extend(n, t.Observable), n.prototype.render = function() {
var t = e('<ul class="select2-results__options" role="listbox"></ul>');
return this.options.get("multiple") && t.attr("aria-multiselectable", "true"), this.$results = t
}, n.prototype.clear = function() {
this.$results.empty()
}, n.prototype.displayMessage = function(t) {
var n = this.options.get("escapeMarkup");
this.clear(), this.hideLoading();
var i = e('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),
r = this.options.get("translations").get(t.message);
i.append(n(r(t.args))), i[0].className += " select2-results__message", this.$results.append(i)
}, n.prototype.hideMessages = function() {
this.$results.find(".select2-results__message").remove()
}, n.prototype.append = function(e) {
this.hideLoading();
var t = [];
if (null != e.results && 0 !== e.results.length) {
e.results = this.sort(e.results);
for (var n = 0; n < e.results.length; n++) {
var i = e.results[n],
r = this.option(i);
t.push(r)
}
this.$results.append(t)
} else 0 === this.$results.children().length && this.trigger("results:message", {
message: "noResults"
})
}, n.prototype.position = function(e, t) {
t.find(".select2-results").append(e)
}, n.prototype.sort = function(e) {
return this.options.get("sorter")(e)
}, n.prototype.highlightFirstItem = function() {
var e = this.$results.find(".select2-results__option[aria-selected]"),
t = e.filter("[aria-selected=true]");
0 < t.length ? t.first().trigger("mouseenter") : e.first().trigger("mouseenter"), this.ensureHighlightVisible()
}, n.prototype.setClasses = function() {
var n = this;
this.data.current((function(i) {
var r = e.map(i, (function(e) {
return e.id.toString()
}));
n.$results.find(".select2-results__option[aria-selected]").each((function() {
var n = e(this),
i = t.GetData(this, "data"),
o = "" + i.id;
null != i.element && i.element.selected || null == i.element && -1 < e.inArray(o, r) ? n.attr("aria-selected", "true") : n.attr("aria-selected", "false")
}))
}))
}, n.prototype.showLoading = function(e) {
this.hideLoading();
var t = {
disabled: !0,
loading: !0,
text: this.options.get("translations").get("searching")(e)
},
n = this.option(t);
n.className += " loading-results", this.$results.prepend(n)
}, n.prototype.hideLoading = function() {
this.$results.find(".loading-results").remove()
}, n.prototype.option = function(n) {
var i = document.createElement("li");
i.className = "select2-results__option";
var r = {
role: "option",
"aria-selected": "false"
},
o = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;
for (var a in (null != n.element && o.call(n.element, ":disabled") || null == n.element && n.disabled) && (delete r["aria-selected"], r["aria-disabled"] = "true"), null == n.id && delete r["aria-selected"], null != n._resultId && (i.id = n._resultId), n.title && (i.title = n.title), n.children && (r.role = "group", r["aria-label"] = n.text, delete r["aria-selected"]), r) {
var s = r[a];
i.setAttribute(a, s)
}
if (n.children) {
var l = e(i),
c = document.createElement("strong");
c.className = "select2-results__group", e(c), this.template(n, c);
for (var u = [], d = 0; d < n.children.length; d++) {
var h = n.children[d],
f = this.option(h);
u.push(f)
}
var p = e("<ul></ul>", {
class: "select2-results__options select2-results__options--nested"
});
p.append(u), l.append(c), l.append(p)
} else this.template(n, i);
return t.StoreData(i, "data", n), i
}, n.prototype.bind = function(n, i) {
var r = this,
o = n.id + "-results";
this.$results.attr("id", o), n.on("results:all", (function(e) {
r.clear(), r.append(e.data), n.isOpen() && (r.setClasses(), r.highlightFirstItem())
})), n.on("results:append", (function(e) {
r.append(e.data), n.isOpen() && r.setClasses()
})), n.on("query", (function(e) {
r.hideMessages(), r.showLoading(e)
})), n.on("select", (function() {
n.isOpen() && (r.setClasses(), r.options.get("scrollAfterSelect") && r.highlightFirstItem())
})), n.on("unselect", (function() {
n.isOpen() && (r.setClasses(), r.options.get("scrollAfterSelect") && r.highlightFirstItem())
})), n.on("open", (function() {
r.$results.attr("aria-expanded", "true"), r.$results.attr("aria-hidden", "false"), r.setClasses(), r.ensureHighlightVisible()
})), n.on("close", (function() {
r.$results.attr("aria-expanded", "false"), r.$results.attr("aria-hidden", "true"), r.$results.removeAttr("aria-activedescendant")
})), n.on("results:toggle", (function() {
var e = r.getHighlightedResults();
0 !== e.length && e.trigger("mouseup")
})), n.on("results:select", (function() {
var e = r.getHighlightedResults();
if (0 !== e.length) {
var n = t.GetData(e[0], "data");
"true" == e.attr("aria-selected") ? r.trigger("close", {}) : r.trigger("select", {
data: n
})
}
})), n.on("results:previous", (function() {
var e = r.getHighlightedResults(),
t = r.$results.find("[aria-selected]"),
n = t.index(e);
if (!(n <= 0)) {
var i = n - 1;
0 === e.length && (i = 0);
var o = t.eq(i);
o.trigger("mouseenter");
var a = r.$results.offset().top,
s = o.offset().top,
l = r.$results.scrollTop() + (s - a);
0 === i ? r.$results.scrollTop(0) : s - a < 0 && r.$results.scrollTop(l)
}
})), n.on("results:next", (function() {
var e = r.getHighlightedResults(),
t = r.$results.find("[aria-selected]"),
n = t.index(e) + 1;
if (!(n >= t.length)) {
var i = t.eq(n);
i.trigger("mouseenter");
var o = r.$results.offset().top + r.$results.outerHeight(!1),
a = i.offset().top + i.outerHeight(!1),
s = r.$results.scrollTop() + a - o;
0 === n ? r.$results.scrollTop(0) : o < a && r.$results.scrollTop(s)
}
})), n.on("results:focus", (function(e) {
e.element.addClass("select2-results__option--highlighted")
})), n.on("results:message", (function(e) {
r.displayMessage(e)
})), e.fn.mousewheel && this.$results.on("mousewheel", (function(e) {
var t = r.$results.scrollTop(),
n = r.$results.get(0).scrollHeight - t + e.deltaY,
i = 0 < e.deltaY && t - e.deltaY <= 0,
o = e.deltaY < 0 && n <= r.$results.height();
i ? (r.$results.scrollTop(0), e.preventDefault(), e.stopPropagation()) : o && (r.$results.scrollTop(r.$results.get(0).scrollHeight - r.$results.height()), e.preventDefault(), e.stopPropagation())
})), this.$results.on("mouseup", ".select2-results__option[aria-selected]", (function(n) {
var i = e(this),
o = t.GetData(this, "data");
"true" !== i.attr("aria-selected") ? r.trigger("select", {
originalEvent: n,
data: o
}) : r.options.get("multiple") ? r.trigger("unselect", {
originalEvent: n,
data: o
}) : r.trigger("close", {})
})), this.$results.on("mouseenter", ".select2-results__option[aria-selected]", (function(n) {
var i = t.GetData(this, "data");
r.getHighlightedResults().removeClass("select2-results__option--highlighted"), r.trigger("results:focus", {
data: i,
element: e(this)
})
}))
}, n.prototype.getHighlightedResults = function() {
return this.$results.find(".select2-results__option--highlighted")
}, n.prototype.destroy = function() {
this.$results.remove()
}, n.prototype.ensureHighlightVisible = function() {
var e = this.getHighlightedResults();
if (0 !== e.length) {
var t = this.$results.find("[aria-selected]").index(e),
n = this.$results.offset().top,
i = e.offset().top,
r = this.$results.scrollTop() + (i - n),
o = i - n;
r -= 2 * e.outerHeight(!1), t <= 2 ? this.$results.scrollTop(0) : (o > this.$results.outerHeight() || o < 0) && this.$results.scrollTop(r)
}
}, n.prototype.template = function(t, n) {
var i = this.options.get("templateResult"),
r = this.options.get("escapeMarkup"),
o = i(t, n);
null == o ? n.style.display = "none" : "string" == typeof o ? n.innerHTML = r(o) : e(n).append(o)
}, n
})), t.define("select2/keys", [], (function() {
return {
BACKSPACE: 8,
TAB: 9,
ENTER: 13,
SHIFT: 16,
CTRL: 17,
ALT: 18,
ESC: 27,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
END: 35,
HOME: 36,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DELETE: 46
}
})), t.define("select2/selection/base", ["jquery", "../utils", "../keys"], (function(e, t, n) {
function i(e, t) {
this.$element = e, this.options = t, i.__super__.constructor.call(this)
}
return t.Extend(i, t.Observable), i.prototype.render = function() {
var n = e('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');
return this._tabindex = 0, null != t.GetData(this.$element[0], "old-tabindex") ? this._tabindex = t.GetData(this.$element[0], "old-tabindex") : null != this.$element.attr("tabindex") && (this._tabindex = this.$element.attr("tabindex")), n.attr("title", this.$element.attr("title")), n.attr("tabindex", this._tabindex), n.attr("aria-disabled", "false"), this.$selection = n
}, i.prototype.bind = function(e, t) {
var i = this,
r = e.id + "-results";
this.container = e, this.$selection.on("focus", (function(e) {
i.trigger("focus", e)
})), this.$selection.on("blur", (function(e) {
i._handleBlur(e)
})), this.$selection.on("keydown", (function(e) {
i.trigger("keypress", e), e.which === n.SPACE && e.preventDefault()
})), e.on("results:focus", (function(e) {
i.$selection.attr("aria-activedescendant", e.data._resultId)
})), e.on("selection:update", (function(e) {
i.update(e.data)
})), e.on("open", (function() {
i.$selection.attr("aria-expanded", "true"), i.$selection.attr("aria-owns", r), i._attachCloseHandler(e)
})), e.on("close", (function() {
i.$selection.attr("aria-expanded", "false"), i.$selection.removeAttr("aria-activedescendant"), i.$selection.removeAttr("aria-owns"), i.$selection.trigger("focus"), i._detachCloseHandler(e)
})), e.on("enable", (function() {
i.$selection.attr("tabindex", i._tabindex), i.$selection.attr("aria-disabled", "false")
})), e.on("disable", (function() {
i.$selection.attr("tabindex", "-1"), i.$selection.attr("aria-disabled", "true")
}))
}, i.prototype._handleBlur = function(t) {
var n = this;
window.setTimeout((function() {
document.activeElement == n.$selection[0] || e.contains(n.$selection[0], document.activeElement) || n.trigger("blur", t)
}), 1)
}, i.prototype._attachCloseHandler = function(n) {
e(document.body).on("mousedown.select2." + n.id, (function(n) {
var i = e(n.target).closest(".select2");
e(".select2.select2-container--open").each((function() {
this != i[0] && t.GetData(this, "element").select2("close")
}))
}))
}, i.prototype._detachCloseHandler = function(t) {
e(document.body).off("mousedown.select2." + t.id)
}, i.prototype.position = function(e, t) {
t.find(".selection").append(e)
}, i.prototype.destroy = function() {
this._detachCloseHandler(this.container)
}, i.prototype.update = function(e) {
throw new Error("The `update` method must be defined in child classes.")
}, i.prototype.isEnabled = function() {
return !this.isDisabled()
}, i.prototype.isDisabled = function() {
return this.options.get("disabled")
}, i
})), t.define("select2/selection/single", ["jquery", "./base", "../utils", "../keys"], (function(e, t, n, i) {
function r() {
r.__super__.constructor.apply(this, arguments)
}
return n.Extend(r, t), r.prototype.render = function() {
var e = r.__super__.render.call(this);
return e.addClass("select2-selection--single"), e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'), e
}, r.prototype.bind = function(e, t) {
var n = this;
r.__super__.bind.apply(this, arguments);
var i = e.id + "-container";
this.$selection.find(".select2-selection__rendered").attr("id", i).attr("role", "textbox").attr("aria-readonly", "true"), this.$selection.attr("aria-labelledby", i), this.$selection.on("mousedown", (function(e) {
1 === e.which && n.trigger("toggle", {
originalEvent: e
})
})), this.$selection.on("focus", (function(e) {})), this.$selection.on("blur", (function(e) {})), e.on("focus", (function(t) {
e.isOpen() || n.$selection.trigger("focus")
}))
}, r.prototype.clear = function() {
var e = this.$selection.find(".select2-selection__rendered");
e.empty(), e.removeAttr("title")
}, r.prototype.display = function(e, t) {
var n = this.options.get("templateSelection");
return this.options.get("escapeMarkup")(n(e, t))
}, r.prototype.selectionContainer = function() {
return e("<span></span>")
}, r.prototype.update = function(e) {
if (0 !== e.length) {
var t = e[0],
n = this.$selection.find(".select2-selection__rendered"),
i = this.display(t, n);
n.empty().append(i);
var r = t.title || t.text;
r ? n.attr("title", r) : n.removeAttr("title")
} else this.clear()
}, r
})), t.define("select2/selection/multiple", ["jquery", "./base", "../utils"], (function(e, t, n) {
function i(e, t) {
i.__super__.constructor.apply(this, arguments)
}
return n.Extend(i, t), i.prototype.render = function() {
var e = i.__super__.render.call(this);
return e.addClass("select2-selection--multiple"), e.html('<ul class="select2-selection__rendered"></ul>'), e
}, i.prototype.bind = function(t, r) {
var o = this;
i.__super__.bind.apply(this, arguments), this.$selection.on("click", (function(e) {
o.trigger("toggle", {
originalEvent: e
})
})), this.$selection.on("click", ".select2-selection__choice__remove", (function(t) {
if (!o.isDisabled()) {
var i = e(this).parent(),
r = n.GetData(i[0], "data");
o.trigger("unselect", {
originalEvent: t,
data: r
})
}
}))
}, i.prototype.clear = function() {
var e = this.$selection.find(".select2-selection__rendered");
e.empty(), e.removeAttr("title")
}, i.prototype.display = function(e, t) {
var n = this.options.get("templateSelection");
return this.options.get("escapeMarkup")(n(e, t))
}, i.prototype.selectionContainer = function() {
return e('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')
}, i.prototype.update = function(e) {
if (this.clear(), 0 !== e.length) {
for (var t = [], i = 0; i < e.length; i++) {
var r = e[i],
o = this.selectionContainer(),
a = this.display(r, o);
o.append(a);
var s = r.title || r.text;
s && o.attr("title", s), n.StoreData(o[0], "data", r), t.push(o)
}
var l = this.$selection.find(".select2-selection__rendered");
n.appendMany(l, t)
}
}, i
})), t.define("select2/selection/placeholder", ["../utils"], (function(e) {
function t(e, t, n) {
this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n)
}
return t.prototype.normalizePlaceholder = function(e, t) {
return "string" == typeof t && (t = {
id: "",
text: t
}), t
}, t.prototype.createPlaceholder = function(e, t) {
var n = this.selectionContainer();
return n.html(this.display(t)), n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"), n
}, t.prototype.update = function(e, t) {
var n = 1 == t.length && t[0].id != this.placeholder.id;
if (1 < t.length || n) return e.call(this, t);
this.clear();
var i = this.createPlaceholder(this.placeholder);
this.$selection.find(".select2-selection__rendered").append(i)
}, t
})), t.define("select2/selection/allowClear", ["jquery", "../keys", "../utils"], (function(e, t, n) {
function i() {}
return i.prototype.bind = function(e, t, n) {
var i = this;
e.call(this, t, n), null == this.placeholder && this.options.get("debug") && window.console && console.error && console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."), this.$selection.on("mousedown", ".select2-selection__clear", (function(e) {
i._handleClear(e)
})), t.on("keypress", (function(e) {
i._handleKeyboardClear(e, t)
}))
}, i.prototype._handleClear = function(e, t) {
if (!this.isDisabled()) {
var i = this.$selection.find(".select2-selection__clear");
if (0 !== i.length) {
t.stopPropagation();
var r = n.GetData(i[0], "data"),
o = this.$element.val();
this.$element.val(this.placeholder.id);
var a = {
data: r
};
if (this.trigger("clear", a), a.prevented) this.$element.val(o);
else {
for (var s = 0; s < r.length; s++)
if (a = {
data: r[s]
}, this.trigger("unselect", a), a.prevented) return void this.$element.val(o);
this.$element.trigger("input").trigger("change"), this.trigger("toggle", {})
}
}
}
}, i.prototype._handleKeyboardClear = function(e, n, i) {
i.isOpen() || n.which != t.DELETE && n.which != t.BACKSPACE || this._handleClear(n)
}, i.prototype.update = function(t, i) {
if (t.call(this, i), !(0 < this.$selection.find(".select2-selection__placeholder").length || 0 === i.length)) {
var r = this.options.get("translations").get("removeAllItems"),
o = e('<span class="select2-selection__clear" title="' + r() + '">×</span>');
n.StoreData(o[0], "data", i), this.$selection.find(".select2-selection__rendered").prepend(o)
}
}, i
})), t.define("select2/selection/search", ["jquery", "../utils", "../keys"], (function(e, t, n) {
function i(e, t, n) {
e.call(this, t, n)
}
return i.prototype.render = function(t) {
var n = e('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');
this.$searchContainer = n, this.$search = n.find("input");
var i = t.call(this);
return this._transferTabIndex(), i
}, i.prototype.bind = function(e, i, r) {
var o = this,
a = i.id + "-results";
e.call(this, i, r), i.on("open", (function() {
o.$search.attr("aria-controls", a), o.$search.trigger("focus")
})), i.on("close", (function() {
o.$search.val(""), o.$search.removeAttr("aria-controls"), o.$search.removeAttr("aria-activedescendant"), o.$search.trigger("focus")
})), i.on("enable", (function() {
o.$search.prop("disabled", !1), o._transferTabIndex()
})), i.on("disable", (function() {
o.$search.prop("disabled", !0)
})), i.on("focus", (function(e) {
o.$search.trigger("focus")
})), i.on("results:focus", (function(e) {
e.data._resultId ? o.$search.attr("aria-activedescendant", e.data._resultId) : o.$search.removeAttr("aria-activedescendant")
})), this.$selection.on("focusin", ".select2-search--inline", (function(e) {
o.trigger("focus", e)
})), this.$selection.on("focusout", ".select2-search--inline", (function(e) {
o._handleBlur(e)
})), this.$selection.on("keydown", ".select2-search--inline", (function(e) {
if (e.stopPropagation(), o.trigger("keypress", e), o._keyUpPrevented = e.isDefaultPrevented(), e.which === n.BACKSPACE && "" === o.$search.val()) {
var i = o.$searchContainer.prev(".select2-selection__choice");
if (0 < i.length) {
var r = t.GetData(i[0], "data");
o.searchRemoveChoice(r), e.preventDefault()
}
}
})), this.$selection.on("click", ".select2-search--inline", (function(e) {
o.$search.val() && e.stopPropagation()
}));
var s = document.documentMode,
l = s && s <= 11;
this.$selection.on("input.searchcheck", ".select2-search--inline", (function(e) {
l ? o.$selection.off("input.search input.searchcheck") : o.$selection.off("keyup.search")
})), this.$selection.on("keyup.search input.search", ".select2-search--inline", (function(e) {
if (l && "input" === e.type) o.$selection.off("input.search input.searchcheck");
else {
var t = e.which;
t != n.SHIFT && t != n.CTRL && t != n.ALT && t != n.TAB && o.handleSearch(e)
}
}))
}, i.prototype._transferTabIndex = function(e) {
this.$search.attr("tabindex", this.$selection.attr("tabindex")), this.$selection.attr("tabindex", "-1")
}, i.prototype.createPlaceholder = function(e, t) {
this.$search.attr("placeholder", t.text)
}, i.prototype.update = function(e, t) {
var n = this.$search[0] == document.activeElement;
this.$search.attr("placeholder", ""), e.call(this, t), this.$selection.find(".select2-selection__rendered").append(this.$searchContainer), this.resizeSearch(), n && this.$search.trigger("focus")
}, i.prototype.handleSearch = function() {
if (this.resizeSearch(), !this._keyUpPrevented) {
var e = this.$search.val();
this.trigger("query", {
term: e
})
}
this._keyUpPrevented = !1
}, i.prototype.searchRemoveChoice = function(e, t) {
this.trigger("unselect", {
data: t
}), this.$search.val(t.text), this.handleSearch()
}, i.prototype.resizeSearch = function() {
this.$search.css("width", "25px");
var e = "";
e = "" !== this.$search.attr("placeholder") ? this.$selection.find(".select2-selection__rendered").width() : .75 * (this.$search.val().length + 1) + "em", this.$search.css("width", e)
}, i
})), t.define("select2/selection/eventRelay", ["jquery"], (function(e) {
function t() {}
return t.prototype.bind = function(t, n, i) {
var r = this,
o = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing"],
a = ["opening", "closing", "selecting", "unselecting", "clearing"];
t.call(this, n, i), n.on("*", (function(t, n) {
if (-1 !== e.inArray(t, o)) {
n = n || {};
var i = e.Event("select2:" + t, {
params: n
});
r.$element.trigger(i), -1 !== e.inArray(t, a) && (n.prevented = i.isDefaultPrevented())
}
}))
}, t
})), t.define("select2/translation", ["jquery", "require"], (function(e, t) {
function n(e) {
this.dict = e || {}
}
return n.prototype.all = function() {
return this.dict
}, n.prototype.get = function(e) {
return this.dict[e]
}, n.prototype.extend = function(t) {
this.dict = e.extend({}, t.all(), this.dict)
}, n._cache = {}, n.loadPath = function(e) {
if (!(e in n._cache)) {
var i = t(e);
n._cache[e] = i
}
return new n(n._cache[e])
}, n
})), t.define("select2/diacritics", [], (function() {
return {
"Ⓐ": "A",
"A": "A",
"À": "A",
"Á": "A",
"Â": "A",
"Ầ": "A",
"Ấ": "A",
"Ẫ": "A",
"Ẩ": "A",
"Ã": "A",
"Ā": "A",
"Ă": "A",
"Ằ": "A",
"Ắ": "A",
"Ẵ": "A",
"Ẳ": "A",
"Ȧ": "A",
"Ǡ": "A",
"Ä": "A",
"Ǟ": "A",
"Ả": "A",
"Å": "A",
"Ǻ": "A",
"Ǎ": "A",
"Ȁ": "A",
"Ȃ": "A",
"Ạ": "A",
"Ậ": "A",
"Ặ": "A",
"Ḁ": "A",
"Ą": "A",
"Ⱥ": "A",
"Ɐ": "A",
"Ꜳ": "AA",
"Æ": "AE",
"Ǽ": "AE",
"Ǣ": "AE",
"Ꜵ": "AO",
"Ꜷ": "AU",
"Ꜹ": "AV",
"Ꜻ": "AV",
"Ꜽ": "AY",
"Ⓑ": "B",
"B": "B",
"Ḃ": "B",
"Ḅ": "B",
"Ḇ": "B",
"Ƀ": "B",
"Ƃ": "B",
"Ɓ": "B",
"Ⓒ": "C",
"C": "C",
"Ć": "C",
"Ĉ": "C",
"Ċ": "C",
"Č": "C",
"Ç": "C",
"Ḉ": "C",
"Ƈ": "C",
"Ȼ": "C",
"Ꜿ": "C",
"Ⓓ": "D",
"D": "D",
"Ḋ": "D",
"Ď": "D",
"Ḍ": "D",
"Ḑ": "D",
"Ḓ": "D",
"Ḏ": "D",
"Đ": "D",
"Ƌ": "D",
"Ɗ": "D",
"Ɖ": "D",
"Ꝺ": "D",
"DZ": "DZ",
"DŽ": "DZ",
"Dz": "Dz",
"Dž": "Dz",
"Ⓔ": "E",
"E": "E",
"È": "E",
"É": "E",
"Ê": "E",
"Ề": "E",
"Ế": "E",
"Ễ": "E",
"Ể": "E",
"Ẽ": "E",
"Ē": "E",
"Ḕ": "E",
"Ḗ": "E",
"Ĕ": "E",
"Ė": "E",
"Ë": "E",
"Ẻ": "E",
"Ě": "E",
"Ȅ": "E",
"Ȇ": "E",
"Ẹ": "E",
"Ệ": "E",
"Ȩ": "E",
"Ḝ": "E",
"Ę": "E",
"Ḙ": "E",
"Ḛ": "E",
"Ɛ": "E",
"Ǝ": "E",
"Ⓕ": "F",
"F": "F",
"Ḟ": "F",
"Ƒ": "F",
"Ꝼ": "F",
"Ⓖ": "G",
"G": "G",
"Ǵ": "G",
"Ĝ": "G",
"Ḡ": "G",
"Ğ": "G",
"Ġ": "G",
"Ǧ": "G",
"Ģ": "G",
"Ǥ": "G",
"Ɠ": "G",
"Ꞡ": "G",
"Ᵹ": "G",
"Ꝿ": "G",
"Ⓗ": "H",
"H": "H",
"Ĥ": "H",
"Ḣ": "H",
"Ḧ": "H",
"Ȟ": "H",
"Ḥ": "H",
"Ḩ": "H",
"Ḫ": "H",
"Ħ": "H",
"Ⱨ": "H",
"Ⱶ": "H",
"Ɥ": "H",
"Ⓘ": "I",
"I": "I",
"Ì": "I",
"Í": "I",
"Î": "I",
"Ĩ": "I",
"Ī": "I",
"Ĭ": "I",
"İ": "I",
"Ï": "I",
"Ḯ": "I",
"Ỉ": "I",
"Ǐ": "I",
"Ȉ": "I",
"Ȋ": "I",
"Ị": "I",
"Į": "I",
"Ḭ": "I",
"Ɨ": "I",
"Ⓙ": "J",
"J": "J",
"Ĵ": "J",
"Ɉ": "J",
"Ⓚ": "K",
"K": "K",
"Ḱ": "K",
"Ǩ": "K",
"Ḳ": "K",
"Ķ": "K",
"Ḵ": "K",
"Ƙ": "K",
"Ⱪ": "K",
"Ꝁ": "K",
"Ꝃ": "K",
"Ꝅ": "K",
"Ꞣ": "K",
"Ⓛ": "L",
"L": "L",
"Ŀ": "L",
"Ĺ": "L",
"Ľ": "L",
"Ḷ": "L",
"Ḹ": "L",
"Ļ": "L",
"Ḽ": "L",
"Ḻ": "L",
"Ł": "L",
"Ƚ": "L",
"Ɫ": "L",
"Ⱡ": "L",
"Ꝉ": "L",
"Ꝇ": "L",
"Ꞁ": "L",
"LJ": "LJ",
"Lj": "Lj",
"Ⓜ": "M",
"M": "M",
"Ḿ": "M",
"Ṁ": "M",
"Ṃ": "M",
"Ɱ": "M",
"Ɯ": "M",
"Ⓝ": "N",
"N": "N",
"Ǹ": "N",
"Ń": "N",
"Ñ": "N",
"Ṅ": "N",
"Ň": "N",
"Ṇ": "N",
"Ņ": "N",
"Ṋ": "N",
"Ṉ": "N",
"Ƞ": "N",
"Ɲ": "N",
"Ꞑ": "N",
"Ꞥ": "N",
"NJ": "NJ",
"Nj": "Nj",
"Ⓞ": "O",
"O": "O",
"Ò": "O",
"Ó": "O",
"Ô": "O",
"Ồ": "O",
"Ố": "O",
"Ỗ": "O",
"Ổ": "O",
"Õ": "O",
"Ṍ": "O",
"Ȭ": "O",
"Ṏ": "O",
"Ō": "O",
"Ṑ": "O",
"Ṓ": "O",
"Ŏ": "O",
"Ȯ": "O",
"Ȱ": "O",
"Ö": "O",
"Ȫ": "O",
"Ỏ": "O",
"Ő": "O",
"Ǒ": "O",
"Ȍ": "O",
"Ȏ": "O",
"Ơ": "O",
"Ờ": "O",
"Ớ": "O",
"Ỡ": "O",
"Ở": "O",
"Ợ": "O",
"Ọ": "O",
"Ộ": "O",
"Ǫ": "O",
"Ǭ": "O",
"Ø": "O",
"Ǿ": "O",
"Ɔ": "O",
"Ɵ": "O",
"Ꝋ": "O",
"Ꝍ": "O",
"Œ": "OE",
"Ƣ": "OI",
"Ꝏ": "OO",
"Ȣ": "OU",
"Ⓟ": "P",
"P": "P",
"Ṕ": "P",
"Ṗ": "P",
"Ƥ": "P",
"Ᵽ": "P",
"Ꝑ": "P",
"Ꝓ": "P",
"Ꝕ": "P",
"Ⓠ": "Q",
"Q": "Q",
"Ꝗ": "Q",
"Ꝙ": "Q",
"Ɋ": "Q",
"Ⓡ": "R",
"R": "R",
"Ŕ": "R",
"Ṙ": "R",
"Ř": "R",
"Ȑ": "R",
"Ȓ": "R",
"Ṛ": "R",
"Ṝ": "R",
"Ŗ": "R",
"Ṟ": "R",
"Ɍ": "R",
"Ɽ": "R",
"Ꝛ": "R",
"Ꞧ": "R",
"Ꞃ": "R",
"Ⓢ": "S",
"S": "S",
"ẞ": "S",
"Ś": "S",
"Ṥ": "S",
"Ŝ": "S",
"Ṡ": "S",
"Š": "S",
"Ṧ": "S",
"Ṣ": "S",
"Ṩ": "S",
"Ș": "S",
"Ş": "S",
"Ȿ": "S",
"Ꞩ": "S",
"Ꞅ": "S",
"Ⓣ": "T",
"T": "T",
"Ṫ": "T",
"Ť": "T",
"Ṭ": "T",
"Ț": "T",
"Ţ": "T",
"Ṱ": "T",
"Ṯ": "T",
"Ŧ": "T",
"Ƭ": "T",
"Ʈ": "T",
"Ⱦ": "T",
"Ꞇ": "T",
"Ꜩ": "TZ",
"Ⓤ": "U",
"U": "U",
"Ù": "U",
"Ú": "U",
"Û": "U",
"Ũ": "U",
"Ṹ": "U",
"Ū": "U",
"Ṻ": "U",
"Ŭ": "U",
"Ü": "U",
"Ǜ": "U",
"Ǘ": "U",
"Ǖ": "U",
"Ǚ": "U",
"Ủ": "U",
"Ů": "U",
"Ű": "U",
"Ǔ": "U",
"Ȕ": "U",
"Ȗ": "U",
"Ư": "U",
"Ừ": "U",
"Ứ": "U",
"Ữ": "U",
"Ử": "U",
"Ự": "U",
"Ụ": "U",
"Ṳ": "U",
"Ų": "U",
"Ṷ": "U",
"Ṵ": "U",
"Ʉ": "U",
"Ⓥ": "V",
"V": "V",
"Ṽ": "V",
"Ṿ": "V",
"Ʋ": "V",
"Ꝟ": "V",
"Ʌ": "V",
"Ꝡ": "VY",
"Ⓦ": "W",
"W": "W",
"Ẁ": "W",
"Ẃ": "W",
"Ŵ": "W",
"Ẇ": "W",
"Ẅ": "W",
"Ẉ": "W",
"Ⱳ": "W",
"Ⓧ": "X",
"X": "X",
"Ẋ": "X",
"Ẍ": "X",
"Ⓨ": "Y",
"Y": "Y",
"Ỳ": "Y",
"Ý": "Y",
"Ŷ": "Y",
"Ỹ": "Y",
"Ȳ": "Y",
"Ẏ": "Y",
"Ÿ": "Y",
"Ỷ": "Y",
"Ỵ": "Y",
"Ƴ": "Y",
"Ɏ": "Y",
"Ỿ": "Y",
"Ⓩ": "Z",
"Z": "Z",
"Ź": "Z",
"Ẑ": "Z",
"Ż": "Z",
"Ž": "Z",
"Ẓ": "Z",
"Ẕ": "Z",
"Ƶ": "Z",
"Ȥ": "Z",
"Ɀ": "Z",
"Ⱬ": "Z",
"Ꝣ": "Z",
"ⓐ": "a",
"a": "a",
"ẚ": "a",
"à": "a",
"á": "a",
"â": "a",
"ầ": "a",
"ấ": "a",
"ẫ": "a",
"ẩ": "a",
"ã": "a",
"ā": "a",
"ă": "a",
"ằ": "a",
"ắ": "a",
"ẵ": "a",
"ẳ": "a",
"ȧ": "a",
"ǡ": "a",
"ä": "a",
"ǟ": "a",
"ả": "a",
"å": "a",
"ǻ": "a",
"ǎ": "a",
"ȁ": "a",
"ȃ": "a",
"ạ": "a",
"ậ": "a",
"ặ": "a",
"ḁ": "a",
"ą": "a",
"ⱥ": "a",
"ɐ": "a",
"ꜳ": "aa",
"æ": "ae",
"ǽ": "ae",
"ǣ": "ae",
"ꜵ": "ao",
"ꜷ": "au",
"ꜹ": "av",
"ꜻ": "av",
"ꜽ": "ay",
"ⓑ": "b",
"b": "b",
"ḃ": "b",
"ḅ": "b",
"ḇ": "b",
"ƀ": "b",
"ƃ": "b",
"ɓ": "b",
"ⓒ": "c",
"c": "c",
"ć": "c",
"ĉ": "c",
"ċ": "c",
"č": "c",
"ç": "c",
"ḉ": "c",
"ƈ": "c",
"ȼ": "c",
"ꜿ": "c",
"ↄ": "c",
"ⓓ": "d",
"d": "d",
"ḋ": "d",
"ď": "d",
"ḍ": "d",
"ḑ": "d",
"ḓ": "d",
"ḏ": "d",
"đ": "d",
"ƌ": "d",
"ɖ": "d",
"ɗ": "d",
"ꝺ": "d",
"dz": "dz",
"dž": "dz",
"ⓔ": "e",
"e": "e",
"è": "e",
"é": "e",
"ê": "e",
"ề": "e",
"ế": "e",
"ễ": "e",
"ể": "e",
"ẽ": "e",
"ē": "e",
"ḕ": "e",
"ḗ": "e",
"ĕ": "e",
"ė": "e",
"ë": "e",
"ẻ": "e",
"ě": "e",
"ȅ": "e",
"ȇ": "e",
"ẹ": "e",
"ệ": "e",
"ȩ": "e",
"ḝ": "e",
"ę": "e",
"ḙ": "e",
"ḛ": "e",
"ɇ": "e",
"ɛ": "e",
"ǝ": "e",
"ⓕ": "f",
"f": "f",
"ḟ": "f",
"ƒ": "f",
"ꝼ": "f",
"ⓖ": "g",
"g": "g",
"ǵ": "g",
"ĝ": "g",
"ḡ": "g",
"ğ": "g",
"ġ": "g",
"ǧ": "g",
"ģ": "g",
"ǥ": "g",
"ɠ": "g",
"ꞡ": "g",
"ᵹ": "g",
"ꝿ": "g",
"ⓗ": "h",
"h": "h",
"ĥ": "h",
"ḣ": "h",
"ḧ": "h",
"ȟ": "h",
"ḥ": "h",
"ḩ": "h",
"ḫ": "h",
"ẖ": "h",
"ħ": "h",
"ⱨ": "h",
"ⱶ": "h",
"ɥ": "h",
"ƕ": "hv",
"ⓘ": "i",
"i": "i",
"ì": "i",
"í": "i",
"î": "i",
"ĩ": "i",
"ī": "i",
"ĭ": "i",
"ï": "i",
"ḯ": "i",
"ỉ": "i",
"ǐ": "i",
"ȉ": "i",
"ȋ": "i",
"ị": "i",
"į": "i",
"ḭ": "i",
"ɨ": "i",
"ı": "i",
"ⓙ": "j",
"j": "j",
"ĵ": "j",
"ǰ": "j",
"ɉ": "j",
"ⓚ": "k",
"k": "k",
"ḱ": "k",
"ǩ": "k",
"ḳ": "k",
"ķ": "k",
"ḵ": "k",
"ƙ": "k",
"ⱪ": "k",
"ꝁ": "k",
"ꝃ": "k",
"ꝅ": "k",
"ꞣ": "k",
"ⓛ": "l",
"l": "l",
"ŀ": "l",
"ĺ": "l",
"ľ": "l",
"ḷ": "l",
"ḹ": "l",
"ļ": "l",
"ḽ": "l",
"ḻ": "l",
"ſ": "l",
"ł": "l",
"ƚ": "l",
"ɫ": "l",
"ⱡ": "l",
"ꝉ": "l",
"ꞁ": "l",
"ꝇ": "l",
"lj": "lj",
"ⓜ": "m",
"m": "m",
"ḿ": "m",
"ṁ": "m",
"ṃ": "m",
"ɱ": "m",
"ɯ": "m",
"ⓝ": "n",
"n": "n",
"ǹ": "n",
"ń": "n",
"ñ": "n",
"ṅ": "n",
"ň": "n",
"ṇ": "n",
"ņ": "n",
"ṋ": "n",
"ṉ": "n",
"ƞ": "n",
"ɲ": "n",
"ʼn": "n",
"ꞑ": "n",
"ꞥ": "n",
"nj": "nj",
"ⓞ": "o",
"o": "o",
"ò": "o",
"ó": "o",
"ô": "o",
"ồ": "o",
"ố": "o",
"ỗ": "o",
"ổ": "o",
"õ": "o",
"ṍ": "o",
"ȭ": "o",
"ṏ": "o",
"ō": "o",
"ṑ": "o",
"ṓ": "o",
"ŏ": "o",
"ȯ": "o",
"ȱ": "o",
"ö": "o",
"ȫ": "o",
"ỏ": "o",
"ő": "o",
"ǒ": "o",
"ȍ": "o",
"ȏ": "o",
"ơ": "o",
"ờ": "o",
"ớ": "o",
"ỡ": "o",
"ở": "o",
"ợ": "o",
"ọ": "o",
"ộ": "o",
"ǫ": "o",
"ǭ": "o",
"ø": "o",
"ǿ": "o",
"ɔ": "o",
"ꝋ": "o",
"ꝍ": "o",
"ɵ": "o",
"œ": "oe",
"ƣ": "oi",
"ȣ": "ou",
"ꝏ": "oo",
"ⓟ": "p",
"p": "p",
"ṕ": "p",
"ṗ": "p",
"ƥ": "p",
"ᵽ": "p",
"ꝑ": "p",
"ꝓ": "p",
"ꝕ": "p",
"ⓠ": "q",
"q": "q",
"ɋ": "q",
"ꝗ": "q",
"ꝙ": "q",
"ⓡ": "r",
"r": "r",
"ŕ": "r",
"ṙ": "r",
"ř": "r",
"ȑ": "r",
"ȓ": "r",
"ṛ": "r",
"ṝ": "r",
"ŗ": "r",
"ṟ": "r",
"ɍ": "r",
"ɽ": "r",
"ꝛ": "r",
"ꞧ": "r",
"ꞃ": "r",
"ⓢ": "s",
"s": "s",
"ß": "s",
"ś": "s",
"ṥ": "s",
"ŝ": "s",
"ṡ": "s",
"š": "s",
"ṧ": "s",
"ṣ": "s",
"ṩ": "s",
"ș": "s",
"ş": "s",
"ȿ": "s",
"ꞩ": "s",
"ꞅ": "s",
"ẛ": "s",
"ⓣ": "t",
"t": "t",
"ṫ": "t",
"ẗ": "t",
"ť": "t",
"ṭ": "t",
"ț": "t",
"ţ": "t",
"ṱ": "t",
"ṯ": "t",
"ŧ": "t",
"ƭ": "t",
"ʈ": "t",
"ⱦ": "t",
"ꞇ": "t",
"ꜩ": "tz",
"ⓤ": "u",
"u": "u",
"ù": "u",
"ú": "u",
"û": "u",
"ũ": "u",
"ṹ": "u",
"ū": "u",
"ṻ": "u",
"ŭ": "u",
"ü": "u",
"ǜ": "u",
"ǘ": "u",
"ǖ": "u",
"ǚ": "u",
"ủ": "u",
"ů": "u",
"ű": "u",
"ǔ": "u",
"ȕ": "u",
"ȗ": "u",
"ư": "u",
"ừ": "u",
"ứ": "u",
"ữ": "u",
"ử": "u",
"ự": "u",
"ụ": "u",
"ṳ": "u",
"ų": "u",
"ṷ": "u",
"ṵ": "u",
"ʉ": "u",
"ⓥ": "v",
"v": "v",
"ṽ": "v",
"ṿ": "v",
"ʋ": "v",
"ꝟ": "v",
"ʌ": "v",
"ꝡ": "vy",
"ⓦ": "w",
"w": "w",
"ẁ": "w",
"ẃ": "w",
"ŵ": "w",
"ẇ": "w",
"ẅ": "w",
"ẘ": "w",
"ẉ": "w",
"ⱳ": "w",
"ⓧ": "x",
"x": "x",
"ẋ": "x",
"ẍ": "x",
"ⓨ": "y",
"y": "y",
"ỳ": "y",
"ý": "y",
"ŷ": "y",
"ỹ": "y",
"ȳ": "y",
"ẏ": "y",
"ÿ": "y",
"ỷ": "y",
"ẙ": "y",
"ỵ": "y",
"ƴ": "y",
"ɏ": "y",
"ỿ": "y",
"ⓩ": "z",
"z": "z",
"ź": "z",
"ẑ": "z",
"ż": "z",
"ž": "z",
"ẓ": "z",
"ẕ": "z",
"ƶ": "z",
"ȥ": "z",
"ɀ": "z",
"ⱬ": "z",
"ꝣ": "z",
"Ά": "Α",
"Έ": "Ε",
"Ή": "Η",
"Ί": "Ι",
"Ϊ": "Ι",
"Ό": "Ο",
"Ύ": "Υ",
"Ϋ": "Υ",
"Ώ": "Ω",
"ά": "α",
"έ": "ε",
"ή": "η",
"ί": "ι",
"ϊ": "ι",
"ΐ": "ι",
"ό": "ο",
"ύ": "υ",
"ϋ": "υ",
"ΰ": "υ",
"ώ": "ω",
"ς": "σ",
"’": "'"
}
})), t.define("select2/data/base", ["../utils"], (function(e) {
function t(e, n) {
t.__super__.constructor.call(this)
}
return e.Extend(t, e.Observable), t.prototype.current = function(e) {
throw new Error("The `current` method must be defined in child classes.")
}, t.prototype.query = function(e, t) {
throw new Error("The `query` method must be defined in child classes.")
}, t.prototype.bind = function(e, t) {}, t.prototype.destroy = function() {}, t.prototype.generateResultId = function(t, n) {
var i = t.id + "-result-";
return i += e.generateChars(4), null != n.id ? i += "-" + n.id.toString() : i += "-" + e.generateChars(4), i
}, t
})), t.define("select2/data/select", ["./base", "../utils", "jquery"], (function(e, t, n) {
function i(e, t) {
this.$element = e, this.options = t, i.__super__.constructor.call(this)
}
return t.Extend(i, e), i.prototype.current = function(e) {
var t = [],
i = this;
this.$element.find(":selected").each((function() {
var e = n(this),
r = i.item(e);
t.push(r)
})), e(t)
}, i.prototype.select = function(e) {
var t = this;
if (e.selected = !0, n(e.element).is("option")) return e.element.selected = !0, void this.$element.trigger("input").trigger("change");
if (this.$element.prop("multiple")) this.current((function(i) {
var r = [];
(e = [e]).push.apply(e, i);
for (var o = 0; o < e.length; o++) {
var a = e[o].id; - 1 === n.inArray(a, r) && r.push(a)
}
t.$element.val(r), t.$element.trigger("input").trigger("change")
}));
else {
var i = e.id;
this.$element.val(i), this.$element.trigger("input").trigger("change")
}
}, i.prototype.unselect = function(e) {
var t = this;
if (this.$element.prop("multiple")) {
if (e.selected = !1, n(e.element).is("option")) return e.element.selected = !1, void this.$element.trigger("input").trigger("change");
this.current((function(i) {
for (var r = [], o = 0; o < i.length; o++) {
var a = i[o].id;
a !== e.id && -1 === n.inArray(a, r) && r.push(a)
}
t.$element.val(r), t.$element.trigger("input").trigger("change")
}))
}
}, i.prototype.bind = function(e, t) {
var n = this;
(this.container = e).on("select", (function(e) {
n.select(e.data)
})), e.on("unselect", (function(e) {
n.unselect(e.data)
}))
}, i.prototype.destroy = function() {
this.$element.find("*").each((function() {
t.RemoveData(this)
}))
}, i.prototype.query = function(e, t) {
var i = [],
r = this;
this.$element.children().each((function() {
var t = n(this);
if (t.is("option") || t.is("optgroup")) {
var o = r.item(t),
a = r.matches(e, o);
null !== a && i.push(a)
}
})), t({
results: i
})
}, i.prototype.addOptions = function(e) {
t.appendMany(this.$element, e)
}, i.prototype.option = function(e) {
var i;
e.children ? (i = document.createElement("optgroup")).label = e.text : void 0 !== (i = document.createElement("option")).textContent ? i.textContent = e.text : i.innerText = e.text, void 0 !== e.id && (i.value = e.id), e.disabled && (i.disabled = !0), e.selected && (i.selected = !0), e.title && (i.title = e.title);
var r = n(i),
o = this._normalizeItem(e);
return o.element = i, t.StoreData(i, "data", o), r
}, i.prototype.item = function(e) {
var i = {};
if (null != (i = t.GetData(e[0], "data"))) return i;
if (e.is("option")) i = {
id: e.val(),
text: e.text(),
disabled: e.prop("disabled"),
selected: e.prop("selected"),
title: e.prop("title")
};
else if (e.is("optgroup")) {
i = {
text: e.prop("label"),
children: [],
title: e.prop("title")
};
for (var r = e.children("option"), o = [], a = 0; a < r.length; a++) {
var s = n(r[a]),
l = this.item(s);
o.push(l)
}
i.children = o
}
return (i = this._normalizeItem(i)).element = e[0], t.StoreData(e[0], "data", i), i
}, i.prototype._normalizeItem = function(e) {
return e !== Object(e) && (e = {
id: e,
text: e
}), null != (e = n.extend({}, {
text: ""
}, e)).id && (e.id = e.id.toString()), null != e.text && (e.text = e.text.toString()), null == e._resultId && e.id && null != this.container && (e._resultId = this.generateResultId(this.container, e)), n.extend({}, {
selected: !1,
disabled: !1
}, e)
}, i.prototype.matches = function(e, t) {
return this.options.get("matcher")(e, t)
}, i
})), t.define("select2/data/array", ["./select", "../utils", "jquery"], (function(e, t, n) {
function i(e, t) {
this._dataToConvert = t.get("data") || [], i.__super__.constructor.call(this, e, t)
}
return t.Extend(i, e), i.prototype.bind = function(e, t) {
i.__super__.bind.call(this, e, t), this.addOptions(this.convertToOptions(this._dataToConvert))
}, i.prototype.select = function(e) {
var t = this.$element.find("option").filter((function(t, n) {
return n.value == e.id.toString()
}));
0 === t.length && (t = this.option(e), this.addOptions(t)), i.__super__.select.call(this, e)
}, i.prototype.convertToOptions = function(e) {
var i = this,
r = this.$element.find("option"),
o = r.map((function() {
return i.item(n(this)).id
})).get(),
a = [];
function s(e) {
return function() {
return n(this).val() == e.id
}
}
for (var l = 0; l < e.length; l++) {
var c = this._normalizeItem(e[l]);
if (0 <= n.inArray(c.id, o)) {
var u = r.filter(s(c)),
d = this.item(u),
h = n.extend(!0, {}, c, d),
f = this.option(h);
u.replaceWith(f)
} else {
var p = this.option(c);
if (c.children) {
var g = this.convertToOptions(c.children);
t.appendMany(p, g)
}
a.push(p)
}
}
return a
}, i
})), t.define("select2/data/ajax", ["./array", "../utils", "jquery"], (function(e, t, n) {
function i(e, t) {
this.ajaxOptions = this._applyDefaults(t.get("ajax")), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), i.__super__.constructor.call(this, e, t)
}
return t.Extend(i, e), i.prototype._applyDefaults = function(e) {
var t = {
data: function(e) {
return n.extend({}, e, {
q: e.term
})
},
transport: function(e, t, i) {
var r = n.ajax(e);
return r.then(t), r.fail(i), r
}
};
return n.extend({}, t, e, !0)
}, i.prototype.processResults = function(e) {
return e
}, i.prototype.query = function(e, t) {
var i = this;
null != this._request && (n.isFunction(this._request.abort) && this._request.abort(), this._request = null);
var r = n.extend({
type: "GET"
}, this.ajaxOptions);
function o() {
var o = r.transport(r, (function(r) {
var o = i.processResults(r, e);
i.options.get("debug") && window.console && console.error && (o && o.results && n.isArray(o.results) || console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")), t(o)
}), (function() {
"status" in o && (0 === o.status || "0" === o.status) || i.trigger("results:message", {
message: "errorLoading"
})
}));
i._request = o
}
"function" == typeof r.url && (r.url = r.url.call(this.$element, e)), "function" == typeof r.data && (r.data = r.data.call(this.$element, e)), this.ajaxOptions.delay && null != e.term ? (this._queryTimeout && window.clearTimeout(this._queryTimeout), this._queryTimeout = window.setTimeout(o, this.ajaxOptions.delay)) : o()
}, i
})), t.define("select2/data/tags", ["jquery"], (function(e) {
function t(t, n, i) {
var r = i.get("tags"),
o = i.get("createTag");
void 0 !== o && (this.createTag = o);
var a = i.get("insertTag");
if (void 0 !== a && (this.insertTag = a), t.call(this, n, i), e.isArray(r))
for (var s = 0; s < r.length; s++) {
var l = r[s],
c = this._normalizeItem(l),
u = this.option(c);
this.$element.append(u)
}
}
return t.prototype.query = function(e, t, n) {
var i = this;
this._removeOldTags(), null != t.term && null == t.page ? e.call(this, t, (function e(r, o) {
for (var a = r.results, s = 0; s < a.length; s++) {
var l = a[s],
c = null != l.children && !e({
results: l.children
}, !0);
if ((l.text || "").toUpperCase() === (t.term || "").toUpperCase() || c) return !o && (r.data = a, void n(r))
}
if (o) return !0;
var u = i.createTag(t);
if (null != u) {
var d = i.option(u);
d.attr("data-select2-tag", !0), i.addOptions([d]), i.insertTag(a, u)
}
r.results = a, n(r)
})) : e.call(this, t, n)
}, t.prototype.createTag = function(t, n) {
var i = e.trim(n.term);
return "" === i ? null : {
id: i,
text: i
}
}, t.prototype.insertTag = function(e, t, n) {
t.unshift(n)
}, t.prototype._removeOldTags = function(t) {
this.$element.find("option[data-select2-tag]").each((function() {
this.selected || e(this).remove()
}))
}, t
})), t.define("select2/data/tokenizer", ["jquery"], (function(e) {
function t(e, t, n) {
var i = n.get("tokenizer");
void 0 !== i && (this.tokenizer = i), e.call(this, t, n)
}
return t.prototype.bind = function(e, t, n) {
e.call(this, t, n), this.$search = t.dropdown.$search || t.selection.$search || n.find(".select2-search__field")
}, t.prototype.query = function(t, n, i) {
var r = this;
n.term = n.term || "";
var o = this.tokenizer(n, this.options, (function(t) {
var n, i = r._normalizeItem(t);
if (!r.$element.find("option").filter((function() {
return e(this).val() === i.id
})).length) {
var o = r.option(i);
o.attr("data-select2-tag", !0), r._removeOldTags(), r.addOptions([o])
}
n = i, r.trigger("select", {
data: n
})
}));
o.term !== n.term && (this.$search.length && (this.$search.val(o.term), this.$search.trigger("focus")), n.term = o.term), t.call(this, n, i)
}, t.prototype.tokenizer = function(t, n, i, r) {
for (var o = i.get("tokenSeparators") || [], a = n.term, s = 0, l = this.createTag || function(e) {
return {
id: e.term,
text: e.term
}
}; s < a.length;) {
var c = a[s];
if (-1 !== e.inArray(c, o)) {
var u = a.substr(0, s),
d = l(e.extend({}, n, {
term: u
}));
null != d ? (r(d), a = a.substr(s + 1) || "", s = 0) : s++
} else s++
}
return {
term: a
}
}, t
})), t.define("select2/data/minimumInputLength", [], (function() {
function e(e, t, n) {
this.minimumInputLength = n.get("minimumInputLength"), e.call(this, t, n)
}
return e.prototype.query = function(e, t, n) {
t.term = t.term || "", t.term.length < this.minimumInputLength ? this.trigger("results:message", {
message: "inputTooShort",
args: {
minimum: this.minimumInputLength,
input: t.term,
params: t
}
}) : e.call(this, t, n)
}, e
})), t.define("select2/data/maximumInputLength", [], (function() {
function e(e, t, n) {
this.maximumInputLength = n.get("maximumInputLength"), e.call(this, t, n)
}
return e.prototype.query = function(e, t, n) {
t.term = t.term || "", 0 < this.maximumInputLength && t.term.length > this.maximumInputLength ? this.trigger("results:message", {
message: "inputTooLong",
args: {
maximum: this.maximumInputLength,
input: t.term,
params: t
}
}) : e.call(this, t, n)
}, e
})), t.define("select2/data/maximumSelectionLength", [], (function() {
function e(e, t, n) {
this.maximumSelectionLength = n.get("maximumSelectionLength"), e.call(this, t, n)
}
return e.prototype.bind = function(e, t, n) {
var i = this;
e.call(this, t, n), t.on("select", (function() {
i._checkIfMaximumSelected()
}))
}, e.prototype.query = function(e, t, n) {
var i = this;
this._checkIfMaximumSelected((function() {
e.call(i, t, n)
}))
}, e.prototype._checkIfMaximumSelected = function(e, t) {
var n = this;
this.current((function(e) {
var i = null != e ? e.length : 0;
0 < n.maximumSelectionLength && i >= n.maximumSelectionLength ? n.trigger("results:message", {
message: "maximumSelected",
args: {
maximum: n.maximumSelectionLength
}
}) : t && t()
}))
}, e
})), t.define("select2/dropdown", ["jquery", "./utils"], (function(e, t) {
function n(e, t) {
this.$element = e, this.options = t, n.__super__.constructor.call(this)
}
return t.Extend(n, t.Observable), n.prototype.render = function() {
var t = e('<span class="select2-dropdown"><span class="select2-results"></span></span>');
return t.attr("dir", this.options.get("dir")), this.$dropdown = t
}, n.prototype.bind = function() {}, n.prototype.position = function(e, t) {}, n.prototype.destroy = function() {
this.$dropdown.remove()
}, n
})), t.define("select2/dropdown/search", ["jquery", "../utils"], (function(e, t) {
function n() {}
return n.prototype.render = function(t) {
var n = t.call(this),
i = e('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');
return this.$searchContainer = i, this.$search = i.find("input"), n.prepend(i), n
}, n.prototype.bind = function(t, n, i) {
var r = this,
o = n.id + "-results";
t.call(this, n, i), this.$search.on("keydown", (function(e) {
r.trigger("keypress", e), r._keyUpPrevented = e.isDefaultPrevented()
})), this.$search.on("input", (function(t) {
e(this).off("keyup")
})), this.$search.on("keyup input", (function(e) {
r.handleSearch(e)
})), n.on("open", (function() {
r.$search.attr("tabindex", 0), r.$search.attr("aria-controls", o), r.$search.trigger("focus"), window.setTimeout((function() {
r.$search.trigger("focus")
}), 0)
})), n.on("close", (function() {
r.$search.attr("tabindex", -1), r.$search.removeAttr("aria-controls"), r.$search.removeAttr("aria-activedescendant"), r.$search.val(""), r.$search.trigger("blur")
})), n.on("focus", (function() {
n.isOpen() || r.$search.trigger("focus")
})), n.on("results:all", (function(e) {
null != e.query.term && "" !== e.query.term || (r.showSearch(e) ? r.$searchContainer.removeClass("select2-search--hide") : r.$searchContainer.addClass("select2-search--hide"))
})), n.on("results:focus", (function(e) {
e.data._resultId ? r.$search.attr("aria-activedescendant", e.data._resultId) : r.$search.removeAttr("aria-activedescendant")
}))
}, n.prototype.handleSearch = function(e) {
if (!this._keyUpPrevented) {
var t = this.$search.val();
this.trigger("query", {
term: t
})
}
this._keyUpPrevented = !1
}, n.prototype.showSearch = function(e, t) {
return !0
}, n
})), t.define("select2/dropdown/hidePlaceholder", [], (function() {
function e(e, t, n, i) {
this.placeholder = this.normalizePlaceholder(n.get("placeholder")), e.call(this, t, n, i)
}
return e.prototype.append = function(e, t) {
t.results = this.removePlaceholder(t.results), e.call(this, t)
}, e.prototype.normalizePlaceholder = function(e, t) {
return "string" == typeof t && (t = {
id: "",
text: t
}), t
}, e.prototype.removePlaceholder = function(e, t) {
for (var n = t.slice(0), i = t.length - 1; 0 <= i; i--) {
var r = t[i];
this.placeholder.id === r.id && n.splice(i, 1)
}
return n
}, e
})), t.define("select2/dropdown/infiniteScroll", ["jquery"], (function(e) {
function t(e, t, n, i) {
this.lastParams = {}, e.call(this, t, n, i), this.$loadingMore = this.createLoadingMore(), this.loading = !1
}
return t.prototype.append = function(e, t) {
this.$loadingMore.remove(), this.loading = !1, e.call(this, t), this.showLoadingMore(t) && (this.$results.append(this.$loadingMore), this.loadMoreIfNeeded())
}, t.prototype.bind = function(e, t, n) {
var i = this;
e.call(this, t, n), t.on("query", (function(e) {
i.lastParams = e, i.loading = !0
})), t.on("query:append", (function(e) {
i.lastParams = e, i.loading = !0
})), this.$results.on("scroll", this.loadMoreIfNeeded.bind(this))
}, t.prototype.loadMoreIfNeeded = function() {
var t = e.contains(document.documentElement, this.$loadingMore[0]);
if (!this.loading && t) {
var n = this.$results.offset().top + this.$results.outerHeight(!1);
this.$loadingMore.offset().top + this.$loadingMore.outerHeight(!1) <= n + 50 && this.loadMore()
}
}, t.prototype.loadMore = function() {
this.loading = !0;
var t = e.extend({}, {
page: 1
}, this.lastParams);
t.page++, this.trigger("query:append", t)
}, t.prototype.showLoadingMore = function(e, t) {
return t.pagination && t.pagination.more
}, t.prototype.createLoadingMore = function() {
var t = e('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),
n = this.options.get("translations").get("loadingMore");
return t.html(n(this.lastParams)), t
}, t
})), t.define("select2/dropdown/attachBody", ["jquery", "../utils"], (function(e, t) {
function n(t, n, i) {
this.$dropdownParent = e(i.get("dropdownParent") || document.body), t.call(this, n, i)
}
return n.prototype.bind = function(e, t, n) {
var i = this;
e.call(this, t, n), t.on("open", (function() {
i._showDropdown(), i._attachPositioningHandler(t), i._bindContainerResultHandlers(t)
})), t.on("close", (function() {
i._hideDropdown(), i._detachPositioningHandler(t)
})), this.$dropdownContainer.on("mousedown", (function(e) {
e.stopPropagation()
}))
}, n.prototype.destroy = function(e) {
e.call(this), this.$dropdownContainer.remove()
}, n.prototype.position = function(e, t, n) {
t.attr("class", n.attr("class")), t.removeClass("select2"), t.addClass("select2-container--open"), t.css({
position: "absolute",
top: -999999
}), this.$container = n
}, n.prototype.render = function(t) {
var n = e("<span></span>"),
i = t.call(this);
return n.append(i), this.$dropdownContainer = n
}, n.prototype._hideDropdown = function(e) {
this.$dropdownContainer.detach()
}, n.prototype._bindContainerResultHandlers = function(e, t) {
if (!this._containerResultsHandlersBound) {
var n = this;
t.on("results:all", (function() {
n._positionDropdown(), n._resizeDropdown()
})), t.on("results:append", (function() {
n._positionDropdown(), n._resizeDropdown()
})), t.on("results:message", (function() {
n._positionDropdown(), n._resizeDropdown()
})), t.on("select", (function() {
n._positionDropdown(), n._resizeDropdown()
})), t.on("unselect", (function() {
n._positionDropdown(), n._resizeDropdown()
})), this._containerResultsHandlersBound = !0
}
}, n.prototype._attachPositioningHandler = function(n, i) {
var r = this,
o = "scroll.select2." + i.id,
a = "resize.select2." + i.id,
s = "orientationchange.select2." + i.id,
l = this.$container.parents().filter(t.hasScroll);
l.each((function() {
t.StoreData(this, "select2-scroll-position", {
x: e(this).scrollLeft(),
y: e(this).scrollTop()
})
})), l.on(o, (function(n) {
var i = t.GetData(this, "select2-scroll-position");
e(this).scrollTop(i.y)
})), e(window).on(o + " " + a + " " + s, (function(e) {
r._positionDropdown(), r._resizeDropdown()
}))
}, n.prototype._detachPositioningHandler = function(n, i) {
var r = "scroll.select2." + i.id,
o = "resize.select2." + i.id,
a = "orientationchange.select2." + i.id;
this.$container.parents().filter(t.hasScroll).off(r), e(window).off(r + " " + o + " " + a)
}, n.prototype._positionDropdown = function() {
var t = e(window),
n = this.$dropdown.hasClass("select2-dropdown--above"),
i = this.$dropdown.hasClass("select2-dropdown--below"),
r = null,
o = this.$container.offset();
o.bottom = o.top + this.$container.outerHeight(!1);
var a = {
height: this.$container.outerHeight(!1)
};
a.top = o.top, a.bottom = o.top + a.height;
var s = this.$dropdown.outerHeight(!1),
l = t.scrollTop(),
c = t.scrollTop() + t.height(),
u = l < o.top - s,
d = c > o.bottom + s,
h = {
left: o.left,
top: a.bottom
},
f = this.$dropdownParent;
"static" === f.css("position") && (f = f.offsetParent());
var p = {
top: 0,
left: 0
};
(e.contains(document.body, f[0]) || f[0].isConnected) && (p = f.offset()), h.top -= p.top, h.left -= p.left, n || i || (r = "below"), d || !u || n ? !u && d && n && (r = "below") : r = "above", ("above" == r || n && "below" !== r) && (h.top = a.top - p.top - s), null != r && (this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--" + r), this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--" + r)), this.$dropdownContainer.css(h)
}, n.prototype._resizeDropdown = function() {
var e = {
width: this.$container.outerWidth(!1) + "px"
};
this.options.get("dropdownAutoWidth") && (e.minWidth = e.width, e.position = "relative", e.width = "auto"), this.$dropdown.css(e)
}, n.prototype._showDropdown = function(e) {
this.$dropdownContainer.appendTo(this.$dropdownParent), this._positionDropdown(), this._resizeDropdown()
}, n
})), t.define("select2/dropdown/minimumResultsForSearch", [], (function() {
function e(e, t, n, i) {
this.minimumResultsForSearch = n.get("minimumResultsForSearch"), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call(this, t, n, i)
}
return e.prototype.showSearch = function(e, t) {
return !(function e(t) {
for (var n = 0, i = 0; i < t.length; i++) {
var r = t[i];
r.children ? n += e(r.children) : n++
}
return n
}(t.data.results) < this.minimumResultsForSearch) && e.call(this, t)
}, e
})), t.define("select2/dropdown/selectOnClose", ["../utils"], (function(e) {
function t() {}
return t.prototype.bind = function(e, t, n) {
var i = this;
e.call(this, t, n), t.on("close", (function(e) {
i._handleSelectOnClose(e)
}))
}, t.prototype._handleSelectOnClose = function(t, n) {
if (n && null != n.originalSelect2Event) {
var i = n.originalSelect2Event;
if ("select" === i._type || "unselect" === i._type) return
}
var r = this.getHighlightedResults();
if (!(r.length < 1)) {
var o = e.GetData(r[0], "data");
null != o.element && o.element.selected || null == o.element && o.selected || this.trigger("select", {
data: o
})
}
}, t
})), t.define("select2/dropdown/closeOnSelect", [], (function() {
function e() {}
return e.prototype.bind = function(e, t, n) {
var i = this;
e.call(this, t, n), t.on("select", (function(e) {
i._selectTriggered(e)
})), t.on("unselect", (function(e) {
i._selectTriggered(e)
}))
}, e.prototype._selectTriggered = function(e, t) {
var n = t.originalEvent;
n && (n.ctrlKey || n.metaKey) || this.trigger("close", {
originalEvent: n,
originalSelect2Event: t
})
}, e
})), t.define("select2/i18n/en", [], (function() {
return {
errorLoading: function() {
return "The results could not be loaded."
},
inputTooLong: function(e) {
var t = e.input.length - e.maximum,
n = "Please delete " + t + " character";
return 1 != t && (n += "s"), n
},
inputTooShort: function(e) {
return "Please enter " + (e.minimum - e.input.length) + " or more characters"
},
loadingMore: function() {
return "Loading more results…"
},
maximumSelected: function(e) {
var t = "You can only select " + e.maximum + " item";
return 1 != e.maximum && (t += "s"), t
},
noResults: function() {
return "No results found"
},
searching: function() {
return "Searching…"
},
removeAllItems: function() {
return "Remove all items"
}
}
})), t.define("select2/defaults", ["jquery", "require", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/eventRelay", "./utils", "./translation", "./diacritics", "./data/select", "./data/array", "./data/ajax", "./data/tags", "./data/tokenizer", "./data/minimumInputLength", "./data/maximumInputLength", "./data/maximumSelectionLength", "./dropdown", "./dropdown/search", "./dropdown/hidePlaceholder", "./dropdown/infiniteScroll", "./dropdown/attachBody", "./dropdown/minimumResultsForSearch", "./dropdown/selectOnClose", "./dropdown/closeOnSelect", "./i18n/en"], (function(e, t, n, i, r, o, a, s, l, c, u, d, h, f, p, g, m, v, y, b, w, x, _, C, k, S, T, D, E) {
function A() {
this.reset()
}
return A.prototype.apply = function(u) {
if (null == (u = e.extend(!0, {}, this.defaults, u)).dataAdapter) {
if (null != u.ajax ? u.dataAdapter = p : null != u.data ? u.dataAdapter = f : u.dataAdapter = h, 0 < u.minimumInputLength && (u.dataAdapter = c.Decorate(u.dataAdapter, v)), 0 < u.maximumInputLength && (u.dataAdapter = c.Decorate(u.dataAdapter, y)), 0 < u.maximumSelectionLength && (u.dataAdapter = c.Decorate(u.dataAdapter, b)), u.tags && (u.dataAdapter = c.Decorate(u.dataAdapter, g)), null == u.tokenSeparators && null == u.tokenizer || (u.dataAdapter = c.Decorate(u.dataAdapter, m)), null != u.query) {
var d = t(u.amdBase + "compat/query");
u.dataAdapter = c.Decorate(u.dataAdapter, d)
}
if (null != u.initSelection) {
var E = t(u.amdBase + "compat/initSelection");
u.dataAdapter = c.Decorate(u.dataAdapter, E)
}
}
if (null == u.resultsAdapter && (u.resultsAdapter = n, null != u.ajax && (u.resultsAdapter = c.Decorate(u.resultsAdapter, C)), null != u.placeholder && (u.resultsAdapter = c.Decorate(u.resultsAdapter, _)), u.selectOnClose && (u.resultsAdapter = c.Decorate(u.resultsAdapter, T))), null == u.dropdownAdapter) {
if (u.multiple) u.dropdownAdapter = w;
else {
var A = c.Decorate(w, x);
u.dropdownAdapter = A
}
if (0 !== u.minimumResultsForSearch && (u.dropdownAdapter = c.Decorate(u.dropdownAdapter, S)), u.closeOnSelect && (u.dropdownAdapter = c.Decorate(u.dropdownAdapter, D)), null != u.dropdownCssClass || null != u.dropdownCss || null != u.adaptDropdownCssClass) {
var M = t(u.amdBase + "compat/dropdownCss");
u.dropdownAdapter = c.Decorate(u.dropdownAdapter, M)
}
u.dropdownAdapter = c.Decorate(u.dropdownAdapter, k)
}
if (null == u.selectionAdapter) {
if (u.multiple ? u.selectionAdapter = r : u.selectionAdapter = i, null != u.placeholder && (u.selectionAdapter = c.Decorate(u.selectionAdapter, o)), u.allowClear && (u.selectionAdapter = c.Decorate(u.selectionAdapter, a)), u.multiple && (u.selectionAdapter = c.Decorate(u.selectionAdapter, s)), null != u.containerCssClass || null != u.containerCss || null != u.adaptContainerCssClass) {
var O = t(u.amdBase + "compat/containerCss");
u.selectionAdapter = c.Decorate(u.selectionAdapter, O)
}
u.selectionAdapter = c.Decorate(u.selectionAdapter, l)
}
u.language = this._resolveLanguage(u.language), u.language.push("en");
for (var I = [], P = 0; P < u.language.length; P++) {
var L = u.language[P]; - 1 === I.indexOf(L) && I.push(L)
}
return u.language = I, u.translations = this._processTranslations(u.language, u.debug), u
}, A.prototype.reset = function() {
function t(e) {
return e.replace(/[^\u0000-\u007E]/g, (function(e) {
return d[e] || e
}))
}
this.defaults = {
amdBase: "./",
amdLanguageBase: "./i18n/",
closeOnSelect: !0,
debug: !1,
dropdownAutoWidth: !1,
escapeMarkup: c.escapeMarkup,
language: {},
matcher: function n(i, r) {
if ("" === e.trim(i.term)) return r;
if (r.children && 0 < r.children.length) {
for (var o = e.extend(!0, {}, r), a = r.children.length - 1; 0 <= a; a--) null == n(i, r.children[a]) && o.children.splice(a, 1);
return 0 < o.children.length ? o : n(i, o)
}
var s = t(r.text).toUpperCase(),
l = t(i.term).toUpperCase();
return -1 < s.indexOf(l) ? r : null
},
minimumInputLength: 0,
maximumInputLength: 0,
maximumSelectionLength: 0,
minimumResultsForSearch: 0,
selectOnClose: !1,
scrollAfterSelect: !1,
sorter: function(e) {
return e
},
templateResult: function(e) {
return e.text
},
templateSelection: function(e) {
return e.text
},
theme: "default",
width: "resolve"
}
}, A.prototype.applyFromElement = function(e, t) {
var n = e.language,
i = this.defaults.language,
r = t.prop("lang"),
o = t.closest("[lang]").prop("lang"),
a = Array.prototype.concat.call(this._resolveLanguage(r), this._resolveLanguage(n), this._resolveLanguage(i), this._resolveLanguage(o));
return e.language = a, e
}, A.prototype._resolveLanguage = function(t) {
if (!t) return [];
if (e.isEmptyObject(t)) return [];
if (e.isPlainObject(t)) return [t];
var n;
n = e.isArray(t) ? t : [t];
for (var i = [], r = 0; r < n.length; r++)
if (i.push(n[r]), "string" == typeof n[r] && 0 < n[r].indexOf("-")) {
var o = n[r].split("-")[0];
i.push(o)
}
return i
}, A.prototype._processTranslations = function(t, n) {
for (var i = new u, r = 0; r < t.length; r++) {
var o = new u,
a = t[r];
if ("string" == typeof a) try {
o = u.loadPath(a)
} catch (t) {
try {
a = this.defaults.amdLanguageBase + a, o = u.loadPath(a)
} catch (t) {
n && window.console && console.warn && console.warn('Select2: The language file for "' + a + '" could not be automatically loaded. A fallback will be used instead.')
}
} else o = e.isPlainObject(a) ? new u(a) : a;
i.extend(o)
}
return i
}, A.prototype.set = function(t, n) {
var i = {};
i[e.camelCase(t)] = n;
var r = c._convertData(i);
e.extend(!0, this.defaults, r)
}, new A
})), t.define("select2/options", ["require", "jquery", "./defaults", "./utils"], (function(e, t, n, i) {
function r(t, r) {
if (this.options = t, null != r && this.fromElement(r), null != r && (this.options = n.applyFromElement(this.options, r)), this.options = n.apply(this.options), r && r.is("input")) {
var o = e(this.get("amdBase") + "compat/inputData");
this.options.dataAdapter = i.Decorate(this.options.dataAdapter, o)
}
}
return r.prototype.fromElement = function(e) {
var n = ["select2"];
null == this.options.multiple && (this.options.multiple = e.prop("multiple")), null == this.options.disabled && (this.options.disabled = e.prop("disabled")), null == this.options.dir && (e.prop("dir") ? this.options.dir = e.prop("dir") : e.closest("[dir]").prop("dir") ? this.options.dir = e.closest("[dir]").prop("dir") : this.options.dir = "ltr"), e.prop("disabled", this.options.disabled), e.prop("multiple", this.options.multiple), i.GetData(e[0], "select2Tags") && (this.options.debug && window.console && console.warn && console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'), i.StoreData(e[0], "data", i.GetData(e[0], "select2Tags")), i.StoreData(e[0], "tags", !0)), i.GetData(e[0], "ajaxUrl") && (this.options.debug && window.console && console.warn && console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."), e.attr("ajax--url", i.GetData(e[0], "ajaxUrl")), i.StoreData(e[0], "ajax-Url", i.GetData(e[0], "ajaxUrl")));
var r = {};
function o(e, t) {
return t.toUpperCase()
}
for (var a = 0; a < e[0].attributes.length; a++) {
var s = e[0].attributes[a].name,
l = "data-";
if (s.substr(0, l.length) == l) {
var c = s.substring(l.length),
u = i.GetData(e[0], c);
r[c.replace(/-([a-z])/g, o)] = u
}
}
t.fn.jquery && "1." == t.fn.jquery.substr(0, 2) && e[0].dataset && (r = t.extend(!0, {}, e[0].dataset, r));
var d = t.extend(!0, {}, i.GetData(e[0]), r);
for (var h in d = i._convertData(d)) - 1 < t.inArray(h, n) || (t.isPlainObject(this.options[h]) ? t.extend(this.options[h], d[h]) : this.options[h] = d[h]);
return this
}, r.prototype.get = function(e) {
return this.options[e]
}, r.prototype.set = function(e, t) {
this.options[e] = t
}, r
})), t.define("select2/core", ["jquery", "./options", "./utils", "./keys"], (function(e, t, n, i) {
var r = function(e, i) {
null != n.GetData(e[0], "select2") && n.GetData(e[0], "select2").destroy(), this.$element = e, this.id = this._generateId(e), i = i || {}, this.options = new t(i, e), r.__super__.constructor.call(this);
var o = e.attr("tabindex") || 0;
n.StoreData(e[0], "old-tabindex", o), e.attr("tabindex", "-1");
var a = this.options.get("dataAdapter");
this.dataAdapter = new a(e, this.options);
var s = this.render();
this._placeContainer(s);
var l = this.options.get("selectionAdapter");
this.selection = new l(e, this.options), this.$selection = this.selection.render(), this.selection.position(this.$selection, s);
var c = this.options.get("dropdownAdapter");
this.dropdown = new c(e, this.options), this.$dropdown = this.dropdown.render(), this.dropdown.position(this.$dropdown, s);
var u = this.options.get("resultsAdapter");
this.results = new u(e, this.options, this.dataAdapter), this.$results = this.results.render(), this.results.position(this.$results, this.$dropdown);
var d = this;
this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current((function(e) {
d.trigger("selection:update", {
data: e
})
})), e.addClass("select2-hidden-accessible"), e.attr("aria-hidden", "true"), this._syncAttributes(), n.StoreData(e[0], "select2", this), e.data("select2", this)
};
return n.Extend(r, n.Observable), r.prototype._generateId = function(e) {
return "select2-" + (null != e.attr("id") ? e.attr("id") : null != e.attr("name") ? e.attr("name") + "-" + n.generateChars(2) : n.generateChars(4)).replace(/(:|\.|\[|\]|,)/g, "")
}, r.prototype._placeContainer = function(e) {
e.insertAfter(this.$element);
var t = this._resolveWidth(this.$element, this.options.get("width"));
null != t && e.css("width", t)
}, r.prototype._resolveWidth = function(e, t) {
var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
if ("resolve" == t) {
var i = this._resolveWidth(e, "style");
return null != i ? i : this._resolveWidth(e, "element")
}
if ("element" == t) {
var r = e.outerWidth(!1);
return r <= 0 ? "auto" : r + "px"
}
if ("style" != t) return "computedstyle" != t ? t : window.getComputedStyle(e[0]).width;
var o = e.attr("style");
if ("string" != typeof o) return null;
for (var a = o.split(";"), s = 0, l = a.length; s < l; s += 1) {
var c = a[s].replace(/\s/g, "").match(n);
if (null !== c && 1 <= c.length) return c[1]
}
return null
}, r.prototype._bindAdapters = function() {
this.dataAdapter.bind(this, this.$container), this.selection.bind(this, this.$container), this.dropdown.bind(this, this.$container), this.results.bind(this, this.$container)
}, r.prototype._registerDomEvents = function() {
var e = this;
this.$element.on("change.select2", (function() {
e.dataAdapter.current((function(t) {
e.trigger("selection:update", {
data: t
})
}))
})), this.$element.on("focus.select2", (function(t) {
e.trigger("focus", t)
})), this._syncA = n.bind(this._syncAttributes, this), this._syncS = n.bind(this._syncSubtree, this), this.$element[0].attachEvent && this.$element[0].attachEvent("onpropertychange", this._syncA);
var t = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
null != t ? (this._observer = new t((function(t) {
e._syncA(), e._syncS(null, t)
})), this._observer.observe(this.$element[0], {
attributes: !0,
childList: !0,
subtree: !1
})) : this.$element[0].addEventListener && (this.$element[0].addEventListener("DOMAttrModified", e._syncA, !1), this.$element[0].addEventListener("DOMNodeInserted", e._syncS, !1), this.$element[0].addEventListener("DOMNodeRemoved", e._syncS, !1))
}, r.prototype._registerDataEvents = function() {
var e = this;
this.dataAdapter.on("*", (function(t, n) {
e.trigger(t, n)
}))
}, r.prototype._registerSelectionEvents = function() {
var t = this,
n = ["toggle", "focus"];
this.selection.on("toggle", (function() {
t.toggleDropdown()
})), this.selection.on("focus", (function(e) {
t.focus(e)
})), this.selection.on("*", (function(i, r) {
-1 === e.inArray(i, n) && t.trigger(i, r)
}))
}, r.prototype._registerDropdownEvents = function() {
var e = this;
this.dropdown.on("*", (function(t, n) {
e.trigger(t, n)
}))
}, r.prototype._registerResultsEvents = function() {
var e = this;
this.results.on("*", (function(t, n) {
e.trigger(t, n)
}))
}, r.prototype._registerEvents = function() {
var e = this;
this.on("open", (function() {
e.$container.addClass("select2-container--open")
})), this.on("close", (function() {
e.$container.removeClass("select2-container--open")
})), this.on("enable", (function() {
e.$container.removeClass("select2-container--disabled")
})), this.on("disable", (function() {
e.$container.addClass("select2-container--disabled")
})), this.on("blur", (function() {
e.$container.removeClass("select2-container--focus")
})), this.on("query", (function(t) {
e.isOpen() || e.trigger("open", {}), this.dataAdapter.query(t, (function(n) {
e.trigger("results:all", {
data: n,
query: t
})
}))
})), this.on("query:append", (function(t) {
this.dataAdapter.query(t, (function(n) {
e.trigger("results:append", {
data: n,
query: t
})
}))
})), this.on("keypress", (function(t) {
var n = t.which;
e.isOpen() ? n === i.ESC || n === i.TAB || n === i.UP && t.altKey ? (e.close(t), t.preventDefault()) : n === i.ENTER ? (e.trigger("results:select", {}), t.preventDefault()) : n === i.SPACE && t.ctrlKey ? (e.trigger("results:toggle", {}), t.preventDefault()) : n === i.UP ? (e.trigger("results:previous", {}), t.preventDefault()) : n === i.DOWN && (e.trigger("results:next", {}), t.preventDefault()) : (n === i.ENTER || n === i.SPACE || n === i.DOWN && t.altKey) && (e.open(), t.preventDefault())
}))
}, r.prototype._syncAttributes = function() {
this.options.set("disabled", this.$element.prop("disabled")), this.isDisabled() ? (this.isOpen() && this.close(), this.trigger("disable", {})) : this.trigger("enable", {})
}, r.prototype._isChangeMutation = function(t, n) {
var i = !1,
r = this;
if (!t || !t.target || "OPTION" === t.target.nodeName || "OPTGROUP" === t.target.nodeName) {
if (n)
if (n.addedNodes && 0 < n.addedNodes.length)
for (var o = 0; o < n.addedNodes.length; o++) n.addedNodes[o].selected && (i = !0);
else n.removedNodes && 0 < n.removedNodes.length ? i = !0 : e.isArray(n) && e.each(n, (function(e, t) {
if (r._isChangeMutation(e, t)) return !(i = !0)
}));
else i = !0;
return i
}
}, r.prototype._syncSubtree = function(e, t) {
var n = this._isChangeMutation(e, t),
i = this;
n && this.dataAdapter.current((function(e) {
i.trigger("selection:update", {
data: e
})
}))
}, r.prototype.trigger = function(e, t) {
var n = r.__super__.trigger,
i = {
open: "opening",
close: "closing",
select: "selecting",
unselect: "unselecting",
clear: "clearing"
};
if (void 0 === t && (t = {}), e in i) {
var o = i[e],
a = {
prevented: !1,
name: e,
args: t
};
if (n.call(this, o, a), a.prevented) return void(t.prevented = !0)
}
n.call(this, e, t)
}, r.prototype.toggleDropdown = function() {
this.isDisabled() || (this.isOpen() ? this.close() : this.open())
}, r.prototype.open = function() {
this.isOpen() || this.isDisabled() || this.trigger("query", {})
}, r.prototype.close = function(e) {
this.isOpen() && this.trigger("close", {
originalEvent: e
})
}, r.prototype.isEnabled = function() {
return !this.isDisabled()
}, r.prototype.isDisabled = function() {
return this.options.get("disabled")
}, r.prototype.isOpen = function() {
return this.$container.hasClass("select2-container--open")
}, r.prototype.hasFocus = function() {
return this.$container.hasClass("select2-container--focus")
}, r.prototype.focus = function(e) {
this.hasFocus() || (this.$container.addClass("select2-container--focus"), this.trigger("focus", {}))
}, r.prototype.enable = function(e) {
this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'), null != e && 0 !== e.length || (e = [!0]);
var t = !e[0];
this.$element.prop("disabled", t)
}, r.prototype.data = function() {
this.options.get("debug") && 0 < arguments.length && window.console && console.warn && console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');
var e = [];
return this.dataAdapter.current((function(t) {
e = t
})), e
}, r.prototype.val = function(t) {
if (this.options.get("debug") && window.console && console.warn && console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'), null == t || 0 === t.length) return this.$element.val();
var n = t[0];
e.isArray(n) && (n = e.map(n, (function(e) {
return e.toString()
}))), this.$element.val(n).trigger("input").trigger("change")
}, r.prototype.destroy = function() {
this.$container.remove(), this.$element[0].detachEvent && this.$element[0].detachEvent("onpropertychange", this._syncA), null != this._observer ? (this._observer.disconnect(), this._observer = null) : this.$element[0].removeEventListener && (this.$element[0].removeEventListener("DOMAttrModified", this._syncA, !1), this.$element[0].removeEventListener("DOMNodeInserted", this._syncS, !1), this.$element[0].removeEventListener("DOMNodeRemoved", this._syncS, !1)), this._syncA = null, this._syncS = null, this.$element.off(".select2"), this.$element.attr("tabindex", n.GetData(this.$element[0], "old-tabindex")), this.$element.removeClass("select2-hidden-accessible"), this.$element.attr("aria-hidden", "false"), n.RemoveData(this.$element[0]), this.$element.removeData("select2"), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), this.dataAdapter = null, this.selection = null, this.dropdown = null, this.results = null
}, r.prototype.render = function() {
var t = e('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');
return t.attr("dir", this.options.get("dir")), this.$container = t, this.$container.addClass("select2-container--" + this.options.get("theme")), n.StoreData(t[0], "element", this.$element), t
}, r
})), t.define("select2/compat/utils", ["jquery"], (function(e) {
return {
syncCssClasses: function(t, n, i) {
var r, o, a = [];
(r = e.trim(t.attr("class"))) && e((r = "" + r).split(/\s+/)).each((function() {
0 === this.indexOf("select2-") && a.push(this)
})), (r = e.trim(n.attr("class"))) && e((r = "" + r).split(/\s+/)).each((function() {
0 !== this.indexOf("select2-") && null != (o = i(this)) && a.push(o)
})), t.attr("class", a.join(" "))
}
}
})), t.define("select2/compat/containerCss", ["jquery", "./utils"], (function(e, t) {
function n(e) {
return null
}
function i() {}
return i.prototype.render = function(i) {
var r = i.call(this),
o = this.options.get("containerCssClass") || "";
e.isFunction(o) && (o = o(this.$element));
var a = this.options.get("adaptContainerCssClass");
if (a = a || n, -1 !== o.indexOf(":all:")) {
o = o.replace(":all:", "");
var s = a;
a = function(e) {
var t = s(e);
return null != t ? t + " " + e : e
}
}
var l = this.options.get("containerCss") || {};
return e.isFunction(l) && (l = l(this.$element)), t.syncCssClasses(r, this.$element, a), r.css(l), r.addClass(o), r
}, i
})), t.define("select2/compat/dropdownCss", ["jquery", "./utils"], (function(e, t) {
function n(e) {
return null
}
function i() {}
return i.prototype.render = function(i) {
var r = i.call(this),
o = this.options.get("dropdownCssClass") || "";
e.isFunction(o) && (o = o(this.$element));
var a = this.options.get("adaptDropdownCssClass");
if (a = a || n, -1 !== o.indexOf(":all:")) {
o = o.replace(":all:", "");
var s = a;
a = function(e) {
var t = s(e);
return null != t ? t + " " + e : e
}
}
var l = this.options.get("dropdownCss") || {};
return e.isFunction(l) && (l = l(this.$element)), t.syncCssClasses(r, this.$element, a), r.css(l), r.addClass(o), r
}, i
})), t.define("select2/compat/initSelection", ["jquery"], (function(e) {
function t(e, t, n) {
n.get("debug") && window.console && console.warn && console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"), this.initSelection = n.get("initSelection"), this._isInitialized = !1, e.call(this, t, n)
}
return t.prototype.current = function(t, n) {
var i = this;
this._isInitialized ? t.call(this, n) : this.initSelection.call(null, this.$element, (function(t) {
i._isInitialized = !0, e.isArray(t) || (t = [t]), n(t)
}))
}, t
})), t.define("select2/compat/inputData", ["jquery", "../utils"], (function(e, t) {
function n(e, t, n) {
this._currentData = [], this._valueSeparator = n.get("valueSeparator") || ",", "hidden" === t.prop("type") && n.get("debug") && console && console.warn && console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."), e.call(this, t, n)
}
return n.prototype.current = function(t, n) {
function i(t, n) {
var r = [];
return t.selected || -1 !== e.inArray(t.id, n) ? (t.selected = !0, r.push(t)) : t.selected = !1, t.children && r.push.apply(r, i(t.children, n)), r
}
for (var r = [], o = 0; o < this._currentData.length; o++) {
var a = this._currentData[o];
r.push.apply(r, i(a, this.$element.val().split(this._valueSeparator)))
}
n(r)
}, n.prototype.select = function(t, n) {
if (this.options.get("multiple")) {
var i = this.$element.val();
i += this._valueSeparator + n.id, this.$element.val(i), this.$element.trigger("input").trigger("change")
} else this.current((function(t) {
e.map(t, (function(e) {
e.selected = !1
}))
})), this.$element.val(n.id), this.$element.trigger("input").trigger("change")
}, n.prototype.unselect = function(e, t) {
var n = this;
t.selected = !1, this.current((function(e) {
for (var i = [], r = 0; r < e.length; r++) {
var o = e[r];
t.id != o.id && i.push(o.id)
}
n.$element.val(i.join(n._valueSeparator)), n.$element.trigger("input").trigger("change")
}))
}, n.prototype.query = function(e, t, n) {
for (var i = [], r = 0; r < this._currentData.length; r++) {
var o = this._currentData[r],
a = this.matches(t, o);
null !== a && i.push(a)
}
n({
results: i
})
}, n.prototype.addOptions = function(n, i) {
var r = e.map(i, (function(e) {
return t.GetData(e[0], "data")
}));
this._currentData.push.apply(this._currentData, r)
}, n
})), t.define("select2/compat/matcher", ["jquery"], (function(e) {
return function(t) {
return function(n, i) {
var r = e.extend(!0, {}, i);
if (null == n.term || "" === e.trim(n.term)) return r;
if (i.children) {
for (var o = i.children.length - 1; 0 <= o; o--) {
var a = i.children[o];
t(n.term, a.text, a) || r.children.splice(o, 1)
}
if (0 < r.children.length) return r
}
return t(n.term, i.text, i) ? r : null
}
}
})), t.define("select2/compat/query", [], (function() {
function e(e, t, n) {
n.get("debug") && window.console && console.warn && console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."), e.call(this, t, n)
}
return e.prototype.query = function(e, t, n) {
t.callback = n, this.options.get("query").call(null, t)
}, e
})), t.define("select2/dropdown/attachContainer", [], (function() {
function e(e, t, n) {
e.call(this, t, n)
}
return e.prototype.position = function(e, t, n) {
n.find(".dropdown-wrapper").append(t), t.addClass("select2-dropdown--below"), n.addClass("select2-container--below")
}, e
})), t.define("select2/dropdown/stopPropagation", [], (function() {
function e() {}
return e.prototype.bind = function(e, t, n) {
e.call(this, t, n), this.$dropdown.on(["blur", "change", "click", "dblclick", "focus", "focusin", "focusout", "input", "keydown", "keyup", "keypress", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseup", "search", "touchend", "touchstart"].join(" "), (function(e) {
e.stopPropagation()
}))
}, e
})), t.define("select2/selection/stopPropagation", [], (function() {
function e() {}
return e.prototype.bind = function(e, t, n) {
e.call(this, t, n), this.$selection.on(["blur", "change", "click", "dblclick", "focus", "focusin", "focusout", "input", "keydown", "keyup", "keypress", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseup", "search", "touchend", "touchstart"].join(" "), (function(e) {
e.stopPropagation()
}))
}, e
})), v = function(e) {
var t, n, i = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"],
r = "onwheel" in document || 9 <= document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"],
o = Array.prototype.slice;
if (e.event.fixHooks)
for (var a = i.length; a;) e.event.fixHooks[i[--a]] = e.event.mouseHooks;
var s = e.event.special.mousewheel = {
version: "3.1.12",
setup: function() {
if (this.addEventListener)
for (var t = r.length; t;) this.addEventListener(r[--t], l, !1);
else this.onmousewheel = l;
e.data(this, "mousewheel-line-height", s.getLineHeight(this)), e.data(this, "mousewheel-page-height", s.getPageHeight(this))
},
teardown: function() {
if (this.removeEventListener)
for (var t = r.length; t;) this.removeEventListener(r[--t], l, !1);
else this.onmousewheel = null;
e.removeData(this, "mousewheel-line-height"), e.removeData(this, "mousewheel-page-height")
},
getLineHeight: function(t) {
var n = e(t),
i = n["offsetParent" in e.fn ? "offsetParent" : "parent"]();
return i.length || (i = e("body")), parseInt(i.css("fontSize"), 10) || parseInt(n.css("fontSize"), 10) || 16
},
getPageHeight: function(t) {
return e(t).height()
},
settings: {
adjustOldDeltas: !0,
normalizeOffset: !0
}
};
function l(i) {
var r, a = i || window.event,
l = o.call(arguments, 1),
d = 0,
h = 0,
f = 0,
p = 0,
g = 0;
if ((i = e.event.fix(a)).type = "mousewheel", "detail" in a && (f = -1 * a.detail), "wheelDelta" in a && (f = a.wheelDelta), "wheelDeltaY" in a && (f = a.wheelDeltaY), "wheelDeltaX" in a && (h = -1 * a.wheelDeltaX), "axis" in a && a.axis === a.HORIZONTAL_AXIS && (h = -1 * f, f = 0), d = 0 === f ? h : f, "deltaY" in a && (d = f = -1 * a.deltaY), "deltaX" in a && (h = a.deltaX, 0 === f && (d = -1 * h)), 0 !== f || 0 !== h) {
if (1 === a.deltaMode) {
var m = e.data(this, "mousewheel-line-height");
d *= m, f *= m, h *= m
} else if (2 === a.deltaMode) {
var v = e.data(this, "mousewheel-page-height");
d *= v, f *= v, h *= v
}
if (r = Math.max(Math.abs(f), Math.abs(h)), (!n || r < n) && u(a, n = r) && (n /= 40), u(a, r) && (d /= 40, h /= 40, f /= 40), d = Math[1 <= d ? "floor" : "ceil"](d / n), h = Math[1 <= h ? "floor" : "ceil"](h / n), f = Math[1 <= f ? "floor" : "ceil"](f / n), s.settings.normalizeOffset && this.getBoundingClientRect) {
var y = this.getBoundingClientRect();
p = i.clientX - y.left, g = i.clientY - y.top
}
return i.deltaX = h, i.deltaY = f, i.deltaFactor = n, i.offsetX = p, i.offsetY = g, i.deltaMode = 0, l.unshift(i, d, h, f), t && clearTimeout(t), t = setTimeout(c, 200), (e.event.dispatch || e.event.handle).apply(this, l)
}
}
function c() {
n = null
}
function u(e, t) {
return s.settings.adjustOldDeltas && "mousewheel" === e.type && t % 120 == 0
}
e.fn.extend({
mousewheel: function(e) {
return e ? this.bind("mousewheel", e) : this.trigger("mousewheel")
},
unmousewheel: function(e) {
return this.unbind("mousewheel", e)
}
})
}, "function" == typeof t.define && t.define.amd ? t.define("jquery-mousewheel", ["jquery"], v) : "object" == typeof exports ? module.exports = v : v(e), t.define("jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils"], (function(e, t, n, i, r) {
if (null == e.fn.select2) {
var o = ["open", "close", "destroy"];
e.fn.select2 = function(t) {
if ("object" == typeof(t = t || {})) return this.each((function() {
var i = e.extend(!0, {}, t);
new n(e(this), i)
})), this;
if ("string" != typeof t) throw new Error("Invalid arguments for Select2: " + t);
var i, a = Array.prototype.slice.call(arguments, 1);
return this.each((function() {
var e = r.GetData(this, "select2");
null == e && window.console && console.error && console.error("The select2('" + t + "') method was called on an element that is not using Select2."), i = e[t].apply(e, a)
})), -1 < e.inArray(t, o) ? this : i
}
}
return null == e.fn.select2.defaults && (e.fn.select2.defaults = i), n
})), {
define: t.define,
require: t.require
}
}(),
n = t.require("jquery.select2");
return e.fn.select2.amd = t, n
})),
function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = e || self).Sweetalert2 = t()
}(this, (function() {
"use strict";
function e(t) {
return (e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(t)
}
function t(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function n(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function i(e, t, i) {
return t && n(e.prototype, t), i && n(e, i), e
}
function r() {
return (r = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n = arguments[t];
for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
}
return e
}).apply(this, arguments)
}
function o(e) {
return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e)
})(e)
}
function a(e, t) {
return (a = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e
})(e, t)
}
function s() {
if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
if (Reflect.construct.sham) return !1;
if ("function" == typeof Proxy) return !0;
try {
return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0
} catch (e) {
return !1
}
}
function l(e, t, n) {
return (l = s() ? Reflect.construct : function(e, t, n) {
var i = [null];
i.push.apply(i, t);
var r = new(Function.bind.apply(e, i));
return n && a(r, n.prototype), r
}).apply(null, arguments)
}
function c(e, t) {
return !t || "object" != typeof t && "function" != typeof t ? function(e) {
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return e
}(e) : t
}
function u(e, t, n) {
return (u = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(e, t, n) {
var i = function(e, t) {
for (; !Object.prototype.hasOwnProperty.call(e, t) && null !== (e = o(e)););
return e
}(e, t);
if (i) {
var r = Object.getOwnPropertyDescriptor(i, t);
return r.get ? r.get.call(n) : r.value
}
})(e, t, n || e)
}
function d(e) {
return Object.keys(e).map((function(t) {
return e[t]
}))
}
function h(e) {
return Array.prototype.slice.call(e)
}
function f(e, t) {
var n;
n = '"'.concat(e, '" is deprecated and will be removed in the next major release. Please use "').concat(t, '" instead.'), -1 === W.indexOf(n) && (W.push(n), B(n))
}
function p(e) {
return e && "function" == typeof e.toPromise
}
function g(e) {
return p(e) ? e.toPromise() : Promise.resolve(e)
}
function m(e) {
return e && Promise.resolve(e) === e
}
function v(t) {
return t instanceof Element || "object" === e(n = t) && n.jquery;
var n
}
function y(e) {
var t = {};
for (var n in e) t[e[n]] = "swal2-" + e[n];
return t
}
function b(e) {
var t = G();
return t ? t.querySelector(e) : null
}
function w(e) {
return b(".".concat(e))
}
function x() {
return h(Q().querySelectorAll(".".concat(Y.icon)))
}
function _() {
var e = x().filter((function(e) {
return me(e)
}));
return e.length ? e[0] : null
}
function C() {
return w(Y.title)
}
function k() {
return w(Y.content)
}
function S() {
return w(Y.image)
}
function T() {
return w(Y["progress-steps"])
}
function D() {
return w(Y["validation-message"])
}
function E() {
return b(".".concat(Y.actions, " .").concat(Y.confirm))
}
function A() {
return b(".".concat(Y.actions, " .").concat(Y.cancel))
}
function M() {
return w(Y.actions)
}
function O() {
return w(Y.header)
}
function I() {
return w(Y.footer)
}
function P() {
return w(Y["timer-progress-bar"])
}
function L() {
return w(Y.close)
}
function F() {
var e = h(Q().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((function(e, t) {
return e = parseInt(e.getAttribute("tabindex")), (t = parseInt(t.getAttribute("tabindex"))) < e ? 1 : e < t ? -1 : 0
})),
t = h(Q().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter((function(e) {
return "-1" !== e.getAttribute("tabindex")
}));
return function(e) {
for (var t = [], n = 0; n < e.length; n++) - 1 === t.indexOf(e[n]) && t.push(e[n]);
return t
}(e.concat(t)).filter((function(e) {
return me(e)
}))
}
function N() {
return !K() && !document.body.classList.contains(Y["no-backdrop"])
}
function R() {
return Q().hasAttribute("data-loading")
}
function j(e, t) {
var n;
e.textContent = "", t && (h((n = (new DOMParser).parseFromString(t, "text/html")).querySelector("head").childNodes).forEach((function(t) {
e.appendChild(t)
})), h(n.querySelector("body").childNodes).forEach((function(t) {
e.appendChild(t)
})))
}
function $(e, t) {
if (t) {
for (var n = t.split(/\s+/), i = 0; i < n.length; i++)
if (!e.classList.contains(n[i])) return;
return 1
}
}
function z(t, n, i) {
var r, o;
if (o = n, h((r = t).classList).forEach((function(e) {
-1 === d(Y).indexOf(e) && -1 === d(X).indexOf(e) && -1 === d(o.showClass).indexOf(e) && r.classList.remove(e)
})), n.customClass && n.customClass[i]) {
if ("string" != typeof n.customClass[i] && !n.customClass[i].forEach) return B("Invalid type of customClass.".concat(i, '! Expected string or iterable object, got "').concat(e(n.customClass[i]), '"'));
fe(t, n.customClass[i])
}
}
var H = "SweetAlert2:",
B = function(e) {
console.warn("".concat(H, " ").concat(e))
},
q = function(e) {
console.error("".concat(H, " ").concat(e))
},
W = [],
U = function(e) {
return "function" == typeof e ? e() : e
},
V = Object.freeze({
cancel: "cancel",
backdrop: "backdrop",
close: "close",
esc: "esc",
timer: "timer"
}),
Y = y(["container", "shown", "height-auto", "iosfix", "popup", "modal", "no-backdrop", "no-transition", "toast", "toast-shown", "toast-column", "show", "hide", "close", "title", "header", "content", "html-container", "actions", "confirm", "cancel", "footer", "icon", "icon-content", "image", "input", "file", "range", "select", "radio", "checkbox", "label", "textarea", "inputerror", "validation-message", "progress-steps", "active-progress-step", "progress-step", "progress-step-line", "loading", "styled", "top", "top-start", "top-end", "top-left", "top-right", "center", "center-start", "center-end", "center-left", "center-right", "bottom", "bottom-start", "bottom-end", "bottom-left", "bottom-right", "grow-row", "grow-column", "grow-fullscreen", "rtl", "timer-progress-bar", "timer-progress-bar-container", "scrollbar-measure", "icon-success", "icon-warning", "icon-info", "icon-question", "icon-error"]),
X = y(["success", "warning", "info", "question", "error"]),
G = function() {
return document.body.querySelector(".".concat(Y.container))
},
Q = function() {
return w(Y.popup)
},
K = function() {
return document.body.classList.contains(Y["toast-shown"])
},
J = {
previousBodyPadding: null
};
function Z(e, t) {
if (!t) return null;
switch (t) {
case "select":
case "textarea":
case "file":
return ge(e, Y[t]);
case "checkbox":
return e.querySelector(".".concat(Y.checkbox, " input"));
case "radio":
return e.querySelector(".".concat(Y.radio, " input:checked")) || e.querySelector(".".concat(Y.radio, " input:first-child"));
case "range":
return e.querySelector(".".concat(Y.range, " input"));
default:
return ge(e, Y.input)
}
}
function ee(e) {
var t;
e.focus(), "file" !== e.type && (t = e.value, e.value = "", e.value = t)
}
function te(e, t, n) {
e && t && ("string" == typeof t && (t = t.split(/\s+/).filter(Boolean)), t.forEach((function(t) {
e.forEach ? e.forEach((function(e) {
n ? e.classList.add(t) : e.classList.remove(t)
})) : n ? e.classList.add(t) : e.classList.remove(t)
})))
}
function ne(e, t, n) {
n || 0 === parseInt(n) ? e.style[t] = "number" == typeof n ? "".concat(n, "px") : n : e.style.removeProperty(t)
}
function ie(e, t) {
var n = 1 < arguments.length && void 0 !== t ? t : "flex";
e.style.opacity = "", e.style.display = n
}
function re(e) {
e.style.opacity = "", e.style.display = "none"
}
function oe(e, t, n) {
t ? ie(e, n) : re(e)
}
function ae(e) {
return !!(e.scrollHeight > e.clientHeight)
}
function se(e) {
var t = window.getComputedStyle(e),
n = parseFloat(t.getPropertyValue("animation-duration") || "0"),
i = parseFloat(t.getPropertyValue("transition-duration") || "0");
return 0 < n || 0 < i
}
function le(e, t) {
var n = 1 < arguments.length && void 0 !== t && t,
i = P();
me(i) && (n && (i.style.transition = "none", i.style.width = "100%"), setTimeout((function() {
i.style.transition = "width ".concat(e / 1e3, "s linear"), i.style.width = "0%"
}), 10))
}
function ce() {
return "undefined" == typeof window || "undefined" == typeof document
}
function ue(e) {
jt.isVisible() && he !== e.target.value && jt.resetValidationMessage(), he = e.target.value
}
function de(t, n) {
t instanceof HTMLElement ? n.appendChild(t) : "object" === e(t) ? ye(t, n) : t && j(n, t)
}
var he, fe = function(e, t) {
te(e, t, !0)
},
pe = function(e, t) {
te(e, t, !1)
},
ge = function(e, t) {
for (var n = 0; n < e.childNodes.length; n++)
if ($(e.childNodes[n], t)) return e.childNodes[n]
},
me = function(e) {
return !(!e || !(e.offsetWidth || e.offsetHeight || e.getClientRects().length))
},
ve = '\n <div aria-labelledby="'.concat(Y.title, '" aria-describedby="').concat(Y.content, '" class="').concat(Y.popup, '" tabindex="-1">\n <div class="').concat(Y.header, '">\n <ul class="').concat(Y["progress-steps"], '"></ul>\n <div class="').concat(Y.icon, " ").concat(X.error, '"></div>\n <div class="').concat(Y.icon, " ").concat(X.question, '"></div>\n <div class="').concat(Y.icon, " ").concat(X.warning, '"></div>\n <div class="').concat(Y.icon, " ").concat(X.info, '"></div>\n <div class="').concat(Y.icon, " ").concat(X.success, '"></div>\n <img class="').concat(Y.image, '" />\n <h2 class="').concat(Y.title, '" id="').concat(Y.title, '"></h2>\n <button type="button" class="').concat(Y.close, '"></button>\n </div>\n <div class="').concat(Y.content, '">\n <div id="').concat(Y.content, '" class="').concat(Y["html-container"], '"></div>\n <input class="').concat(Y.input, '" />\n <input type="file" class="').concat(Y.file, '" />\n <div class="').concat(Y.range, '">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat(Y.select, '"></select>\n <div class="').concat(Y.radio, '"></div>\n <label for="').concat(Y.checkbox, '" class="').concat(Y.checkbox, '">\n <input type="checkbox" />\n <span class="').concat(Y.label, '"></span>\n </label>\n <textarea class="').concat(Y.textarea, '"></textarea>\n <div class="').concat(Y["validation-message"], '" id="').concat(Y["validation-message"], '"></div>\n </div>\n <div class="').concat(Y.actions, '">\n <button type="button" class="').concat(Y.confirm, '">OK</button>\n <button type="button" class="').concat(Y.cancel, '">Cancel</button>\n </div>\n <div class="').concat(Y.footer, '"></div>\n <div class="').concat(Y["timer-progress-bar-container"], '">\n <div class="').concat(Y["timer-progress-bar"], '"></div>\n </div>\n </div>\n').replace(/(^|\n)\s*/g, ""),
ye = function(e, t) {
e.jquery ? be(t, e) : j(t, e.toString())
},
be = function(e, t) {
if (e.textContent = "", 0 in t)
for (var n = 0; n in t; n++) e.appendChild(t[n].cloneNode(!0));
else e.appendChild(t.cloneNode(!0))
},
we = function() {
if (ce()) return !1;
var e = document.createElement("div"),
t = {
WebkitAnimation: "webkitAnimationEnd",
OAnimation: "oAnimationEnd oanimationend",
animation: "animationend"
};
for (var n in t)
if (Object.prototype.hasOwnProperty.call(t, n) && void 0 !== e.style[n]) return t[n];
return !1
}();
function xe(e, t, n) {
var i;
oe(e, n["show".concat((i = t).charAt(0).toUpperCase() + i.slice(1), "Button")], "inline-block"), j(e, n["".concat(t, "ButtonText")]), e.setAttribute("aria-label", n["".concat(t, "ButtonAriaLabel")]), e.className = Y[t], z(e, n, "".concat(t, "Button")), fe(e, n["".concat(t, "ButtonClass")])
}
function _e(e, t) {
e.placeholder && !t.inputPlaceholder || (e.placeholder = t.inputPlaceholder)
}
var Ce = {
promise: new WeakMap,
innerParams: new WeakMap,
domCache: new WeakMap
},
ke = ["input", "file", "range", "select", "radio", "checkbox", "textarea"],
Se = function(e) {
var t = Y[e] ? Y[e] : Y.input;
return ge(k(), t)
},
Te = {};
function De(e, t) {
var n, i, r, o, a, s = k().querySelector("#".concat(Y.content));
t.html ? (de(t.html, s), ie(s, "block")) : t.text ? (s.textContent = t.text, ie(s, "block")) : re(s), n = e, i = t, r = k(), o = Ce.innerParams.get(n), a = !o || i.input !== o.input, ke.forEach((function(e) {
var t = Y[e],
n = ge(r, t);
(function(e, t) {
var n = Z(k(), e);
if (n)
for (var i in function(e) {
for (var t = 0; t < e.attributes.length; t++) {
var n = e.attributes[t].name; - 1 === ["type", "value", "style"].indexOf(n) && e.removeAttribute(n)
}
}(n), t) "range" === e && "placeholder" === i || n.setAttribute(i, t[i])
})(e, i.inputAttributes), n.className = t, a && re(n)
})), i.input && (a && function(e) {
if (!Te[e.input]) return q('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input, '"'));
var t = Se(e.input),
n = Te[e.input](t, e);
ie(n), setTimeout((function() {
ee(n)
}))
}(i), function(e) {
var t = Se(e.input);
e.customClass && fe(t, e.customClass.input)
}(i)), z(k(), t, "content")
}
function Ee() {
return G() && G().getAttribute("data-queue-step")
}
function Ae(e, t) {
var n, i, r, o, a, s, l, c;
z(O(), t, "header"),
function(e, t) {
var n = T();
if (!t.progressSteps || 0 === t.progressSteps.length) return re(n), 0;
ie(n), n.textContent = "";
var i = parseInt(void 0 === t.currentProgressStep ? Ee() : t.currentProgressStep);
i >= t.progressSteps.length && B("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"), t.progressSteps.forEach((function(e, r) {
var o, a, s, l, c, u = (o = e, a = document.createElement("li"), fe(a, Y["progress-step"]), j(a, o), a);
n.appendChild(u), r === i && fe(u, Y["active-progress-step"]), r !== t.progressSteps.length - 1 && (l = t, c = document.createElement("li"), fe(c, Y["progress-step-line"]), l.progressStepsDistance && (c.style.width = l.progressStepsDistance), s = c, n.appendChild(s))
}))
}(0, t), n = e, i = t, (o = Ce.innerParams.get(n)) && i.icon === o.icon && _() ? z(_(), i, "icon") : (Ie(), i.icon && (-1 !== Object.keys(X).indexOf(i.icon) ? (ie(r = b(".".concat(Y.icon, ".").concat(X[i.icon]))), Le(r, i), Pe(), z(r, i, "icon"), fe(r, i.showClass.icon)) : q('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(i.icon, '"')))),
function(e) {
var t = S();
if (!e.imageUrl) return re(t);
ie(t, ""), t.setAttribute("src", e.imageUrl), t.setAttribute("alt", e.imageAlt), ne(t, "width", e.imageWidth), ne(t, "height", e.imageHeight), t.className = Y.image, z(t, e, "image")
}(t), a = t, oe(s = C(), a.title || a.titleText), a.title && de(a.title, s), a.titleText && (s.innerText = a.titleText), z(s, a, "title"), l = t, j(c = L(), l.closeButtonHtml), z(c, l, "closeButton"), oe(c, l.showCloseButton), c.setAttribute("aria-label", l.closeButtonAriaLabel)
}
function Me(e, t) {
var n, i, r, o;
n = t, ne(i = Q(), "width", n.width), ne(i, "padding", n.padding), n.background && (i.style.background = n.background), Re(i, n),
function(e, t) {
var n, i, r, o, a, s, l, c, u = G();
u && (n = u, "string" == typeof(i = t.backdrop) ? n.style.background = i : i || fe([document.documentElement, document.body], Y["no-backdrop"]), !t.backdrop && t.allowOutsideClick && B('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'), r = u, (o = t.position) in Y ? fe(r, Y[o]) : (B('The "position" parameter is not valid, defaulting to "center"'), fe(r, Y.center)), a = u, !(s = t.grow) || "string" != typeof s || (l = "grow-".concat(s)) in Y && fe(a, Y[l]), z(u, t, "container"), (c = document.body.getAttribute("data-swal2-queue-step")) && (u.setAttribute("data-queue-step", c), document.body.removeAttribute("data-swal2-queue-step")))
}(0, t), Ae(e, t), De(e, t),
function(e, t) {
var n = M(),
i = E(),
r = A();
t.showConfirmButton || t.showCancelButton || re(n), z(n, t, "actions"), xe(i, "confirm", t), xe(r, "cancel", t), t.buttonsStyling ? function(e, t, n) {
var i;
fe([e, t], Y.styled), n.confirmButtonColor && (e.style.backgroundColor = n.confirmButtonColor), n.cancelButtonColor && (t.style.backgroundColor = n.cancelButtonColor), R() || (i = window.getComputedStyle(e).getPropertyValue("background-color"), e.style.borderLeftColor = i, e.style.borderRightColor = i)
}(i, r, t) : (pe([i, r], Y.styled), i.style.backgroundColor = i.style.borderLeftColor = i.style.borderRightColor = "", r.style.backgroundColor = r.style.borderLeftColor = r.style.borderRightColor = ""), t.reverseButtons && i.parentNode.insertBefore(r, i)
}(0, t), r = t, oe(o = I(), r.footer), r.footer && de(r.footer, o), z(o, r, "footer"), "function" == typeof t.onRender && t.onRender(Q())
}
function Oe() {
return E() && E().click()
}
Te.text = Te.email = Te.password = Te.number = Te.tel = Te.url = function(t, n) {
return "string" == typeof n.inputValue || "number" == typeof n.inputValue ? t.value = n.inputValue : m(n.inputValue) || B('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(e(n.inputValue), '"')), _e(t, n), t.type = n.input, t
}, Te.file = function(e, t) {
return _e(e, t), e
}, Te.range = function(e, t) {
var n = e.querySelector("input"),
i = e.querySelector("output");
return n.value = t.inputValue, n.type = t.input, i.value = t.inputValue, e
}, Te.select = function(e, t) {
var n;
return e.textContent = "", t.inputPlaceholder && (j(n = document.createElement("option"), t.inputPlaceholder), n.value = "", n.disabled = !0, n.selected = !0, e.appendChild(n)), e
}, Te.radio = function(e) {
return e.textContent = "", e
}, Te.checkbox = function(e, t) {
var n = Z(k(), "checkbox");
return n.value = 1, n.id = Y.checkbox, n.checked = Boolean(t.inputValue), j(e.querySelector("span"), t.inputPlaceholder), e
}, Te.textarea = function(e, t) {
var n, i;
return e.value = t.inputValue, _e(e, t), "MutationObserver" in window && (n = parseInt(window.getComputedStyle(Q()).width), i = parseInt(window.getComputedStyle(Q()).paddingLeft) + parseInt(window.getComputedStyle(Q()).paddingRight), new MutationObserver((function() {
var t = e.offsetWidth + i;
Q().style.width = n < t ? "".concat(t, "px") : null
})).observe(e, {
attributes: !0,
attributeFilter: ["style"]
})), e
};
var Ie = function() {
for (var e = x(), t = 0; t < e.length; t++) re(e[t])
},
Pe = function() {
for (var e = Q(), t = window.getComputedStyle(e).getPropertyValue("background-color"), n = e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"), i = 0; i < n.length; i++) n[i].style.backgroundColor = t
},
Le = function(e, t) {
e.textContent = "", t.iconHtml ? j(e, Fe(t.iconHtml)) : "success" === t.icon ? j(e, '\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n ') : "error" === t.icon ? j(e, '\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n ') : j(e, Fe({
question: "?",
warning: "!",
info: "i"
}[t.icon]))
},
Fe = function(e) {
return '<div class="'.concat(Y["icon-content"], '">').concat(e, "</div>")
},
Ne = [],
Re = function(e, t) {
e.className = "".concat(Y.popup, " ").concat(me(e) ? t.showClass.popup : ""), t.toast ? (fe([document.documentElement, document.body], Y["toast-shown"]), fe(e, Y.toast)) : fe(e, Y.modal), z(e, t, "popup"), "string" == typeof t.customClass && fe(e, t.customClass), t.icon && fe(e, Y["icon-".concat(t.icon)])
};
function je() {
var e = Q();
e || jt.fire(), e = Q();
var t = M(),
n = E();
ie(t), ie(n, "inline-block"), fe([e, t], Y.loading), n.disabled = !0, e.setAttribute("data-loading", !0), e.setAttribute("aria-busy", !0), e.focus()
}
function $e() {
if (qe.timeout) return function() {
var e = P(),
t = parseInt(window.getComputedStyle(e).width);
e.style.removeProperty("transition"), e.style.width = "100%";
var n = parseInt(window.getComputedStyle(e).width),
i = parseInt(t / n * 100);
e.style.removeProperty("transition"), e.style.width = "".concat(i, "%")
}(), qe.timeout.stop()
}
function ze() {
if (qe.timeout) {
var e = qe.timeout.start();
return le(e), e
}
}
function He(e) {
return Object.prototype.hasOwnProperty.call(We, e)
}
function Be(e) {
return Ve[e]
}
var qe = {},
We = {
title: "",
titleText: "",
text: "",
html: "",
footer: "",
icon: void 0,
iconHtml: void 0,
toast: !1,
animation: !0,
showClass: {
popup: "swal2-show",
backdrop: "swal2-backdrop-show",
icon: "swal2-icon-show"
},
hideClass: {
popup: "swal2-hide",
backdrop: "swal2-backdrop-hide",
icon: "swal2-icon-hide"
},
customClass: void 0,
target: "body",
backdrop: !0,
heightAuto: !0,
allowOutsideClick: !0,
allowEscapeKey: !0,
allowEnterKey: !0,
stopKeydownPropagation: !0,
keydownListenerCapture: !1,
showConfirmButton: !0,
showCancelButton: !1,
preConfirm: void 0,
confirmButtonText: "OK",
confirmButtonAriaLabel: "",
confirmButtonColor: void 0,
cancelButtonText: "Cancel",
cancelButtonAriaLabel: "",
cancelButtonColor: void 0,
buttonsStyling: !0,
reverseButtons: !1,
focusConfirm: !0,
focusCancel: !1,
showCloseButton: !1,
closeButtonHtml: "×",
closeButtonAriaLabel: "Close this dialog",
showLoaderOnConfirm: !1,
imageUrl: void 0,
imageWidth: void 0,
imageHeight: void 0,
imageAlt: "",
timer: void 0,
timerProgressBar: !1,
width: void 0,
padding: void 0,
background: void 0,
input: void 0,
inputPlaceholder: "",
inputValue: "",
inputOptions: {},
inputAutoTrim: !0,
inputAttributes: {},
inputValidator: void 0,
validationMessage: void 0,
grow: !1,
position: "center",
progressSteps: [],
currentProgressStep: void 0,
progressStepsDistance: void 0,
onBeforeOpen: void 0,
onOpen: void 0,
onRender: void 0,
onClose: void 0,
onAfterClose: void 0,
onDestroy: void 0,
scrollbarPadding: !0
},
Ue = ["allowEscapeKey", "allowOutsideClick", "buttonsStyling", "cancelButtonAriaLabel", "cancelButtonColor", "cancelButtonText", "closeButtonAriaLabel", "closeButtonHtml", "confirmButtonAriaLabel", "confirmButtonColor", "confirmButtonText", "currentProgressStep", "customClass", "footer", "hideClass", "html", "icon", "imageAlt", "imageHeight", "imageUrl", "imageWidth", "onAfterClose", "onClose", "onDestroy", "progressSteps", "reverseButtons", "showCancelButton", "showCloseButton", "showConfirmButton", "text", "title", "titleText"],
Ve = {
animation: 'showClass" and "hideClass'
},
Ye = ["allowOutsideClick", "allowEnterKey", "backdrop", "focusConfirm", "focusCancel", "heightAuto", "keydownListenerCapture"],
Xe = Object.freeze({
isValidParameter: He,
isUpdatableParameter: function(e) {
return -1 !== Ue.indexOf(e)
},
isDeprecatedParameter: Be,
argsToParams: function(t) {
var n = {};
return "object" !== e(t[0]) || v(t[0]) ? ["title", "html", "icon"].forEach((function(i, r) {
var o = t[r];
"string" == typeof o || v(o) ? n[i] = o : void 0 !== o && q("Unexpected type of ".concat(i, '! Expected "string" or "Element", got ').concat(e(o)))
})) : r(n, t[0]), n
},
isVisible: function() {
return me(Q())
},
clickConfirm: Oe,
clickCancel: function() {
return A() && A().click()
},
getContainer: G,
getPopup: Q,
getTitle: C,
getContent: k,
getHtmlContainer: function() {
return w(Y["html-container"])
},
getImage: S,
getIcon: _,
getIcons: x,
getCloseButton: L,
getActions: M,
getConfirmButton: E,
getCancelButton: A,
getHeader: O,
getFooter: I,
getTimerProgressBar: P,
getFocusableElements: F,
getValidationMessage: D,
isLoading: R,
fire: function() {
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n];
return l(this, t)
},
mixin: function(e) {
return function(n) {
! function(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
writable: !0,
configurable: !0
}
}), t && a(e, t)
}(f, n);
var l, d, h = (l = f, d = s(), function() {
var e, t = o(l);
return c(this, d ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments))
});
function f() {
return t(this, f), h.apply(this, arguments)
}
return i(f, [{
key: "_main",
value: function(t) {
return u(o(f.prototype), "_main", this).call(this, r({}, e, t))
}
}]), f
}(this)
},
queue: function(e) {
var t = this;
function n(e, t) {
Ne = [], e(t)
}
Ne = e;
var i = [];
return new Promise((function(e) {
! function r(o, a) {
o < Ne.length ? (document.body.setAttribute("data-swal2-queue-step", o), t.fire(Ne[o]).then((function(t) {
void 0 !== t.value ? (i.push(t.value), r(o + 1, a)) : n(e, {
dismiss: t.dismiss
})
}))) : n(e, {
value: i
})
}(0)
}))
},
getQueueStep: Ee,
insertQueueStep: function(e, t) {
return t && t < Ne.length ? Ne.splice(t, 0, e) : Ne.push(e)
},
deleteQueueStep: function(e) {
void 0 !== Ne[e] && Ne.splice(e, 1)
},
showLoading: je,
enableLoading: je,
getTimerLeft: function() {
return qe.timeout && qe.timeout.getTimerLeft()
},
stopTimer: $e,
resumeTimer: ze,
toggleTimer: function() {
var e = qe.timeout;
return e && (e.running ? $e : ze)()
},
increaseTimer: function(e) {
if (qe.timeout) {
var t = qe.timeout.increase(e);
return le(t, !0), t
}
},
isTimerRunning: function() {
return qe.timeout && qe.timeout.isRunning()
}
});
function Ge() {
var e, t = Ce.innerParams.get(this);
t && (e = Ce.domCache.get(this), t.showConfirmButton || (re(e.confirmButton), t.showCancelButton || re(e.actions)), pe([e.popup, e.actions], Y.loading), e.popup.removeAttribute("aria-busy"), e.popup.removeAttribute("data-loading"), e.confirmButton.disabled = !1, e.cancelButton.disabled = !1)
}
function Qe() {
return !!window.MSInputMethodContext && !!document.documentMode
}
function Ke() {
var e = G(),
t = Q();
e.style.removeProperty("align-items"), t.offsetTop < 0 && (e.style.alignItems = "flex-start")
}
var Je = function(e) {
var t = G();
return e === t || !(ae(t) || "INPUT" === e.tagName || ae(k()) && k().contains(e))
},
Ze = {
swalPromiseResolve: new WeakMap
};
function et(e, t, n, i) {
var r;
n ? it(e, i) : (new Promise((function(e) {
var t = window.scrollX,
n = window.scrollY;
qe.restoreFocusTimeout = setTimeout((function() {
qe.previousActiveElement && qe.previousActiveElement.focus ? (qe.previousActiveElement.focus(), qe.previousActiveElement = null) : document.body && document.body.focus(), e()
}), 100), void 0 !== t && void 0 !== n && window.scrollTo(t, n)
})).then((function() {
return it(e, i)
})), qe.keydownTarget.removeEventListener("keydown", qe.keydownHandler, {
capture: qe.keydownListenerCapture
}), qe.keydownHandlerAdded = !1), t.parentNode && !document.body.getAttribute("data-swal2-queue-step") && t.parentNode.removeChild(t), N() && (null !== J.previousBodyPadding && (document.body.style.paddingRight = "".concat(J.previousBodyPadding, "px"), J.previousBodyPadding = null), $(document.body, Y.iosfix) && (r = parseInt(document.body.style.top, 10), pe(document.body, Y.iosfix), document.body.style.top = "", document.body.scrollTop = -1 * r), "undefined" != typeof window && Qe() && window.removeEventListener("resize", Ke), h(document.body.children).forEach((function(e) {
e.hasAttribute("data-previous-aria-hidden") ? (e.setAttribute("aria-hidden", e.getAttribute("data-previous-aria-hidden")), e.removeAttribute("data-previous-aria-hidden")) : e.removeAttribute("aria-hidden")
}))), pe([document.documentElement, document.body], [Y.shown, Y["height-auto"], Y["no-backdrop"], Y["toast-shown"], Y["toast-column"]])
}
function tt(e) {
var t, n, i, r = Q();
r && (t = Ce.innerParams.get(this)) && !$(r, t.hideClass.popup) && (n = Ze.swalPromiseResolve.get(this), pe(r, t.showClass.popup), fe(r, t.hideClass.popup), i = G(), pe(i, t.showClass.backdrop), fe(i, t.hideClass.backdrop), function(e, t, n) {
var i = G(),
r = we && se(t),
o = n.onClose,
a = n.onAfterClose;
null !== o && "function" == typeof o && o(t), r ? nt(e, t, i, a) : et(e, i, K(), a)
}(this, r, t), void 0 !== e ? (e.isDismissed = void 0 !== e.dismiss, e.isConfirmed = void 0 === e.dismiss) : e = {
isDismissed: !0,
isConfirmed: !1
}, n(e || {}))
}
var nt = function(e, t, n, i) {
qe.swalCloseEventFinishedCallback = et.bind(null, e, n, K(), i), t.addEventListener(we, (function(e) {
e.target === t && (qe.swalCloseEventFinishedCallback(), delete qe.swalCloseEventFinishedCallback)
}))
},
it = function(e, t) {
setTimeout((function() {
"function" == typeof t && t(), e._destroy()
}))
};
function rt(e, t, n) {
var i = Ce.domCache.get(e);
t.forEach((function(e) {
i[e].disabled = n
}))
}
function ot(e, t) {
if (!e) return !1;
if ("radio" === e.type)
for (var n = e.parentNode.parentNode.querySelectorAll("input"), i = 0; i < n.length; i++) n[i].disabled = t;
else e.disabled = t
}
var at = function() {
function e(n, i) {
t(this, e), this.callback = n, this.remaining = i, this.running = !1, this.start()
}
return i(e, [{
key: "start",
value: function() {
return this.running || (this.running = !0, this.started = new Date, this.id = setTimeout(this.callback, this.remaining)), this.remaining
}
}, {
key: "stop",
value: function() {
return this.running && (this.running = !1, clearTimeout(this.id), this.remaining -= new Date - this.started), this.remaining
}
}, {
key: "increase",
value: function(e) {
var t = this.running;
return t && this.stop(), this.remaining += e, t && this.start(), this.remaining
}
}, {
key: "getTimerLeft",
value: function() {
return this.running && (this.stop(), this.start()), this.remaining
}
}, {
key: "isRunning",
value: function() {
return this.running
}
}]), e
}(),
st = {
email: function(e, t) {
return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e) ? Promise.resolve() : Promise.resolve(t || "Invalid email address")
},
url: function(e, t) {
return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e) ? Promise.resolve() : Promise.resolve(t || "Invalid URL")
}
};
function lt(e) {
var t, n;
(t = e).inputValidator || Object.keys(st).forEach((function(e) {
t.input === e && (t.inputValidator = st[e])
})), e.showLoaderOnConfirm && !e.preConfirm && B("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"), e.animation = U(e.animation), (n = e).target && ("string" != typeof n.target || document.querySelector(n.target)) && ("string" == typeof n.target || n.target.appendChild) || (B('Target parameter is not valid, defaulting to "body"'), n.target = "body"), "string" == typeof e.title && (e.title = e.title.split("\n").join("<br />")),
function(e) {
var t, n, i, r, o, a, s, l, c, u, d, h, f, p, g, m = !!(t = G()) && (t.parentNode.removeChild(t), pe([document.documentElement, document.body], [Y["no-backdrop"], Y["toast-shown"], Y["has-column"]]), !0);
ce() ? q("SweetAlert2 requires document to initialize") : ((n = document.createElement("div")).className = Y.container, m && fe(n, Y["no-transition"]), j(n, ve), (i = "string" == typeof(r = e.target) ? document.querySelector(r) : r).appendChild(n), o = e, (a = Q()).setAttribute("role", o.toast ? "alert" : "dialog"), a.setAttribute("aria-live", o.toast ? "polite" : "assertive"), o.toast || a.setAttribute("aria-modal", "true"), s = i, "rtl" === window.getComputedStyle(s).direction && fe(G(), Y.rtl), l = k(), c = ge(l, Y.input), u = ge(l, Y.file), d = l.querySelector(".".concat(Y.range, " input")), h = l.querySelector(".".concat(Y.range, " output")), f = ge(l, Y.select), p = l.querySelector(".".concat(Y.checkbox, " input")), g = ge(l, Y.textarea), c.oninput = ue, u.onchange = ue, f.onchange = ue, p.onchange = ue, g.oninput = ue, d.oninput = function(e) {
ue(e), h.value = d.value
}, d.onchange = function(e) {
ue(e), d.nextSibling.value = d.value
})
}(e)
}
function ct(e) {
var t, n = Q();
e.target === n && (t = G(), n.removeEventListener(we, ct), t.style.overflowY = "auto")
}
function ut(e, t) {
e.closePopup({
value: t
})
}
function dt(e, t, n) {
var i = F();
if (0 < i.length) return (t += n) === i.length ? t = 0 : -1 === t && (t = i.length - 1), i[t].focus();
Q().focus()
}
var ht, ft = function(e, t) {
we && se(t) ? (e.style.overflowY = "hidden", t.addEventListener(we, ct)) : e.style.overflowY = "auto"
},
pt = function(e, t, n) {
var i;
(/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || "MacIntel" === navigator.platform && 1 < navigator.maxTouchPoints) && !$(document.body, Y.iosfix) && (i = document.body.scrollTop, document.body.style.top = "".concat(-1 * i, "px"), fe(document.body, Y.iosfix), function() {
var e, t = G();
t.ontouchstart = function(t) {
e = Je(t.target)
}, t.ontouchmove = function(t) {
e && (t.preventDefault(), t.stopPropagation())
}
}(), navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i) || Q().scrollHeight > window.innerHeight - 44 && (G().style.paddingBottom = "".concat(44, "px"))), "undefined" != typeof window && Qe() && (Ke(), window.addEventListener("resize", Ke)), t && "hidden" !== n && null === J.previousBodyPadding && document.body.scrollHeight > window.innerHeight && (J.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")), document.body.style.paddingRight = "".concat(J.previousBodyPadding + function() {
var e = document.createElement("div");
e.className = Y["scrollbar-measure"], document.body.appendChild(e);
var t = e.getBoundingClientRect().width - e.clientWidth;
return document.body.removeChild(e), t
}(), "px")), setTimeout((function() {
e.scrollTop = 0
}))
},
gt = function(e, t, n) {
fe(e, n.showClass.backdrop), ie(t), fe(t, n.showClass.popup), fe([document.documentElement, document.body], Y.shown), n.heightAuto && n.backdrop && !n.toast && fe([document.documentElement, document.body], Y["height-auto"])
},
mt = function(t, n) {
function i(e) {
return yt[n.input](r, bt(e), n)
}
var r = k();
p(n.inputOptions) || m(n.inputOptions) ? (je(), g(n.inputOptions).then((function(e) {
t.hideLoading(), i(e)
}))) : "object" === e(n.inputOptions) ? i(n.inputOptions) : q("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(e(n.inputOptions)))
},
vt = function(e, t) {
var n = e.getInput();
re(n), g(t.inputValue).then((function(i) {
n.value = "number" === t.input ? parseFloat(i) || 0 : "".concat(i), ie(n), n.focus(), e.hideLoading()
})).catch((function(t) {
q("Error in inputValue promise: ".concat(t)), n.value = "", ie(n), n.focus(), e.hideLoading()
}))
},
yt = {
select: function(e, t, n) {
function i(e, t, i) {
var r = document.createElement("option");
r.value = i, j(r, t), n.inputValue.toString() === i.toString() && (r.selected = !0), e.appendChild(r)
}
var r = ge(e, Y.select);
t.forEach((function(e) {
var t, n = e[0],
o = e[1];
Array.isArray(o) ? ((t = document.createElement("optgroup")).label = n, t.disabled = !1, r.appendChild(t), o.forEach((function(e) {
return i(t, e[1], e[0])
}))) : i(r, o, n)
})), r.focus()
},
radio: function(e, t, n) {
var i = ge(e, Y.radio);
t.forEach((function(e) {
var t = e[0],
r = e[1],
o = document.createElement("input"),
a = document.createElement("label");
o.type = "radio", o.name = Y.radio, o.value = t, n.inputValue.toString() === t.toString() && (o.checked = !0);
var s = document.createElement("span");
j(s, r), s.className = Y.label, a.appendChild(o), a.appendChild(s), i.appendChild(a)
}));
var r = i.querySelectorAll("input");
r.length && r[0].focus()
}
},
bt = function t(n) {
var i = [];
return "undefined" != typeof Map && n instanceof Map ? n.forEach((function(n, r) {
var o = n;
"object" === e(o) && (o = t(o)), i.push([r, o])
})) : Object.keys(n).forEach((function(r) {
var o = n[r];
"object" === e(o) && (o = t(o)), i.push([r, o])
})), i
},
wt = function(e, t) {
var n = function(e, t) {
var n = e.getInput();
if (!n) return null;
switch (t.input) {
case "checkbox":
return function(e) {
return e.checked ? 1 : 0
}(n);
case "radio":
return function(e) {
return e.checked ? e.value : null
}(n);
case "file":
return function(e) {
return e.files.length ? null !== e.getAttribute("multiple") ? e.files : e.files[0] : null
}(n);
default:
return t.inputAutoTrim ? n.value.trim() : n.value
}
}(e, t);
t.inputValidator ? (e.disableInput(), Promise.resolve().then((function() {
return g(t.inputValidator(n, t.validationMessage))
})).then((function(i) {
e.enableButtons(), e.enableInput(), i ? e.showValidationMessage(i) : xt(e, t, n)
}))) : e.getInput().checkValidity() ? xt(e, t, n) : (e.enableButtons(), e.showValidationMessage(t.validationMessage))
},
xt = function(e, t, n) {
t.showLoaderOnConfirm && je(), t.preConfirm ? (e.resetValidationMessage(), Promise.resolve().then((function() {
return g(t.preConfirm(n, t.validationMessage))
})).then((function(t) {
me(D()) || !1 === t ? e.hideLoading() : ut(e, void 0 === t ? n : t)
}))) : ut(e, n)
},
_t = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Left", "Right", "Up", "Down"],
Ct = ["Escape", "Esc"],
kt = function(e, t, n) {
var i = Ce.innerParams.get(e);
i.stopKeydownPropagation && t.stopPropagation(), "Enter" === t.key ? St(e, t, i) : "Tab" === t.key ? Tt(t, i) : -1 !== _t.indexOf(t.key) ? Dt() : -1 !== Ct.indexOf(t.key) && Et(t, i, n)
},
St = function(e, t, n) {
if (!t.isComposing && t.target && e.getInput() && t.target.outerHTML === e.getInput().outerHTML) {
if (-1 !== ["textarea", "file"].indexOf(n.input)) return;
Oe(), t.preventDefault()
}
},
Tt = function(e) {
for (var t = e.target, n = F(), i = -1, r = 0; r < n.length; r++)
if (t === n[r]) {
i = r;
break
}
e.shiftKey ? dt(0, i, -1) : dt(0, i, 1), e.stopPropagation(), e.preventDefault()
},
Dt = function() {
var e = E(),
t = A();
document.activeElement === e && me(t) ? t.focus() : document.activeElement === t && me(e) && e.focus()
},
Et = function(e, t, n) {
U(t.allowEscapeKey) && (e.preventDefault(), n(V.esc))
},
At = function(e, t, n) {
t.popup.onclick = function() {
var t = Ce.innerParams.get(e);
t.showConfirmButton || t.showCancelButton || t.showCloseButton || t.input || n(V.close)
}
},
Mt = !1,
Ot = function(e) {
e.popup.onmousedown = function() {
e.container.onmouseup = function(t) {
e.container.onmouseup = void 0, t.target === e.container && (Mt = !0)
}
}
},
It = function(e) {
e.container.onmousedown = function() {
e.popup.onmouseup = function(t) {
e.popup.onmouseup = void 0, t.target !== e.popup && !e.popup.contains(t.target) || (Mt = !0)
}
}
},
Pt = function(e, t, n) {
t.container.onclick = function(i) {
var r = Ce.innerParams.get(e);
Mt ? Mt = !1 : i.target === t.container && U(r.allowOutsideClick) && n(V.backdrop)
}
},
Lt = function() {
document.activeElement && "function" == typeof document.activeElement.blur && document.activeElement.blur()
},
Ft = function(e) {
for (var t in e) e[t] = new WeakMap
},
Nt = Object.freeze({
hideLoading: Ge,
disableLoading: Ge,
getInput: function(e) {
var t = Ce.innerParams.get(e || this),
n = Ce.domCache.get(e || this);
return n ? Z(n.content, t.input) : null
},
close: tt,
closePopup: tt,
closeModal: tt,
closeToast: tt,
enableButtons: function() {
rt(this, ["confirmButton", "cancelButton"], !1)
},
disableButtons: function() {
rt(this, ["confirmButton", "cancelButton"], !0)
},
enableInput: function() {
return ot(this.getInput(), !1)
},
disableInput: function() {
return ot(this.getInput(), !0)
},
showValidationMessage: function(e) {
var t = Ce.domCache.get(this);
j(t.validationMessage, e);
var n = window.getComputedStyle(t.popup);
t.validationMessage.style.marginLeft = "-".concat(n.getPropertyValue("padding-left")), t.validationMessage.style.marginRight = "-".concat(n.getPropertyValue("padding-right")), ie(t.validationMessage);
var i = this.getInput();
i && (i.setAttribute("aria-invalid", !0), i.setAttribute("aria-describedBy", Y["validation-message"]), ee(i), fe(i, Y.inputerror))
},
resetValidationMessage: function() {
var e = Ce.domCache.get(this);
e.validationMessage && re(e.validationMessage);
var t = this.getInput();
t && (t.removeAttribute("aria-invalid"), t.removeAttribute("aria-describedBy"), pe(t, Y.inputerror))
},
getProgressSteps: function() {
return Ce.domCache.get(this).progressSteps
},
_main: function(e) {
(function(e) {
for (var t in e) He(r = t) || B('Unknown parameter "'.concat(r, '"')), e.toast && (i = t, -1 !== Ye.indexOf(i) && B('The parameter "'.concat(i, '" is incompatible with toasts'))), Be(n = t) && f(n, Be(n));
var n, i, r
})(e), qe.currentInstance && qe.currentInstance._destroy(), qe.currentInstance = this;
var t = function(e) {
var t = r({}, We.showClass, e.showClass),
n = r({}, We.hideClass, e.hideClass),
i = r({}, We, e);
return i.showClass = t, i.hideClass = n, !1 === e.animation && (i.showClass = {
popup: "swal2-noanimation",
backdrop: "swal2-noanimation"
}, i.hideClass = {}), i
}(e);
lt(t), Object.freeze(t), qe.timeout && (qe.timeout.stop(), delete qe.timeout), clearTimeout(qe.restoreFocusTimeout);
var n = function(e) {
var t = {
popup: Q(),
container: G(),
content: k(),
actions: M(),
confirmButton: E(),
cancelButton: A(),
closeButton: L(),
validationMessage: D(),
progressSteps: T()
};
return Ce.domCache.set(e, t), t
}(this);
return Me(this, t), Ce.innerParams.set(this, t),
function(e, t, n) {
return new Promise((function(i) {
var r = function(t) {
e.closePopup({
dismiss: t
})
};
Ze.swalPromiseResolve.set(e, i), t.confirmButton.onclick = function() {
return function(e, t) {
e.disableButtons(), t.input ? wt(e, t) : xt(e, t, !0)
}(e, n)
}, t.cancelButton.onclick = function() {
return function(e, t) {
e.disableButtons(), t(V.cancel)
}(e, r)
}, t.closeButton.onclick = function() {
return r(V.close)
},
function(e, t, n) {
Ce.innerParams.get(e).toast ? At(e, t, n) : (Ot(t), It(t), Pt(e, t, n))
}(e, t, r),
function(e, t, n, i) {
t.keydownTarget && t.keydownHandlerAdded && (t.keydownTarget.removeEventListener("keydown", t.keydownHandler, {
capture: t.keydownListenerCapture
}), t.keydownHandlerAdded = !1), n.toast || (t.keydownHandler = function(t) {
return kt(e, t, i)
}, t.keydownTarget = n.keydownListenerCapture ? window : Q(), t.keydownListenerCapture = n.keydownListenerCapture, t.keydownTarget.addEventListener("keydown", t.keydownHandler, {
capture: t.keydownListenerCapture
}), t.keydownHandlerAdded = !0)
}(e, qe, n, r), n.toast && (n.input || n.footer || n.showCloseButton) ? fe(document.body, Y["toast-column"]) : pe(document.body, Y["toast-column"]),
function(e, t) {
"select" === t.input || "radio" === t.input ? mt(e, t) : -1 !== ["text", "email", "number", "tel", "textarea"].indexOf(t.input) && (p(t.inputValue) || m(t.inputValue)) && vt(e, t)
}(e, n),
function(e) {
var t = G(),
n = Q();
"function" == typeof e.onBeforeOpen && e.onBeforeOpen(n);
var i = window.getComputedStyle(document.body).overflowY;
gt(t, n, e), ft(t, n), N() && (pt(t, e.scrollbarPadding, i), h(document.body.children).forEach((function(e) {
e === G() || function(e, t) {
if ("function" == typeof e.contains) return e.contains(t)
}(e, G()) || (e.hasAttribute("aria-hidden") && e.setAttribute("data-previous-aria-hidden", e.getAttribute("aria-hidden")), e.setAttribute("aria-hidden", "true"))
}))), K() || qe.previousActiveElement || (qe.previousActiveElement = document.activeElement), "function" == typeof e.onOpen && setTimeout((function() {
return e.onOpen(n)
})), pe(t, Y["no-transition"])
}(n),
function(e, t, n) {
var i = P();
re(i), t.timer && (e.timeout = new at((function() {
n("timer"), delete e.timeout
}), t.timer), t.timerProgressBar && (ie(i), setTimeout((function() {
e.timeout.running && le(t.timer)
}))))
}(qe, n, r),
function(e, t) {
if (!t.toast) U(t.allowEnterKey) ? t.focusCancel && me(e.cancelButton) ? e.cancelButton.focus() : t.focusConfirm && me(e.confirmButton) ? e.confirmButton.focus() : dt(0, -1, 1) : Lt()
}(t, n), setTimeout((function() {
t.container.scrollTop = 0
}))
}))
}(this, n, t)
},
update: function(e) {
var t = Q(),
n = Ce.innerParams.get(this);
if (!t || $(t, n.hideClass.popup)) return B("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");
var i = {};
Object.keys(e).forEach((function(t) {
jt.isUpdatableParameter(t) ? i[t] = e[t] : B('Invalid parameter to update: "'.concat(t, '". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js'))
}));
var o = r({}, n, i);
Me(this, o), Ce.innerParams.set(this, o), Object.defineProperties(this, {
params: {
value: r({}, this.params, e),
writable: !1,
enumerable: !0
}
})
},
_destroy: function() {
var e = Ce.domCache.get(this),
t = Ce.innerParams.get(this);
t && (e.popup && qe.swalCloseEventFinishedCallback && (qe.swalCloseEventFinishedCallback(), delete qe.swalCloseEventFinishedCallback), qe.deferDisposalTimer && (clearTimeout(qe.deferDisposalTimer), delete qe.deferDisposalTimer), "function" == typeof t.onDestroy && t.onDestroy(), delete this.params, delete qe.keydownHandler, delete qe.keydownTarget, Ft(Ce), Ft(Ze))
}
}),
Rt = function() {
function e() {
if (t(this, e), "undefined" != typeof window) {
"undefined" == typeof Promise && q("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"), ht = this;
for (var n = arguments.length, i = new Array(n), r = 0; r < n; r++) i[r] = arguments[r];
var o = Object.freeze(this.constructor.argsToParams(i));
Object.defineProperties(this, {
params: {
value: o,
writable: !1,
enumerable: !0,
configurable: !0
}
});
var a = this._main(this.params);
Ce.promise.set(this, a)
}
}
return i(e, [{
key: "then",
value: function(e) {
return Ce.promise.get(this).then(e)
}
}, {
key: "finally",
value: function(e) {
return Ce.promise.get(this).finally(e)
}
}]), e
}();
r(Rt.prototype, Nt), r(Rt, Xe), Object.keys(Nt).forEach((function(e) {
Rt[e] = function() {
if (ht) return ht[e].apply(ht, arguments)
}
})), Rt.DismissReason = V, Rt.version = "9.17.2";
var jt = Rt;
return jt.default = jt
})), void 0 !== this && this.Sweetalert2 && (this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2),
function(e) {
e(["jquery"], (function(e) {
return function() {
function t(t, n) {
return t || (t = a()), (l = e("#" + t.containerId)).length || n && (l = function(t) {
return (l = e("<div/>").attr("id", t.containerId).addClass(t.positionClass)).appendTo(e(t.target)), l
}(t)), l
}
function n(t) {
for (var n = l.children(), r = n.length - 1; r >= 0; r--) i(e(n[r]), t)
}
function i(t, n, i) {
var r = !(!i || !i.force) && i.force;
return !(!t || !r && 0 !== e(":focus", t).length || (t[n.hideMethod]({
duration: n.hideDuration,
easing: n.hideEasing,
complete: function() {
s(t)
}
}), 0))
}
function r(e) {
c && c(e)
}
function o(n) {
function i(e) {
return null == e && (e = ""), e.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">")
}
function o(t) {
var n = t && !1 !== p.closeMethod ? p.closeMethod : p.hideMethod,
i = t && !1 !== p.closeDuration ? p.closeDuration : p.hideDuration,
o = t && !1 !== p.closeEasing ? p.closeEasing : p.hideEasing;
if (!e(":focus", v).length || t) return clearTimeout(_.intervalId), v[n]({
duration: i,
easing: o,
complete: function() {
s(v), clearTimeout(m), p.onHidden && "hidden" !== C.state && p.onHidden(), C.state = "hidden", C.endTime = new Date, r(C)
}
})
}
function c() {
(p.timeOut > 0 || p.extendedTimeOut > 0) && (m = setTimeout(o, p.extendedTimeOut), _.maxHideTime = parseFloat(p.extendedTimeOut), _.hideEta = (new Date).getTime() + _.maxHideTime)
}
function h() {
clearTimeout(m), _.hideEta = 0, v.stop(!0, !0)[p.showMethod]({
duration: p.showDuration,
easing: p.showEasing
})
}
function f() {
var e = (_.hideEta - (new Date).getTime()) / _.maxHideTime * 100;
w.width(e + "%")
}
var p = a(),
g = n.iconClass || p.iconClass;
if (void 0 !== n.optionsOverride && (p = e.extend(p, n.optionsOverride), g = n.optionsOverride.iconClass || g), ! function(e, t) {
if (e.preventDuplicates) {
if (t.message === u) return !0;
u = t.message
}
return !1
}(p, n)) {
d++, l = t(p, !0);
var m = null,
v = e("<div/>"),
y = e("<div/>"),
b = e("<div/>"),
w = e("<div/>"),
x = e(p.closeHtml),
_ = {
intervalId: null,
hideEta: null,
maxHideTime: null
},
C = {
toastId: d,
state: "visible",
startTime: new Date,
options: p,
map: n
};
return n.iconClass && v.addClass(p.toastClass).addClass(g),
function() {
if (n.title) {
var e = n.title;
p.escapeHtml && (e = i(n.title)), y.append(e).addClass(p.titleClass), v.append(y)
}
}(),
function() {
if (n.message) {
var e = n.message;
p.escapeHtml && (e = i(n.message)), b.append(e).addClass(p.messageClass), v.append(b)
}
}(), p.closeButton && (x.addClass(p.closeClass).attr("role", "button"), v.prepend(x)), p.progressBar && (w.addClass(p.progressClass), v.prepend(w)), p.rtl && v.addClass("rtl"), p.newestOnTop ? l.prepend(v) : l.append(v),
function() {
var e = "";
switch (n.iconClass) {
case "toast-success":
case "toast-info":
e = "polite";
break;
default:
e = "assertive"
}
v.attr("aria-live", e)
}(), v.hide(), v[p.showMethod]({
duration: p.showDuration,
easing: p.showEasing,
complete: p.onShown
}), p.timeOut > 0 && (m = setTimeout(o, p.timeOut), _.maxHideTime = parseFloat(p.timeOut), _.hideEta = (new Date).getTime() + _.maxHideTime, p.progressBar && (_.intervalId = setInterval(f, 10))), p.closeOnHover && v.hover(h, c), !p.onclick && p.tapToDismiss && v.click(o), p.closeButton && x && x.click((function(e) {
e.stopPropagation ? e.stopPropagation() : void 0 !== e.cancelBubble && !0 !== e.cancelBubble && (e.cancelBubble = !0), p.onCloseClick && p.onCloseClick(e), o(!0)
})), p.onclick && v.click((function(e) {
p.onclick(e), o()
})), r(C), p.debug && console && console.log(C), v
}
}
function a() {
return e.extend({}, {
tapToDismiss: !0,
toastClass: "toast",
containerId: "toast-container",
debug: !1,
showMethod: "fadeIn",
showDuration: 300,
showEasing: "swing",
onShown: void 0,
hideMethod: "fadeOut",
hideDuration: 1e3,
hideEasing: "swing",
onHidden: void 0,
closeMethod: !1,
closeDuration: !1,
closeEasing: !1,
closeOnHover: !0,
extendedTimeOut: 1e3,
iconClasses: {
error: "toast-error",
info: "toast-info",
success: "toast-success",
warning: "toast-warning"
},
iconClass: "toast-info",
positionClass: "toast-top-right",
timeOut: 5e3,
titleClass: "toast-title",
messageClass: "toast-message",
escapeHtml: !1,
target: "body",
closeHtml: '<button type="button">×</button>',
closeClass: "toast-close-button",
newestOnTop: !0,
preventDuplicates: !1,
progressBar: !1,
progressClass: "toast-progress",
rtl: !1
}, f.options)
}
function s(e) {
l || (l = t()), e.is(":visible") || (e.remove(), e = null, 0 === l.children().length && (l.remove(), u = void 0))
}
var l, c, u, d = 0,
h = {
error: "error",
info: "info",
success: "success",
warning: "warning"
},
f = {
clear: function(e, r) {
var o = a();
l || t(o), i(e, o, r) || n(o)
},
remove: function(n) {
var i = a();
return l || t(i), n && 0 === e(":focus", n).length ? void s(n) : void(l.children().length && l.remove())
},
error: function(e, t, n) {
return o({
type: h.error,
iconClass: a().iconClasses.error,
message: e,
optionsOverride: n,
title: t
})
},
getContainer: t,
info: function(e, t, n) {
return o({
type: h.info,
iconClass: a().iconClasses.info,
message: e,
optionsOverride: n,
title: t
})
},
options: {},
subscribe: function(e) {
c = e
},
success: function(e, t, n) {
return o({
type: h.success,
iconClass: a().iconClasses.success,
message: e,
optionsOverride: n,
title: t
})
},
version: "2.1.4",
warning: function(e, t, n) {
return o({
type: h.warning,
iconClass: a().iconClasses.warning,
message: e,
optionsOverride: n,
title: t
})
}
};
return f
}()
}))
}("function" == typeof define && define.amd ? define : function(e, t) {
"undefined" != typeof module && module.exports ? module.exports = t(require("jquery")) : window.toastr = t(window.jQuery)
}),
function(e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(jQuery)
}((function(e) {
e.extend(e.fn, {
validate: function(t) {
if (this.length) {
var n = e.data(this[0], "validator");
return n || (this.attr("novalidate", "novalidate"), n = new e.validator(t, this[0]), e.data(this[0], "validator", n), n.settings.onsubmit && (this.on("click.validate", ":submit", (function(t) {
n.submitButton = t.currentTarget, e(this).hasClass("cancel") && (n.cancelSubmit = !0), void 0 !== e(this).attr("formnovalidate") && (n.cancelSubmit = !0)
})), this.on("submit.validate", (function(t) {
function i() {
var i, r;
return n.submitButton && (n.settings.submitHandler || n.formSubmitted) && (i = e("<input type='hidden'/>").attr("name", n.submitButton.name).val(e(n.submitButton).val()).appendTo(n.currentForm)), !(n.settings.submitHandler && !n.settings.debug) || (r = n.settings.submitHandler.call(n, n.currentForm, t), i && i.remove(), void 0 !== r && r)
}
return n.settings.debug && t.preventDefault(), n.cancelSubmit ? (n.cancelSubmit = !1, i()) : n.form() ? n.pendingRequest ? (n.formSubmitted = !0, !1) : i() : (n.focusInvalid(), !1)
}))), n)
}
t && t.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing.")
},
valid: function() {
var t, n, i;
return e(this[0]).is("form") ? t = this.validate().form() : (i = [], t = !0, n = e(this[0].form).validate(), this.each((function() {
(t = n.element(this) && t) || (i = i.concat(n.errorList))
})), n.errorList = i), t
},
rules: function(t, n) {
var i, r, o, a, s, l, c = this[0],
u = void 0 !== this.attr("contenteditable") && "false" !== this.attr("contenteditable");
if (null != c && (!c.form && u && (c.form = this.closest("form")[0], c.name = this.attr("name")), null != c.form)) {
if (t) switch (i = e.data(c.form, "validator").settings, r = i.rules, o = e.validator.staticRules(c), t) {
case "add":
e.extend(o, e.validator.normalizeRule(n)), delete o.messages, r[c.name] = o, n.messages && (i.messages[c.name] = e.extend(i.messages[c.name], n.messages));
break;
case "remove":
return n ? (l = {}, e.each(n.split(/\s/), (function(e, t) {
l[t] = o[t], delete o[t]
})), l) : (delete r[c.name], o)
}
return (a = e.validator.normalizeRules(e.extend({}, e.validator.classRules(c), e.validator.attributeRules(c), e.validator.dataRules(c), e.validator.staticRules(c)), c)).required && (s = a.required, delete a.required, a = e.extend({
required: s
}, a)), a.remote && (s = a.remote, delete a.remote, a = e.extend(a, {
remote: s
})), a
}
}
});
var t = function(e) {
return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
};
e.extend(e.expr.pseudos || e.expr[":"], {
blank: function(n) {
return !t("" + e(n).val())
},
filled: function(n) {
var i = e(n).val();
return null !== i && !!t("" + i)
},
unchecked: function(t) {
return !e(t).prop("checked")
}
}), e.validator = function(t, n) {
this.settings = e.extend(!0, {}, e.validator.defaults, t), this.currentForm = n, this.init()
}, e.validator.format = function(t, n) {
return 1 === arguments.length ? function() {
var n = e.makeArray(arguments);
return n.unshift(t), e.validator.format.apply(this, n)
} : (void 0 === n || (arguments.length > 2 && n.constructor !== Array && (n = e.makeArray(arguments).slice(1)), n.constructor !== Array && (n = [n]), e.each(n, (function(e, n) {
t = t.replace(new RegExp("\\{" + e + "\\}", "g"), (function() {
return n
}))
}))), t)
}, e.extend(e.validator, {
defaults: {
messages: {},
groups: {},
rules: {},
errorClass: "error",
pendingClass: "pending",
validClass: "valid",
errorElement: "label",
focusCleanup: !1,
focusInvalid: !0,
errorContainer: e([]),
errorLabelContainer: e([]),
onsubmit: !0,
ignore: ":hidden",
ignoreTitle: !1,
onfocusin: function(e) {
this.lastActive = e, this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, e, this.settings.errorClass, this.settings.validClass), this.hideThese(this.errorsFor(e)))
},
onfocusout: function(e) {
this.checkable(e) || !(e.name in this.submitted) && this.optional(e) || this.element(e)
},
onkeyup: function(t, n) {
9 === n.which && "" === this.elementValue(t) || -1 !== e.inArray(n.keyCode, [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]) || (t.name in this.submitted || t.name in this.invalid) && this.element(t)
},
onclick: function(e) {
e.name in this.submitted ? this.element(e) : e.parentNode.name in this.submitted && this.element(e.parentNode)
},
highlight: function(t, n, i) {
"radio" === t.type ? this.findByName(t.name).addClass(n).removeClass(i) : e(t).addClass(n).removeClass(i)
},
unhighlight: function(t, n, i) {
"radio" === t.type ? this.findByName(t.name).removeClass(n).addClass(i) : e(t).removeClass(n).addClass(i)
}
},
setDefaults: function(t) {
e.extend(e.validator.defaults, t)
},
messages: {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
equalTo: "Please enter the same value again.",
maxlength: e.validator.format("Please enter no more than {0} characters."),
minlength: e.validator.format("Please enter at least {0} characters."),
rangelength: e.validator.format("Please enter a value between {0} and {1} characters long."),
range: e.validator.format("Please enter a value between {0} and {1}."),
max: e.validator.format("Please enter a value less than or equal to {0}."),
min: e.validator.format("Please enter a value greater than or equal to {0}."),
step: e.validator.format("Please enter a multiple of {0}.")
},
autoCreateRanges: !1,
prototype: {
init: function() {
function t(t) {
var n = void 0 !== e(this).attr("contenteditable") && "false" !== e(this).attr("contenteditable");
if (!this.form && n && (this.form = e(this).closest("form")[0], this.name = e(this).attr("name")), i === this.form) {
var r = e.data(this.form, "validator"),
o = "on" + t.type.replace(/^validate/, ""),
a = r.settings;
a[o] && !e(this).is(a.ignore) && a[o].call(r, this, t)
}
}
this.labelContainer = e(this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || e(this.currentForm), this.containers = e(this.settings.errorContainer).add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset();
var n, i = this.currentForm,
r = this.groups = {};
e.each(this.settings.groups, (function(t, n) {
"string" == typeof n && (n = n.split(/\s/)), e.each(n, (function(e, n) {
r[n] = t
}))
})), n = this.settings.rules, e.each(n, (function(t, i) {
n[t] = e.validator.normalizeRule(i)
})), e(this.currentForm).on("focusin.validate focusout.validate keyup.validate", ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']", t).on("click.validate", "select, option, [type='radio'], [type='checkbox']", t), this.settings.invalidHandler && e(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler)
},
form: function() {
return this.checkForm(), e.extend(this.submitted, this.errorMap), this.invalid = e.extend({}, this.errorMap), this.valid() || e(this.currentForm).triggerHandler("invalid-form", [this]), this.showErrors(), this.valid()
},
checkForm: function() {
this.prepareForm();
for (var e = 0, t = this.currentElements = this.elements(); t[e]; e++) this.check(t[e]);
return this.valid()
},
element: function(t) {
var n, i, r = this.clean(t),
o = this.validationTargetFor(r),
a = this,
s = !0;
return void 0 === o ? delete this.invalid[r.name] : (this.prepareElement(o), this.currentElements = e(o), (i = this.groups[o.name]) && e.each(this.groups, (function(e, t) {
t === i && e !== o.name && ((r = a.validationTargetFor(a.clean(a.findByName(e)))) && r.name in a.invalid && (a.currentElements.push(r), s = a.check(r) && s))
})), n = !1 !== this.check(o), s = s && n, this.invalid[o.name] = !n, this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)), this.showErrors(), e(t).attr("aria-invalid", !n)), s
},
showErrors: function(t) {
if (t) {
var n = this;
e.extend(this.errorMap, t), this.errorList = e.map(this.errorMap, (function(e, t) {
return {
message: e,
element: n.findByName(t)[0]
}
})), this.successList = e.grep(this.successList, (function(e) {
return !(e.name in t)
}))
}
this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
},
resetForm: function() {
e.fn.resetForm && e(this.currentForm).resetForm(), this.invalid = {}, this.submitted = {}, this.prepareForm(), this.hideErrors();
var t = this.elements().removeData("previousValue").removeAttr("aria-invalid");
this.resetElements(t)
},
resetElements: function(e) {
var t;
if (this.settings.unhighlight)
for (t = 0; e[t]; t++) this.settings.unhighlight.call(this, e[t], this.settings.errorClass, ""), this.findByName(e[t].name).removeClass(this.settings.validClass);
else e.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)
},
numberOfInvalids: function() {
return this.objectLength(this.invalid)
},
objectLength: function(e) {
var t, n = 0;
for (t in e) void 0 !== e[t] && null !== e[t] && !1 !== e[t] && n++;
return n
},
hideErrors: function() {
this.hideThese(this.toHide)
},
hideThese: function(e) {
e.not(this.containers).text(""), this.addWrapper(e).hide()
},
valid: function() {
return 0 === this.size()
},
size: function() {
return this.errorList.length
},
focusInvalid: function() {
if (this.settings.focusInvalid) try {
e(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").trigger("focus").trigger("focusin")
} catch (e) {}
},
findLastActive: function() {
var t = this.lastActive;
return t && 1 === e.grep(this.errorList, (function(e) {
return e.element.name === t.name
})).length && t
},
elements: function() {
var t = this,
n = {};
return e(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter((function() {
var i = this.name || e(this).attr("name"),
r = void 0 !== e(this).attr("contenteditable") && "false" !== e(this).attr("contenteditable");
return !i && t.settings.debug && window.console && console.error("%o has no name assigned", this), r && (this.form = e(this).closest("form")[0], this.name = i), !(this.form !== t.currentForm || i in n || !t.objectLength(e(this).rules()) || (n[i] = !0, 0))
}))
},
clean: function(t) {
return e(t)[0]
},
errors: function() {
var t = this.settings.errorClass.split(" ").join(".");
return e(this.settings.errorElement + "." + t, this.errorContext)
},
resetInternals: function() {
this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = e([]), this.toHide = e([])
},
reset: function() {
this.resetInternals(), this.currentElements = e([])
},
prepareForm: function() {
this.reset(), this.toHide = this.errors().add(this.containers)
},
prepareElement: function(e) {
this.reset(), this.toHide = this.errorsFor(e)
},
elementValue: function(t) {
var n, i, r = e(t),
o = t.type,
a = void 0 !== r.attr("contenteditable") && "false" !== r.attr("contenteditable");
return "radio" === o || "checkbox" === o ? this.findByName(t.name).filter(":checked").val() : "number" === o && void 0 !== t.validity ? t.validity.badInput ? "NaN" : r.val() : (n = a ? r.text() : r.val(), "file" === o ? "C:\\fakepath\\" === n.substr(0, 12) ? n.substr(12) : (i = n.lastIndexOf("/")) >= 0 ? n.substr(i + 1) : (i = n.lastIndexOf("\\")) >= 0 ? n.substr(i + 1) : n : "string" == typeof n ? n.replace(/\r/g, "") : n)
},
check: function(t) {
t = this.validationTargetFor(this.clean(t));
var n, i, r, o, a = e(t).rules(),
s = e.map(a, (function(e, t) {
return t
})).length,
l = !1,
c = this.elementValue(t);
for (i in "function" == typeof a.normalizer ? o = a.normalizer : "function" == typeof this.settings.normalizer && (o = this.settings.normalizer), o && (c = o.call(t, c), delete a.normalizer), a) {
r = {
method: i,
parameters: a[i]
};
try {
if ("dependency-mismatch" === (n = e.validator.methods[i].call(this, c, t, r.parameters)) && 1 === s) {
l = !0;
continue
}
if (l = !1, "pending" === n) return void(this.toHide = this.toHide.not(this.errorsFor(t)));
if (!n) return this.formatAndAdd(t, r), !1
} catch (e) {
throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + t.id + ", check the '" + r.method + "' method.", e), e instanceof TypeError && (e.message += ". Exception occurred when checking element " + t.id + ", check the '" + r.method + "' method."), e
}
}
if (!l) return this.objectLength(a) && this.successList.push(t), !0
},
customDataMessage: function(t, n) {
return e(t).data("msg" + n.charAt(0).toUpperCase() + n.substring(1).toLowerCase()) || e(t).data("msg")
},
customMessage: function(e, t) {
var n = this.settings.messages[e];
return n && (n.constructor === String ? n : n[t])
},
findDefined: function() {
for (var e = 0; e < arguments.length; e++)
if (void 0 !== arguments[e]) return arguments[e]
},
defaultMessage: function(t, n) {
"string" == typeof n && (n = {
method: n
});
var i = this.findDefined(this.customMessage(t.name, n.method), this.customDataMessage(t, n.method), !this.settings.ignoreTitle && t.title || void 0, e.validator.messages[n.method], "<strong>Warning: No message defined for " + t.name + "</strong>"),
r = /\$?\{(\d+)\}/g;
return "function" == typeof i ? i = i.call(this, n.parameters, t) : r.test(i) && (i = e.validator.format(i.replace(r, "{$1}"), n.parameters)), i
},
formatAndAdd: function(e, t) {
var n = this.defaultMessage(e, t);
this.errorList.push({
message: n,
element: e,
method: t.method
}), this.errorMap[e.name] = n, this.submitted[e.name] = n
},
addWrapper: function(e) {
return this.settings.wrapper && (e = e.add(e.parent(this.settings.wrapper))), e
},
defaultShowErrors: function() {
var e, t, n;
for (e = 0; this.errorList[e]; e++) n = this.errorList[e], this.settings.highlight && this.settings.highlight.call(this, n.element, this.settings.errorClass, this.settings.validClass), this.showLabel(n.element, n.message);
if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)), this.settings.success)
for (e = 0; this.successList[e]; e++) this.showLabel(this.successList[e]);
if (this.settings.unhighlight)
for (e = 0, t = this.validElements(); t[e]; e++) this.settings.unhighlight.call(this, t[e], this.settings.errorClass, this.settings.validClass);
this.toHide = this.toHide.not(this.toShow), this.hideErrors(), this.addWrapper(this.toShow).show()
},
validElements: function() {
return this.currentElements.not(this.invalidElements())
},
invalidElements: function() {
return e(this.errorList).map((function() {
return this.element
}))
},
showLabel: function(t, n) {
var i, r, o, a, s = this.errorsFor(t),
l = this.idOrName(t),
c = e(t).attr("aria-describedby");
s.length ? (s.removeClass(this.settings.validClass).addClass(this.settings.errorClass), s.html(n)) : (i = s = e("<" + this.settings.errorElement + ">").attr("id", l + "-error").addClass(this.settings.errorClass).html(n || ""), this.settings.wrapper && (i = s.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()), this.labelContainer.length ? this.labelContainer.append(i) : this.settings.errorPlacement ? this.settings.errorPlacement.call(this, i, e(t)) : i.insertAfter(t), s.is("label") ? s.attr("for", l) : 0 === s.parents("label[for='" + this.escapeCssMeta(l) + "']").length && (o = s.attr("id"), c ? c.match(new RegExp("\\b" + this.escapeCssMeta(o) + "\\b")) || (c += " " + o) : c = o, e(t).attr("aria-describedby", c), (r = this.groups[t.name]) && (a = this, e.each(a.groups, (function(t, n) {
n === r && e("[name='" + a.escapeCssMeta(t) + "']", a.currentForm).attr("aria-describedby", s.attr("id"))
}))))), !n && this.settings.success && (s.text(""), "string" == typeof this.settings.success ? s.addClass(this.settings.success) : this.settings.success(s, t)), this.toShow = this.toShow.add(s)
},
errorsFor: function(t) {
var n = this.escapeCssMeta(this.idOrName(t)),
i = e(t).attr("aria-describedby"),
r = "label[for='" + n + "'], label[for='" + n + "'] *";
return i && (r = r + ", #" + this.escapeCssMeta(i).replace(/\s+/g, ", #")), this.errors().filter(r)
},
escapeCssMeta: function(e) {
return e.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g, "\\$1")
},
idOrName: function(e) {
return this.groups[e.name] || (this.checkable(e) ? e.name : e.id || e.name)
},
validationTargetFor: function(t) {
return this.checkable(t) && (t = this.findByName(t.name)), e(t).not(this.settings.ignore)[0]
},
checkable: function(e) {
return /radio|checkbox/i.test(e.type)
},
findByName: function(t) {
return e(this.currentForm).find("[name='" + this.escapeCssMeta(t) + "']")
},
getLength: function(t, n) {
switch (n.nodeName.toLowerCase()) {
case "select":
return e("option:selected", n).length;
case "input":
if (this.checkable(n)) return this.findByName(n.name).filter(":checked").length
}
return t.length
},
depend: function(e, t) {
return !this.dependTypes[typeof e] || this.dependTypes[typeof e](e, t)
},
dependTypes: {
boolean: function(e) {
return e
},
string: function(t, n) {
return !!e(t, n.form).length
},
function: function(e, t) {
return e(t)
}
},
optional: function(t) {
var n = this.elementValue(t);
return !e.validator.methods.required.call(this, n, t) && "dependency-mismatch"
},
startRequest: function(t) {
this.pending[t.name] || (this.pendingRequest++, e(t).addClass(this.settings.pendingClass), this.pending[t.name] = !0)
},
stopRequest: function(t, n) {
this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[t.name], e(t).removeClass(this.settings.pendingClass), n && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (e(this.currentForm).submit(), this.submitButton && e("input:hidden[name='" + this.submitButton.name + "']", this.currentForm).remove(), this.formSubmitted = !1) : !n && 0 === this.pendingRequest && this.formSubmitted && (e(this.currentForm).triggerHandler("invalid-form", [this]), this.formSubmitted = !1)
},
previousValue: function(t, n) {
return n = "string" == typeof n && n || "remote", e.data(t, "previousValue") || e.data(t, "previousValue", {
old: null,
valid: !0,
message: this.defaultMessage(t, {
method: n
})
})
},
destroy: function() {
this.resetForm(), e(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")
}
},
classRuleSettings: {
required: {
required: !0
},
email: {
email: !0
},
url: {
url: !0
},
date: {
date: !0
},
dateISO: {
dateISO: !0
},
number: {
number: !0
},
digits: {
digits: !0
},
creditcard: {
creditcard: !0
}
},
addClassRules: function(t, n) {
t.constructor === String ? this.classRuleSettings[t] = n : e.extend(this.classRuleSettings, t)
},
classRules: function(t) {
var n = {},
i = e(t).attr("class");
return i && e.each(i.split(" "), (function() {
this in e.validator.classRuleSettings && e.extend(n, e.validator.classRuleSettings[this])
})), n
},
normalizeAttributeRule: function(e, t, n, i) {
/min|max|step/.test(n) && (null === t || /number|range|text/.test(t)) && (i = Number(i), isNaN(i) && (i = void 0)), i || 0 === i ? e[n] = i : t === n && "range" !== t && (e[n] = !0)
},
attributeRules: function(t) {
var n, i, r = {},
o = e(t),
a = t.getAttribute("type");
for (n in e.validator.methods) "required" === n ? ("" === (i = t.getAttribute(n)) && (i = !0), i = !!i) : i = o.attr(n), this.normalizeAttributeRule(r, a, n, i);
return r.maxlength && /-1|2147483647|524288/.test(r.maxlength) && delete r.maxlength, r
},
dataRules: function(t) {
var n, i, r = {},
o = e(t),
a = t.getAttribute("type");
for (n in e.validator.methods) "" === (i = o.data("rule" + n.charAt(0).toUpperCase() + n.substring(1).toLowerCase())) && (i = !0), this.normalizeAttributeRule(r, a, n, i);
return r
},
staticRules: function(t) {
var n = {},
i = e.data(t.form, "validator");
return i.settings.rules && (n = e.validator.normalizeRule(i.settings.rules[t.name]) || {}), n
},
normalizeRules: function(t, n) {
return e.each(t, (function(i, r) {
if (!1 !== r) {
if (r.param || r.depends) {
var o = !0;
switch (typeof r.depends) {
case "string":
o = !!e(r.depends, n.form).length;
break;
case "function":
o = r.depends.call(n, n)
}
o ? t[i] = void 0 === r.param || r.param : (e.data(n.form, "validator").resetElements(e(n)), delete t[i])
}
} else delete t[i]
})), e.each(t, (function(i, r) {
t[i] = e.isFunction(r) && "normalizer" !== i ? r(n) : r
})), e.each(["minlength", "maxlength"], (function() {
t[this] && (t[this] = Number(t[this]))
})), e.each(["rangelength", "range"], (function() {
var n;
t[this] && (e.isArray(t[this]) ? t[this] = [Number(t[this][0]), Number(t[this][1])] : "string" == typeof t[this] && (n = t[this].replace(/[\[\]]/g, "").split(/[\s,]+/), t[this] = [Number(n[0]), Number(n[1])]))
})), e.validator.autoCreateRanges && (null != t.min && null != t.max && (t.range = [t.min, t.max], delete t.min, delete t.max), null != t.minlength && null != t.maxlength && (t.rangelength = [t.minlength, t.maxlength], delete t.minlength, delete t.maxlength)), t
},
normalizeRule: function(t) {
if ("string" == typeof t) {
var n = {};
e.each(t.split(/\s/), (function() {
n[this] = !0
})), t = n
}
return t
},
addMethod: function(t, n, i) {
e.validator.methods[t] = n, e.validator.messages[t] = void 0 !== i ? i : e.validator.messages[t], n.length < 3 && e.validator.addClassRules(t, e.validator.normalizeRule(t))
},
methods: {
required: function(t, n, i) {
if (!this.depend(i, n)) return "dependency-mismatch";
if ("select" === n.nodeName.toLowerCase()) {
var r = e(n).val();
return r && r.length > 0
}
return this.checkable(n) ? this.getLength(t, n) > 0 : null != t && t.length > 0
},
email: function(e, t) {
return this.optional(t) || /^[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])?)*$/.test(e)
},
url: function(e, t) {
return this.optional(t) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(e)
},
date: function() {
var e = !1;
return function(t, n) {
return e || (e = !0, this.settings.debug && window.console && console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")), this.optional(n) || !/Invalid|NaN/.test(new Date(t).toString())
}
}(),
dateISO: function(e, t) {
return this.optional(t) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e)
},
number: function(e, t) {
return this.optional(t) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e)
},
digits: function(e, t) {
return this.optional(t) || /^\d+$/.test(e)
},
minlength: function(t, n, i) {
var r = e.isArray(t) ? t.length : this.getLength(t, n);
return this.optional(n) || r >= i
},
maxlength: function(t, n, i) {
var r = e.isArray(t) ? t.length : this.getLength(t, n);
return this.optional(n) || r <= i
},
rangelength: function(t, n, i) {
var r = e.isArray(t) ? t.length : this.getLength(t, n);
return this.optional(n) || r >= i[0] && r <= i[1]
},
min: function(e, t, n) {
return this.optional(t) || e >= n
},
max: function(e, t, n) {
return this.optional(t) || e <= n
},
range: function(e, t, n) {
return this.optional(t) || e >= n[0] && e <= n[1]
},
step: function(t, n, i) {
var r, o = e(n).attr("type"),
a = "Step attribute on input type " + o + " is not supported.",
s = new RegExp("\\b" + o + "\\b"),
l = function(e) {
var t = ("" + e).match(/(?:\.(\d+))?$/);
return t && t[1] ? t[1].length : 0
},
c = function(e) {
return Math.round(e * Math.pow(10, r))
},
u = !0;
if (o && !s.test(["text", "number", "range"].join())) throw new Error(a);
return r = l(i), (l(t) > r || c(t) % c(i) != 0) && (u = !1), this.optional(n) || u
},
equalTo: function(t, n, i) {
var r = e(i);
return this.settings.onfocusout && r.not(".validate-equalTo-blur").length && r.addClass("validate-equalTo-blur").on("blur.validate-equalTo", (function() {
e(n).valid()
})), t === r.val()
},
remote: function(t, n, i, r) {
if (this.optional(n)) return "dependency-mismatch";
r = "string" == typeof r && r || "remote";
var o, a, s, l = this.previousValue(n, r);
return this.settings.messages[n.name] || (this.settings.messages[n.name] = {}), l.originalMessage = l.originalMessage || this.settings.messages[n.name][r], this.settings.messages[n.name][r] = l.message, i = "string" == typeof i && {
url: i
} || i, s = e.param(e.extend({
data: t
}, i.data)), l.old === s ? l.valid : (l.old = s, o = this, this.startRequest(n), (a = {})[n.name] = t, e.ajax(e.extend(!0, {
mode: "abort",
port: "validate" + n.name,
dataType: "json",
data: a,
context: o.currentForm,
success: function(e) {
var i, a, s, c = !0 === e || "true" === e;
o.settings.messages[n.name][r] = l.originalMessage, c ? (s = o.formSubmitted, o.resetInternals(), o.toHide = o.errorsFor(n), o.formSubmitted = s, o.successList.push(n), o.invalid[n.name] = !1, o.showErrors()) : (i = {}, a = e || o.defaultMessage(n, {
method: r,
parameters: t
}), i[n.name] = l.message = a, o.invalid[n.name] = !0, o.showErrors(i)), l.valid = c, o.stopRequest(n, c)
}
}, i)), "pending")
}
}
});
var n, i = {};
return e.ajaxPrefilter ? e.ajaxPrefilter((function(e, t, n) {
var r = e.port;
"abort" === e.mode && (i[r] && i[r].abort(), i[r] = n)
})) : (n = e.ajax, e.ajax = function(t) {
var r = ("mode" in t ? t : e.ajaxSettings).mode,
o = ("port" in t ? t : e.ajaxSettings).port;
return "abort" === r ? (i[o] && i[o].abort(), i[o] = n.apply(this, arguments), i[o]) : n.apply(this, arguments)
}), e
})),
function(e) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof exports ? module.exports = e(require("jquery")) : e(jQuery)
}((function(e) {
"use strict";
var t = window.Slick || {};
(t = function() {
var t = 0;
return function(n, i) {
var r, o = this;
o.defaults = {
accessibility: !0,
adaptiveHeight: !1,
appendArrows: e(n),
appendDots: e(n),
arrows: !0,
asNavFor: null,
prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
autoplay: !1,
autoplaySpeed: 3e3,
centerMode: !1,
centerPadding: "50px",
cssEase: "ease",
customPaging: function(t, n) {
return e('<button type="button" />').text(n + 1)
},
dots: !1,
dotsClass: "slick-dots",
draggable: !0,
easing: "linear",
edgeFriction: .35,
fade: !1,
focusOnSelect: !1,
focusOnChange: !1,
infinite: !0,
initialSlide: 0,
lazyLoad: "ondemand",
mobileFirst: !1,
pauseOnHover: !0,
pauseOnFocus: !0,
pauseOnDotsHover: !1,
respondTo: "window",
responsive: null,
rows: 1,
rtl: !1,
slide: "",
slidesPerRow: 1,
slidesToShow: 1,
slidesToScroll: 1,
speed: 500,
swipe: !0,
swipeToSlide: !1,
touchMove: !0,
touchThreshold: 5,
useCSS: !0,
useTransform: !0,
variableWidth: !1,
vertical: !1,
verticalSwiping: !1,
waitForAnimate: !0,
zIndex: 1e3
}, o.initials = {
animating: !1,
dragging: !1,
autoPlayTimer: null,
currentDirection: 0,
currentLeft: null,
currentSlide: 0,
direction: 1,
$dots: null,
listWidth: null,
listHeight: null,
loadIndex: 0,
$nextArrow: null,
$prevArrow: null,
scrolling: !1,
slideCount: null,
slideWidth: null,
$slideTrack: null,
$slides: null,
sliding: !1,
slideOffset: 0,
swipeLeft: null,
swiping: !1,
$list: null,
touchObject: {},
transformsEnabled: !1,
unslicked: !1
}, e.extend(o, o.initials), o.activeBreakpoint = null, o.animType = null, o.animProp = null, o.breakpoints = [], o.breakpointSettings = [], o.cssTransitions = !1, o.focussed = !1, o.interrupted = !1, o.hidden = "hidden", o.paused = !0, o.positionProp = null, o.respondTo = null, o.rowCount = 1, o.shouldClick = !0, o.$slider = e(n), o.$slidesCache = null, o.transformType = null, o.transitionType = null, o.visibilityChange = "visibilitychange", o.windowWidth = 0, o.windowTimer = null, r = e(n).data("slick") || {}, o.options = e.extend({}, o.defaults, i, r), o.currentSlide = o.options.initialSlide, o.originalSettings = o.options, void 0 !== document.mozHidden ? (o.hidden = "mozHidden", o.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (o.hidden = "webkitHidden", o.visibilityChange = "webkitvisibilitychange"), o.autoPlay = e.proxy(o.autoPlay, o), o.autoPlayClear = e.proxy(o.autoPlayClear, o), o.autoPlayIterator = e.proxy(o.autoPlayIterator, o), o.changeSlide = e.proxy(o.changeSlide, o), o.clickHandler = e.proxy(o.clickHandler, o), o.selectHandler = e.proxy(o.selectHandler, o), o.setPosition = e.proxy(o.setPosition, o), o.swipeHandler = e.proxy(o.swipeHandler, o), o.dragHandler = e.proxy(o.dragHandler, o), o.keyHandler = e.proxy(o.keyHandler, o), o.instanceUid = t++, o.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, o.registerBreakpoints(), o.init(!0)
}
}()).prototype.activateADA = function() {
this.$slideTrack.find(".slick-active").attr({
"aria-hidden": "false"
}).find("a, input, button, select").attr({
tabindex: "0"
})
}, t.prototype.addSlide = t.prototype.slickAdd = function(t, n, i) {
var r = this;
if ("boolean" == typeof n) i = n, n = null;
else if (n < 0 || n >= r.slideCount) return !1;
r.unload(), "number" == typeof n ? 0 === n && 0 === r.$slides.length ? e(t).appendTo(r.$slideTrack) : i ? e(t).insertBefore(r.$slides.eq(n)) : e(t).insertAfter(r.$slides.eq(n)) : !0 === i ? e(t).prependTo(r.$slideTrack) : e(t).appendTo(r.$slideTrack), r.$slides = r.$slideTrack.children(this.options.slide), r.$slideTrack.children(this.options.slide).detach(), r.$slideTrack.append(r.$slides), r.$slides.each((function(t, n) {
e(n).attr("data-slick-index", t)
})), r.$slidesCache = r.$slides, r.reinit()
}, t.prototype.animateHeight = function() {
var e = this;
if (1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical) {
var t = e.$slides.eq(e.currentSlide).outerHeight(!0);
e.$list.animate({
height: t
}, e.options.speed)
}
}, t.prototype.animateSlide = function(t, n) {
var i = {},
r = this;
r.animateHeight(), !0 === r.options.rtl && !1 === r.options.vertical && (t = -t), !1 === r.transformsEnabled ? !1 === r.options.vertical ? r.$slideTrack.animate({
left: t
}, r.options.speed, r.options.easing, n) : r.$slideTrack.animate({
top: t
}, r.options.speed, r.options.easing, n) : !1 === r.cssTransitions ? (!0 === r.options.rtl && (r.currentLeft = -r.currentLeft), e({
animStart: r.currentLeft
}).animate({
animStart: t
}, {
duration: r.options.speed,
easing: r.options.easing,
step: function(e) {
e = Math.ceil(e), !1 === r.options.vertical ? (i[r.animType] = "translate(" + e + "px, 0px)", r.$slideTrack.css(i)) : (i[r.animType] = "translate(0px," + e + "px)", r.$slideTrack.css(i))
},
complete: function() {
n && n.call()
}
})) : (r.applyTransition(), t = Math.ceil(t), !1 === r.options.vertical ? i[r.animType] = "translate3d(" + t + "px, 0px, 0px)" : i[r.animType] = "translate3d(0px," + t + "px, 0px)", r.$slideTrack.css(i), n && setTimeout((function() {
r.disableTransition(), n.call()
}), r.options.speed))
}, t.prototype.getNavTarget = function() {
var t = this.options.asNavFor;
return t && null !== t && (t = e(t).not(this.$slider)), t
}, t.prototype.asNavFor = function(t) {
var n = this.getNavTarget();
null !== n && "object" == typeof n && n.each((function() {
var n = e(this).slick("getSlick");
n.unslicked || n.slideHandler(t, !0)
}))
}, t.prototype.applyTransition = function(e) {
var t = this,
n = {};
!1 === t.options.fade ? n[t.transitionType] = t.transformType + " " + t.options.speed + "ms " + t.options.cssEase : n[t.transitionType] = "opacity " + t.options.speed + "ms " + t.options.cssEase, !1 === t.options.fade ? t.$slideTrack.css(n) : t.$slides.eq(e).css(n)
}, t.prototype.autoPlay = function() {
var e = this;
e.autoPlayClear(), e.slideCount > e.options.slidesToShow && (e.autoPlayTimer = setInterval(e.autoPlayIterator, e.options.autoplaySpeed))
}, t.prototype.autoPlayClear = function() {
this.autoPlayTimer && clearInterval(this.autoPlayTimer)
}, t.prototype.autoPlayIterator = function() {
var e = this,
t = e.currentSlide + e.options.slidesToScroll;
e.paused || e.interrupted || e.focussed || (!1 === e.options.infinite && (1 === e.direction && e.currentSlide + 1 === e.slideCount - 1 ? e.direction = 0 : 0 === e.direction && (t = e.currentSlide - e.options.slidesToScroll, e.currentSlide - 1 == 0 && (e.direction = 1))), e.slideHandler(t))
}, t.prototype.buildArrows = function() {
var t = this;
!0 === t.options.arrows && (t.$prevArrow = e(t.options.prevArrow).addClass("slick-arrow"), t.$nextArrow = e(t.options.nextArrow).addClass("slick-arrow"), t.slideCount > t.options.slidesToShow ? (t.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), t.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.prependTo(t.options.appendArrows), t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.appendTo(t.options.appendArrows), !0 !== t.options.infinite && t.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : t.$prevArrow.add(t.$nextArrow).addClass("slick-hidden").attr({
"aria-disabled": "true",
tabindex: "-1"
}))
}, t.prototype.buildDots = function() {
var t, n, i = this;
if (!0 === i.options.dots) {
for (i.$slider.addClass("slick-dotted"), n = e("<ul />").addClass(i.options.dotsClass), t = 0; t <= i.getDotCount(); t += 1) n.append(e("<li />").append(i.options.customPaging.call(this, i, t)));
i.$dots = n.appendTo(i.options.appendDots), i.$dots.find("li").first().addClass("slick-active")
}
}, t.prototype.buildOut = function() {
var t = this;
t.$slides = t.$slider.children(t.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), t.slideCount = t.$slides.length, t.$slides.each((function(t, n) {
e(n).attr("data-slick-index", t).data("originalStyling", e(n).attr("style") || "")
})), t.$slider.addClass("slick-slider"), t.$slideTrack = 0 === t.slideCount ? e('<div class="slick-track"/>').appendTo(t.$slider) : t.$slides.wrapAll('<div class="slick-track"/>').parent(), t.$list = t.$slideTrack.wrap('<div class="slick-list"/>').parent(), t.$slideTrack.css("opacity", 0), !0 !== t.options.centerMode && !0 !== t.options.swipeToSlide || (t.options.slidesToScroll = 1), e("img[data-lazy]", t.$slider).not("[src]").addClass("slick-loading"), t.setupInfinite(), t.buildArrows(), t.buildDots(), t.updateDots(), t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0), !0 === t.options.draggable && t.$list.addClass("draggable")
}, t.prototype.buildRows = function() {
var e, t, n, i, r, o, a, s = this;
if (i = document.createDocumentFragment(), o = s.$slider.children(), s.options.rows > 1) {
for (a = s.options.slidesPerRow * s.options.rows, r = Math.ceil(o.length / a), e = 0; e < r; e++) {
var l = document.createElement("div");
for (t = 0; t < s.options.rows; t++) {
var c = document.createElement("div");
for (n = 0; n < s.options.slidesPerRow; n++) {
var u = e * a + (t * s.options.slidesPerRow + n);
o.get(u) && c.appendChild(o.get(u))
}
l.appendChild(c)
}
i.appendChild(l)
}
s.$slider.empty().append(i), s.$slider.children().children().children().css({
width: 100 / s.options.slidesPerRow + "%",
display: "inline-block"
})
}
}, t.prototype.checkResponsive = function(t, n) {
var i, r, o, a = this,
s = !1,
l = a.$slider.width(),
c = window.innerWidth || e(window).width();
if ("window" === a.respondTo ? o = c : "slider" === a.respondTo ? o = l : "min" === a.respondTo && (o = Math.min(c, l)), a.options.responsive && a.options.responsive.length && null !== a.options.responsive) {
for (i in r = null, a.breakpoints) a.breakpoints.hasOwnProperty(i) && (!1 === a.originalSettings.mobileFirst ? o < a.breakpoints[i] && (r = a.breakpoints[i]) : o > a.breakpoints[i] && (r = a.breakpoints[i]));
null !== r ? null !== a.activeBreakpoint ? (r !== a.activeBreakpoint || n) && (a.activeBreakpoint = r, "unslick" === a.breakpointSettings[r] ? a.unslick(r) : (a.options = e.extend({}, a.originalSettings, a.breakpointSettings[r]), !0 === t && (a.currentSlide = a.options.initialSlide), a.refresh(t)), s = r) : (a.activeBreakpoint = r, "unslick" === a.breakpointSettings[r] ? a.unslick(r) : (a.options = e.extend({}, a.originalSettings, a.breakpointSettings[r]), !0 === t && (a.currentSlide = a.options.initialSlide), a.refresh(t)), s = r) : null !== a.activeBreakpoint && (a.activeBreakpoint = null, a.options = a.originalSettings, !0 === t && (a.currentSlide = a.options.initialSlide), a.refresh(t), s = r), t || !1 === s || a.$slider.trigger("breakpoint", [a, s])
}
}, t.prototype.changeSlide = function(t, n) {
var i, r, o = this,
a = e(t.currentTarget);
switch (a.is("a") && t.preventDefault(), a.is("li") || (a = a.closest("li")), i = o.slideCount % o.options.slidesToScroll != 0 ? 0 : (o.slideCount - o.currentSlide) % o.options.slidesToScroll, t.data.message) {
case "previous":
r = 0 === i ? o.options.slidesToScroll : o.options.slidesToShow - i, o.slideCount > o.options.slidesToShow && o.slideHandler(o.currentSlide - r, !1, n);
break;
case "next":
r = 0 === i ? o.options.slidesToScroll : i, o.slideCount > o.options.slidesToShow && o.slideHandler(o.currentSlide + r, !1, n);
break;
case "index":
var s = 0 === t.data.index ? 0 : t.data.index || a.index() * o.options.slidesToScroll;
o.slideHandler(o.checkNavigable(s), !1, n), a.children().trigger("focus");
break;
default:
return
}
}, t.prototype.checkNavigable = function(e) {
var t, n;
if (n = 0, e > (t = this.getNavigableIndexes())[t.length - 1]) e = t[t.length - 1];
else
for (var i in t) {
if (e < t[i]) {
e = n;
break
}
n = t[i]
}
return e
}, t.prototype.cleanUpEvents = function() {
var t = this;
t.options.dots && null !== t.$dots && (e("li", t.$dots).off("click.slick", t.changeSlide).off("mouseenter.slick", e.proxy(t.interrupt, t, !0)).off("mouseleave.slick", e.proxy(t.interrupt, t, !1)), !0 === t.options.accessibility && t.$dots.off("keydown.slick", t.keyHandler)), t.$slider.off("focus.slick blur.slick"), !0 === t.options.arrows && t.slideCount > t.options.slidesToShow && (t.$prevArrow && t.$prevArrow.off("click.slick", t.changeSlide), t.$nextArrow && t.$nextArrow.off("click.slick", t.changeSlide), !0 === t.options.accessibility && (t.$prevArrow && t.$prevArrow.off("keydown.slick", t.keyHandler), t.$nextArrow && t.$nextArrow.off("keydown.slick", t.keyHandler))), t.$list.off("touchstart.slick mousedown.slick", t.swipeHandler), t.$list.off("touchmove.slick mousemove.slick", t.swipeHandler), t.$list.off("touchend.slick mouseup.slick", t.swipeHandler), t.$list.off("touchcancel.slick mouseleave.slick", t.swipeHandler), t.$list.off("click.slick", t.clickHandler), e(document).off(t.visibilityChange, t.visibility), t.cleanUpSlideEvents(), !0 === t.options.accessibility && t.$list.off("keydown.slick", t.keyHandler), !0 === t.options.focusOnSelect && e(t.$slideTrack).children().off("click.slick", t.selectHandler), e(window).off("orientationchange.slick.slick-" + t.instanceUid, t.orientationChange), e(window).off("resize.slick.slick-" + t.instanceUid, t.resize), e("[draggable!=true]", t.$slideTrack).off("dragstart", t.preventDefault), e(window).off("load.slick.slick-" + t.instanceUid, t.setPosition)
}, t.prototype.cleanUpSlideEvents = function() {
var t = this;
t.$list.off("mouseenter.slick", e.proxy(t.interrupt, t, !0)), t.$list.off("mouseleave.slick", e.proxy(t.interrupt, t, !1))
}, t.prototype.cleanUpRows = function() {
var e, t = this;
t.options.rows > 1 && ((e = t.$slides.children().children()).removeAttr("style"), t.$slider.empty().append(e))
}, t.prototype.clickHandler = function(e) {
!1 === this.shouldClick && (e.stopImmediatePropagation(), e.stopPropagation(), e.preventDefault())
}, t.prototype.destroy = function(t) {
var n = this;
n.autoPlayClear(), n.touchObject = {}, n.cleanUpEvents(), e(".slick-cloned", n.$slider).detach(), n.$dots && n.$dots.remove(), n.$prevArrow && n.$prevArrow.length && (n.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), n.htmlExpr.test(n.options.prevArrow) && n.$prevArrow.remove()), n.$nextArrow && n.$nextArrow.length && (n.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), n.htmlExpr.test(n.options.nextArrow) && n.$nextArrow.remove()), n.$slides && (n.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each((function() {
e(this).attr("style", e(this).data("originalStyling"))
})), n.$slideTrack.children(this.options.slide).detach(), n.$slideTrack.detach(), n.$list.detach(), n.$slider.append(n.$slides)), n.cleanUpRows(), n.$slider.removeClass("slick-slider"), n.$slider.removeClass("slick-initialized"), n.$slider.removeClass("slick-dotted"), n.unslicked = !0, t || n.$slider.trigger("destroy", [n])
}, t.prototype.disableTransition = function(e) {
var t = this,
n = {};
n[t.transitionType] = "", !1 === t.options.fade ? t.$slideTrack.css(n) : t.$slides.eq(e).css(n)
}, t.prototype.fadeSlide = function(e, t) {
var n = this;
!1 === n.cssTransitions ? (n.$slides.eq(e).css({
zIndex: n.options.zIndex
}), n.$slides.eq(e).animate({
opacity: 1
}, n.options.speed, n.options.easing, t)) : (n.applyTransition(e), n.$slides.eq(e).css({
opacity: 1,
zIndex: n.options.zIndex
}), t && setTimeout((function() {
n.disableTransition(e), t.call()
}), n.options.speed))
}, t.prototype.fadeSlideOut = function(e) {
var t = this;
!1 === t.cssTransitions ? t.$slides.eq(e).animate({
opacity: 0,
zIndex: t.options.zIndex - 2
}, t.options.speed, t.options.easing) : (t.applyTransition(e), t.$slides.eq(e).css({
opacity: 0,
zIndex: t.options.zIndex - 2
}))
}, t.prototype.filterSlides = t.prototype.slickFilter = function(e) {
var t = this;
null !== e && (t.$slidesCache = t.$slides, t.unload(), t.$slideTrack.children(this.options.slide).detach(), t.$slidesCache.filter(e).appendTo(t.$slideTrack), t.reinit())
}, t.prototype.focusHandler = function() {
var t = this;
t.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", (function(n) {
n.stopImmediatePropagation();
var i = e(this);
setTimeout((function() {
t.options.pauseOnFocus && (t.focussed = i.is(":focus"), t.autoPlay())
}), 0)
}))
}, t.prototype.getCurrent = t.prototype.slickCurrentSlide = function() {
return this.currentSlide
}, t.prototype.getDotCount = function() {
var e = this,
t = 0,
n = 0,
i = 0;
if (!0 === e.options.infinite)
if (e.slideCount <= e.options.slidesToShow) ++i;
else
for (; t < e.slideCount;) ++i, t = n + e.options.slidesToScroll, n += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
else if (!0 === e.options.centerMode) i = e.slideCount;
else if (e.options.asNavFor)
for (; t < e.slideCount;) ++i, t = n + e.options.slidesToScroll, n += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
else i = 1 + Math.ceil((e.slideCount - e.options.slidesToShow) / e.options.slidesToScroll);
return i - 1
}, t.prototype.getLeft = function(e) {
var t, n, i, r, o = this,
a = 0;
return o.slideOffset = 0, n = o.$slides.first().outerHeight(!0), !0 === o.options.infinite ? (o.slideCount > o.options.slidesToShow && (o.slideOffset = o.slideWidth * o.options.slidesToShow * -1, r = -1, !0 === o.options.vertical && !0 === o.options.centerMode && (2 === o.options.slidesToShow ? r = -1.5 : 1 === o.options.slidesToShow && (r = -2)), a = n * o.options.slidesToShow * r), o.slideCount % o.options.slidesToScroll != 0 && e + o.options.slidesToScroll > o.slideCount && o.slideCount > o.options.slidesToShow && (e > o.slideCount ? (o.slideOffset = (o.options.slidesToShow - (e - o.slideCount)) * o.slideWidth * -1, a = (o.options.slidesToShow - (e - o.slideCount)) * n * -1) : (o.slideOffset = o.slideCount % o.options.slidesToScroll * o.slideWidth * -1, a = o.slideCount % o.options.slidesToScroll * n * -1))) : e + o.options.slidesToShow > o.slideCount && (o.slideOffset = (e + o.options.slidesToShow - o.slideCount) * o.slideWidth, a = (e + o.options.slidesToShow - o.slideCount) * n), o.slideCount <= o.options.slidesToShow && (o.slideOffset = 0, a = 0), !0 === o.options.centerMode && o.slideCount <= o.options.slidesToShow ? o.slideOffset = o.slideWidth * Math.floor(o.options.slidesToShow) / 2 - o.slideWidth * o.slideCount / 2 : !0 === o.options.centerMode && !0 === o.options.infinite ? o.slideOffset += o.slideWidth * Math.floor(o.options.slidesToShow / 2) - o.slideWidth : !0 === o.options.centerMode && (o.slideOffset = 0, o.slideOffset += o.slideWidth * Math.floor(o.options.slidesToShow / 2)), t = !1 === o.options.vertical ? e * o.slideWidth * -1 + o.slideOffset : e * n * -1 + a, !0 === o.options.variableWidth && (i = o.slideCount <= o.options.slidesToShow || !1 === o.options.infinite ? o.$slideTrack.children(".slick-slide").eq(e) : o.$slideTrack.children(".slick-slide").eq(e + o.options.slidesToShow), t = !0 === o.options.rtl ? i[0] ? -1 * (o.$slideTrack.width() - i[0].offsetLeft - i.width()) : 0 : i[0] ? -1 * i[0].offsetLeft : 0, !0 === o.options.centerMode && (i = o.slideCount <= o.options.slidesToShow || !1 === o.options.infinite ? o.$slideTrack.children(".slick-slide").eq(e) : o.$slideTrack.children(".slick-slide").eq(e + o.options.slidesToShow + 1), t = !0 === o.options.rtl ? i[0] ? -1 * (o.$slideTrack.width() - i[0].offsetLeft - i.width()) : 0 : i[0] ? -1 * i[0].offsetLeft : 0, t += (o.$list.width() - i.outerWidth()) / 2)), t
}, t.prototype.getOption = t.prototype.slickGetOption = function(e) {
return this.options[e]
}, t.prototype.getNavigableIndexes = function() {
var e, t = this,
n = 0,
i = 0,
r = [];
for (!1 === t.options.infinite ? e = t.slideCount : (n = -1 * t.options.slidesToScroll, i = -1 * t.options.slidesToScroll, e = 2 * t.slideCount); n < e;) r.push(n), n = i + t.options.slidesToScroll, i += t.options.slidesToScroll <= t.options.slidesToShow ? t.options.slidesToScroll : t.options.slidesToShow;
return r
}, t.prototype.getSlick = function() {
return this
}, t.prototype.getSlideCount = function() {
var t, n, i = this;
return n = !0 === i.options.centerMode ? i.slideWidth * Math.floor(i.options.slidesToShow / 2) : 0, !0 === i.options.swipeToSlide ? (i.$slideTrack.find(".slick-slide").each((function(r, o) {
if (o.offsetLeft - n + e(o).outerWidth() / 2 > -1 * i.swipeLeft) return t = o, !1
})), Math.abs(e(t).attr("data-slick-index") - i.currentSlide) || 1) : i.options.slidesToScroll
}, t.prototype.goTo = t.prototype.slickGoTo = function(e, t) {
this.changeSlide({
data: {
message: "index",
index: parseInt(e)
}
}, t)
}, t.prototype.init = function(t) {
var n = this;
e(n.$slider).hasClass("slick-initialized") || (e(n.$slider).addClass("slick-initialized"), n.buildRows(), n.buildOut(), n.setProps(), n.startLoad(), n.loadSlider(), n.initializeEvents(), n.updateArrows(), n.updateDots(), n.checkResponsive(!0), n.focusHandler()), t && n.$slider.trigger("init", [n]), !0 === n.options.accessibility && n.initADA(), n.options.autoplay && (n.paused = !1, n.autoPlay())
}, t.prototype.initADA = function() {
var t = this,
n = Math.ceil(t.slideCount / t.options.slidesToShow),
i = t.getNavigableIndexes().filter((function(e) {
return e >= 0 && e < t.slideCount
}));
t.$slides.add(t.$slideTrack.find(".slick-cloned")).attr({
"aria-hidden": "true",
tabindex: "-1"
}).find("a, input, button, select").attr({
tabindex: "-1"
}), null !== t.$dots && (t.$slides.not(t.$slideTrack.find(".slick-cloned")).each((function(n) {
var r = i.indexOf(n);
e(this).attr({
role: "tabpanel",
id: "slick-slide" + t.instanceUid + n,
tabindex: -1
}), -1 !== r && e(this).attr({
"aria-describedby": "slick-slide-control" + t.instanceUid + r
})
})), t.$dots.attr("role", "tablist").find("li").each((function(r) {
var o = i[r];
e(this).attr({
role: "presentation"
}), e(this).find("button").first().attr({
role: "tab",
id: "slick-slide-control" + t.instanceUid + r,
"aria-controls": "slick-slide" + t.instanceUid + o,
"aria-label": r + 1 + " of " + n,
"aria-selected": null,
tabindex: "-1"
})
})).eq(t.currentSlide).find("button").attr({
"aria-selected": "true",
tabindex: "0"
}).end());
for (var r = t.currentSlide, o = r + t.options.slidesToShow; r < o; r++) t.$slides.eq(r).attr("tabindex", 0);
t.activateADA()
}, t.prototype.initArrowEvents = function() {
var e = this;
!0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.off("click.slick").on("click.slick", {
message: "previous"
}, e.changeSlide), e.$nextArrow.off("click.slick").on("click.slick", {
message: "next"
}, e.changeSlide), !0 === e.options.accessibility && (e.$prevArrow.on("keydown.slick", e.keyHandler), e.$nextArrow.on("keydown.slick", e.keyHandler)))
}, t.prototype.initDotEvents = function() {
var t = this;
!0 === t.options.dots && (e("li", t.$dots).on("click.slick", {
message: "index"
}, t.changeSlide), !0 === t.options.accessibility && t.$dots.on("keydown.slick", t.keyHandler)), !0 === t.options.dots && !0 === t.options.pauseOnDotsHover && e("li", t.$dots).on("mouseenter.slick", e.proxy(t.interrupt, t, !0)).on("mouseleave.slick", e.proxy(t.interrupt, t, !1))
}, t.prototype.initSlideEvents = function() {
var t = this;
t.options.pauseOnHover && (t.$list.on("mouseenter.slick", e.proxy(t.interrupt, t, !0)), t.$list.on("mouseleave.slick", e.proxy(t.interrupt, t, !1)))
}, t.prototype.initializeEvents = function() {
var t = this;
t.initArrowEvents(), t.initDotEvents(), t.initSlideEvents(), t.$list.on("touchstart.slick mousedown.slick", {
action: "start"
}, t.swipeHandler), t.$list.on("touchmove.slick mousemove.slick", {
action: "move"
}, t.swipeHandler), t.$list.on("touchend.slick mouseup.slick", {
action: "end"
}, t.swipeHandler), t.$list.on("touchcancel.slick mouseleave.slick", {
action: "end"
}, t.swipeHandler), t.$list.on("click.slick", t.clickHandler), e(document).on(t.visibilityChange, e.proxy(t.visibility, t)), !0 === t.options.accessibility && t.$list.on("keydown.slick", t.keyHandler), !0 === t.options.focusOnSelect && e(t.$slideTrack).children().on("click.slick", t.selectHandler), e(window).on("orientationchange.slick.slick-" + t.instanceUid, e.proxy(t.orientationChange, t)), e(window).on("resize.slick.slick-" + t.instanceUid, e.proxy(t.resize, t)), e("[draggable!=true]", t.$slideTrack).on("dragstart", t.preventDefault), e(window).on("load.slick.slick-" + t.instanceUid, t.setPosition), e(t.setPosition)
}, t.prototype.initUI = function() {
var e = this;
!0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.show(), e.$nextArrow.show()), !0 === e.options.dots && e.slideCount > e.options.slidesToShow && e.$dots.show()
}, t.prototype.keyHandler = function(e) {
var t = this;
e.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === e.keyCode && !0 === t.options.accessibility ? t.changeSlide({
data: {
message: !0 === t.options.rtl ? "next" : "previous"
}
}) : 39 === e.keyCode && !0 === t.options.accessibility && t.changeSlide({
data: {
message: !0 === t.options.rtl ? "previous" : "next"
}
}))
}, t.prototype.lazyLoad = function() {
function t(t) {
e("img[data-lazy]", t).each((function() {
var t = e(this),
n = e(this).attr("data-lazy"),
i = e(this).attr("data-srcset"),
r = e(this).attr("data-sizes") || o.$slider.attr("data-sizes"),
a = document.createElement("img");
a.onload = function() {
t.animate({
opacity: 0
}, 100, (function() {
i && (t.attr("srcset", i), r && t.attr("sizes", r)), t.attr("src", n).animate({
opacity: 1
}, 200, (function() {
t.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")
})), o.$slider.trigger("lazyLoaded", [o, t, n])
}))
}, a.onerror = function() {
t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), o.$slider.trigger("lazyLoadError", [o, t, n])
}, a.src = n
}))
}
var n, i, r, o = this;
if (!0 === o.options.centerMode ? !0 === o.options.infinite ? r = (i = o.currentSlide + (o.options.slidesToShow / 2 + 1)) + o.options.slidesToShow + 2 : (i = Math.max(0, o.currentSlide - (o.options.slidesToShow / 2 + 1)), r = o.options.slidesToShow / 2 + 1 + 2 + o.currentSlide) : (i = o.options.infinite ? o.options.slidesToShow + o.currentSlide : o.currentSlide, r = Math.ceil(i + o.options.slidesToShow), !0 === o.options.fade && (i > 0 && i--, r <= o.slideCount && r++)), n = o.$slider.find(".slick-slide").slice(i, r), "anticipated" === o.options.lazyLoad)
for (var a = i - 1, s = r, l = o.$slider.find(".slick-slide"), c = 0; c < o.options.slidesToScroll; c++) a < 0 && (a = o.slideCount - 1), n = (n = n.add(l.eq(a))).add(l.eq(s)), a--, s++;
t(n), o.slideCount <= o.options.slidesToShow ? t(o.$slider.find(".slick-slide")) : o.currentSlide >= o.slideCount - o.options.slidesToShow ? t(o.$slider.find(".slick-cloned").slice(0, o.options.slidesToShow)) : 0 === o.currentSlide && t(o.$slider.find(".slick-cloned").slice(-1 * o.options.slidesToShow))
}, t.prototype.loadSlider = function() {
var e = this;
e.setPosition(), e.$slideTrack.css({
opacity: 1
}), e.$slider.removeClass("slick-loading"), e.initUI(), "progressive" === e.options.lazyLoad && e.progressiveLazyLoad()
}, t.prototype.next = t.prototype.slickNext = function() {
this.changeSlide({
data: {
message: "next"
}
})
}, t.prototype.orientationChange = function() {
this.checkResponsive(), this.setPosition()
}, t.prototype.pause = t.prototype.slickPause = function() {
this.autoPlayClear(), this.paused = !0
}, t.prototype.play = t.prototype.slickPlay = function() {
var e = this;
e.autoPlay(), e.options.autoplay = !0, e.paused = !1, e.focussed = !1, e.interrupted = !1
}, t.prototype.postSlide = function(t) {
var n = this;
n.unslicked || (n.$slider.trigger("afterChange", [n, t]), n.animating = !1, n.slideCount > n.options.slidesToShow && n.setPosition(), n.swipeLeft = null, n.options.autoplay && n.autoPlay(), !0 === n.options.accessibility && (n.initADA(), n.options.focusOnChange && e(n.$slides.get(n.currentSlide)).attr("tabindex", 0).focus()))
}, t.prototype.prev = t.prototype.slickPrev = function() {
this.changeSlide({
data: {
message: "previous"
}
})
}, t.prototype.preventDefault = function(e) {
e.preventDefault()
}, t.prototype.progressiveLazyLoad = function(t) {
t = t || 1;
var n, i, r, o, a, s = this,
l = e("img[data-lazy]", s.$slider);
l.length ? (n = l.first(), i = n.attr("data-lazy"), r = n.attr("data-srcset"), o = n.attr("data-sizes") || s.$slider.attr("data-sizes"), (a = document.createElement("img")).onload = function() {
r && (n.attr("srcset", r), o && n.attr("sizes", o)), n.attr("src", i).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === s.options.adaptiveHeight && s.setPosition(), s.$slider.trigger("lazyLoaded", [s, n, i]), s.progressiveLazyLoad()
}, a.onerror = function() {
t < 3 ? setTimeout((function() {
s.progressiveLazyLoad(t + 1)
}), 500) : (n.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), s.$slider.trigger("lazyLoadError", [s, n, i]), s.progressiveLazyLoad())
}, a.src = i) : s.$slider.trigger("allImagesLoaded", [s])
}, t.prototype.refresh = function(t) {
var n, i, r = this;
i = r.slideCount - r.options.slidesToShow, !r.options.infinite && r.currentSlide > i && (r.currentSlide = i), r.slideCount <= r.options.slidesToShow && (r.currentSlide = 0), n = r.currentSlide, r.destroy(!0), e.extend(r, r.initials, {
currentSlide: n
}), r.init(), t || r.changeSlide({
data: {
message: "index",
index: n
}
}, !1)
}, t.prototype.registerBreakpoints = function() {
var t, n, i, r = this,
o = r.options.responsive || null;
if ("array" === e.type(o) && o.length) {
for (t in r.respondTo = r.options.respondTo || "window", o)
if (i = r.breakpoints.length - 1, o.hasOwnProperty(t)) {
for (n = o[t].breakpoint; i >= 0;) r.breakpoints[i] && r.breakpoints[i] === n && r.breakpoints.splice(i, 1), i--;
r.breakpoints.push(n), r.breakpointSettings[n] = o[t].settings
}
r.breakpoints.sort((function(e, t) {
return r.options.mobileFirst ? e - t : t - e
}))
}
}, t.prototype.reinit = function() {
var t = this;
t.$slides = t.$slideTrack.children(t.options.slide).addClass("slick-slide"), t.slideCount = t.$slides.length, t.currentSlide >= t.slideCount && 0 !== t.currentSlide && (t.currentSlide = t.currentSlide - t.options.slidesToScroll), t.slideCount <= t.options.slidesToShow && (t.currentSlide = 0), t.registerBreakpoints(), t.setProps(), t.setupInfinite(), t.buildArrows(), t.updateArrows(), t.initArrowEvents(), t.buildDots(), t.updateDots(), t.initDotEvents(), t.cleanUpSlideEvents(), t.initSlideEvents(), t.checkResponsive(!1, !0), !0 === t.options.focusOnSelect && e(t.$slideTrack).children().on("click.slick", t.selectHandler), t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0), t.setPosition(), t.focusHandler(), t.paused = !t.options.autoplay, t.autoPlay(), t.$slider.trigger("reInit", [t])
}, t.prototype.resize = function() {
var t = this;
e(window).width() !== t.windowWidth && (clearTimeout(t.windowDelay), t.windowDelay = window.setTimeout((function() {
t.windowWidth = e(window).width(), t.checkResponsive(), t.unslicked || t.setPosition()
}), 50))
}, t.prototype.removeSlide = t.prototype.slickRemove = function(e, t, n) {
var i = this;
if (e = "boolean" == typeof e ? !0 === (t = e) ? 0 : i.slideCount - 1 : !0 === t ? --e : e, i.slideCount < 1 || e < 0 || e > i.slideCount - 1) return !1;
i.unload(), !0 === n ? i.$slideTrack.children().remove() : i.$slideTrack.children(this.options.slide).eq(e).remove(), i.$slides = i.$slideTrack.children(this.options.slide), i.$slideTrack.children(this.options.slide).detach(), i.$slideTrack.append(i.$slides), i.$slidesCache = i.$slides, i.reinit()
}, t.prototype.setCSS = function(e) {
var t, n, i = this,
r = {};
!0 === i.options.rtl && (e = -e), t = "left" == i.positionProp ? Math.ceil(e) + "px" : "0px", n = "top" == i.positionProp ? Math.ceil(e) + "px" : "0px", r[i.positionProp] = e, !1 === i.transformsEnabled ? i.$slideTrack.css(r) : (r = {}, !1 === i.cssTransitions ? (r[i.animType] = "translate(" + t + ", " + n + ")", i.$slideTrack.css(r)) : (r[i.animType] = "translate3d(" + t + ", " + n + ", 0px)", i.$slideTrack.css(r)))
}, t.prototype.setDimensions = function() {
var e = this;
!1 === e.options.vertical ? !0 === e.options.centerMode && e.$list.css({
padding: "0px " + e.options.centerPadding
}) : (e.$list.height(e.$slides.first().outerHeight(!0) * e.options.slidesToShow), !0 === e.options.centerMode && e.$list.css({
padding: e.options.centerPadding + " 0px"
})), e.listWidth = e.$list.width(), e.listHeight = e.$list.height(), !1 === e.options.vertical && !1 === e.options.variableWidth ? (e.slideWidth = Math.ceil(e.listWidth / e.options.slidesToShow), e.$slideTrack.width(Math.ceil(e.slideWidth * e.$slideTrack.children(".slick-slide").length))) : !0 === e.options.variableWidth ? e.$slideTrack.width(5e3 * e.slideCount) : (e.slideWidth = Math.ceil(e.listWidth), e.$slideTrack.height(Math.ceil(e.$slides.first().outerHeight(!0) * e.$slideTrack.children(".slick-slide").length)));
var t = e.$slides.first().outerWidth(!0) - e.$slides.first().width();
!1 === e.options.variableWidth && e.$slideTrack.children(".slick-slide").width(e.slideWidth - t)
}, t.prototype.setFade = function() {
var t, n = this;
n.$slides.each((function(i, r) {
t = n.slideWidth * i * -1, !0 === n.options.rtl ? e(r).css({
position: "relative",
right: t,
top: 0,
zIndex: n.options.zIndex - 2,
opacity: 0
}) : e(r).css({
position: "relative",
left: t,
top: 0,
zIndex: n.options.zIndex - 2,
opacity: 0
})
})), n.$slides.eq(n.currentSlide).css({
zIndex: n.options.zIndex - 1,
opacity: 1
})
}, t.prototype.setHeight = function() {
var e = this;
if (1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical) {
var t = e.$slides.eq(e.currentSlide).outerHeight(!0);
e.$list.css("height", t)
}
}, t.prototype.setOption = t.prototype.slickSetOption = function() {
var t, n, i, r, o, a = this,
s = !1;
if ("object" === e.type(arguments[0]) ? (i = arguments[0], s = arguments[1], o = "multiple") : "string" === e.type(arguments[0]) && (i = arguments[0], r = arguments[1], s = arguments[2], "responsive" === arguments[0] && "array" === e.type(arguments[1]) ? o = "responsive" : void 0 !== arguments[1] && (o = "single")), "single" === o) a.options[i] = r;
else if ("multiple" === o) e.each(i, (function(e, t) {
a.options[e] = t
}));
else if ("responsive" === o)
for (n in r)
if ("array" !== e.type(a.options.responsive)) a.options.responsive = [r[n]];
else {
for (t = a.options.responsive.length - 1; t >= 0;) a.options.responsive[t].breakpoint === r[n].breakpoint && a.options.responsive.splice(t, 1), t--;
a.options.responsive.push(r[n])
}
s && (a.unload(), a.reinit())
}, t.prototype.setPosition = function() {
var e = this;
e.setDimensions(), e.setHeight(), !1 === e.options.fade ? e.setCSS(e.getLeft(e.currentSlide)) : e.setFade(), e.$slider.trigger("setPosition", [e])
}, t.prototype.setProps = function() {
var e = this,
t = document.body.style;
e.positionProp = !0 === e.options.vertical ? "top" : "left", "top" === e.positionProp ? e.$slider.addClass("slick-vertical") : e.$slider.removeClass("slick-vertical"), void 0 === t.WebkitTransition && void 0 === t.MozTransition && void 0 === t.msTransition || !0 === e.options.useCSS && (e.cssTransitions = !0), e.options.fade && ("number" == typeof e.options.zIndex ? e.options.zIndex < 3 && (e.options.zIndex = 3) : e.options.zIndex = e.defaults.zIndex), void 0 !== t.OTransform && (e.animType = "OTransform", e.transformType = "-o-transform", e.transitionType = "OTransition", void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (e.animType = !1)), void 0 !== t.MozTransform && (e.animType = "MozTransform", e.transformType = "-moz-transform", e.transitionType = "MozTransition", void 0 === t.perspectiveProperty && void 0 === t.MozPerspective && (e.animType = !1)), void 0 !== t.webkitTransform && (e.animType = "webkitTransform", e.transformType = "-webkit-transform", e.transitionType = "webkitTransition", void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (e.animType = !1)), void 0 !== t.msTransform && (e.animType = "msTransform", e.transformType = "-ms-transform", e.transitionType = "msTransition", void 0 === t.msTransform && (e.animType = !1)), void 0 !== t.transform && !1 !== e.animType && (e.animType = "transform", e.transformType = "transform", e.transitionType = "transition"), e.transformsEnabled = e.options.useTransform && null !== e.animType && !1 !== e.animType
}, t.prototype.setSlideClasses = function(e) {
var t, n, i, r, o = this;
if (n = o.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), o.$slides.eq(e).addClass("slick-current"), !0 === o.options.centerMode) {
var a = o.options.slidesToShow % 2 == 0 ? 1 : 0;
t = Math.floor(o.options.slidesToShow / 2), !0 === o.options.infinite && (e >= t && e <= o.slideCount - 1 - t ? o.$slides.slice(e - t + a, e + t + 1).addClass("slick-active").attr("aria-hidden", "false") : (i = o.options.slidesToShow + e, n.slice(i - t + 1 + a, i + t + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === e ? n.eq(n.length - 1 - o.options.slidesToShow).addClass("slick-center") : e === o.slideCount - 1 && n.eq(o.options.slidesToShow).addClass("slick-center")), o.$slides.eq(e).addClass("slick-center")
} else e >= 0 && e <= o.slideCount - o.options.slidesToShow ? o.$slides.slice(e, e + o.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : n.length <= o.options.slidesToShow ? n.addClass("slick-active").attr("aria-hidden", "false") : (r = o.slideCount % o.options.slidesToShow, i = !0 === o.options.infinite ? o.options.slidesToShow + e : e, o.options.slidesToShow == o.options.slidesToScroll && o.slideCount - e < o.options.slidesToShow ? n.slice(i - (o.options.slidesToShow - r), i + r).addClass("slick-active").attr("aria-hidden", "false") : n.slice(i, i + o.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false"));
"ondemand" !== o.options.lazyLoad && "anticipated" !== o.options.lazyLoad || o.lazyLoad()
}, t.prototype.setupInfinite = function() {
var t, n, i, r = this;
if (!0 === r.options.fade && (r.options.centerMode = !1), !0 === r.options.infinite && !1 === r.options.fade && (n = null, r.slideCount > r.options.slidesToShow)) {
for (i = !0 === r.options.centerMode ? r.options.slidesToShow + 1 : r.options.slidesToShow, t = r.slideCount; t > r.slideCount - i; t -= 1) n = t - 1, e(r.$slides[n]).clone(!0).attr("id", "").attr("data-slick-index", n - r.slideCount).prependTo(r.$slideTrack).addClass("slick-cloned");
for (t = 0; t < i + r.slideCount; t += 1) n = t, e(r.$slides[n]).clone(!0).attr("id", "").attr("data-slick-index", n + r.slideCount).appendTo(r.$slideTrack).addClass("slick-cloned");
r.$slideTrack.find(".slick-cloned").find("[id]").each((function() {
e(this).attr("id", "")
}))
}
}, t.prototype.interrupt = function(e) {
e || this.autoPlay(), this.interrupted = e
}, t.prototype.selectHandler = function(t) {
var n = this,
i = e(t.target).is(".slick-slide") ? e(t.target) : e(t.target).parents(".slick-slide"),
r = parseInt(i.attr("data-slick-index"));
r || (r = 0), n.slideCount <= n.options.slidesToShow ? n.slideHandler(r, !1, !0) : n.slideHandler(r)
}, t.prototype.slideHandler = function(e, t, n) {
var i, r, o, a, s, l = null,
c = this;
if (t = t || !1, !(!0 === c.animating && !0 === c.options.waitForAnimate || !0 === c.options.fade && c.currentSlide === e))
if (!1 === t && c.asNavFor(e), i = e, l = c.getLeft(i), a = c.getLeft(c.currentSlide), c.currentLeft = null === c.swipeLeft ? a : c.swipeLeft, !1 === c.options.infinite && !1 === c.options.centerMode && (e < 0 || e > c.getDotCount() * c.options.slidesToScroll)) !1 === c.options.fade && (i = c.currentSlide, !0 !== n ? c.animateSlide(a, (function() {
c.postSlide(i)
})) : c.postSlide(i));
else if (!1 === c.options.infinite && !0 === c.options.centerMode && (e < 0 || e > c.slideCount - c.options.slidesToScroll)) !1 === c.options.fade && (i = c.currentSlide, !0 !== n ? c.animateSlide(a, (function() {
c.postSlide(i)
})) : c.postSlide(i));
else {
if (c.options.autoplay && clearInterval(c.autoPlayTimer), r = i < 0 ? c.slideCount % c.options.slidesToScroll != 0 ? c.slideCount - c.slideCount % c.options.slidesToScroll : c.slideCount + i : i >= c.slideCount ? c.slideCount % c.options.slidesToScroll != 0 ? 0 : i - c.slideCount : i, c.animating = !0, c.$slider.trigger("beforeChange", [c, c.currentSlide, r]), o = c.currentSlide, c.currentSlide = r, c.setSlideClasses(c.currentSlide), c.options.asNavFor && (s = (s = c.getNavTarget()).slick("getSlick")).slideCount <= s.options.slidesToShow && s.setSlideClasses(c.currentSlide), c.updateDots(), c.updateArrows(), !0 === c.options.fade) return !0 !== n ? (c.fadeSlideOut(o), c.fadeSlide(r, (function() {
c.postSlide(r)
}))) : c.postSlide(r), void c.animateHeight();
!0 !== n ? c.animateSlide(l, (function() {
c.postSlide(r)
})) : c.postSlide(r)
}
}, t.prototype.startLoad = function() {
var e = this;
!0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.hide(), e.$nextArrow.hide()), !0 === e.options.dots && e.slideCount > e.options.slidesToShow && e.$dots.hide(), e.$slider.addClass("slick-loading")
}, t.prototype.swipeDirection = function() {
var e, t, n, i, r = this;
return e = r.touchObject.startX - r.touchObject.curX, t = r.touchObject.startY - r.touchObject.curY, n = Math.atan2(t, e), (i = Math.round(180 * n / Math.PI)) < 0 && (i = 360 - Math.abs(i)), i <= 45 && i >= 0 || i <= 360 && i >= 315 ? !1 === r.options.rtl ? "left" : "right" : i >= 135 && i <= 225 ? !1 === r.options.rtl ? "right" : "left" : !0 === r.options.verticalSwiping ? i >= 35 && i <= 135 ? "down" : "up" : "vertical"
}, t.prototype.swipeEnd = function(e) {
var t, n, i = this;
if (i.dragging = !1, i.swiping = !1, i.scrolling) return i.scrolling = !1, !1;
if (i.interrupted = !1, i.shouldClick = !(i.touchObject.swipeLength > 10), void 0 === i.touchObject.curX) return !1;
if (!0 === i.touchObject.edgeHit && i.$slider.trigger("edge", [i, i.swipeDirection()]), i.touchObject.swipeLength >= i.touchObject.minSwipe) {
switch (n = i.swipeDirection()) {
case "left":
case "down":
t = i.options.swipeToSlide ? i.checkNavigable(i.currentSlide + i.getSlideCount()) : i.currentSlide + i.getSlideCount(), i.currentDirection = 0;
break;
case "right":
case "up":
t = i.options.swipeToSlide ? i.checkNavigable(i.currentSlide - i.getSlideCount()) : i.currentSlide - i.getSlideCount(), i.currentDirection = 1
}
"vertical" != n && (i.slideHandler(t), i.touchObject = {}, i.$slider.trigger("swipe", [i, n]))
} else i.touchObject.startX !== i.touchObject.curX && (i.slideHandler(i.currentSlide), i.touchObject = {})
}, t.prototype.swipeHandler = function(e) {
var t = this;
if (!(!1 === t.options.swipe || "ontouchend" in document && !1 === t.options.swipe || !1 === t.options.draggable && -1 !== e.type.indexOf("mouse"))) switch (t.touchObject.fingerCount = e.originalEvent && void 0 !== e.originalEvent.touches ? e.originalEvent.touches.length : 1, t.touchObject.minSwipe = t.listWidth / t.options.touchThreshold, !0 === t.options.verticalSwiping && (t.touchObject.minSwipe = t.listHeight / t.options.touchThreshold), e.data.action) {
case "start":
t.swipeStart(e);
break;
case "move":
t.swipeMove(e);
break;
case "end":
t.swipeEnd(e)
}
}, t.prototype.swipeMove = function(e) {
var t, n, i, r, o, a, s = this;
return o = void 0 !== e.originalEvent ? e.originalEvent.touches : null, !(!s.dragging || s.scrolling || o && 1 !== o.length) && (t = s.getLeft(s.currentSlide), s.touchObject.curX = void 0 !== o ? o[0].pageX : e.clientX, s.touchObject.curY = void 0 !== o ? o[0].pageY : e.clientY, s.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(s.touchObject.curX - s.touchObject.startX, 2))), a = Math.round(Math.sqrt(Math.pow(s.touchObject.curY - s.touchObject.startY, 2))), !s.options.verticalSwiping && !s.swiping && a > 4 ? (s.scrolling = !0, !1) : (!0 === s.options.verticalSwiping && (s.touchObject.swipeLength = a), n = s.swipeDirection(), void 0 !== e.originalEvent && s.touchObject.swipeLength > 4 && (s.swiping = !0, e.preventDefault()), r = (!1 === s.options.rtl ? 1 : -1) * (s.touchObject.curX > s.touchObject.startX ? 1 : -1), !0 === s.options.verticalSwiping && (r = s.touchObject.curY > s.touchObject.startY ? 1 : -1), i = s.touchObject.swipeLength, s.touchObject.edgeHit = !1, !1 === s.options.infinite && (0 === s.currentSlide && "right" === n || s.currentSlide >= s.getDotCount() && "left" === n) && (i = s.touchObject.swipeLength * s.options.edgeFriction, s.touchObject.edgeHit = !0), !1 === s.options.vertical ? s.swipeLeft = t + i * r : s.swipeLeft = t + i * (s.$list.height() / s.listWidth) * r, !0 === s.options.verticalSwiping && (s.swipeLeft = t + i * r), !0 !== s.options.fade && !1 !== s.options.touchMove && (!0 === s.animating ? (s.swipeLeft = null, !1) : void s.setCSS(s.swipeLeft))))
}, t.prototype.swipeStart = function(e) {
var t, n = this;
if (n.interrupted = !0, 1 !== n.touchObject.fingerCount || n.slideCount <= n.options.slidesToShow) return n.touchObject = {}, !1;
void 0 !== e.originalEvent && void 0 !== e.originalEvent.touches && (t = e.originalEvent.touches[0]), n.touchObject.startX = n.touchObject.curX = void 0 !== t ? t.pageX : e.clientX, n.touchObject.startY = n.touchObject.curY = void 0 !== t ? t.pageY : e.clientY, n.dragging = !0
}, t.prototype.unfilterSlides = t.prototype.slickUnfilter = function() {
var e = this;
null !== e.$slidesCache && (e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.appendTo(e.$slideTrack), e.reinit())
}, t.prototype.unload = function() {
var t = this;
e(".slick-cloned", t.$slider).remove(), t.$dots && t.$dots.remove(), t.$prevArrow && t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove(), t.$nextArrow && t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove(), t.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
}, t.prototype.unslick = function(e) {
var t = this;
t.$slider.trigger("unslick", [t, e]), t.destroy()
}, t.prototype.updateArrows = function() {
var e = this;
Math.floor(e.options.slidesToShow / 2), !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && !e.options.infinite && (e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === e.currentSlide ? (e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : (e.currentSlide >= e.slideCount - e.options.slidesToShow && !1 === e.options.centerMode || e.currentSlide >= e.slideCount - 1 && !0 === e.options.centerMode) && (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
}, t.prototype.updateDots = function() {
var e = this;
null !== e.$dots && (e.$dots.find("li").removeClass("slick-active").end(), e.$dots.find("li").eq(Math.floor(e.currentSlide / e.options.slidesToScroll)).addClass("slick-active"))
}, t.prototype.visibility = function() {
var e = this;
e.options.autoplay && (document[e.hidden] ? e.interrupted = !0 : e.interrupted = !1)
}, e.fn.slick = function() {
var e, n, i = this,
r = arguments[0],
o = Array.prototype.slice.call(arguments, 1),
a = i.length;
for (e = 0; e < a; e++)
if ("object" == typeof r || void 0 === r ? i[e].slick = new t(i[e], r) : n = i[e].slick[r].apply(i[e].slick, o), void 0 !== n) return n;
return i
}
})),
function(e, t) {
"object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.ClipboardJS = t() : e.ClipboardJS = t()
}(this, (function() {
return n = {}, e.m = t = [function(e, t) {
e.exports = function(e) {
var t;
if ("SELECT" === e.nodeName) e.focus(), t = e.value;
else if ("INPUT" === e.nodeName || "TEXTAREA" === e.nodeName) {
var n = e.hasAttribute("readonly");
n || e.setAttribute("readonly", ""), e.select(), e.setSelectionRange(0, e.value.length), n || e.removeAttribute("readonly"), t = e.value
} else {
e.hasAttribute("contenteditable") && e.focus();
var i = window.getSelection(),
r = document.createRange();
r.selectNodeContents(e), i.removeAllRanges(), i.addRange(r), t = i.toString()
}
return t
}
}, function(e, t) {
function n() {}
n.prototype = {
on: function(e, t, n) {
var i = this.e || (this.e = {});
return (i[e] || (i[e] = [])).push({
fn: t,
ctx: n
}), this
},
once: function(e, t, n) {
var i = this;
function r() {
i.off(e, r), t.apply(n, arguments)
}
return r._ = t, this.on(e, r, n)
},
emit: function(e) {
for (var t = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[e] || []).slice(), i = 0, r = n.length; i < r; i++) n[i].fn.apply(n[i].ctx, t);
return this
},
off: function(e, t) {
var n = this.e || (this.e = {}),
i = n[e],
r = [];
if (i && t)
for (var o = 0, a = i.length; o < a; o++) i[o].fn !== t && i[o].fn._ !== t && r.push(i[o]);
return r.length ? n[e] = r : delete n[e], this
}
}, e.exports = n, e.exports.TinyEmitter = n
}, function(e, t, n) {
var i = n(3),
r = n(4);
e.exports = function(e, t, n) {
if (!e && !t && !n) throw new Error("Missing required arguments");
if (!i.string(t)) throw new TypeError("Second argument must be a String");
if (!i.fn(n)) throw new TypeError("Third argument must be a Function");
if (i.node(e)) return h = t, f = n, (d = e).addEventListener(h, f), {
destroy: function() {
d.removeEventListener(h, f)
}
};
if (i.nodeList(e)) return l = e, c = t, u = n, Array.prototype.forEach.call(l, (function(e) {
e.addEventListener(c, u)
})), {
destroy: function() {
Array.prototype.forEach.call(l, (function(e) {
e.removeEventListener(c, u)
}))
}
};
if (i.string(e)) return o = e, a = t, s = n, r(document.body, o, a, s);
throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");
var o, a, s, l, c, u, d, h, f
}
}, function(e, t) {
t.node = function(e) {
return void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType
}, t.nodeList = function(e) {
var n = Object.prototype.toString.call(e);
return void 0 !== e && ("[object NodeList]" === n || "[object HTMLCollection]" === n) && "length" in e && (0 === e.length || t.node(e[0]))
}, t.string = function(e) {
return "string" == typeof e || e instanceof String
}, t.fn = function(e) {
return "[object Function]" === Object.prototype.toString.call(e)
}
}, function(e, t, n) {
var i = n(5);
function r(e, t, n, r, o) {
var a = function(e, t, n, r) {
return function(n) {
n.delegateTarget = i(n.target, t), n.delegateTarget && r.call(e, n)
}
}.apply(this, arguments);
return e.addEventListener(n, a, o), {
destroy: function() {
e.removeEventListener(n, a, o)
}
}
}
e.exports = function(e, t, n, i, o) {
return "function" == typeof e.addEventListener ? r.apply(null, arguments) : "function" == typeof n ? r.bind(null, document).apply(null, arguments) : ("string" == typeof e && (e = document.querySelectorAll(e)), Array.prototype.map.call(e, (function(e) {
return r(e, t, n, i, o)
})))
}
}, function(e, t) {
if ("undefined" != typeof Element && !Element.prototype.matches) {
var n = Element.prototype;
n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector
}
e.exports = function(e, t) {
for (; e && 9 !== e.nodeType;) {
if ("function" == typeof e.matches && e.matches(t)) return e;
e = e.parentNode
}
}
}, function(e, t, n) {
"use strict";
n.r(t);
var i = n(0),
r = n.n(i),
o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
};
function a(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
function s(e) {
! function(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}(this, s), this.resolveOptions(e), this.initSelection()
}
var l = (function(e, t, n) {
t && a(e.prototype, t)
}(s, [{
key: "resolveOptions",
value: function(e) {
var t = 0 < arguments.length && void 0 !== e ? e : {};
this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = ""
}
}, {
key: "initSelection",
value: function() {
this.text ? this.selectFake() : this.target && this.selectTarget()
}
}, {
key: "selectFake",
value: function() {
var e = this,
t = "rtl" == document.documentElement.getAttribute("dir");
this.removeFake(), this.fakeHandlerCallback = function() {
return e.removeFake()
}, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[t ? "right" : "left"] = "-9999px";
var n = window.pageYOffset || document.documentElement.scrollTop;
this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = r()(this.fakeElem), this.copyText()
}
}, {
key: "removeFake",
value: function() {
this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null)
}
}, {
key: "selectTarget",
value: function() {
this.selectedText = r()(this.target), this.copyText()
}
}, {
key: "copyText",
value: function() {
var e = void 0;
try {
e = document.execCommand(this.action)
} catch (t) {
e = !1
}
this.handleResult(e)
}
}, {
key: "handleResult",
value: function(e) {
this.emitter.emit(e ? "success" : "error", {
action: this.action,
text: this.selectedText,
trigger: this.trigger,
clearSelection: this.clearSelection.bind(this)
})
}
}, {
key: "clearSelection",
value: function() {
this.trigger && this.trigger.focus(), document.activeElement.blur(), window.getSelection().removeAllRanges()
}
}, {
key: "destroy",
value: function() {
this.removeFake()
}
}, {
key: "action",
set: function(e) {
var t = 0 < arguments.length && void 0 !== e ? e : "copy";
if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"')
},
get: function() {
return this._action
}
}, {
key: "target",
set: function(e) {
if (void 0 !== e) {
if (!e || "object" !== (void 0 === e ? "undefined" : o(e)) || 1 !== e.nodeType) throw new Error('Invalid "target" value, use a valid Element');
if ("copy" === this.action && e.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
if ("cut" === this.action && (e.hasAttribute("readonly") || e.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
this._target = e
}
},
get: function() {
return this._target
}
}]), s),
c = n(1),
u = n.n(c),
d = n(2),
h = n.n(d),
f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
};
function p(e, t) {
for (var n = 0; n < t.length; n++) {
var i = t[n];
i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
}
}
var g = (function(e, t) {
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
e.prototype = Object.create(t && t.prototype, {
constructor: {
value: e,
enumerable: !1,
writable: !0,
configurable: !0
}
}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
}(m, u.a), function(e, t, n) {
t && p(e.prototype, t), n && p(e, n)
}(m, [{
key: "resolveOptions",
value: function(e) {
var t = 0 < arguments.length && void 0 !== e ? e : {};
this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === f(t.container) ? t.container : document.body
}
}, {
key: "listenClick",
value: function(e) {
var t = this;
this.listener = h()(e, "click", (function(e) {
return t.onClick(e)
}))
}
}, {
key: "onClick",
value: function(e) {
var t = e.delegateTarget || e.currentTarget;
this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new l({
action: this.action(t),
target: this.target(t),
text: this.text(t),
container: this.container,
trigger: t,
emitter: this
})
}
}, {
key: "defaultAction",
value: function(e) {
return v("action", e)
}
}, {
key: "defaultTarget",
value: function(e) {
var t = v("target", e);
if (t) return document.querySelector(t)
}
}, {
key: "defaultText",
value: function(e) {
return v("text", e)
}
}, {
key: "destroy",
value: function() {
this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null)
}
}], [{
key: "isSupported",
value: function(e) {
var t = 0 < arguments.length && void 0 !== e ? e : ["copy", "cut"],
n = "string" == typeof t ? [t] : t,
i = !!document.queryCommandSupported;
return n.forEach((function(e) {
i = i && !!document.queryCommandSupported(e)
})), i
}
}]), m);
function m(e, t) {
! function(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}(this, m);
var n = function(e, t) {
if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return !t || "object" != typeof t && "function" != typeof t ? e : t
}(this, (m.__proto__ || Object.getPrototypeOf(m)).call(this));
return n.resolveOptions(t), n.listenClick(e), n
}
function v(e, t) {
var n = "data-clipboard-" + e;
if (t.hasAttribute(n)) return t.getAttribute(n)
}
t.default = g
}], e.c = n, e.d = function(t, n, i) {
e.o(t, n) || Object.defineProperty(t, n, {
enumerable: !0,
get: i
})
}, e.r = function(e) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
value: "Module"
}), Object.defineProperty(e, "__esModule", {
value: !0
})
}, e.t = function(t, n) {
if (1 & n && (t = e(t)), 8 & n) return t;
if (4 & n && "object" == typeof t && t && t.__esModule) return t;
var i = Object.create(null);
if (e.r(i), Object.defineProperty(i, "default", {
enumerable: !0,
value: t
}), 2 & n && "string" != typeof t)
for (var r in t) e.d(i, r, function(e) {
return t[e]
}.bind(null, r));
return i
}, e.n = function(t) {
var n = t && t.__esModule ? function() {
return t.default
} : function() {
return t
};
return e.d(n, "a", n), n
}, e.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}, e.p = "", e(e.s = 6).default;
function e(i) {
if (n[i]) return n[i].exports;
var r = n[i] = {
i: i,
l: !1,
exports: {}
};
return t[i].call(r.exports, r, r.exports, e), r.l = !0, r.exports
}
var t, n
})),
function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t(function() {
try {
return require("moment")
} catch (e) {}
}()) : "function" == typeof define && define.amd ? define(["require"], (function(e) {
return t(function() {
try {
return e("moment")
} catch (e) {}
}())
})) : (e = e || self).Chart = t(e.moment)
}(this, (function(e) {
"use strict";
e = e && e.hasOwnProperty("default") ? e.default : e;
var t = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
},
n = function(e, t) {
return e(t = {
exports: {}
}), t.exports
}((function(e) {
var n = {};
for (var i in t) t.hasOwnProperty(i) && (n[t[i]] = i);
var r = e.exports = {
rgb: {
channels: 3,
labels: "rgb"
},
hsl: {
channels: 3,
labels: "hsl"
},
hsv: {
channels: 3,
labels: "hsv"
},
hwb: {
channels: 3,
labels: "hwb"
},
cmyk: {
channels: 4,
labels: "cmyk"
},
xyz: {
channels: 3,
labels: "xyz"
},
lab: {
channels: 3,
labels: "lab"
},
lch: {
channels: 3,
labels: "lch"
},
hex: {
channels: 1,
labels: ["hex"]
},
keyword: {
channels: 1,
labels: ["keyword"]
},
ansi16: {
channels: 1,
labels: ["ansi16"]
},
ansi256: {
channels: 1,
labels: ["ansi256"]
},
hcg: {
channels: 3,
labels: ["h", "c", "g"]
},
apple: {
channels: 3,
labels: ["r16", "g16", "b16"]
},
gray: {
channels: 1,
labels: ["gray"]
}
};
for (var o in r)
if (r.hasOwnProperty(o)) {
if (!("channels" in r[o])) throw new Error("missing channels property: " + o);
if (!("labels" in r[o])) throw new Error("missing channel labels property: " + o);
if (r[o].labels.length !== r[o].channels) throw new Error("channel and label counts mismatch: " + o);
var a = r[o].channels,
s = r[o].labels;
delete r[o].channels, delete r[o].labels, Object.defineProperty(r[o], "channels", {
value: a
}), Object.defineProperty(r[o], "labels", {
value: s
})
}
r.rgb.hsl = function(e) {
var t, n, i = e[0] / 255,
r = e[1] / 255,
o = e[2] / 255,
a = Math.min(i, r, o),
s = Math.max(i, r, o),
l = s - a;
return s === a ? t = 0 : i === s ? t = (r - o) / l : r === s ? t = 2 + (o - i) / l : o === s && (t = 4 + (i - r) / l), (t = Math.min(60 * t, 360)) < 0 && (t += 360), n = (a + s) / 2, [t, 100 * (s === a ? 0 : n <= .5 ? l / (s + a) : l / (2 - s - a)), 100 * n]
}, r.rgb.hsv = function(e) {
var t, n, i, r, o, a = e[0] / 255,
s = e[1] / 255,
l = e[2] / 255,
c = Math.max(a, s, l),
u = c - Math.min(a, s, l),
d = function(e) {
return (c - e) / 6 / u + .5
};
return 0 === u ? r = o = 0 : (o = u / c, t = d(a), n = d(s), i = d(l), a === c ? r = i - n : s === c ? r = 1 / 3 + t - i : l === c && (r = 2 / 3 + n - t), r < 0 ? r += 1 : r > 1 && (r -= 1)), [360 * r, 100 * o, 100 * c]
}, r.rgb.hwb = function(e) {
var t = e[0],
n = e[1],
i = e[2];
return [r.rgb.hsl(e)[0], 1 / 255 * Math.min(t, Math.min(n, i)) * 100, 100 * (i = 1 - 1 / 255 * Math.max(t, Math.max(n, i)))]
}, r.rgb.cmyk = function(e) {
var t, n = e[0] / 255,
i = e[1] / 255,
r = e[2] / 255;
return [100 * ((1 - n - (t = Math.min(1 - n, 1 - i, 1 - r))) / (1 - t) || 0), 100 * ((1 - i - t) / (1 - t) || 0), 100 * ((1 - r - t) / (1 - t) || 0), 100 * t]
}, r.rgb.keyword = function(e) {
var i = n[e];
if (i) return i;
var r, o, a, s = 1 / 0;
for (var l in t)
if (t.hasOwnProperty(l)) {
var c = (o = e, a = t[l], Math.pow(o[0] - a[0], 2) + Math.pow(o[1] - a[1], 2) + Math.pow(o[2] - a[2], 2));
c < s && (s = c, r = l)
}
return r
}, r.keyword.rgb = function(e) {
return t[e]
}, r.rgb.xyz = function(e) {
var t = e[0] / 255,
n = e[1] / 255,
i = e[2] / 255;
return [100 * (.4124 * (t = t > .04045 ? Math.pow((t + .055) / 1.055, 2.4) : t / 12.92) + .3576 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92) + .1805 * (i = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92)), 100 * (.2126 * t + .7152 * n + .0722 * i), 100 * (.0193 * t + .1192 * n + .9505 * i)]
}, r.rgb.lab = function(e) {
var t = r.rgb.xyz(e),
n = t[0],
i = t[1],
o = t[2];
return i /= 100, o /= 108.883, n = (n /= 95.047) > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116, [116 * (i = i > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116) - 16, 500 * (n - i), 200 * (i - (o = o > .008856 ? Math.pow(o, 1 / 3) : 7.787 * o + 16 / 116))]
}, r.hsl.rgb = function(e) {
var t, n, i, r, o, a = e[0] / 360,
s = e[1] / 100,
l = e[2] / 100;
if (0 === s) return [o = 255 * l, o, o];
t = 2 * l - (n = l < .5 ? l * (1 + s) : l + s - l * s), r = [0, 0, 0];
for (var c = 0; c < 3; c++)(i = a + 1 / 3 * -(c - 1)) < 0 && i++, i > 1 && i--, o = 6 * i < 1 ? t + 6 * (n - t) * i : 2 * i < 1 ? n : 3 * i < 2 ? t + (n - t) * (2 / 3 - i) * 6 : t, r[c] = 255 * o;
return r
}, r.hsl.hsv = function(e) {
var t = e[0],
n = e[1] / 100,
i = e[2] / 100,
r = n,
o = Math.max(i, .01);
return n *= (i *= 2) <= 1 ? i : 2 - i, r *= o <= 1 ? o : 2 - o, [t, 100 * (0 === i ? 2 * r / (o + r) : 2 * n / (i + n)), (i + n) / 2 * 100]
}, r.hsv.rgb = function(e) {
var t = e[0] / 60,
n = e[1] / 100,
i = e[2] / 100,
r = Math.floor(t) % 6,
o = t - Math.floor(t),
a = 255 * i * (1 - n),
s = 255 * i * (1 - n * o),
l = 255 * i * (1 - n * (1 - o));
switch (i *= 255, r) {
case 0:
return [i, l, a];
case 1:
return [s, i, a];
case 2:
return [a, i, l];
case 3:
return [a, s, i];
case 4:
return [l, a, i];
case 5:
return [i, a, s]
}
}, r.hsv.hsl = function(e) {
var t, n, i, r = e[0],
o = e[1] / 100,
a = e[2] / 100,
s = Math.max(a, .01);
return i = (2 - o) * a, n = o * s, [r, 100 * (n = (n /= (t = (2 - o) * s) <= 1 ? t : 2 - t) || 0), 100 * (i /= 2)]
}, r.hwb.rgb = function(e) {
var t, n, i, r, o, a, s, l = e[0] / 360,
c = e[1] / 100,
u = e[2] / 100,
d = c + u;
switch (d > 1 && (c /= d, u /= d), i = 6 * l - (t = Math.floor(6 * l)), 0 != (1 & t) && (i = 1 - i), r = c + i * ((n = 1 - u) - c), t) {
default:
case 6:
case 0:
o = n,
a = r,
s = c;
break;
case 1:
o = r,
a = n,
s = c;
break;
case 2:
o = c,
a = n,
s = r;
break;
case 3:
o = c,
a = r,
s = n;
break;
case 4:
o = r,
a = c,
s = n;
break;
case 5:
o = n,
a = c,
s = r
}
return [255 * o, 255 * a, 255 * s]
}, r.cmyk.rgb = function(e) {
var t = e[0] / 100,
n = e[1] / 100,
i = e[2] / 100,
r = e[3] / 100;
return [255 * (1 - Math.min(1, t * (1 - r) + r)), 255 * (1 - Math.min(1, n * (1 - r) + r)), 255 * (1 - Math.min(1, i * (1 - r) + r))]
}, r.xyz.rgb = function(e) {
var t, n, i, r = e[0] / 100,
o = e[1] / 100,
a = e[2] / 100;
return n = -.9689 * r + 1.8758 * o + .0415 * a, i = .0557 * r + -.204 * o + 1.057 * a, t = (t = 3.2406 * r + -1.5372 * o + -.4986 * a) > .0031308 ? 1.055 * Math.pow(t, 1 / 2.4) - .055 : 12.92 * t, n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : 12.92 * n, i = i > .0031308 ? 1.055 * Math.pow(i, 1 / 2.4) - .055 : 12.92 * i, [255 * (t = Math.min(Math.max(0, t), 1)), 255 * (n = Math.min(Math.max(0, n), 1)), 255 * (i = Math.min(Math.max(0, i), 1))]
}, r.xyz.lab = function(e) {
var t = e[0],
n = e[1],
i = e[2];
return n /= 100, i /= 108.883, t = (t /= 95.047) > .008856 ? Math.pow(t, 1 / 3) : 7.787 * t + 16 / 116, [116 * (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116) - 16, 500 * (t - n), 200 * (n - (i = i > .008856 ? Math.pow(i, 1 / 3) : 7.787 * i + 16 / 116))]
}, r.lab.xyz = function(e) {
var t, n, i, r = e[0];
t = e[1] / 500 + (n = (r + 16) / 116), i = n - e[2] / 200;
var o = Math.pow(n, 3),
a = Math.pow(t, 3),
s = Math.pow(i, 3);
return n = o > .008856 ? o : (n - 16 / 116) / 7.787, t = a > .008856 ? a : (t - 16 / 116) / 7.787, i = s > .008856 ? s : (i - 16 / 116) / 7.787, [t *= 95.047, n *= 100, i *= 108.883]
}, r.lab.lch = function(e) {
var t, n = e[0],
i = e[1],
r = e[2];
return (t = 360 * Math.atan2(r, i) / 2 / Math.PI) < 0 && (t += 360), [n, Math.sqrt(i * i + r * r), t]
}, r.lch.lab = function(e) {
var t, n = e[0],
i = e[1];
return t = e[2] / 360 * 2 * Math.PI, [n, i * Math.cos(t), i * Math.sin(t)]
}, r.rgb.ansi16 = function(e) {
var t = e[0],
n = e[1],
i = e[2],
o = 1 in arguments ? arguments[1] : r.rgb.hsv(e)[2];
if (0 === (o = Math.round(o / 50))) return 30;
var a = 30 + (Math.round(i / 255) << 2 | Math.round(n / 255) << 1 | Math.round(t / 255));
return 2 === o && (a += 60), a
}, r.hsv.ansi16 = function(e) {
return r.rgb.ansi16(r.hsv.rgb(e), e[2])
}, r.rgb.ansi256 = function(e) {
var t = e[0],
n = e[1],
i = e[2];
return t === n && n === i ? t < 8 ? 16 : t > 248 ? 231 : Math.round((t - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(t / 255 * 5) + 6 * Math.round(n / 255 * 5) + Math.round(i / 255 * 5)
}, r.ansi16.rgb = function(e) {
var t = e % 10;
if (0 === t || 7 === t) return e > 50 && (t += 3.5), [t = t / 10.5 * 255, t, t];
var n = .5 * (1 + ~~(e > 50));
return [(1 & t) * n * 255, (t >> 1 & 1) * n * 255, (t >> 2 & 1) * n * 255]
}, r.ansi256.rgb = function(e) {
if (e >= 232) {
var t = 10 * (e - 232) + 8;
return [t, t, t]
}
var n;
return e -= 16, [Math.floor(e / 36) / 5 * 255, Math.floor((n = e % 36) / 6) / 5 * 255, n % 6 / 5 * 255]
}, r.rgb.hex = function(e) {
var t = (((255 & Math.round(e[0])) << 16) + ((255 & Math.round(e[1])) << 8) + (255 & Math.round(e[2]))).toString(16).toUpperCase();
return "000000".substring(t.length) + t
}, r.hex.rgb = function(e) {
var t = e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
if (!t) return [0, 0, 0];
var n = t[0];
3 === t[0].length && (n = n.split("").map((function(e) {
return e + e
})).join(""));
var i = parseInt(n, 16);
return [i >> 16 & 255, i >> 8 & 255, 255 & i]
}, r.rgb.hcg = function(e) {
var t, n = e[0] / 255,
i = e[1] / 255,
r = e[2] / 255,
o = Math.max(Math.max(n, i), r),
a = Math.min(Math.min(n, i), r),
s = o - a;
return t = s <= 0 ? 0 : o === n ? (i - r) / s % 6 : o === i ? 2 + (r - n) / s : 4 + (n - i) / s + 4, t /= 6, [360 * (t %= 1), 100 * s, 100 * (s < 1 ? a / (1 - s) : 0)]
}, r.hsl.hcg = function(e) {
var t, n = e[1] / 100,
i = e[2] / 100,
r = 0;
return (t = i < .5 ? 2 * n * i : 2 * n * (1 - i)) < 1 && (r = (i - .5 * t) / (1 - t)), [e[0], 100 * t, 100 * r]
}, r.hsv.hcg = function(e) {
var t = e[1] / 100,
n = e[2] / 100,
i = t * n,
r = 0;
return i < 1 && (r = (n - i) / (1 - i)), [e[0], 100 * i, 100 * r]
}, r.hcg.rgb = function(e) {
var t = e[0] / 360,
n = e[1] / 100,
i = e[2] / 100;
if (0 === n) return [255 * i, 255 * i, 255 * i];
var r, o = [0, 0, 0],
a = t % 1 * 6,
s = a % 1,
l = 1 - s;
switch (Math.floor(a)) {
case 0:
o[0] = 1, o[1] = s, o[2] = 0;
break;
case 1:
o[0] = l, o[1] = 1, o[2] = 0;
break;
case 2:
o[0] = 0, o[1] = 1, o[2] = s;
break;
case 3:
o[0] = 0, o[1] = l, o[2] = 1;
break;
case 4:
o[0] = s, o[1] = 0, o[2] = 1;
break;
default:
o[0] = 1, o[1] = 0, o[2] = l
}
return r = (1 - n) * i, [255 * (n * o[0] + r), 255 * (n * o[1] + r), 255 * (n * o[2] + r)]
}, r.hcg.hsv = function(e) {
var t = e[1] / 100,
n = t + e[2] / 100 * (1 - t),
i = 0;
return n > 0 && (i = t / n), [e[0], 100 * i, 100 * n]
}, r.hcg.hsl = function(e) {
var t = e[1] / 100,
n = e[2] / 100 * (1 - t) + .5 * t,
i = 0;
return n > 0 && n < .5 ? i = t / (2 * n) : n >= .5 && n < 1 && (i = t / (2 * (1 - n))), [e[0], 100 * i, 100 * n]
}, r.hcg.hwb = function(e) {
var t = e[1] / 100,
n = t + e[2] / 100 * (1 - t);
return [e[0], 100 * (n - t), 100 * (1 - n)]
}, r.hwb.hcg = function(e) {
var t = e[1] / 100,
n = 1 - e[2] / 100,
i = n - t,
r = 0;
return i < 1 && (r = (n - i) / (1 - i)), [e[0], 100 * i, 100 * r]
}, r.apple.rgb = function(e) {
return [e[0] / 65535 * 255, e[1] / 65535 * 255, e[2] / 65535 * 255]
}, r.rgb.apple = function(e) {
return [e[0] / 255 * 65535, e[1] / 255 * 65535, e[2] / 255 * 65535]
}, r.gray.rgb = function(e) {
return [e[0] / 100 * 255, e[0] / 100 * 255, e[0] / 100 * 255]
}, r.gray.hsl = r.gray.hsv = function(e) {
return [0, 0, e[0]]
}, r.gray.hwb = function(e) {
return [0, 100, e[0]]
}, r.gray.cmyk = function(e) {
return [0, 0, 0, e[0]]
}, r.gray.lab = function(e) {
return [e[0], 0, 0]
}, r.gray.hex = function(e) {
var t = 255 & Math.round(e[0] / 100 * 255),
n = ((t << 16) + (t << 8) + t).toString(16).toUpperCase();
return "000000".substring(n.length) + n
}, r.rgb.gray = function(e) {
return [(e[0] + e[1] + e[2]) / 3 / 255 * 100]
}
}));
function i(e) {
var t = function() {
for (var e = {}, t = Object.keys(n), i = t.length, r = 0; r < i; r++) e[t[r]] = {
distance: -1,
parent: null
};
return e
}(),
i = [e];
for (t[e].distance = 0; i.length;)
for (var r = i.pop(), o = Object.keys(n[r]), a = o.length, s = 0; s < a; s++) {
var l = o[s],
c = t[l]; - 1 === c.distance && (c.distance = t[r].distance + 1, c.parent = r, i.unshift(l))
}
return t
}
function r(e, t) {
return function(n) {
return t(e(n))
}
}
function o(e, t) {
for (var i = [t[e].parent, e], o = n[t[e].parent][e], a = t[e].parent; t[a].parent;) i.unshift(t[a].parent), o = r(n[t[a].parent][a], o), a = t[a].parent;
return o.conversion = i, o
}
n.rgb, n.hsl, n.hsv, n.hwb, n.cmyk, n.xyz, n.lab, n.lch, n.hex, n.keyword, n.ansi16, n.ansi256, n.hcg, n.apple, n.gray;
var a = {};
Object.keys(n).forEach((function(e) {
a[e] = {}, Object.defineProperty(a[e], "channels", {
value: n[e].channels
}), Object.defineProperty(a[e], "labels", {
value: n[e].labels
});
var t = function(e) {
for (var t = i(e), n = {}, r = Object.keys(t), a = r.length, s = 0; s < a; s++) {
var l = r[s];
null !== t[l].parent && (n[l] = o(l, t))
}
return n
}(e);
Object.keys(t).forEach((function(n) {
var i = t[n];
a[e][n] = function(e) {
var t = function(t) {
if (null == t) return t;
arguments.length > 1 && (t = Array.prototype.slice.call(arguments));
var n = e(t);
if ("object" == typeof n)
for (var i = n.length, r = 0; r < i; r++) n[r] = Math.round(n[r]);
return n
};
return "conversion" in e && (t.conversion = e.conversion), t
}(i), a[e][n].raw = function(e) {
var t = function(t) {
return null == t ? t : (arguments.length > 1 && (t = Array.prototype.slice.call(arguments)), e(t))
};
return "conversion" in e && (t.conversion = e.conversion), t
}(i)
}))
}));
var s = a,
l = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
},
c = {
getRgba: u,
getHsla: d,
getRgb: function(e) {
var t = u(e);
return t && t.slice(0, 3)
},
getHsl: function(e) {
var t = d(e);
return t && t.slice(0, 3)
},
getHwb: h,
getAlpha: function(e) {
var t = u(e);
return t || (t = d(e)) || (t = h(e)) ? t[3] : void 0
},
hexString: function(e, t) {
return t = void 0 !== t && 3 === e.length ? t : e[3], "#" + v(e[0]) + v(e[1]) + v(e[2]) + (t >= 0 && t < 1 ? v(Math.round(255 * t)) : "")
},
rgbString: function(e, t) {
return t < 1 || e[3] && e[3] < 1 ? f(e, t) : "rgb(" + e[0] + ", " + e[1] + ", " + e[2] + ")"
},
rgbaString: f,
percentString: function(e, t) {
return t < 1 || e[3] && e[3] < 1 ? p(e, t) : "rgb(" + Math.round(e[0] / 255 * 100) + "%, " + Math.round(e[1] / 255 * 100) + "%, " + Math.round(e[2] / 255 * 100) + "%)"
},
percentaString: p,
hslString: function(e, t) {
return t < 1 || e[3] && e[3] < 1 ? g(e, t) : "hsl(" + e[0] + ", " + e[1] + "%, " + e[2] + "%)"
},
hslaString: g,
hwbString: function(e, t) {
return void 0 === t && (t = void 0 !== e[3] ? e[3] : 1), "hwb(" + e[0] + ", " + e[1] + "%, " + e[2] + "%" + (void 0 !== t && 1 !== t ? ", " + t : "") + ")"
},
keyword: function(e) {
return y[e.slice(0, 3)]
}
};
function u(e) {
if (e) {
var t = [0, 0, 0],
n = 1,
i = e.match(/^#([a-fA-F0-9]{3,4})$/i),
r = "";
if (i) {
r = (i = i[1])[3];
for (var o = 0; o < t.length; o++) t[o] = parseInt(i[o] + i[o], 16);
r && (n = Math.round(parseInt(r + r, 16) / 255 * 100) / 100)
} else if (i = e.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)) {
for (r = i[2], i = i[1], o = 0; o < t.length; o++) t[o] = parseInt(i.slice(2 * o, 2 * o + 2), 16);
r && (n = Math.round(parseInt(r, 16) / 255 * 100) / 100)
} else if (i = e.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) {
for (o = 0; o < t.length; o++) t[o] = parseInt(i[o + 1]);
n = parseFloat(i[4])
} else if (i = e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)) {
for (o = 0; o < t.length; o++) t[o] = Math.round(2.55 * parseFloat(i[o + 1]));
n = parseFloat(i[4])
} else if (i = e.match(/(\w+)/)) {
if ("transparent" == i[1]) return [0, 0, 0, 0];
if (!(t = l[i[1]])) return
}
for (o = 0; o < t.length; o++) t[o] = m(t[o], 0, 255);
return n = n || 0 == n ? m(n, 0, 1) : 1, t[3] = n, t
}
}
function d(e) {
if (e) {
var t = e.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
if (t) {
var n = parseFloat(t[4]);
return [m(parseInt(t[1]), 0, 360), m(parseFloat(t[2]), 0, 100), m(parseFloat(t[3]), 0, 100), m(isNaN(n) ? 1 : n, 0, 1)]
}
}
}
function h(e) {
if (e) {
var t = e.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
if (t) {
var n = parseFloat(t[4]);
return [m(parseInt(t[1]), 0, 360), m(parseFloat(t[2]), 0, 100), m(parseFloat(t[3]), 0, 100), m(isNaN(n) ? 1 : n, 0, 1)]
}
}
}
function f(e, t) {
return void 0 === t && (t = void 0 !== e[3] ? e[3] : 1), "rgba(" + e[0] + ", " + e[1] + ", " + e[2] + ", " + t + ")"
}
function p(e, t) {
return "rgba(" + Math.round(e[0] / 255 * 100) + "%, " + Math.round(e[1] / 255 * 100) + "%, " + Math.round(e[2] / 255 * 100) + "%, " + (t || e[3] || 1) + ")"
}
function g(e, t) {
return void 0 === t && (t = void 0 !== e[3] ? e[3] : 1), "hsla(" + e[0] + ", " + e[1] + "%, " + e[2] + "%, " + t + ")"
}
function m(e, t, n) {
return Math.min(Math.max(t, e), n)
}
function v(e) {
var t = e.toString(16).toUpperCase();
return t.length < 2 ? "0" + t : t
}
var y = {};
for (var b in l) y[l[b]] = b;
var w = function(e) {
return e instanceof w ? e : this instanceof w ? (this.valid = !1, this.values = {
rgb: [0, 0, 0],
hsl: [0, 0, 0],
hsv: [0, 0, 0],
hwb: [0, 0, 0],
cmyk: [0, 0, 0, 0],
alpha: 1
}, void("string" == typeof e ? (t = c.getRgba(e)) ? this.setValues("rgb", t) : (t = c.getHsla(e)) ? this.setValues("hsl", t) : (t = c.getHwb(e)) && this.setValues("hwb", t) : "object" == typeof e && (void 0 !== (t = e).r || void 0 !== t.red ? this.setValues("rgb", t) : void 0 !== t.l || void 0 !== t.lightness ? this.setValues("hsl", t) : void 0 !== t.v || void 0 !== t.value ? this.setValues("hsv", t) : void 0 !== t.w || void 0 !== t.whiteness ? this.setValues("hwb", t) : void 0 === t.c && void 0 === t.cyan || this.setValues("cmyk", t)))) : new w(e);
var t
};
w.prototype = {
isValid: function() {
return this.valid
},
rgb: function() {
return this.setSpace("rgb", arguments)
},
hsl: function() {
return this.setSpace("hsl", arguments)
},
hsv: function() {
return this.setSpace("hsv", arguments)
},
hwb: function() {
return this.setSpace("hwb", arguments)
},
cmyk: function() {
return this.setSpace("cmyk", arguments)
},
rgbArray: function() {
return this.values.rgb
},
hslArray: function() {
return this.values.hsl
},
hsvArray: function() {
return this.values.hsv
},
hwbArray: function() {
var e = this.values;
return 1 !== e.alpha ? e.hwb.concat([e.alpha]) : e.hwb
},
cmykArray: function() {
return this.values.cmyk
},
rgbaArray: function() {
var e = this.values;
return e.rgb.concat([e.alpha])
},
hslaArray: function() {
var e = this.values;
return e.hsl.concat([e.alpha])
},
alpha: function(e) {
return void 0 === e ? this.values.alpha : (this.setValues("alpha", e), this)
},
red: function(e) {
return this.setChannel("rgb", 0, e)
},
green: function(e) {
return this.setChannel("rgb", 1, e)
},
blue: function(e) {
return this.setChannel("rgb", 2, e)
},
hue: function(e) {
return e && (e = (e %= 360) < 0 ? 360 + e : e), this.setChannel("hsl", 0, e)
},
saturation: function(e) {
return this.setChannel("hsl", 1, e)
},
lightness: function(e) {
return this.setChannel("hsl", 2, e)
},
saturationv: function(e) {
return this.setChannel("hsv", 1, e)
},
whiteness: function(e) {
return this.setChannel("hwb", 1, e)
},
blackness: function(e) {
return this.setChannel("hwb", 2, e)
},
value: function(e) {
return this.setChannel("hsv", 2, e)
},
cyan: function(e) {
return this.setChannel("cmyk", 0, e)
},
magenta: function(e) {
return this.setChannel("cmyk", 1, e)
},
yellow: function(e) {
return this.setChannel("cmyk", 2, e)
},
black: function(e) {
return this.setChannel("cmyk", 3, e)
},
hexString: function() {
return c.hexString(this.values.rgb)
},
rgbString: function() {
return c.rgbString(this.values.rgb, this.values.alpha)
},
rgbaString: function() {
return c.rgbaString(this.values.rgb, this.values.alpha)
},
percentString: function() {
return c.percentString(this.values.rgb, this.values.alpha)
},
hslString: function() {
return c.hslString(this.values.hsl, this.values.alpha)
},
hslaString: function() {
return c.hslaString(this.values.hsl, this.values.alpha)
},
hwbString: function() {
return c.hwbString(this.values.hwb, this.values.alpha)
},
keyword: function() {
return c.keyword(this.values.rgb, this.values.alpha)
},
rgbNumber: function() {
var e = this.values.rgb;
return e[0] << 16 | e[1] << 8 | e[2]
},
luminosity: function() {
for (var e = this.values.rgb, t = [], n = 0; n < e.length; n++) {
var i = e[n] / 255;
t[n] = i <= .03928 ? i / 12.92 : Math.pow((i + .055) / 1.055, 2.4)
}
return .2126 * t[0] + .7152 * t[1] + .0722 * t[2]
},
contrast: function(e) {
var t = this.luminosity(),
n = e.luminosity();
return t > n ? (t + .05) / (n + .05) : (n + .05) / (t + .05)
},
level: function(e) {
var t = this.contrast(e);
return t >= 7.1 ? "AAA" : t >= 4.5 ? "AA" : ""
},
dark: function() {
var e = this.values.rgb;
return (299 * e[0] + 587 * e[1] + 114 * e[2]) / 1e3 < 128
},
light: function() {
return !this.dark()
},
negate: function() {
for (var e = [], t = 0; t < 3; t++) e[t] = 255 - this.values.rgb[t];
return this.setValues("rgb", e), this
},
lighten: function(e) {
var t = this.values.hsl;
return t[2] += t[2] * e, this.setValues("hsl", t), this
},
darken: function(e) {
var t = this.values.hsl;
return t[2] -= t[2] * e, this.setValues("hsl", t), this
},
saturate: function(e) {
var t = this.values.hsl;
return t[1] += t[1] * e, this.setValues("hsl", t), this
},
desaturate: function(e) {
var t = this.values.hsl;
return t[1] -= t[1] * e, this.setValues("hsl", t), this
},
whiten: function(e) {
var t = this.values.hwb;
return t[1] += t[1] * e, this.setValues("hwb", t), this
},
blacken: function(e) {
var t = this.values.hwb;
return t[2] += t[2] * e, this.setValues("hwb", t), this
},
greyscale: function() {
var e = this.values.rgb,
t = .3 * e[0] + .59 * e[1] + .11 * e[2];
return this.setValues("rgb", [t, t, t]), this
},
clearer: function(e) {
var t = this.values.alpha;
return this.setValues("alpha", t - t * e), this
},
opaquer: function(e) {
var t = this.values.alpha;
return this.setValues("alpha", t + t * e), this
},
rotate: function(e) {
var t = this.values.hsl,
n = (t[0] + e) % 360;
return t[0] = n < 0 ? 360 + n : n, this.setValues("hsl", t), this
},
mix: function(e, t) {
var n = e,
i = void 0 === t ? .5 : t,
r = 2 * i - 1,
o = this.alpha() - n.alpha(),
a = ((r * o == -1 ? r : (r + o) / (1 + r * o)) + 1) / 2,
s = 1 - a;
return this.rgb(a * this.red() + s * n.red(), a * this.green() + s * n.green(), a * this.blue() + s * n.blue()).alpha(this.alpha() * i + n.alpha() * (1 - i))
},
toJSON: function() {
return this.rgb()
},
clone: function() {
var e, t, n = new w,
i = this.values,
r = n.values;
for (var o in i) i.hasOwnProperty(o) && (e = i[o], "[object Array]" === (t = {}.toString.call(e)) ? r[o] = e.slice(0) : "[object Number]" === t ? r[o] = e : console.error("unexpected color value:", e));
return n
}
}, w.prototype.spaces = {
rgb: ["red", "green", "blue"],
hsl: ["hue", "saturation", "lightness"],
hsv: ["hue", "saturation", "value"],
hwb: ["hue", "whiteness", "blackness"],
cmyk: ["cyan", "magenta", "yellow", "black"]
}, w.prototype.maxes = {
rgb: [255, 255, 255],
hsl: [360, 100, 100],
hsv: [360, 100, 100],
hwb: [360, 100, 100],
cmyk: [100, 100, 100, 100]
}, w.prototype.getValues = function(e) {
for (var t = this.values, n = {}, i = 0; i < e.length; i++) n[e.charAt(i)] = t[e][i];
return 1 !== t.alpha && (n.a = t.alpha), n
}, w.prototype.setValues = function(e, t) {
var n, i, r = this.values,
o = this.spaces,
a = this.maxes,
l = 1;
if (this.valid = !0, "alpha" === e) l = t;
else if (t.length) r[e] = t.slice(0, e.length), l = t[e.length];
else if (void 0 !== t[e.charAt(0)]) {
for (n = 0; n < e.length; n++) r[e][n] = t[e.charAt(n)];
l = t.a
} else if (void 0 !== t[o[e][0]]) {
var c = o[e];
for (n = 0; n < e.length; n++) r[e][n] = t[c[n]];
l = t.alpha
}
if (r.alpha = Math.max(0, Math.min(1, void 0 === l ? r.alpha : l)), "alpha" === e) return !1;
for (n = 0; n < e.length; n++) i = Math.max(0, Math.min(a[e][n], r[e][n])), r[e][n] = Math.round(i);
for (var u in o) u !== e && (r[u] = s[e][u](r[e]));
return !0
}, w.prototype.setSpace = function(e, t) {
var n = t[0];
return void 0 === n ? this.getValues(e) : ("number" == typeof n && (n = Array.prototype.slice.call(t)), this.setValues(e, n), this)
}, w.prototype.setChannel = function(e, t, n) {
var i = this.values[e];
return void 0 === n ? i[t] : (n === i[t] || (i[t] = n, this.setValues(e, i)), this)
}, "undefined" != typeof window && (window.Color = w);
var x, _ = w,
C = {
noop: function() {},
uid: (x = 0, function() {
return x++
}),
isNullOrUndef: function(e) {
return null == e
},
isArray: function(e) {
if (Array.isArray && Array.isArray(e)) return !0;
var t = Object.prototype.toString.call(e);
return "[object" === t.substr(0, 7) && "Array]" === t.substr(-6)
},
isObject: function(e) {
return null !== e && "[object Object]" === Object.prototype.toString.call(e)
},
isFinite: function(e) {
return ("number" == typeof e || e instanceof Number) && isFinite(e)
},
valueOrDefault: function(e, t) {
return void 0 === e ? t : e
},
valueAtIndexOrDefault: function(e, t, n) {
return C.valueOrDefault(C.isArray(e) ? e[t] : e, n)
},
callback: function(e, t, n) {
if (e && "function" == typeof e.call) return e.apply(n, t)
},
each: function(e, t, n, i) {
var r, o, a;
if (C.isArray(e))
if (o = e.length, i)
for (r = o - 1; r >= 0; r--) t.call(n, e[r], r);
else
for (r = 0; r < o; r++) t.call(n, e[r], r);
else if (C.isObject(e))
for (o = (a = Object.keys(e)).length, r = 0; r < o; r++) t.call(n, e[a[r]], a[r])
},
arrayEquals: function(e, t) {
var n, i, r, o;
if (!e || !t || e.length !== t.length) return !1;
for (n = 0, i = e.length; n < i; ++n)
if (r = e[n], o = t[n], r instanceof Array && o instanceof Array) {
if (!C.arrayEquals(r, o)) return !1
} else if (r !== o) return !1;
return !0
},
clone: function(e) {
if (C.isArray(e)) return e.map(C.clone);
if (C.isObject(e)) {
for (var t = {}, n = Object.keys(e), i = n.length, r = 0; r < i; ++r) t[n[r]] = C.clone(e[n[r]]);
return t
}
return e
},
_merger: function(e, t, n, i) {
var r = t[e],
o = n[e];
C.isObject(r) && C.isObject(o) ? C.merge(r, o, i) : t[e] = C.clone(o)
},
_mergerIf: function(e, t, n) {
var i = t[e],
r = n[e];
C.isObject(i) && C.isObject(r) ? C.mergeIf(i, r) : t.hasOwnProperty(e) || (t[e] = C.clone(r))
},
merge: function(e, t, n) {
var i, r, o, a, s, l = C.isArray(t) ? t : [t],
c = l.length;
if (!C.isObject(e)) return e;
for (i = (n = n || {}).merger || C._merger, r = 0; r < c; ++r)
if (t = l[r], C.isObject(t))
for (s = 0, a = (o = Object.keys(t)).length; s < a; ++s) i(o[s], e, t, n);
return e
},
mergeIf: function(e, t) {
return C.merge(e, t, {
merger: C._mergerIf
})
},
extend: Object.assign || function(e) {
return C.merge(e, [].slice.call(arguments, 1), {
merger: function(e, t, n) {
t[e] = n[e]
}
})
},
inherits: function(e) {
var t = this,
n = e && e.hasOwnProperty("constructor") ? e.constructor : function() {
return t.apply(this, arguments)
},
i = function() {
this.constructor = n
};
return i.prototype = t.prototype, n.prototype = new i, n.extend = C.inherits, e && C.extend(n.prototype, e), n.__super__ = t.prototype, n
},
_deprecated: function(e, t, n, i) {
void 0 !== t && console.warn(e + ': "' + n + '" is deprecated. Please use "' + i + '" instead')
}
},
k = C;
C.callCallback = C.callback, C.indexOf = function(e, t, n) {
return Array.prototype.indexOf.call(e, t, n)
}, C.getValueOrDefault = C.valueOrDefault, C.getValueAtIndexOrDefault = C.valueAtIndexOrDefault;
var S = {
linear: function(e) {
return e
},
easeInQuad: function(e) {
return e * e
},
easeOutQuad: function(e) {
return -e * (e - 2)
},
easeInOutQuad: function(e) {
return (e /= .5) < 1 ? .5 * e * e : -.5 * (--e * (e - 2) - 1)
},
easeInCubic: function(e) {
return e * e * e
},
easeOutCubic: function(e) {
return (e -= 1) * e * e + 1
},
easeInOutCubic: function(e) {
return (e /= .5) < 1 ? .5 * e * e * e : .5 * ((e -= 2) * e * e + 2)
},
easeInQuart: function(e) {
return e * e * e * e
},
easeOutQuart: function(e) {
return -((e -= 1) * e * e * e - 1)
},
easeInOutQuart: function(e) {
return (e /= .5) < 1 ? .5 * e * e * e * e : -.5 * ((e -= 2) * e * e * e - 2)
},
easeInQuint: function(e) {
return e * e * e * e * e
},
easeOutQuint: function(e) {
return (e -= 1) * e * e * e * e + 1
},
easeInOutQuint: function(e) {
return (e /= .5) < 1 ? .5 * e * e * e * e * e : .5 * ((e -= 2) * e * e * e * e + 2)
},
easeInSine: function(e) {
return 1 - Math.cos(e * (Math.PI / 2))
},
easeOutSine: function(e) {
return Math.sin(e * (Math.PI / 2))
},
easeInOutSine: function(e) {
return -.5 * (Math.cos(Math.PI * e) - 1)
},
easeInExpo: function(e) {
return 0 === e ? 0 : Math.pow(2, 10 * (e - 1))
},
easeOutExpo: function(e) {
return 1 === e ? 1 : 1 - Math.pow(2, -10 * e)
},
easeInOutExpo: function(e) {
return 0 === e ? 0 : 1 === e ? 1 : (e /= .5) < 1 ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * --e))
},
easeInCirc: function(e) {
return e >= 1 ? e : -(Math.sqrt(1 - e * e) - 1)
},
easeOutCirc: function(e) {
return Math.sqrt(1 - (e -= 1) * e)
},
easeInOutCirc: function(e) {
return (e /= .5) < 1 ? -.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
},
easeInElastic: function(e) {
var t = 1.70158,
n = 0,
i = 1;
return 0 === e ? 0 : 1 === e ? 1 : (n || (n = .3), i < 1 ? (i = 1, t = n / 4) : t = n / (2 * Math.PI) * Math.asin(1 / i), -i * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * (2 * Math.PI) / n))
},
easeOutElastic: function(e) {
var t = 1.70158,
n = 0,
i = 1;
return 0 === e ? 0 : 1 === e ? 1 : (n || (n = .3), i < 1 ? (i = 1, t = n / 4) : t = n / (2 * Math.PI) * Math.asin(1 / i), i * Math.pow(2, -10 * e) * Math.sin((e - t) * (2 * Math.PI) / n) + 1)
},
easeInOutElastic: function(e) {
var t = 1.70158,
n = 0,
i = 1;
return 0 === e ? 0 : 2 == (e /= .5) ? 1 : (n || (n = .45), i < 1 ? (i = 1, t = n / 4) : t = n / (2 * Math.PI) * Math.asin(1 / i), e < 1 ? i * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * (2 * Math.PI) / n) * -.5 : i * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - t) * (2 * Math.PI) / n) * .5 + 1)
},
easeInBack: function(e) {
var t = 1.70158;
return e * e * ((t + 1) * e - t)
},
easeOutBack: function(e) {
var t = 1.70158;
return (e -= 1) * e * ((t + 1) * e + t) + 1
},
easeInOutBack: function(e) {
var t = 1.70158;
return (e /= .5) < 1 ? e * e * ((1 + (t *= 1.525)) * e - t) * .5 : .5 * ((e -= 2) * e * ((1 + (t *= 1.525)) * e + t) + 2)
},
easeInBounce: function(e) {
return 1 - S.easeOutBounce(1 - e)
},
easeOutBounce: function(e) {
return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
},
easeInOutBounce: function(e) {
return e < .5 ? .5 * S.easeInBounce(2 * e) : .5 * S.easeOutBounce(2 * e - 1) + .5
}
},
T = {
effects: S
};
k.easingEffects = S;
var D = Math.PI,
E = D / 180,
A = 2 * D,
M = D / 2,
O = D / 4,
I = 2 * D / 3,
P = {
clear: function(e) {
e.ctx.clearRect(0, 0, e.width, e.height)
},
roundedRect: function(e, t, n, i, r, o) {
if (o) {
var a = Math.min(o, r / 2, i / 2),
s = t + a,
l = n + a,
c = t + i - a,
u = n + r - a;
e.moveTo(t, l), s < c && l < u ? (e.arc(s, l, a, -D, -M), e.arc(c, l, a, -M, 0), e.arc(c, u, a, 0, M), e.arc(s, u, a, M, D)) : s < c ? (e.moveTo(s, n), e.arc(c, l, a, -M, M), e.arc(s, l, a, M, D + M)) : l < u ? (e.arc(s, l, a, -D, 0), e.arc(s, u, a, 0, D)) : e.arc(s, l, a, -D, D), e.closePath(), e.moveTo(t, n)
} else e.rect(t, n, i, r)
},
drawPoint: function(e, t, n, i, r, o) {
var a, s, l, c, u, d = (o || 0) * E;
if (t && "object" == typeof t && ("[object HTMLImageElement]" === (a = t.toString()) || "[object HTMLCanvasElement]" === a)) return e.save(), e.translate(i, r), e.rotate(d), e.drawImage(t, -t.width / 2, -t.height / 2, t.width, t.height), void e.restore();
if (!(isNaN(n) || n <= 0)) {
switch (e.beginPath(), t) {
default: e.arc(i, r, n, 0, A),
e.closePath();
break;
case "triangle":
e.moveTo(i + Math.sin(d) * n, r - Math.cos(d) * n),
d += I,
e.lineTo(i + Math.sin(d) * n, r - Math.cos(d) * n),
d += I,
e.lineTo(i + Math.sin(d) * n, r - Math.cos(d) * n),
e.closePath();
break;
case "rectRounded":
c = n - (u = .516 * n),
s = Math.cos(d + O) * c,
l = Math.sin(d + O) * c,
e.arc(i - s, r - l, u, d - D, d - M),
e.arc(i + l, r - s, u, d - M, d),
e.arc(i + s, r + l, u, d, d + M),
e.arc(i - l, r + s, u, d + M, d + D),
e.closePath();
break;
case "rect":
if (!o) {
c = Math.SQRT1_2 * n, e.rect(i - c, r - c, 2 * c, 2 * c);
break
}d += O;
case "rectRot":
s = Math.cos(d) * n,
l = Math.sin(d) * n,
e.moveTo(i - s, r - l),
e.lineTo(i + l, r - s),
e.lineTo(i + s, r + l),
e.lineTo(i - l, r + s),
e.closePath();
break;
case "crossRot":
d += O;
case "cross":
s = Math.cos(d) * n,
l = Math.sin(d) * n,
e.moveTo(i - s, r - l),
e.lineTo(i + s, r + l),
e.moveTo(i + l, r - s),
e.lineTo(i - l, r + s);
break;
case "star":
s = Math.cos(d) * n,
l = Math.sin(d) * n,
e.moveTo(i - s, r - l),
e.lineTo(i + s, r + l),
e.moveTo(i + l, r - s),
e.lineTo(i - l, r + s),
d += O,
s = Math.cos(d) * n,
l = Math.sin(d) * n,
e.moveTo(i - s, r - l),
e.lineTo(i + s, r + l),
e.moveTo(i + l, r - s),
e.lineTo(i - l, r + s);
break;
case "line":
s = Math.cos(d) * n,
l = Math.sin(d) * n,
e.moveTo(i - s, r - l),
e.lineTo(i + s, r + l);
break;
case "dash":
e.moveTo(i, r),
e.lineTo(i + Math.cos(d) * n, r + Math.sin(d) * n)
}
e.fill(), e.stroke()
}
},
_isPointInArea: function(e, t) {
return e.x > t.left - 1e-6 && e.x < t.right + 1e-6 && e.y > t.top - 1e-6 && e.y < t.bottom + 1e-6
},
clipArea: function(e, t) {
e.save(), e.beginPath(), e.rect(t.left, t.top, t.right - t.left, t.bottom - t.top), e.clip()
},
unclipArea: function(e) {
e.restore()
},
lineTo: function(e, t, n, i) {
var r = n.steppedLine;
if (r) {
if ("middle" === r) {
var o = (t.x + n.x) / 2;
e.lineTo(o, i ? n.y : t.y), e.lineTo(o, i ? t.y : n.y)
} else "after" === r && !i || "after" !== r && i ? e.lineTo(t.x, n.y) : e.lineTo(n.x, t.y);
e.lineTo(n.x, n.y)
} else n.tension ? e.bezierCurveTo(i ? t.controlPointPreviousX : t.controlPointNextX, i ? t.controlPointPreviousY : t.controlPointNextY, i ? n.controlPointNextX : n.controlPointPreviousX, i ? n.controlPointNextY : n.controlPointPreviousY, n.x, n.y) : e.lineTo(n.x, n.y)
}
},
L = P;
k.clear = P.clear, k.drawRoundedRectangle = function(e) {
e.beginPath(), P.roundedRect.apply(P, arguments)
};
var F = {
_set: function(e, t) {
return k.merge(this[e] || (this[e] = {}), t)
}
};
F._set("global", {
defaultColor: "rgba(0,0,0,0.1)",
defaultFontColor: "#666",
defaultFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
defaultFontSize: 12,
defaultFontStyle: "normal",
defaultLineHeight: 1.2,
showLines: !0
});
var N = F,
R = k.valueOrDefault,
j = {
toLineHeight: function(e, t) {
var n = ("" + e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);
if (!n || "normal" === n[1]) return 1.2 * t;
switch (e = +n[2], n[3]) {
case "px":
return e;
case "%":
e /= 100
}
return t * e
},
toPadding: function(e) {
var t, n, i, r;
return k.isObject(e) ? (t = +e.top || 0, n = +e.right || 0, i = +e.bottom || 0, r = +e.left || 0) : t = n = i = r = +e || 0, {
top: t,
right: n,
bottom: i,
left: r,
height: t + i,
width: r + n
}
},
_parseFont: function(e) {
var t = N.global,
n = R(e.fontSize, t.defaultFontSize),
i = {
family: R(e.fontFamily, t.defaultFontFamily),
lineHeight: k.options.toLineHeight(R(e.lineHeight, t.defaultLineHeight), n),
size: n,
style: R(e.fontStyle, t.defaultFontStyle),
weight: null,
string: ""
};
return i.string = function(e) {
return !e || k.isNullOrUndef(e.size) || k.isNullOrUndef(e.family) ? null : (e.style ? e.style + " " : "") + (e.weight ? e.weight + " " : "") + e.size + "px " + e.family
}(i), i
},
resolve: function(e, t, n, i) {
var r, o, a, s = !0;
for (r = 0, o = e.length; r < o; ++r)
if (void 0 !== (a = e[r]) && (void 0 !== t && "function" == typeof a && (a = a(t), s = !1), void 0 !== n && k.isArray(a) && (a = a[n], s = !1), void 0 !== a)) return i && !s && (i.cacheable = !1), a
}
},
$ = {
_factorize: function(e) {
var t, n = [],
i = Math.sqrt(e);
for (t = 1; t < i; t++) e % t == 0 && (n.push(t), n.push(e / t));
return i === (0 | i) && n.push(i), n.sort((function(e, t) {
return e - t
})).pop(), n
},
log10: Math.log10 || function(e) {
var t = Math.log(e) * Math.LOG10E,
n = Math.round(t);
return e === Math.pow(10, n) ? n : t
}
},
z = $;
k.log10 = $.log10;
var H = k,
B = T,
q = L,
W = j,
U = z;
H.easing = B, H.canvas = q, H.options = W, H.math = U, H.rtl = {
getRtlAdapter: function(e, t, n) {
return e ? function(e, t) {
return {
x: function(n) {
return e + e + t - n
},
setWidth: function(e) {
t = e
},
textAlign: function(e) {
return "center" === e ? e : "right" === e ? "left" : "right"
},
xPlus: function(e, t) {
return e - t
},
leftForLtr: function(e, t) {
return e - t
}
}
}(t, n) : {
x: function(e) {
return e
},
setWidth: function(e) {},
textAlign: function(e) {
return e
},
xPlus: function(e, t) {
return e + t
},
leftForLtr: function(e, t) {
return e
}
}
},
overrideTextDirection: function(e, t) {
var n, i;
"ltr" !== t && "rtl" !== t || (i = [(n = e.canvas.style).getPropertyValue("direction"), n.getPropertyPriority("direction")], n.setProperty("direction", t, "important"), e.prevTextDirection = i)
},
restoreTextDirection: function(e) {
var t = e.prevTextDirection;
void 0 !== t && (delete e.prevTextDirection, e.canvas.style.setProperty("direction", t[0], t[1]))
}
};
var V = function(e) {
H.extend(this, e), this.initialize.apply(this, arguments)
};
H.extend(V.prototype, {
_type: void 0,
initialize: function() {
this.hidden = !1
},
pivot: function() {
var e = this;
return e._view || (e._view = H.extend({}, e._model)), e._start = {}, e
},
transition: function(e) {
var t = this,
n = t._model,
i = t._start,
r = t._view;
return n && 1 !== e ? (r || (r = t._view = {}), i || (i = t._start = {}), function(e, t, n, i) {
var r, o, a, s, l, c, u, d, h, f = Object.keys(n);
for (r = 0, o = f.length; r < o; ++r)
if (c = n[a = f[r]], t.hasOwnProperty(a) || (t[a] = c), (s = t[a]) !== c && "_" !== a[0]) {
if (e.hasOwnProperty(a) || (e[a] = s), (u = typeof c) == typeof(l = e[a]))
if ("string" === u) {
if ((d = _(l)).valid && (h = _(c)).valid) {
t[a] = h.mix(d, i).rgbString();
continue
}
} else if (H.isFinite(l) && H.isFinite(c)) {
t[a] = l + (c - l) * i;
continue
}
t[a] = c
}
}(i, r, n, e), t) : (t._view = H.extend({}, n), t._start = null, t)
},
tooltipPosition: function() {
return {
x: this._model.x,
y: this._model.y
}
},
hasValue: function() {
return H.isNumber(this._model.x) && H.isNumber(this._model.y)
}
}), V.extend = H.inherits;
var Y = V,
X = Y.extend({
chart: null,
currentStep: 0,
numSteps: 60,
easing: "",
render: null,
onAnimationProgress: null,
onAnimationComplete: null
}),
G = X;
Object.defineProperty(X.prototype, "animationObject", {
get: function() {
return this
}
}), Object.defineProperty(X.prototype, "chartInstance", {
get: function() {
return this.chart
},
set: function(e) {
this.chart = e
}
}), N._set("global", {
animation: {
duration: 1e3,
easing: "easeOutQuart",
onProgress: H.noop,
onComplete: H.noop
}
});
var Q = {
animations: [],
request: null,
addAnimation: function(e, t, n, i) {
var r, o, a = this.animations;
for (t.chart = e, t.startTime = Date.now(), t.duration = n, i || (e.animating = !0), r = 0, o = a.length; r < o; ++r)
if (a[r].chart === e) return void(a[r] = t);
a.push(t), 1 === a.length && this.requestAnimationFrame()
},
cancelAnimation: function(e) {
var t = H.findIndex(this.animations, (function(t) {
return t.chart === e
})); - 1 !== t && (this.animations.splice(t, 1), e.animating = !1)
},
requestAnimationFrame: function() {
var e = this;
null === e.request && (e.request = H.requestAnimFrame.call(window, (function() {
e.request = null, e.startDigest()
})))
},
startDigest: function() {
this.advance(), this.animations.length > 0 && this.requestAnimationFrame()
},
advance: function() {
for (var e, t, n, i, r = this.animations, o = 0; o < r.length;) t = (e = r[o]).chart, n = e.numSteps, i = Math.floor((Date.now() - e.startTime) / e.duration * n) + 1, e.currentStep = Math.min(i, n), H.callback(e.render, [t, e], t), H.callback(e.onAnimationProgress, [e], t), e.currentStep >= n ? (H.callback(e.onAnimationComplete, [e], t), t.animating = !1, r.splice(o, 1)) : ++o
}
},
K = H.options.resolve,
J = ["push", "pop", "shift", "splice", "unshift"];
function Z(e, t) {
var n = e._chartjs;
if (n) {
var i = n.listeners,
r = i.indexOf(t); - 1 !== r && i.splice(r, 1), i.length > 0 || (J.forEach((function(t) {
delete e[t]
})), delete e._chartjs)
}
}
var ee = function(e, t) {
this.initialize(e, t)
};
H.extend(ee.prototype, {
datasetElementType: null,
dataElementType: null,
_datasetElementOptions: ["backgroundColor", "borderCapStyle", "borderColor", "borderDash", "borderDashOffset", "borderJoinStyle", "borderWidth"],
_dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "pointStyle"],
initialize: function(e, t) {
var n = this;
n.chart = e, n.index = t, n.linkScales(), n.addElements(), n._type = n.getMeta().type
},
updateIndex: function(e) {
this.index = e
},
linkScales: function() {
var e = this.getMeta(),
t = this.chart,
n = t.scales,
i = this.getDataset(),
r = t.options.scales;
null !== e.xAxisID && e.xAxisID in n && !i.xAxisID || (e.xAxisID = i.xAxisID || r.xAxes[0].id), null !== e.yAxisID && e.yAxisID in n && !i.yAxisID || (e.yAxisID = i.yAxisID || r.yAxes[0].id)
},
getDataset: function() {
return this.chart.data.datasets[this.index]
},
getMeta: function() {
return this.chart.getDatasetMeta(this.index)
},
getScaleForId: function(e) {
return this.chart.scales[e]
},
_getValueScaleId: function() {
return this.getMeta().yAxisID
},
_getIndexScaleId: function() {
return this.getMeta().xAxisID
},
_getValueScale: function() {
return this.getScaleForId(this._getValueScaleId())
},
_getIndexScale: function() {
return this.getScaleForId(this._getIndexScaleId())
},
reset: function() {
this._update(!0)
},
destroy: function() {
this._data && Z(this._data, this)
},
createMetaDataset: function() {
var e = this.datasetElementType;
return e && new e({
_chart: this.chart,
_datasetIndex: this.index
})
},
createMetaData: function(e) {
var t = this.dataElementType;
return t && new t({
_chart: this.chart,
_datasetIndex: this.index,
_index: e
})
},
addElements: function() {
var e, t, n = this.getMeta(),
i = this.getDataset().data || [],
r = n.data;
for (e = 0, t = i.length; e < t; ++e) r[e] = r[e] || this.createMetaData(e);
n.dataset = n.dataset || this.createMetaDataset()
},
addElementAndReset: function(e) {
var t = this.createMetaData(e);
this.getMeta().data.splice(e, 0, t), this.updateElement(t, e, !0)
},
buildOrUpdateElements: function() {
var e, t, n = this,
i = n.getDataset(),
r = i.data || (i.data = []);
n._data !== r && (n._data && Z(n._data, n), r && Object.isExtensible(r) && (t = n, (e = r)._chartjs ? e._chartjs.listeners.push(t) : (Object.defineProperty(e, "_chartjs", {
configurable: !0,
enumerable: !1,
value: {
listeners: [t]
}
}), J.forEach((function(t) {
var n = "onData" + t.charAt(0).toUpperCase() + t.slice(1),
i = e[t];
Object.defineProperty(e, t, {
configurable: !0,
enumerable: !1,
value: function() {
var t = Array.prototype.slice.call(arguments),
r = i.apply(this, t);
return H.each(e._chartjs.listeners, (function(e) {
"function" == typeof e[n] && e[n].apply(e, t)
})), r
}
})
})))), n._data = r), n.resyncElements()
},
_configure: function() {
this._config = H.merge({}, [this.chart.options.datasets[this._type], this.getDataset()], {
merger: function(e, t, n) {
"_meta" !== e && "data" !== e && H._merger(e, t, n)
}
})
},
_update: function(e) {
this._configure(), this._cachedDataOpts = null, this.update(e)
},
update: H.noop,
transition: function(e) {
for (var t = this.getMeta(), n = t.data || [], i = n.length, r = 0; r < i; ++r) n[r].transition(e);
t.dataset && t.dataset.transition(e)
},
draw: function() {
var e = this.getMeta(),
t = e.data || [],
n = t.length,
i = 0;
for (e.dataset && e.dataset.draw(); i < n; ++i) t[i].draw()
},
getStyle: function(e) {
var t, n = this.getMeta(),
i = n.dataset;
return this._configure(), i && void 0 === e ? t = this._resolveDatasetElementOptions(i || {}) : (e = e || 0, t = this._resolveDataElementOptions(n.data[e] || {}, e)), !1 !== t.fill && null !== t.fill || (t.backgroundColor = t.borderColor), t
},
_resolveDatasetElementOptions: function(e, t) {
var n, i, r, o, a = this,
s = a.chart,
l = a._config,
c = e.custom || {},
u = s.options.elements[a.datasetElementType.prototype._type] || {},
d = a._datasetElementOptions,
h = {},
f = {
chart: s,
dataset: a.getDataset(),
datasetIndex: a.index,
hover: t
};
for (n = 0, i = d.length; n < i; ++n) r = d[n], o = t ? "hover" + r.charAt(0).toUpperCase() + r.slice(1) : r, h[r] = K([c[o], l[o], u[o]], f);
return h
},
_resolveDataElementOptions: function(e, t) {
var n = this,
i = e && e.custom,
r = n._cachedDataOpts;
if (r && !i) return r;
var o, a, s, l, c = n.chart,
u = n._config,
d = c.options.elements[n.dataElementType.prototype._type] || {},
h = n._dataElementOptions,
f = {},
p = {
chart: c,
dataIndex: t,
dataset: n.getDataset(),
datasetIndex: n.index
},
g = {
cacheable: !i
};
if (i = i || {}, H.isArray(h))
for (a = 0, s = h.length; a < s; ++a) f[l = h[a]] = K([i[l], u[l], d[l]], p, t, g);
else
for (a = 0, s = (o = Object.keys(h)).length; a < s; ++a) f[l = o[a]] = K([i[l], u[h[l]], u[l], d[l]], p, t, g);
return g.cacheable && (n._cachedDataOpts = Object.freeze(f)), f
},
removeHoverStyle: function(e) {
H.merge(e._model, e.$previousStyle || {}), delete e.$previousStyle
},
setHoverStyle: function(e) {
var t = this.chart.data.datasets[e._datasetIndex],
n = e._index,
i = e.custom || {},
r = e._model,
o = H.getHoverColor;
e.$previousStyle = {
backgroundColor: r.backgroundColor,
borderColor: r.borderColor,
borderWidth: r.borderWidth
}, r.backgroundColor = K([i.hoverBackgroundColor, t.hoverBackgroundColor, o(r.backgroundColor)], void 0, n), r.borderColor = K([i.hoverBorderColor, t.hoverBorderColor, o(r.borderColor)], void 0, n), r.borderWidth = K([i.hoverBorderWidth, t.hoverBorderWidth, r.borderWidth], void 0, n)
},
_removeDatasetHoverStyle: function() {
var e = this.getMeta().dataset;
e && this.removeHoverStyle(e)
},
_setDatasetHoverStyle: function() {
var e, t, n, i, r, o, a = this.getMeta().dataset,
s = {};
if (a) {
for (o = a._model, r = this._resolveDatasetElementOptions(a, !0), e = 0, t = (i = Object.keys(r)).length; e < t; ++e) s[n = i[e]] = o[n], o[n] = r[n];
a.$previousStyle = s
}
},
resyncElements: function() {
var e = this.getMeta(),
t = this.getDataset().data,
n = e.data.length,
i = t.length;
i < n ? e.data.splice(i, n - i) : i > n && this.insertElements(n, i - n)
},
insertElements: function(e, t) {
for (var n = 0; n < t; ++n) this.addElementAndReset(e + n)
},
onDataPush: function() {
var e = arguments.length;
this.insertElements(this.getDataset().data.length - e, e)
},
onDataPop: function() {
this.getMeta().data.pop()
},
onDataShift: function() {
this.getMeta().data.shift()
},
onDataSplice: function(e, t) {
this.getMeta().data.splice(e, t), this.insertElements(e, arguments.length - 2)
},
onDataUnshift: function() {
this.insertElements(0, arguments.length)
}
}), ee.extend = H.inherits;
var te = ee,
ne = 2 * Math.PI;
function ie(e, t) {
var n = t.startAngle,
i = t.endAngle,
r = t.pixelMargin,
o = r / t.outerRadius,
a = t.x,
s = t.y;
e.beginPath(), e.arc(a, s, t.outerRadius, n - o, i + o), t.innerRadius > r ? (o = r / t.innerRadius, e.arc(a, s, t.innerRadius - r, i + o, n - o, !0)) : e.arc(a, s, r, i + Math.PI / 2, n - Math.PI / 2), e.closePath(), e.clip()
}
N._set("global", {
elements: {
arc: {
backgroundColor: N.global.defaultColor,
borderColor: "#fff",
borderWidth: 2,
borderAlign: "center"
}
}
});
var re = Y.extend({
_type: "arc",
inLabelRange: function(e) {
var t = this._view;
return !!t && Math.pow(e - t.x, 2) < Math.pow(t.radius + t.hoverRadius, 2)
},
inRange: function(e, t) {
var n = this._view;
if (n) {
for (var i = H.getAngleFromPoint(n, {
x: e,
y: t
}), r = i.angle, o = i.distance, a = n.startAngle, s = n.endAngle; s < a;) s += ne;
for (; r > s;) r -= ne;
for (; r < a;) r += ne;
var l = r >= a && r <= s,
c = o >= n.innerRadius && o <= n.outerRadius;
return l && c
}
return !1
},
getCenterPoint: function() {
var e = this._view,
t = (e.startAngle + e.endAngle) / 2,
n = (e.innerRadius + e.outerRadius) / 2;
return {
x: e.x + Math.cos(t) * n,
y: e.y + Math.sin(t) * n
}
},
getArea: function() {
var e = this._view;
return Math.PI * ((e.endAngle - e.startAngle) / (2 * Math.PI)) * (Math.pow(e.outerRadius, 2) - Math.pow(e.innerRadius, 2))
},
tooltipPosition: function() {
var e = this._view,
t = e.startAngle + (e.endAngle - e.startAngle) / 2,
n = (e.outerRadius - e.innerRadius) / 2 + e.innerRadius;
return {
x: e.x + Math.cos(t) * n,
y: e.y + Math.sin(t) * n
}
},
draw: function() {
var e, t = this._chart.ctx,
n = this._view,
i = "inner" === n.borderAlign ? .33 : 0,
r = {
x: n.x,
y: n.y,
innerRadius: n.innerRadius,
outerRadius: Math.max(n.outerRadius - i, 0),
pixelMargin: i,
startAngle: n.startAngle,
endAngle: n.endAngle,
fullCircles: Math.floor(n.circumference / ne)
};
if (t.save(), t.fillStyle = n.backgroundColor, t.strokeStyle = n.borderColor, r.fullCircles) {
for (r.endAngle = r.startAngle + ne, t.beginPath(), t.arc(r.x, r.y, r.outerRadius, r.startAngle, r.endAngle), t.arc(r.x, r.y, r.innerRadius, r.endAngle, r.startAngle, !0), t.closePath(), e = 0; e < r.fullCircles; ++e) t.fill();
r.endAngle = r.startAngle + n.circumference % ne
}
t.beginPath(), t.arc(r.x, r.y, r.outerRadius, r.startAngle, r.endAngle), t.arc(r.x, r.y, r.innerRadius, r.endAngle, r.startAngle, !0), t.closePath(), t.fill(), n.borderWidth && function(e, t, n) {
var i = "inner" === t.borderAlign;
i ? (e.lineWidth = 2 * t.borderWidth, e.lineJoin = "round") : (e.lineWidth = t.borderWidth, e.lineJoin = "bevel"), n.fullCircles && function(e, t, n, i) {
var r, o = n.endAngle;
for (i && (n.endAngle = n.startAngle + ne, ie(e, n), n.endAngle = o, n.endAngle === n.startAngle && n.fullCircles && (n.endAngle += ne, n.fullCircles--)), e.beginPath(), e.arc(n.x, n.y, n.innerRadius, n.startAngle + ne, n.startAngle, !0), r = 0; r < n.fullCircles; ++r) e.stroke();
for (e.beginPath(), e.arc(n.x, n.y, t.outerRadius, n.startAngle, n.startAngle + ne), r = 0; r < n.fullCircles; ++r) e.stroke()
}(e, t, n, i), i && ie(e, n), e.beginPath(), e.arc(n.x, n.y, t.outerRadius, n.startAngle, n.endAngle), e.arc(n.x, n.y, n.innerRadius, n.endAngle, n.startAngle, !0), e.closePath(), e.stroke()
}(t, n, r), t.restore()
}
}),
oe = H.valueOrDefault,
ae = N.global.defaultColor;
N._set("global", {
elements: {
line: {
tension: .4,
backgroundColor: ae,
borderWidth: 3,
borderColor: ae,
borderCapStyle: "butt",
borderDash: [],
borderDashOffset: 0,
borderJoinStyle: "miter",
capBezierPoints: !0,
fill: !0
}
}
});
var se = Y.extend({
_type: "line",
draw: function() {
var e, t, n, i = this,
r = i._view,
o = i._chart.ctx,
a = r.spanGaps,
s = i._children.slice(),
l = N.global,
c = l.elements.line,
u = -1,
d = i._loop;
if (s.length) {
if (i._loop) {
for (e = 0; e < s.length; ++e)
if (t = H.previousItem(s, e), !s[e]._view.skip && t._view.skip) {
s = s.slice(e).concat(s.slice(0, e)), d = a;
break
}
d && s.push(s[0])
}
for (o.save(), o.lineCap = r.borderCapStyle || c.borderCapStyle, o.setLineDash && o.setLineDash(r.borderDash || c.borderDash), o.lineDashOffset = oe(r.borderDashOffset, c.borderDashOffset), o.lineJoin = r.borderJoinStyle || c.borderJoinStyle, o.lineWidth = oe(r.borderWidth, c.borderWidth), o.strokeStyle = r.borderColor || l.defaultColor, o.beginPath(), (n = s[0]._view).skip || (o.moveTo(n.x, n.y), u = 0), e = 1; e < s.length; ++e) n = s[e]._view, t = -1 === u ? H.previousItem(s, e) : s[u], n.skip || (u !== e - 1 && !a || -1 === u ? o.moveTo(n.x, n.y) : H.canvas.lineTo(o, t._view, n), u = e);
d && o.closePath(), o.stroke(), o.restore()
}
}
}),
le = H.valueOrDefault,
ce = N.global.defaultColor;
function ue(e) {
var t = this._view;
return !!t && Math.abs(e - t.x) < t.radius + t.hitRadius
}
N._set("global", {
elements: {
point: {
radius: 3,
pointStyle: "circle",
backgroundColor: ce,
borderColor: ce,
borderWidth: 1,
hitRadius: 1,
hoverRadius: 4,
hoverBorderWidth: 1
}
}
});
var de = Y.extend({
_type: "point",
inRange: function(e, t) {
var n = this._view;
return !!n && Math.pow(e - n.x, 2) + Math.pow(t - n.y, 2) < Math.pow(n.hitRadius + n.radius, 2)
},
inLabelRange: ue,
inXRange: ue,
inYRange: function(e) {
var t = this._view;
return !!t && Math.abs(e - t.y) < t.radius + t.hitRadius
},
getCenterPoint: function() {
var e = this._view;
return {
x: e.x,
y: e.y
}
},
getArea: function() {
return Math.PI * Math.pow(this._view.radius, 2)
},
tooltipPosition: function() {
var e = this._view;
return {
x: e.x,
y: e.y,
padding: e.radius + e.borderWidth
}
},
draw: function(e) {
var t = this._view,
n = this._chart.ctx,
i = t.pointStyle,
r = t.rotation,
o = t.radius,
a = t.x,
s = t.y,
l = N.global,
c = l.defaultColor;
t.skip || (void 0 === e || H.canvas._isPointInArea(t, e)) && (n.strokeStyle = t.borderColor || c, n.lineWidth = le(t.borderWidth, l.elements.point.borderWidth), n.fillStyle = t.backgroundColor || c, H.canvas.drawPoint(n, i, o, a, s, r))
}
}),
he = N.global.defaultColor;
function fe(e) {
return e && void 0 !== e.width
}
function pe(e) {
var t, n, i, r, o;
return fe(e) ? (o = e.width / 2, t = e.x - o, n = e.x + o, i = Math.min(e.y, e.base), r = Math.max(e.y, e.base)) : (o = e.height / 2, t = Math.min(e.x, e.base), n = Math.max(e.x, e.base), i = e.y - o, r = e.y + o), {
left: t,
top: i,
right: n,
bottom: r
}
}
function ge(e, t, n) {
return e === t ? n : e === n ? t : e
}
function me(e, t, n) {
var i = null === t,
r = null === n,
o = !(!e || i && r) && pe(e);
return o && (i || t >= o.left && t <= o.right) && (r || n >= o.top && n <= o.bottom)
}
N._set("global", {
elements: {
rectangle: {
backgroundColor: he,
borderColor: he,
borderSkipped: "bottom",
borderWidth: 0
}
}
});
var ve = Y.extend({
_type: "rectangle",
draw: function() {
var e = this._chart.ctx,
t = this._view,
n = function(e) {
var t = pe(e),
n = t.right - t.left,
i = t.bottom - t.top,
r = function(e, t, n) {
var i, r, o, a, s = e.borderWidth,
l = function(e) {
var t = e.borderSkipped,
n = {};
return t ? (e.horizontal ? e.base > e.x && (t = ge(t, "left", "right")) : e.base < e.y && (t = ge(t, "bottom", "top")), n[t] = !0, n) : n
}(e);
return H.isObject(s) ? (i = +s.top || 0, r = +s.right || 0, o = +s.bottom || 0, a = +s.left || 0) : i = r = o = a = +s || 0, {
t: l.top || i < 0 ? 0 : i > n ? n : i,
r: l.right || r < 0 ? 0 : r > t ? t : r,
b: l.bottom || o < 0 ? 0 : o > n ? n : o,
l: l.left || a < 0 ? 0 : a > t ? t : a
}
}(e, n / 2, i / 2);
return {
outer: {
x: t.left,
y: t.top,
w: n,
h: i
},
inner: {
x: t.left + r.l,
y: t.top + r.t,
w: n - r.l - r.r,
h: i - r.t - r.b
}
}
}(t),
i = n.outer,
r = n.inner;
e.fillStyle = t.backgroundColor, e.fillRect(i.x, i.y, i.w, i.h), i.w === r.w && i.h === r.h || (e.save(), e.beginPath(), e.rect(i.x, i.y, i.w, i.h), e.clip(), e.fillStyle = t.borderColor, e.rect(r.x, r.y, r.w, r.h), e.fill("evenodd"), e.restore())
},
height: function() {
var e = this._view;
return e.base - e.y
},
inRange: function(e, t) {
return me(this._view, e, t)
},
inLabelRange: function(e, t) {
var n = this._view;
return fe(n) ? me(n, e, null) : me(n, null, t)
},
inXRange: function(e) {
return me(this._view, e, null)
},
inYRange: function(e) {
return me(this._view, null, e)
},
getCenterPoint: function() {
var e, t, n = this._view;
return fe(n) ? (e = n.x, t = (n.y + n.base) / 2) : (e = (n.x + n.base) / 2, t = n.y), {
x: e,
y: t
}
},
getArea: function() {
var e = this._view;
return fe(e) ? e.width * Math.abs(e.y - e.base) : e.height * Math.abs(e.x - e.base)
},
tooltipPosition: function() {
var e = this._view;
return {
x: e.x,
y: e.y
}
}
}),
ye = {},
be = re,
we = se,
xe = de,
_e = ve;
ye.Arc = be, ye.Line = we, ye.Point = xe, ye.Rectangle = _e;
var Ce = H._deprecated,
ke = H.valueOrDefault;
N._set("bar", {
hover: {
mode: "label"
},
scales: {
xAxes: [{
type: "category",
offset: !0,
gridLines: {
offsetGridLines: !0
}
}],
yAxes: [{
type: "linear"
}]
}
}), N._set("global", {
datasets: {
bar: {
categoryPercentage: .8,
barPercentage: .9
}
}
});
var Se = te.extend({
dataElementType: ye.Rectangle,
_dataElementOptions: ["backgroundColor", "borderColor", "borderSkipped", "borderWidth", "barPercentage", "barThickness", "categoryPercentage", "maxBarThickness", "minBarLength"],
initialize: function() {
var e, t, n = this;
te.prototype.initialize.apply(n, arguments), (e = n.getMeta()).stack = n.getDataset().stack, e.bar = !0, t = n._getIndexScale().options, Ce("bar chart", t.barPercentage, "scales.[x/y]Axes.barPercentage", "dataset.barPercentage"), Ce("bar chart", t.barThickness, "scales.[x/y]Axes.barThickness", "dataset.barThickness"), Ce("bar chart", t.categoryPercentage, "scales.[x/y]Axes.categoryPercentage", "dataset.categoryPercentage"), Ce("bar chart", n._getValueScale().options.minBarLength, "scales.[x/y]Axes.minBarLength", "dataset.minBarLength"), Ce("bar chart", t.maxBarThickness, "scales.[x/y]Axes.maxBarThickness", "dataset.maxBarThickness")
},
update: function(e) {
var t, n, i = this.getMeta().data;
for (this._ruler = this.getRuler(), t = 0, n = i.length; t < n; ++t) this.updateElement(i[t], t, e)
},
updateElement: function(e, t, n) {
var i = this,
r = i.getMeta(),
o = i.getDataset(),
a = i._resolveDataElementOptions(e, t);
e._xScale = i.getScaleForId(r.xAxisID), e._yScale = i.getScaleForId(r.yAxisID), e._datasetIndex = i.index, e._index = t, e._model = {
backgroundColor: a.backgroundColor,
borderColor: a.borderColor,
borderSkipped: a.borderSkipped,
borderWidth: a.borderWidth,
datasetLabel: o.label,
label: i.chart.data.labels[t]
}, H.isArray(o.data[t]) && (e._model.borderSkipped = null), i._updateElementGeometry(e, t, n, a), e.pivot()
},
_updateElementGeometry: function(e, t, n, i) {
var r = this,
o = e._model,
a = r._getValueScale(),
s = a.getBasePixel(),
l = a.isHorizontal(),
c = r._ruler || r.getRuler(),
u = r.calculateBarValuePixels(r.index, t, i),
d = r.calculateBarIndexPixels(r.index, t, c, i);
o.horizontal = l, o.base = n ? s : u.base, o.x = l ? n ? s : u.head : d.center, o.y = l ? d.center : n ? s : u.head, o.height = l ? d.size : void 0, o.width = l ? void 0 : d.size
},
_getStacks: function(e) {
var t, n, i = this._getIndexScale(),
r = i._getMatchingVisibleMetas(this._type),
o = i.options.stacked,
a = r.length,
s = [];
for (t = 0; t < a && (n = r[t], (!1 === o || -1 === s.indexOf(n.stack) || void 0 === o && void 0 === n.stack) && s.push(n.stack), n.index !== e); ++t);
return s
},
getStackCount: function() {
return this._getStacks().length
},
getStackIndex: function(e, t) {
var n = this._getStacks(e),
i = void 0 !== t ? n.indexOf(t) : -1;
return -1 === i ? n.length - 1 : i
},
getRuler: function() {
var e, t, n = this._getIndexScale(),
i = [];
for (e = 0, t = this.getMeta().data.length; e < t; ++e) i.push(n.getPixelForValue(null, e, this.index));
return {
pixels: i,
start: n._startPixel,
end: n._endPixel,
stackCount: this.getStackCount(),
scale: n
}
},
calculateBarValuePixels: function(e, t, n) {
var i, r, o, a, s, l, c, u = this.chart,
d = this._getValueScale(),
h = d.isHorizontal(),
f = u.data.datasets,
p = d._getMatchingVisibleMetas(this._type),
g = d._parseValue(f[e].data[t]),
m = n.minBarLength,
v = d.options.stacked,
y = this.getMeta().stack,
b = void 0 === g.start ? 0 : g.max >= 0 && g.min >= 0 ? g.min : g.max,
w = void 0 === g.start ? g.end : g.max >= 0 && g.min >= 0 ? g.max - g.min : g.min - g.max,
x = p.length;
if (v || void 0 === v && void 0 !== y)
for (i = 0; i < x && (r = p[i]).index !== e; ++i) r.stack === y && (o = void 0 === (c = d._parseValue(f[r.index].data[t])).start ? c.end : c.min >= 0 && c.max >= 0 ? c.max : c.min, (g.min < 0 && o < 0 || g.max >= 0 && o > 0) && (b += o));
return a = d.getPixelForValue(b), l = (s = d.getPixelForValue(b + w)) - a, void 0 !== m && Math.abs(l) < m && (l = m, s = w >= 0 && !h || w < 0 && h ? a - m : a + m), {
size: l,
base: a,
head: s,
center: s + l / 2
}
},
calculateBarIndexPixels: function(e, t, n, i) {
var r = "flex" === i.barThickness ? function(e, t, n) {
var i, r = t.pixels,
o = r[e],
a = e > 0 ? r[e - 1] : null,
s = e < r.length - 1 ? r[e + 1] : null,
l = n.categoryPercentage;
return null === a && (a = o - (null === s ? t.end - t.start : s - o)), null === s && (s = o + o - a), i = o - (o - Math.min(a, s)) / 2 * l, {
chunk: Math.abs(s - a) / 2 * l / t.stackCount,
ratio: n.barPercentage,
start: i
}
}(t, n, i) : function(e, t, n) {
var i, r, o = n.barThickness,
a = t.stackCount,
s = t.pixels[e],
l = H.isNullOrUndef(o) ? function(e, t) {
var n, i, r, o, a = e._length;
for (r = 1, o = t.length; r < o; ++r) a = Math.min(a, Math.abs(t[r] - t[r - 1]));
for (r = 0, o = e.getTicks().length; r < o; ++r) i = e.getPixelForTick(r), a = r > 0 ? Math.min(a, Math.abs(i - n)) : a, n = i;
return a
}(t.scale, t.pixels) : -1;
return H.isNullOrUndef(o) ? (i = l * n.categoryPercentage, r = n.barPercentage) : (i = o * a, r = 1), {
chunk: i / a,
ratio: r,
start: s - i / 2
}
}(t, n, i),
o = this.getStackIndex(e, this.getMeta().stack),
a = r.start + r.chunk * o + r.chunk / 2,
s = Math.min(ke(i.maxBarThickness, 1 / 0), r.chunk * r.ratio);
return {
base: a - s / 2,
head: a + s / 2,
center: a,
size: s
}
},
draw: function() {
var e = this.chart,
t = this._getValueScale(),
n = this.getMeta().data,
i = this.getDataset(),
r = n.length,
o = 0;
for (H.canvas.clipArea(e.ctx, e.chartArea); o < r; ++o) {
var a = t._parseValue(i.data[o]);
isNaN(a.min) || isNaN(a.max) || n[o].draw()
}
H.canvas.unclipArea(e.ctx)
},
_resolveDataElementOptions: function() {
var e = this,
t = H.extend({}, te.prototype._resolveDataElementOptions.apply(e, arguments)),
n = e._getIndexScale().options,
i = e._getValueScale().options;
return t.barPercentage = ke(n.barPercentage, t.barPercentage), t.barThickness = ke(n.barThickness, t.barThickness), t.categoryPercentage = ke(n.categoryPercentage, t.categoryPercentage), t.maxBarThickness = ke(n.maxBarThickness, t.maxBarThickness), t.minBarLength = ke(i.minBarLength, t.minBarLength), t
}
}),
Te = H.valueOrDefault,
De = H.options.resolve;
N._set("bubble", {
hover: {
mode: "single"
},
scales: {
xAxes: [{
type: "linear",
position: "bottom",
id: "x-axis-0"
}],
yAxes: [{
type: "linear",
position: "left",
id: "y-axis-0"
}]
},
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(e, t) {
var n = t.datasets[e.datasetIndex].label || "",
i = t.datasets[e.datasetIndex].data[e.index];
return n + ": (" + e.xLabel + ", " + e.yLabel + ", " + i.r + ")"
}
}
}
});
var Ee = te.extend({
dataElementType: ye.Point,
_dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth", "hoverRadius", "hitRadius", "pointStyle", "rotation"],
update: function(e) {
var t = this,
n = t.getMeta().data;
H.each(n, (function(n, i) {
t.updateElement(n, i, e)
}))
},
updateElement: function(e, t, n) {
var i = this,
r = i.getMeta(),
o = e.custom || {},
a = i.getScaleForId(r.xAxisID),
s = i.getScaleForId(r.yAxisID),
l = i._resolveDataElementOptions(e, t),
c = i.getDataset().data[t],
u = i.index,
d = n ? a.getPixelForDecimal(.5) : a.getPixelForValue("object" == typeof c ? c : NaN, t, u),
h = n ? s.getBasePixel() : s.getPixelForValue(c, t, u);
e._xScale = a, e._yScale = s, e._options = l, e._datasetIndex = u, e._index = t, e._model = {
backgroundColor: l.backgroundColor,
borderColor: l.borderColor,
borderWidth: l.borderWidth,
hitRadius: l.hitRadius,
pointStyle: l.pointStyle,
rotation: l.rotation,
radius: n ? 0 : l.radius,
skip: o.skip || isNaN(d) || isNaN(h),
x: d,
y: h
}, e.pivot()
},
setHoverStyle: function(e) {
var t = e._model,
n = e._options,
i = H.getHoverColor;
e.$previousStyle = {
backgroundColor: t.backgroundColor,
borderColor: t.borderColor,
borderWidth: t.borderWidth,
radius: t.radius
}, t.backgroundColor = Te(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Te(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Te(n.hoverBorderWidth, n.borderWidth), t.radius = n.radius + n.hoverRadius
},
_resolveDataElementOptions: function(e, t) {
var n = this,
i = n.chart,
r = n.getDataset(),
o = e.custom || {},
a = r.data[t] || {},
s = te.prototype._resolveDataElementOptions.apply(n, arguments),
l = {
chart: i,
dataIndex: t,
dataset: r,
datasetIndex: n.index
};
return n._cachedDataOpts === s && (s = H.extend({}, s)), s.radius = De([o.radius, a.r, n._config.radius, i.options.elements.point.radius], l, t), s
}
}),
Ae = H.valueOrDefault,
Me = Math.PI,
Oe = 2 * Me,
Ie = Me / 2;
N._set("doughnut", {
animation: {
animateRotate: !0,
animateScale: !1
},
hover: {
mode: "single"
},
legendCallback: function(e) {
var t, n, i, r = document.createElement("ul"),
o = e.data,
a = o.datasets,
s = o.labels;
if (r.setAttribute("class", e.id + "-legend"), a.length)
for (t = 0, n = a[0].data.length; t < n; ++t)(i = r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor = a[0].backgroundColor[t], s[t] && i.appendChild(document.createTextNode(s[t]));
return r.outerHTML
},
legend: {
labels: {
generateLabels: function(e) {
var t = e.data;
return t.labels.length && t.datasets.length ? t.labels.map((function(n, i) {
var r = e.getDatasetMeta(0),
o = r.controller.getStyle(i);
return {
text: n,
fillStyle: o.backgroundColor,
strokeStyle: o.borderColor,
lineWidth: o.borderWidth,
hidden: isNaN(t.datasets[0].data[i]) || r.data[i].hidden,
index: i
}
})) : []
}
},
onClick: function(e, t) {
var n, i, r, o = t.index,
a = this.chart;
for (n = 0, i = (a.data.datasets || []).length; n < i; ++n)(r = a.getDatasetMeta(n)).data[o] && (r.data[o].hidden = !r.data[o].hidden);
a.update()
}
},
cutoutPercentage: 50,
rotation: -Ie,
circumference: Oe,
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(e, t) {
var n = t.labels[e.index],
i = ": " + t.datasets[e.datasetIndex].data[e.index];
return H.isArray(n) ? (n = n.slice())[0] += i : n += i, n
}
}
}
});
var Pe = te.extend({
dataElementType: ye.Arc,
linkScales: H.noop,
_dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "borderAlign", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth"],
getRingIndex: function(e) {
for (var t = 0, n = 0; n < e; ++n) this.chart.isDatasetVisible(n) && ++t;
return t
},
update: function(e) {
var t, n, i, r, o = this,
a = o.chart,
s = a.chartArea,
l = a.options,
c = 1,
u = 1,
d = 0,
h = 0,
f = o.getMeta(),
p = f.data,
g = l.cutoutPercentage / 100 || 0,
m = l.circumference,
v = o._getRingWeight(o.index);
if (m < Oe) {
var y = l.rotation % Oe,
b = (y += y >= Me ? -Oe : y < -Me ? Oe : 0) + m,
w = Math.cos(y),
x = Math.sin(y),
_ = Math.cos(b),
C = Math.sin(b),
k = y <= 0 && b >= 0 || b >= Oe,
S = y <= Ie && b >= Ie || b >= Oe + Ie,
T = y <= -Ie && b >= -Ie || b >= Me + Ie,
D = y === -Me || b >= Me ? -1 : Math.min(w, w * g, _, _ * g),
E = T ? -1 : Math.min(x, x * g, C, C * g),
A = k ? 1 : Math.max(w, w * g, _, _ * g),
M = S ? 1 : Math.max(x, x * g, C, C * g);
c = (A - D) / 2, u = (M - E) / 2, d = -(A + D) / 2, h = -(M + E) / 2
}
for (i = 0, r = p.length; i < r; ++i) p[i]._options = o._resolveDataElementOptions(p[i], i);
for (a.borderWidth = o.getMaxBorderWidth(), t = (s.right - s.left - a.borderWidth) / c, n = (s.bottom - s.top - a.borderWidth) / u, a.outerRadius = Math.max(Math.min(t, n) / 2, 0), a.innerRadius = Math.max(a.outerRadius * g, 0), a.radiusLength = (a.outerRadius - a.innerRadius) / (o._getVisibleDatasetWeightTotal() || 1), a.offsetX = d * a.outerRadius, a.offsetY = h * a.outerRadius, f.total = o.calculateTotal(), o.outerRadius = a.outerRadius - a.radiusLength * o._getRingWeightOffset(o.index), o.innerRadius = Math.max(o.outerRadius - a.radiusLength * v, 0), i = 0, r = p.length; i < r; ++i) o.updateElement(p[i], i, e)
},
updateElement: function(e, t, n) {
var i = this,
r = i.chart,
o = r.chartArea,
a = r.options,
s = a.animation,
l = (o.left + o.right) / 2,
c = (o.top + o.bottom) / 2,
u = a.rotation,
d = a.rotation,
h = i.getDataset(),
f = n && s.animateRotate || e.hidden ? 0 : i.calculateCircumference(h.data[t]) * (a.circumference / Oe),
p = n && s.animateScale ? 0 : i.innerRadius,
g = n && s.animateScale ? 0 : i.outerRadius,
m = e._options || {};
H.extend(e, {
_datasetIndex: i.index,
_index: t,
_model: {
backgroundColor: m.backgroundColor,
borderColor: m.borderColor,
borderWidth: m.borderWidth,
borderAlign: m.borderAlign,
x: l + r.offsetX,
y: c + r.offsetY,
startAngle: u,
endAngle: d,
circumference: f,
outerRadius: g,
innerRadius: p,
label: H.valueAtIndexOrDefault(h.label, t, r.data.labels[t])
}
});
var v = e._model;
n && s.animateRotate || (v.startAngle = 0 === t ? a.rotation : i.getMeta().data[t - 1]._model.endAngle, v.endAngle = v.startAngle + v.circumference), e.pivot()
},
calculateTotal: function() {
var e, t = this.getDataset(),
n = this.getMeta(),
i = 0;
return H.each(n.data, (function(n, r) {
e = t.data[r], isNaN(e) || n.hidden || (i += Math.abs(e))
})), i
},
calculateCircumference: function(e) {
var t = this.getMeta().total;
return t > 0 && !isNaN(e) ? Oe * (Math.abs(e) / t) : 0
},
getMaxBorderWidth: function(e) {
var t, n, i, r, o, a, s, l, c = 0,
u = this.chart;
if (!e)
for (t = 0, n = u.data.datasets.length; t < n; ++t)
if (u.isDatasetVisible(t)) {
e = (i = u.getDatasetMeta(t)).data, t !== this.index && (o = i.controller);
break
}
if (!e) return 0;
for (t = 0, n = e.length; t < n; ++t) r = e[t], o ? (o._configure(), a = o._resolveDataElementOptions(r, t)) : a = r._options, "inner" !== a.borderAlign && (s = a.borderWidth, c = (l = a.hoverBorderWidth) > (c = s > c ? s : c) ? l : c);
return c
},
setHoverStyle: function(e) {
var t = e._model,
n = e._options,
i = H.getHoverColor;
e.$previousStyle = {
backgroundColor: t.backgroundColor,
borderColor: t.borderColor,
borderWidth: t.borderWidth
}, t.backgroundColor = Ae(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Ae(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Ae(n.hoverBorderWidth, n.borderWidth)
},
_getRingWeightOffset: function(e) {
for (var t = 0, n = 0; n < e; ++n) this.chart.isDatasetVisible(n) && (t += this._getRingWeight(n));
return t
},
_getRingWeight: function(e) {
return Math.max(Ae(this.chart.data.datasets[e].weight, 1), 0)
},
_getVisibleDatasetWeightTotal: function() {
return this._getRingWeightOffset(this.chart.data.datasets.length)
}
});
N._set("horizontalBar", {
hover: {
mode: "index",
axis: "y"
},
scales: {
xAxes: [{
type: "linear",
position: "bottom"
}],
yAxes: [{
type: "category",
position: "left",
offset: !0,
gridLines: {
offsetGridLines: !0
}
}]
},
elements: {
rectangle: {
borderSkipped: "left"
}
},
tooltips: {
mode: "index",
axis: "y"
}
}), N._set("global", {
datasets: {
horizontalBar: {
categoryPercentage: .8,
barPercentage: .9
}
}
});
var Le = Se.extend({
_getValueScaleId: function() {
return this.getMeta().xAxisID
},
_getIndexScaleId: function() {
return this.getMeta().yAxisID
}
}),
Fe = H.valueOrDefault,
Ne = H.options.resolve,
Re = H.canvas._isPointInArea;
function je(e, t) {
var n = e && e.options.ticks || {},
i = n.reverse,
r = void 0 === n.min ? t : 0,
o = void 0 === n.max ? t : 0;
return {
start: i ? o : r,
end: i ? r : o
}
}
function $e(e, t, n) {
var i = n / 2,
r = je(e, i),
o = je(t, i);
return {
top: o.end,
right: r.end,
bottom: o.start,
left: r.start
}
}
function ze(e) {
var t, n, i, r;
return H.isObject(e) ? (t = e.top, n = e.right, i = e.bottom, r = e.left) : t = n = i = r = e, {
top: t,
right: n,
bottom: i,
left: r
}
}
N._set("line", {
showLines: !0,
spanGaps: !1,
hover: {
mode: "label"
},
scales: {
xAxes: [{
type: "category",
id: "x-axis-0"
}],
yAxes: [{
type: "linear",
id: "y-axis-0"
}]
}
});
var He = te.extend({
datasetElementType: ye.Line,
dataElementType: ye.Point,
_datasetElementOptions: ["backgroundColor", "borderCapStyle", "borderColor", "borderDash", "borderDashOffset", "borderJoinStyle", "borderWidth", "cubicInterpolationMode", "fill"],
_dataElementOptions: {
backgroundColor: "pointBackgroundColor",
borderColor: "pointBorderColor",
borderWidth: "pointBorderWidth",
hitRadius: "pointHitRadius",
hoverBackgroundColor: "pointHoverBackgroundColor",
hoverBorderColor: "pointHoverBorderColor",
hoverBorderWidth: "pointHoverBorderWidth",
hoverRadius: "pointHoverRadius",
pointStyle: "pointStyle",
radius: "pointRadius",
rotation: "pointRotation"
},
update: function(e) {
var t, n, i = this,
r = i.getMeta(),
o = r.dataset,
a = r.data || [],
s = i.chart.options,
l = i._config,
c = i._showLine = Fe(l.showLine, s.showLines);
for (i._xScale = i.getScaleForId(r.xAxisID), i._yScale = i.getScaleForId(r.yAxisID), c && (void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension), o._scale = i._yScale, o._datasetIndex = i.index, o._children = a, o._model = i._resolveDatasetElementOptions(o), o.pivot()), t = 0, n = a.length; t < n; ++t) i.updateElement(a[t], t, e);
for (c && 0 !== o._model.tension && i.updateBezierControlPoints(), t = 0, n = a.length; t < n; ++t) a[t].pivot()
},
updateElement: function(e, t, n) {
var i, r, o = this,
a = o.getMeta(),
s = e.custom || {},
l = o.getDataset(),
c = o.index,
u = l.data[t],
d = o._xScale,
h = o._yScale,
f = a.dataset._model,
p = o._resolveDataElementOptions(e, t);
i = d.getPixelForValue("object" == typeof u ? u : NaN, t, c), r = n ? h.getBasePixel() : o.calculatePointY(u, t, c), e._xScale = d, e._yScale = h, e._options = p, e._datasetIndex = c, e._index = t, e._model = {
x: i,
y: r,
skip: s.skip || isNaN(i) || isNaN(r),
radius: p.radius,
pointStyle: p.pointStyle,
rotation: p.rotation,
backgroundColor: p.backgroundColor,
borderColor: p.borderColor,
borderWidth: p.borderWidth,
tension: Fe(s.tension, f ? f.tension : 0),
steppedLine: !!f && f.steppedLine,
hitRadius: p.hitRadius
}
},
_resolveDatasetElementOptions: function(e) {
var t = this,
n = t._config,
i = e.custom || {},
r = t.chart.options,
o = r.elements.line,
a = te.prototype._resolveDatasetElementOptions.apply(t, arguments);
return a.spanGaps = Fe(n.spanGaps, r.spanGaps), a.tension = Fe(n.lineTension, o.tension), a.steppedLine = Ne([i.steppedLine, n.steppedLine, o.stepped]), a.clip = ze(Fe(n.clip, $e(t._xScale, t._yScale, a.borderWidth))), a
},
calculatePointY: function(e, t, n) {
var i, r, o, a, s, l, c, u = this.chart,
d = this._yScale,
h = 0,
f = 0;
if (d.options.stacked) {
for (s = +d.getRightValue(e), c = (l = u._getSortedVisibleDatasetMetas()).length, i = 0; i < c && (o = l[i]).index !== n; ++i) r = u.data.datasets[o.index], "line" === o.type && o.yAxisID === d.id && ((a = +d.getRightValue(r.data[t])) < 0 ? f += a || 0 : h += a || 0);
return s < 0 ? d.getPixelForValue(f + s) : d.getPixelForValue(h + s)
}
return d.getPixelForValue(e)
},
updateBezierControlPoints: function() {
var e, t, n, i, r = this.chart,
o = this.getMeta(),
a = o.dataset._model,
s = r.chartArea,
l = o.data || [];
function c(e, t, n) {
return Math.max(Math.min(e, n), t)
}
if (a.spanGaps && (l = l.filter((function(e) {
return !e._model.skip
}))), "monotone" === a.cubicInterpolationMode) H.splineCurveMonotone(l);
else
for (e = 0, t = l.length; e < t; ++e) n = l[e]._model, i = H.splineCurve(H.previousItem(l, e)._model, n, H.nextItem(l, e)._model, a.tension), n.controlPointPreviousX = i.previous.x, n.controlPointPreviousY = i.previous.y, n.controlPointNextX = i.next.x, n.controlPointNextY = i.next.y;
if (r.options.elements.line.capBezierPoints)
for (e = 0, t = l.length; e < t; ++e) n = l[e]._model, Re(n, s) && (e > 0 && Re(l[e - 1]._model, s) && (n.controlPointPreviousX = c(n.controlPointPreviousX, s.left, s.right), n.controlPointPreviousY = c(n.controlPointPreviousY, s.top, s.bottom)), e < l.length - 1 && Re(l[e + 1]._model, s) && (n.controlPointNextX = c(n.controlPointNextX, s.left, s.right), n.controlPointNextY = c(n.controlPointNextY, s.top, s.bottom)))
},
draw: function() {
var e, t = this.chart,
n = this.getMeta(),
i = n.data || [],
r = t.chartArea,
o = t.canvas,
a = 0,
s = i.length;
for (this._showLine && (e = n.dataset._model.clip, H.canvas.clipArea(t.ctx, {
left: !1 === e.left ? 0 : r.left - e.left,
right: !1 === e.right ? o.width : r.right + e.right,
top: !1 === e.top ? 0 : r.top - e.top,
bottom: !1 === e.bottom ? o.height : r.bottom + e.bottom
}), n.dataset.draw(), H.canvas.unclipArea(t.ctx)); a < s; ++a) i[a].draw(r)
},
setHoverStyle: function(e) {
var t = e._model,
n = e._options,
i = H.getHoverColor;
e.$previousStyle = {
backgroundColor: t.backgroundColor,
borderColor: t.borderColor,
borderWidth: t.borderWidth,
radius: t.radius
}, t.backgroundColor = Fe(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Fe(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Fe(n.hoverBorderWidth, n.borderWidth), t.radius = Fe(n.hoverRadius, n.radius)
}
}),
Be = H.options.resolve;
N._set("polarArea", {
scale: {
type: "radialLinear",
angleLines: {
display: !1
},
gridLines: {
circular: !0
},
pointLabels: {
display: !1
},
ticks: {
beginAtZero: !0
}
},
animation: {
animateRotate: !0,
animateScale: !0
},
startAngle: -.5 * Math.PI,
legendCallback: function(e) {
var t, n, i, r = document.createElement("ul"),
o = e.data,
a = o.datasets,
s = o.labels;
if (r.setAttribute("class", e.id + "-legend"), a.length)
for (t = 0, n = a[0].data.length; t < n; ++t)(i = r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor = a[0].backgroundColor[t], s[t] && i.appendChild(document.createTextNode(s[t]));
return r.outerHTML
},
legend: {
labels: {
generateLabels: function(e) {
var t = e.data;
return t.labels.length && t.datasets.length ? t.labels.map((function(n, i) {
var r = e.getDatasetMeta(0),
o = r.controller.getStyle(i);
return {
text: n,
fillStyle: o.backgroundColor,
strokeStyle: o.borderColor,
lineWidth: o.borderWidth,
hidden: isNaN(t.datasets[0].data[i]) || r.data[i].hidden,
index: i
}
})) : []
}
},
onClick: function(e, t) {
var n, i, r, o = t.index,
a = this.chart;
for (n = 0, i = (a.data.datasets || []).length; n < i; ++n)(r = a.getDatasetMeta(n)).data[o].hidden = !r.data[o].hidden;
a.update()
}
},
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(e, t) {
return t.labels[e.index] + ": " + e.yLabel
}
}
}
});
var qe = te.extend({
dataElementType: ye.Arc,
linkScales: H.noop,
_dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "borderAlign", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth"],
_getIndexScaleId: function() {
return this.chart.scale.id
},
_getValueScaleId: function() {
return this.chart.scale.id
},
update: function(e) {
var t, n, i, r = this,
o = r.getDataset(),
a = r.getMeta(),
s = r.chart.options.startAngle || 0,
l = r._starts = [],
c = r._angles = [],
u = a.data;
for (r._updateRadius(), a.count = r.countVisibleElements(), t = 0, n = o.data.length; t < n; t++) l[t] = s, i = r._computeAngle(t), c[t] = i, s += i;
for (t = 0, n = u.length; t < n; ++t) u[t]._options = r._resolveDataElementOptions(u[t], t), r.updateElement(u[t], t, e)
},
_updateRadius: function() {
var e = this,
t = e.chart,
n = t.chartArea,
i = t.options,
r = Math.min(n.right - n.left, n.bottom - n.top);
t.outerRadius = Math.max(r / 2, 0), t.innerRadius = Math.max(i.cutoutPercentage ? t.outerRadius / 100 * i.cutoutPercentage : 1, 0), t.radiusLength = (t.outerRadius - t.innerRadius) / t.getVisibleDatasetCount(), e.outerRadius = t.outerRadius - t.radiusLength * e.index, e.innerRadius = e.outerRadius - t.radiusLength
},
updateElement: function(e, t, n) {
var i = this,
r = i.chart,
o = i.getDataset(),
a = r.options,
s = a.animation,
l = r.scale,
c = r.data.labels,
u = l.xCenter,
d = l.yCenter,
h = a.startAngle,
f = e.hidden ? 0 : l.getDistanceFromCenterForValue(o.data[t]),
p = i._starts[t],
g = p + (e.hidden ? 0 : i._angles[t]),
m = s.animateScale ? 0 : l.getDistanceFromCenterForValue(o.data[t]),
v = e._options || {};
H.extend(e, {
_datasetIndex: i.index,
_index: t,
_scale: l,
_model: {
backgroundColor: v.backgroundColor,
borderColor: v.borderColor,
borderWidth: v.borderWidth,
borderAlign: v.borderAlign,
x: u,
y: d,
innerRadius: 0,
outerRadius: n ? m : f,
startAngle: n && s.animateRotate ? h : p,
endAngle: n && s.animateRotate ? h : g,
label: H.valueAtIndexOrDefault(c, t, c[t])
}
}), e.pivot()
},
countVisibleElements: function() {
var e = this.getDataset(),
t = this.getMeta(),
n = 0;
return H.each(t.data, (function(t, i) {
isNaN(e.data[i]) || t.hidden || n++
})), n
},
setHoverStyle: function(e) {
var t = e._model,
n = e._options,
i = H.getHoverColor,
r = H.valueOrDefault;
e.$previousStyle = {
backgroundColor: t.backgroundColor,
borderColor: t.borderColor,
borderWidth: t.borderWidth
}, t.backgroundColor = r(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = r(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = r(n.hoverBorderWidth, n.borderWidth)
},
_computeAngle: function(e) {
var t = this,
n = this.getMeta().count,
i = t.getDataset(),
r = t.getMeta();
if (isNaN(i.data[e]) || r.data[e].hidden) return 0;
var o = {
chart: t.chart,
dataIndex: e,
dataset: i,
datasetIndex: t.index
};
return Be([t.chart.options.elements.arc.angle, 2 * Math.PI / n], o, e)
}
});
N._set("pie", H.clone(N.doughnut)), N._set("pie", {
cutoutPercentage: 0
});
var We = Pe,
Ue = H.valueOrDefault;
N._set("radar", {
spanGaps: !1,
scale: {
type: "radialLinear"
},
elements: {
line: {
fill: "start",
tension: 0
}
}
});
var Ve = te.extend({
datasetElementType: ye.Line,
dataElementType: ye.Point,
linkScales: H.noop,
_datasetElementOptions: ["backgroundColor", "borderWidth", "borderColor", "borderCapStyle", "borderDash", "borderDashOffset", "borderJoinStyle", "fill"],
_dataElementOptions: {
backgroundColor: "pointBackgroundColor",
borderColor: "pointBorderColor",
borderWidth: "pointBorderWidth",
hitRadius: "pointHitRadius",
hoverBackgroundColor: "pointHoverBackgroundColor",
hoverBorderColor: "pointHoverBorderColor",
hoverBorderWidth: "pointHoverBorderWidth",
hoverRadius: "pointHoverRadius",
pointStyle: "pointStyle",
radius: "pointRadius",
rotation: "pointRotation"
},
_getIndexScaleId: function() {
return this.chart.scale.id
},
_getValueScaleId: function() {
return this.chart.scale.id
},
update: function(e) {
var t, n, i = this,
r = i.getMeta(),
o = r.dataset,
a = r.data || [],
s = i.chart.scale,
l = i._config;
for (void 0 !== l.tension && void 0 === l.lineTension && (l.lineTension = l.tension), o._scale = s, o._datasetIndex = i.index, o._children = a, o._loop = !0, o._model = i._resolveDatasetElementOptions(o), o.pivot(), t = 0, n = a.length; t < n; ++t) i.updateElement(a[t], t, e);
for (i.updateBezierControlPoints(), t = 0, n = a.length; t < n; ++t) a[t].pivot()
},
updateElement: function(e, t, n) {
var i = this,
r = e.custom || {},
o = i.getDataset(),
a = i.chart.scale,
s = a.getPointPositionForValue(t, o.data[t]),
l = i._resolveDataElementOptions(e, t),
c = i.getMeta().dataset._model,
u = n ? a.xCenter : s.x,
d = n ? a.yCenter : s.y;
e._scale = a, e._options = l, e._datasetIndex = i.index, e._index = t, e._model = {
x: u,
y: d,
skip: r.skip || isNaN(u) || isNaN(d),
radius: l.radius,
pointStyle: l.pointStyle,
rotation: l.rotation,
backgroundColor: l.backgroundColor,
borderColor: l.borderColor,
borderWidth: l.borderWidth,
tension: Ue(r.tension, c ? c.tension : 0),
hitRadius: l.hitRadius
}
},
_resolveDatasetElementOptions: function() {
var e = this,
t = e._config,
n = e.chart.options,
i = te.prototype._resolveDatasetElementOptions.apply(e, arguments);
return i.spanGaps = Ue(t.spanGaps, n.spanGaps), i.tension = Ue(t.lineTension, n.elements.line.tension), i
},
updateBezierControlPoints: function() {
var e, t, n, i, r = this.getMeta(),
o = this.chart.chartArea,
a = r.data || [];
function s(e, t, n) {
return Math.max(Math.min(e, n), t)
}
for (r.dataset._model.spanGaps && (a = a.filter((function(e) {
return !e._model.skip
}))), e = 0, t = a.length; e < t; ++e) n = a[e]._model, i = H.splineCurve(H.previousItem(a, e, !0)._model, n, H.nextItem(a, e, !0)._model, n.tension), n.controlPointPreviousX = s(i.previous.x, o.left, o.right), n.controlPointPreviousY = s(i.previous.y, o.top, o.bottom), n.controlPointNextX = s(i.next.x, o.left, o.right), n.controlPointNextY = s(i.next.y, o.top, o.bottom)
},
setHoverStyle: function(e) {
var t = e._model,
n = e._options,
i = H.getHoverColor;
e.$previousStyle = {
backgroundColor: t.backgroundColor,
borderColor: t.borderColor,
borderWidth: t.borderWidth,
radius: t.radius
}, t.backgroundColor = Ue(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Ue(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Ue(n.hoverBorderWidth, n.borderWidth), t.radius = Ue(n.hoverRadius, n.radius)
}
});
N._set("scatter", {
hover: {
mode: "single"
},
scales: {
xAxes: [{
id: "x-axis-1",
type: "linear",
position: "bottom"
}],
yAxes: [{
id: "y-axis-1",
type: "linear",
position: "left"
}]
},
tooltips: {
callbacks: {
title: function() {
return ""
},
label: function(e) {
return "(" + e.xLabel + ", " + e.yLabel + ")"
}
}
}
}), N._set("global", {
datasets: {
scatter: {
showLine: !1
}
}
});
var Ye = {
bar: Se,
bubble: Ee,
doughnut: Pe,
horizontalBar: Le,
line: He,
polarArea: qe,
pie: We,
radar: Ve,
scatter: He
};
function Xe(e, t) {
return e.native ? {
x: e.x,
y: e.y
} : H.getRelativePosition(e, t)
}
function Ge(e, t) {
var n, i, r, o, a, s, l = e._getSortedVisibleDatasetMetas();
for (i = 0, o = l.length; i < o; ++i)
for (r = 0, a = (n = l[i].data).length; r < a; ++r)(s = n[r])._view.skip || t(s)
}
function Qe(e, t) {
var n = [];
return Ge(e, (function(e) {
e.inRange(t.x, t.y) && n.push(e)
})), n
}
function Ke(e, t, n, i) {
var r = Number.POSITIVE_INFINITY,
o = [];
return Ge(e, (function(e) {
if (!n || e.inRange(t.x, t.y)) {
var a = e.getCenterPoint(),
s = i(t, a);
s < r ? (o = [e], r = s) : s === r && o.push(e)
}
})), o
}
function Je(e) {
var t = -1 !== e.indexOf("x"),
n = -1 !== e.indexOf("y");
return function(e, i) {
var r = t ? Math.abs(e.x - i.x) : 0,
o = n ? Math.abs(e.y - i.y) : 0;
return Math.sqrt(Math.pow(r, 2) + Math.pow(o, 2))
}
}
function Ze(e, t, n) {
var i = Xe(t, e);
n.axis = n.axis || "x";
var r = Je(n.axis),
o = n.intersect ? Qe(e, i) : Ke(e, i, !1, r),
a = [];
return o.length ? (e._getSortedVisibleDatasetMetas().forEach((function(e) {
var t = e.data[o[0]._index];
t && !t._view.skip && a.push(t)
})), a) : []
}
var et = {
modes: {
single: function(e, t) {
var n = Xe(t, e),
i = [];
return Ge(e, (function(e) {
if (e.inRange(n.x, n.y)) return i.push(e), i
})), i.slice(0, 1)
},
label: Ze,
index: Ze,
dataset: function(e, t, n) {
var i = Xe(t, e);
n.axis = n.axis || "xy";
var r = Je(n.axis),
o = n.intersect ? Qe(e, i) : Ke(e, i, !1, r);
return o.length > 0 && (o = e.getDatasetMeta(o[0]._datasetIndex).data), o
},
"x-axis": function(e, t) {
return Ze(e, t, {
intersect: !1
})
},
point: function(e, t) {
return Qe(e, Xe(t, e))
},
nearest: function(e, t, n) {
var i = Xe(t, e);
n.axis = n.axis || "xy";
var r = Je(n.axis);
return Ke(e, i, n.intersect, r)
},
x: function(e, t, n) {
var i = Xe(t, e),
r = [],
o = !1;
return Ge(e, (function(e) {
e.inXRange(i.x) && r.push(e), e.inRange(i.x, i.y) && (o = !0)
})), n.intersect && !o && (r = []), r
},
y: function(e, t, n) {
var i = Xe(t, e),
r = [],
o = !1;
return Ge(e, (function(e) {
e.inYRange(i.y) && r.push(e), e.inRange(i.x, i.y) && (o = !0)
})), n.intersect && !o && (r = []), r
}
}
},
tt = H.extend;
function nt(e, t) {
return H.where(e, (function(e) {
return e.pos === t
}))
}
function it(e, t) {
return e.sort((function(e, n) {
var i = t ? n : e,
r = t ? e : n;
return i.weight === r.weight ? i.index - r.index : i.weight - r.weight
}))
}
function rt(e, t, n, i) {
return Math.max(e[n], t[n]) + Math.max(e[i], t[i])
}
function ot(e, t, n) {
var i, r, o = n.box,
a = e.maxPadding;
if (n.size && (e[n.pos] -= n.size), n.size = n.horizontal ? o.height : o.width, e[n.pos] += n.size, o.getPadding) {
var s = o.getPadding();
a.top = Math.max(a.top, s.top), a.left = Math.max(a.left, s.left), a.bottom = Math.max(a.bottom, s.bottom), a.right = Math.max(a.right, s.right)
}
if (i = t.outerWidth - rt(a, e, "left", "right"), r = t.outerHeight - rt(a, e, "top", "bottom"), i !== e.w || r !== e.h) return e.w = i, e.h = r, n.horizontal ? i !== e.w : r !== e.h
}
function at(e, t) {
var n = t.maxPadding;
return function(e) {
var i = {
left: 0,
top: 0,
right: 0,
bottom: 0
};
return e.forEach((function(e) {
i[e] = Math.max(t[e], n[e])
})), i
}(e ? ["left", "right"] : ["top", "bottom"])
}
function st(e, t, n) {
var i, r, o, a, s, l, c = [];
for (i = 0, r = e.length; i < r; ++i)(a = (o = e[i]).box).update(o.width || t.w, o.height || t.h, at(o.horizontal, t)), ot(t, n, o) && (l = !0, c.length && (s = !0)), a.fullWidth || c.push(o);
return s && st(c, t, n) || l
}
function lt(e, t, n) {
var i, r, o, a, s = n.padding,
l = t.x,
c = t.y;
for (i = 0, r = e.length; i < r; ++i) a = (o = e[i]).box, o.horizontal ? (a.left = a.fullWidth ? s.left : t.left, a.right = a.fullWidth ? n.outerWidth - s.right : t.left + t.w, a.top = c, a.bottom = c + a.height, a.width = a.right - a.left, c = a.bottom) : (a.left = l, a.right = l + a.width, a.top = t.top, a.bottom = t.top + t.h, a.height = a.bottom - a.top, l = a.right);
t.x = l, t.y = c
}
N._set("global", {
layout: {
padding: {
top: 0,
right: 0,
bottom: 0,
left: 0
}
}
});
var ct, ut = {
defaults: {},
addBox: function(e, t) {
e.boxes || (e.boxes = []), t.fullWidth = t.fullWidth || !1, t.position = t.position || "top", t.weight = t.weight || 0, t._layers = t._layers || function() {
return [{
z: 0,
draw: function() {
t.draw.apply(t, arguments)
}
}]
}, e.boxes.push(t)
},
removeBox: function(e, t) {
var n = e.boxes ? e.boxes.indexOf(t) : -1; - 1 !== n && e.boxes.splice(n, 1)
},
configure: function(e, t, n) {
for (var i, r = ["fullWidth", "position", "weight"], o = r.length, a = 0; a < o; ++a) i = r[a], n.hasOwnProperty(i) && (t[i] = n[i])
},
update: function(e, t, n) {
if (e) {
var i = e.options.layout || {},
r = H.options.toPadding(i.padding),
o = t - r.width,
a = n - r.height,
s = function(e) {
var t = function(e) {
var t, n, i, r = [];
for (t = 0, n = (e || []).length; t < n; ++t) i = e[t], r.push({
index: t,
box: i,
pos: i.position,
horizontal: i.isHorizontal(),
weight: i.weight
});
return r
}(e),
n = it(nt(t, "left"), !0),
i = it(nt(t, "right")),
r = it(nt(t, "top"), !0),
o = it(nt(t, "bottom"));
return {
leftAndTop: n.concat(r),
rightAndBottom: i.concat(o),
chartArea: nt(t, "chartArea"),
vertical: n.concat(i),
horizontal: r.concat(o)
}
}(e.boxes),
l = s.vertical,
c = s.horizontal,
u = Object.freeze({
outerWidth: t,
outerHeight: n,
padding: r,
availableWidth: o,
vBoxMaxWidth: o / 2 / l.length,
hBoxMaxHeight: a / 2
}),
d = tt({
maxPadding: tt({}, r),
w: o,
h: a,
x: r.left,
y: r.top
}, r);
! function(e, t) {
var n, i, r;
for (n = 0, i = e.length; n < i; ++n)(r = e[n]).width = r.horizontal ? r.box.fullWidth && t.availableWidth : t.vBoxMaxWidth, r.height = r.horizontal && t.hBoxMaxHeight
}(l.concat(c), u), st(l, d, u), st(c, d, u) && st(l, d, u),
function(e) {
var t = e.maxPadding;
function n(n) {
var i = Math.max(t[n] - e[n], 0);
return e[n] += i, i
}
e.y += n("top"), e.x += n("left"), n("right"), n("bottom")
}(d), lt(s.leftAndTop, d, u), d.x += d.w, d.y += d.h, lt(s.rightAndBottom, d, u), e.chartArea = {
left: d.left,
top: d.top,
right: d.left + d.w,
bottom: d.top + d.h
}, H.each(s.chartArea, (function(t) {
var n = t.box;
tt(n, e.chartArea), n.update(d.w, d.h)
}))
}
}
},
dt = (ct = Object.freeze({
__proto__: null,
default: "@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"
})) && ct.default || ct,
ht = "$chartjs",
ft = "chartjs-size-monitor",
pt = "chartjs-render-monitor",
gt = ["animationstart", "webkitAnimationStart"],
mt = {
touchstart: "mousedown",
touchmove: "mousemove",
touchend: "mouseup",
pointerenter: "mouseenter",
pointerdown: "mousedown",
pointermove: "mousemove",
pointerup: "mouseup",
pointerleave: "mouseout",
pointerout: "mouseout"
};
function vt(e, t) {
var n = H.getStyle(e, t),
i = n && n.match(/^(\d+)(\.\d+)?px$/);
return i ? Number(i[1]) : void 0
}
var yt = !! function() {
var e = !1;
try {
var t = Object.defineProperty({}, "passive", {
get: function() {
e = !0
}
});
window.addEventListener("e", null, t)
} catch (e) {}
return e
}() && {
passive: !0
};
function bt(e, t, n) {
e.addEventListener(t, n, yt)
}
function wt(e, t, n) {
e.removeEventListener(t, n, yt)
}
function xt(e, t, n, i, r) {
return {
type: e,
chart: t,
native: r || null,
x: void 0 !== n ? n : null,
y: void 0 !== i ? i : null
}
}
function _t(e) {
var t = document.createElement("div");
return t.className = e || "", t
}
var Ct = {
disableCSSInjection: !1,
_enabled: "undefined" != typeof window && "undefined" != typeof document,
_ensureLoaded: function(e) {
if (!this.disableCSSInjection) {
var t = e.getRootNode ? e.getRootNode() : document;
! function(e, t) {
var n = e[ht] || (e[ht] = {});
if (!n.containsStyles) {
n.containsStyles = !0, t = "/* Chart.js */\n" + t;
var i = document.createElement("style");
i.setAttribute("type", "text/css"), i.appendChild(document.createTextNode(t)), e.appendChild(i)
}
}(t.host ? t : document.head, dt)
}
},
acquireContext: function(e, t) {
"string" == typeof e ? e = document.getElementById(e) : e.length && (e = e[0]), e && e.canvas && (e = e.canvas);
var n = e && e.getContext && e.getContext("2d");
return n && n.canvas === e ? (this._ensureLoaded(e), function(e, t) {
var n = e.style,
i = e.getAttribute("height"),
r = e.getAttribute("width");
if (e[ht] = {
initial: {
height: i,
width: r,
style: {
display: n.display,
height: n.height,
width: n.width
}
}
}, n.display = n.display || "block", null === r || "" === r) {
var o = vt(e, "width");
void 0 !== o && (e.width = o)
}
if (null === i || "" === i)
if ("" === e.style.height) e.height = e.width / (t.options.aspectRatio || 2);
else {
var a = vt(e, "height");
void 0 !== o && (e.height = a)
}
}(e, t), n) : null
},
releaseContext: function(e) {
var t = e.canvas;
if (t[ht]) {
var n = t[ht].initial;
["height", "width"].forEach((function(e) {
var i = n[e];
H.isNullOrUndef(i) ? t.removeAttribute(e) : t.setAttribute(e, i)
})), H.each(n.style || {}, (function(e, n) {
t.style[n] = e
})), t.width = t.width, delete t[ht]
}
},
addEventListener: function(e, t, n) {
var i = e.canvas;
if ("resize" !== t) {
var r = n[ht] || (n[ht] = {});
bt(i, t, (r.proxies || (r.proxies = {}))[e.id + "_" + t] = function(t) {
n(function(e, t) {
var n = mt[e.type] || e.type,
i = H.getRelativePosition(e, t);
return xt(n, t, i.x, i.y, e)
}(t, e))
})
} else ! function(e, t, n) {
var i, r, o, a, s = e[ht] || (e[ht] = {}),
l = s.resizer = function(e) {
var t = _t(ft),
n = _t(ft + "-expand"),
i = _t(ft + "-shrink");
n.appendChild(_t()), i.appendChild(_t()), t.appendChild(n), t.appendChild(i), t._reset = function() {
n.scrollLeft = 1e6, n.scrollTop = 1e6, i.scrollLeft = 1e6, i.scrollTop = 1e6
};
var r = function() {
t._reset(), e()
};
return bt(n, "scroll", r.bind(n, "expand")), bt(i, "scroll", r.bind(i, "shrink")), t
}((i = function() {
if (s.resizer) {
var i = n.options.maintainAspectRatio && e.parentNode,
r = i ? i.clientWidth : 0;
t(xt("resize", n)), i && i.clientWidth < r && n.canvas && t(xt("resize", n))
}
}, o = !1, a = [], function() {
a = Array.prototype.slice.call(arguments), r = r || this, o || (o = !0, H.requestAnimFrame.call(window, (function() {
o = !1, i.apply(r, a)
})))
}));
! function(e, t) {
var n = e[ht] || (e[ht] = {}),
i = n.renderProxy = function(e) {
"chartjs-render-animation" === e.animationName && t()
};
H.each(gt, (function(t) {
bt(e, t, i)
})), n.reflow = !!e.offsetParent, e.classList.add(pt)
}(e, (function() {
if (s.resizer) {
var t = e.parentNode;
t && t !== l.parentNode && t.insertBefore(l, t.firstChild), l._reset()
}
}))
}(i, n, e)
},
removeEventListener: function(e, t, n) {
var i = e.canvas;
if ("resize" !== t) {
var r = ((n[ht] || {}).proxies || {})[e.id + "_" + t];
r && wt(i, t, r)
} else ! function(e) {
var t = e[ht] || {},
n = t.resizer;
delete t.resizer,
function(e) {
var t = e[ht] || {},
n = t.renderProxy;
n && (H.each(gt, (function(t) {
wt(e, t, n)
})), delete t.renderProxy), e.classList.remove(pt)
}(e), n && n.parentNode && n.parentNode.removeChild(n)
}(i)
}
};
H.addEvent = bt, H.removeEvent = wt;
var kt = Ct._enabled ? Ct : {
acquireContext: function(e) {
return e && e.canvas && (e = e.canvas), e && e.getContext("2d") || null
}
},
St = H.extend({
initialize: function() {},
acquireContext: function() {},
releaseContext: function() {},
addEventListener: function() {},
removeEventListener: function() {}
}, kt);
N._set("global", {
plugins: {}
});
var Tt = {
_plugins: [],
_cacheId: 0,
register: function(e) {
var t = this._plugins;
[].concat(e).forEach((function(e) {
-1 === t.indexOf(e) && t.push(e)
})), this._cacheId++
},
unregister: function(e) {
var t = this._plugins;
[].concat(e).forEach((function(e) {
var n = t.indexOf(e); - 1 !== n && t.splice(n, 1)
})), this._cacheId++
},
clear: function() {
this._plugins = [], this._cacheId++
},
count: function() {
return this._plugins.length
},
getAll: function() {
return this._plugins
},
notify: function(e, t, n) {
var i, r, o, a, s, l = this.descriptors(e),
c = l.length;
for (i = 0; i < c; ++i)
if ("function" == typeof(s = (o = (r = l[i]).plugin)[t]) && ((a = [e].concat(n || [])).push(r.options), !1 === s.apply(o, a))) return !1;
return !0
},
descriptors: function(e) {
var t = e.$plugins || (e.$plugins = {});
if (t.id === this._cacheId) return t.descriptors;
var n = [],
i = [],
r = e && e.config || {},
o = r.options && r.options.plugins || {};
return this._plugins.concat(r.plugins || []).forEach((function(e) {
if (-1 === n.indexOf(e)) {
var t = e.id,
r = o[t];
!1 !== r && (!0 === r && (r = H.clone(N.global.plugins[t])), n.push(e), i.push({
plugin: e,
options: r || {}
}))
}
})), t.descriptors = i, t.id = this._cacheId, i
},
_invalidate: function(e) {
delete e.$plugins
}
},
Dt = {
constructors: {},
defaults: {},
registerScaleType: function(e, t, n) {
this.constructors[e] = t, this.defaults[e] = H.clone(n)
},
getScaleConstructor: function(e) {
return this.constructors.hasOwnProperty(e) ? this.constructors[e] : void 0
},
getScaleDefaults: function(e) {
return this.defaults.hasOwnProperty(e) ? H.merge({}, [N.scale, this.defaults[e]]) : {}
},
updateScaleDefaults: function(e, t) {
this.defaults.hasOwnProperty(e) && (this.defaults[e] = H.extend(this.defaults[e], t))
},
addScalesToLayout: function(e) {
H.each(e.scales, (function(t) {
t.fullWidth = t.options.fullWidth, t.position = t.options.position, t.weight = t.options.weight, ut.addBox(e, t)
}))
}
},
Et = H.valueOrDefault,
At = H.rtl.getRtlAdapter;
N._set("global", {
tooltips: {
enabled: !0,
custom: null,
mode: "nearest",
position: "average",
intersect: !0,
backgroundColor: "rgba(0,0,0,0.8)",
titleFontStyle: "bold",
titleSpacing: 2,
titleMarginBottom: 6,
titleFontColor: "#fff",
titleAlign: "left",
bodySpacing: 2,
bodyFontColor: "#fff",
bodyAlign: "left",
footerFontStyle: "bold",
footerSpacing: 2,
footerMarginTop: 6,
footerFontColor: "#fff",
footerAlign: "left",
yPadding: 6,
xPadding: 6,
caretPadding: 2,
caretSize: 5,
cornerRadius: 6,
multiKeyBackground: "#fff",
displayColors: !0,
borderColor: "rgba(0,0,0,0)",
borderWidth: 0,
callbacks: {
beforeTitle: H.noop,
title: function(e, t) {
var n = "",
i = t.labels,
r = i ? i.length : 0;
if (e.length > 0) {
var o = e[0];
o.label ? n = o.label : o.xLabel ? n = o.xLabel : r > 0 && o.index < r && (n = i[o.index])
}
return n
},
afterTitle: H.noop,
beforeBody: H.noop,
beforeLabel: H.noop,
label: function(e, t) {
var n = t.datasets[e.datasetIndex].label || "";
return n && (n += ": "), H.isNullOrUndef(e.value) ? n += e.yLabel : n += e.value, n
},
labelColor: function(e, t) {
var n = t.getDatasetMeta(e.datasetIndex).data[e.index]._view;
return {
borderColor: n.borderColor,
backgroundColor: n.backgroundColor
}
},
labelTextColor: function() {
return this._options.bodyFontColor
},
afterLabel: H.noop,
afterBody: H.noop,
beforeFooter: H.noop,
footer: H.noop,
afterFooter: H.noop
}
}
});
var Mt = {
average: function(e) {
if (!e.length) return !1;
var t, n, i = 0,
r = 0,
o = 0;
for (t = 0, n = e.length; t < n; ++t) {
var a = e[t];
if (a && a.hasValue()) {
var s = a.tooltipPosition();
i += s.x, r += s.y, ++o
}
}
return {
x: i / o,
y: r / o
}
},
nearest: function(e, t) {
var n, i, r, o = t.x,
a = t.y,
s = Number.POSITIVE_INFINITY;
for (n = 0, i = e.length; n < i; ++n) {
var l = e[n];
if (l && l.hasValue()) {
var c = l.getCenterPoint(),
u = H.distanceBetweenPoints(t, c);
u < s && (s = u, r = l)
}
}
if (r) {
var d = r.tooltipPosition();
o = d.x, a = d.y
}
return {
x: o,
y: a
}
}
};
function Ot(e, t) {
return t && (H.isArray(t) ? Array.prototype.push.apply(e, t) : e.push(t)), e
}
function It(e) {
return ("string" == typeof e || e instanceof String) && e.indexOf("\n") > -1 ? e.split("\n") : e
}
function Pt(e) {
var t = N.global;
return {
xPadding: e.xPadding,
yPadding: e.yPadding,
xAlign: e.xAlign,
yAlign: e.yAlign,
rtl: e.rtl,
textDirection: e.textDirection,
bodyFontColor: e.bodyFontColor,
_bodyFontFamily: Et(e.bodyFontFamily, t.defaultFontFamily),
_bodyFontStyle: Et(e.bodyFontStyle, t.defaultFontStyle),
_bodyAlign: e.bodyAlign,
bodyFontSize: Et(e.bodyFontSize, t.defaultFontSize),
bodySpacing: e.bodySpacing,
titleFontColor: e.titleFontColor,
_titleFontFamily: Et(e.titleFontFamily, t.defaultFontFamily),
_titleFontStyle: Et(e.titleFontStyle, t.defaultFontStyle),
titleFontSize: Et(e.titleFontSize, t.defaultFontSize),
_titleAlign: e.titleAlign,
titleSpacing: e.titleSpacing,
titleMarginBottom: e.titleMarginBottom,
footerFontColor: e.footerFontColor,
_footerFontFamily: Et(e.footerFontFamily, t.defaultFontFamily),
_footerFontStyle: Et(e.footerFontStyle, t.defaultFontStyle),
footerFontSize: Et(e.footerFontSize, t.defaultFontSize),
_footerAlign: e.footerAlign,
footerSpacing: e.footerSpacing,
footerMarginTop: e.footerMarginTop,
caretSize: e.caretSize,
cornerRadius: e.cornerRadius,
backgroundColor: e.backgroundColor,
opacity: 0,
legendColorBackground: e.multiKeyBackground,
displayColors: e.displayColors,
borderColor: e.borderColor,
borderWidth: e.borderWidth
}
}
function Lt(e, t) {
return "center" === t ? e.x + e.width / 2 : "right" === t ? e.x + e.width - e.xPadding : e.x + e.xPadding
}
function Ft(e) {
return Ot([], It(e))
}
var Nt = Y.extend({
initialize: function() {
this._model = Pt(this._options), this._lastActive = []
},
getTitle: function() {
var e = this,
t = e._options,
n = t.callbacks,
i = n.beforeTitle.apply(e, arguments),
r = n.title.apply(e, arguments),
o = n.afterTitle.apply(e, arguments),
a = [];
return a = Ot(a, It(i)), a = Ot(a, It(r)), Ot(a, It(o))
},
getBeforeBody: function() {
return Ft(this._options.callbacks.beforeBody.apply(this, arguments))
},
getBody: function(e, t) {
var n = this,
i = n._options.callbacks,
r = [];
return H.each(e, (function(e) {
var o = {
before: [],
lines: [],
after: []
};
Ot(o.before, It(i.beforeLabel.call(n, e, t))), Ot(o.lines, i.label.call(n, e, t)), Ot(o.after, It(i.afterLabel.call(n, e, t))), r.push(o)
})), r
},
getAfterBody: function() {
return Ft(this._options.callbacks.afterBody.apply(this, arguments))
},
getFooter: function() {
var e = this,
t = e._options.callbacks,
n = t.beforeFooter.apply(e, arguments),
i = t.footer.apply(e, arguments),
r = t.afterFooter.apply(e, arguments),
o = [];
return o = Ot(o, It(n)), o = Ot(o, It(i)), Ot(o, It(r))
},
update: function(e) {
var t, n, i, r, o, a, s, l, c, u, d = this,
h = d._options,
f = d._model,
p = d._model = Pt(h),
g = d._active,
m = d._data,
v = {
xAlign: f.xAlign,
yAlign: f.yAlign
},
y = {
x: f.x,
y: f.y
},
b = {
width: f.width,
height: f.height
},
w = {
x: f.caretX,
y: f.caretY
};
if (g.length) {
p.opacity = 1;
var x = [],
_ = [];
w = Mt[h.position].call(d, g, d._eventPosition);
var C = [];
for (t = 0, n = g.length; t < n; ++t) C.push((r = void 0, o = void 0, void 0, void 0, l = void 0, c = void 0, u = void 0, r = (i = g[t])._xScale, o = i._yScale || i._scale, a = i._index, s = i._datasetIndex, c = (l = i._chart.getDatasetMeta(s).controller)._getIndexScale(), u = l._getValueScale(), {
xLabel: r ? r.getLabelForIndex(a, s) : "",
yLabel: o ? o.getLabelForIndex(a, s) : "",
label: c ? "" + c.getLabelForIndex(a, s) : "",
value: u ? "" + u.getLabelForIndex(a, s) : "",
index: a,
datasetIndex: s,
x: i._model.x,
y: i._model.y
}));
h.filter && (C = C.filter((function(e) {
return h.filter(e, m)
}))), h.itemSort && (C = C.sort((function(e, t) {
return h.itemSort(e, t, m)
}))), H.each(C, (function(e) {
x.push(h.callbacks.labelColor.call(d, e, d._chart)), _.push(h.callbacks.labelTextColor.call(d, e, d._chart))
})), p.title = d.getTitle(C, m), p.beforeBody = d.getBeforeBody(C, m), p.body = d.getBody(C, m), p.afterBody = d.getAfterBody(C, m), p.footer = d.getFooter(C, m), p.x = w.x, p.y = w.y, p.caretPadding = h.caretPadding, p.labelColors = x, p.labelTextColors = _, p.dataPoints = C, y = function(e, t, n, i) {
var r = e.x,
o = e.y,
a = e.caretSize,
s = e.caretPadding,
l = e.cornerRadius,
c = n.xAlign,
u = n.yAlign,
d = a + s,
h = l + s;
return "right" === c ? r -= t.width : "center" === c && ((r -= t.width / 2) + t.width > i.width && (r = i.width - t.width), r < 0 && (r = 0)), "top" === u ? o += d : o -= "bottom" === u ? t.height + d : t.height / 2, "center" === u ? "left" === c ? r += d : "right" === c && (r -= d) : "left" === c ? r -= h : "right" === c && (r += h), {
x: r,
y: o
}
}(p, b = function(e, t) {
var n = e._chart.ctx,
i = 2 * t.yPadding,
r = 0,
o = t.body,
a = o.reduce((function(e, t) {
return e + t.before.length + t.lines.length + t.after.length
}), 0);
a += t.beforeBody.length + t.afterBody.length;
var s = t.title.length,
l = t.footer.length,
c = t.titleFontSize,
u = t.bodyFontSize,
d = t.footerFontSize;
i += s * c, i += s ? (s - 1) * t.titleSpacing : 0, i += s ? t.titleMarginBottom : 0, i += a * u, i += a ? (a - 1) * t.bodySpacing : 0, i += l ? t.footerMarginTop : 0, i += l * d, i += l ? (l - 1) * t.footerSpacing : 0;
var h = 0,
f = function(e) {
r = Math.max(r, n.measureText(e).width + h)
};
return n.font = H.fontString(c, t._titleFontStyle, t._titleFontFamily), H.each(t.title, f), n.font = H.fontString(u, t._bodyFontStyle, t._bodyFontFamily), H.each(t.beforeBody.concat(t.afterBody), f), h = t.displayColors ? u + 2 : 0, H.each(o, (function(e) {
H.each(e.before, f), H.each(e.lines, f), H.each(e.after, f)
})), h = 0, n.font = H.fontString(d, t._footerFontStyle, t._footerFontFamily), H.each(t.footer, f), {
width: r += 2 * t.xPadding,
height: i
}
}(this, p), v = function(e, t) {
var n, i, r, o, a, s = e._model,
l = e._chart,
c = e._chart.chartArea,
u = "center",
d = "center";
s.y < t.height ? d = "top" : s.y > l.height - t.height && (d = "bottom");
var h = (c.left + c.right) / 2,
f = (c.top + c.bottom) / 2;
"center" === d ? (n = function(e) {
return e <= h
}, i = function(e) {
return e > h
}) : (n = function(e) {
return e <= t.width / 2
}, i = function(e) {
return e >= l.width - t.width / 2
}), r = function(e) {
return e + t.width + s.caretSize + s.caretPadding > l.width
}, o = function(e) {
return e - t.width - s.caretSize - s.caretPadding < 0
}, a = function(e) {
return e <= f ? "top" : "bottom"
}, n(s.x) ? (u = "left", r(s.x) && (u = "center", d = a(s.y))) : i(s.x) && (u = "right", o(s.x) && (u = "center", d = a(s.y)));
var p = e._options;
return {
xAlign: p.xAlign ? p.xAlign : u,
yAlign: p.yAlign ? p.yAlign : d
}
}(this, b), d._chart)
} else p.opacity = 0;
return p.xAlign = v.xAlign, p.yAlign = v.yAlign, p.x = y.x, p.y = y.y, p.width = b.width, p.height = b.height, p.caretX = w.x, p.caretY = w.y, d._model = p, e && h.custom && h.custom.call(d, p), d
},
drawCaret: function(e, t) {
var n = this._chart.ctx,
i = this._view,
r = this.getCaretPosition(e, t, i);
n.lineTo(r.x1, r.y1), n.lineTo(r.x2, r.y2), n.lineTo(r.x3, r.y3)
},
getCaretPosition: function(e, t, n) {
var i, r, o, a, s, l, c = n.caretSize,
u = n.cornerRadius,
d = n.xAlign,
h = n.yAlign,
f = e.x,
p = e.y,
g = t.width,
m = t.height;
if ("center" === h) s = p + m / 2, "left" === d ? (r = (i = f) - c, o = i, a = s + c, l = s - c) : (r = (i = f + g) + c, o = i, a = s - c, l = s + c);
else if ("left" === d ? (i = (r = f + u + c) - c, o = r + c) : "right" === d ? (i = (r = f + g - u - c) - c, o = r + c) : (i = (r = n.caretX) - c, o = r + c), "top" === h) s = (a = p) - c, l = a;
else {
s = (a = p + m) + c, l = a;
var v = o;
o = i, i = v
}
return {
x1: i,
x2: r,
x3: o,
y1: a,
y2: s,
y3: l
}
},
drawTitle: function(e, t, n) {
var i, r, o, a = t.title,
s = a.length;
if (s) {
var l = At(t.rtl, t.x, t.width);
for (e.x = Lt(t, t._titleAlign), n.textAlign = l.textAlign(t._titleAlign), n.textBaseline = "middle", i = t.titleFontSize, r = t.titleSpacing, n.fillStyle = t.titleFontColor, n.font = H.fontString(i, t._titleFontStyle, t._titleFontFamily), o = 0; o < s; ++o) n.fillText(a[o], l.x(e.x), e.y + i / 2), e.y += i + r, o + 1 === s && (e.y += t.titleMarginBottom - r)
}
},
drawBody: function(e, t, n) {
var i, r, o, a, s, l, c, u, d = t.bodyFontSize,
h = t.bodySpacing,
f = t._bodyAlign,
p = t.body,
g = t.displayColors,
m = 0,
v = g ? Lt(t, "left") : 0,
y = At(t.rtl, t.x, t.width),
b = function(t) {
n.fillText(t, y.x(e.x + m), e.y + d / 2), e.y += d + h
},
w = y.textAlign(f);
for (n.textAlign = f, n.textBaseline = "middle", n.font = H.fontString(d, t._bodyFontStyle, t._bodyFontFamily), e.x = Lt(t, w), n.fillStyle = t.bodyFontColor, H.each(t.beforeBody, b), m = g && "right" !== w ? "center" === f ? d / 2 + 1 : d + 2 : 0, s = 0, c = p.length; s < c; ++s) {
for (i = p[s], r = t.labelTextColors[s], o = t.labelColors[s], n.fillStyle = r, H.each(i.before, b), l = 0, u = (a = i.lines).length; l < u; ++l) {
if (g) {
var x = y.x(v);
n.fillStyle = t.legendColorBackground, n.fillRect(y.leftForLtr(x, d), e.y, d, d), n.lineWidth = 1, n.strokeStyle = o.borderColor, n.strokeRect(y.leftForLtr(x, d), e.y, d, d), n.fillStyle = o.backgroundColor, n.fillRect(y.leftForLtr(y.xPlus(x, 1), d - 2), e.y + 1, d - 2, d - 2), n.fillStyle = r
}
b(a[l])
}
H.each(i.after, b)
}
m = 0, H.each(t.afterBody, b), e.y -= h
},
drawFooter: function(e, t, n) {
var i, r, o = t.footer,
a = o.length;
if (a) {
var s = At(t.rtl, t.x, t.width);
for (e.x = Lt(t, t._footerAlign), e.y += t.footerMarginTop, n.textAlign = s.textAlign(t._footerAlign), n.textBaseline = "middle", i = t.footerFontSize, n.fillStyle = t.footerFontColor, n.font = H.fontString(i, t._footerFontStyle, t._footerFontFamily), r = 0; r < a; ++r) n.fillText(o[r], s.x(e.x), e.y + i / 2), e.y += i + t.footerSpacing
}
},
drawBackground: function(e, t, n, i) {
n.fillStyle = t.backgroundColor, n.strokeStyle = t.borderColor, n.lineWidth = t.borderWidth;
var r = t.xAlign,
o = t.yAlign,
a = e.x,
s = e.y,
l = i.width,
c = i.height,
u = t.cornerRadius;
n.beginPath(), n.moveTo(a + u, s), "top" === o && this.drawCaret(e, i), n.lineTo(a + l - u, s), n.quadraticCurveTo(a + l, s, a + l, s + u), "center" === o && "right" === r && this.drawCaret(e, i), n.lineTo(a + l, s + c - u), n.quadraticCurveTo(a + l, s + c, a + l - u, s + c), "bottom" === o && this.drawCaret(e, i), n.lineTo(a + u, s + c), n.quadraticCurveTo(a, s + c, a, s + c - u), "center" === o && "left" === r && this.drawCaret(e, i), n.lineTo(a, s + u), n.quadraticCurveTo(a, s, a + u, s), n.closePath(), n.fill(), t.borderWidth > 0 && n.stroke()
},
draw: function() {
var e = this._chart.ctx,
t = this._view;
if (0 !== t.opacity) {
var n = {
width: t.width,
height: t.height
},
i = {
x: t.x,
y: t.y
},
r = Math.abs(t.opacity < .001) ? 0 : t.opacity,
o = t.title.length || t.beforeBody.length || t.body.length || t.afterBody.length || t.footer.length;
this._options.enabled && o && (e.save(), e.globalAlpha = r, this.drawBackground(i, t, e, n), i.y += t.yPadding, H.rtl.overrideTextDirection(e, t.textDirection), this.drawTitle(i, t, e), this.drawBody(i, t, e), this.drawFooter(i, t, e), H.rtl.restoreTextDirection(e, t.textDirection), e.restore())
}
},
handleEvent: function(e) {
var t, n = this,
i = n._options;
return n._lastActive = n._lastActive || [], "mouseout" === e.type ? n._active = [] : (n._active = n._chart.getElementsAtEventForMode(e, i.mode, i), i.reverse && n._active.reverse()), (t = !H.arrayEquals(n._active, n._lastActive)) && (n._lastActive = n._active, (i.enabled || i.custom) && (n._eventPosition = {
x: e.x,
y: e.y
}, n.update(!0), n.pivot())), t
}
}),
Rt = Mt,
jt = Nt;
jt.positioners = Rt;
var $t = H.valueOrDefault;
function zt() {
return H.merge({}, [].slice.call(arguments), {
merger: function(e, t, n, i) {
if ("xAxes" === e || "yAxes" === e) {
var r, o, a, s = n[e].length;
for (t[e] || (t[e] = []), r = 0; r < s; ++r) a = n[e][r], o = $t(a.type, "xAxes" === e ? "category" : "linear"), r >= t[e].length && t[e].push({}), !t[e][r].type || a.type && a.type !== t[e][r].type ? H.merge(t[e][r], [Dt.getScaleDefaults(o), a]) : H.merge(t[e][r], a)
} else H._merger(e, t, n, i)
}
})
}
function Ht() {
return H.merge({}, [].slice.call(arguments), {
merger: function(e, t, n, i) {
var r = t[e] || {},
o = n[e];
"scales" === e ? t[e] = zt(r, o) : "scale" === e ? t[e] = H.merge(r, [Dt.getScaleDefaults(o.type), o]) : H._merger(e, t, n, i)
}
})
}
function Bt(e) {
var t = e.options;
H.each(e.scales, (function(t) {
ut.removeBox(e, t)
})), t = Ht(N.global, N[e.config.type], t), e.options = e.config.options = t, e.ensureScalesHaveIDs(), e.buildOrUpdateScales(), e.tooltip._options = t.tooltips, e.tooltip.initialize()
}
function qt(e, t, n) {
var i, r = function(e) {
return e.id === i
};
do {
i = t + n++
} while (H.findIndex(e, r) >= 0);
return i
}
function Wt(e) {
return "top" === e || "bottom" === e
}
function Ut(e, t) {
return function(n, i) {
return n[e] === i[e] ? n[t] - i[t] : n[e] - i[e]
}
}
N._set("global", {
elements: {},
events: ["mousemove", "mouseout", "click", "touchstart", "touchmove"],
hover: {
onHover: null,
mode: "nearest",
intersect: !0,
animationDuration: 400
},
onClick: null,
maintainAspectRatio: !0,
responsive: !0,
responsiveAnimationDuration: 0
});
var Vt = function(e, t) {
return this.construct(e, t), this
};
H.extend(Vt.prototype, {
construct: function(e, t) {
var n = this;
t = function(e) {
var t = (e = e || {}).data = e.data || {};
return t.datasets = t.datasets || [], t.labels = t.labels || [], e.options = Ht(N.global, N[e.type], e.options || {}), e
}(t);
var i = St.acquireContext(e, t),
r = i && i.canvas,
o = r && r.height,
a = r && r.width;
n.id = H.uid(), n.ctx = i, n.canvas = r, n.config = t, n.width = a, n.height = o, n.aspectRatio = o ? a / o : null, n.options = t.options, n._bufferedRender = !1, n._layers = [], n.chart = n, n.controller = n, Vt.instances[n.id] = n, Object.defineProperty(n, "data", {
get: function() {
return n.config.data
},
set: function(e) {
n.config.data = e
}
}), i && r ? (n.initialize(), n.update()) : console.error("Failed to create chart: can't acquire context from the given item")
},
initialize: function() {
var e = this;
return Tt.notify(e, "beforeInit"), H.retinaScale(e, e.options.devicePixelRatio), e.bindEvents(), e.options.responsive && e.resize(!0), e.initToolTip(), Tt.notify(e, "afterInit"), e
},
clear: function() {
return H.canvas.clear(this), this
},
stop: function() {
return Q.cancelAnimation(this), this
},
resize: function(e) {
var t = this,
n = t.options,
i = t.canvas,
r = n.maintainAspectRatio && t.aspectRatio || null,
o = Math.max(0, Math.floor(H.getMaximumWidth(i))),
a = Math.max(0, Math.floor(r ? o / r : H.getMaximumHeight(i)));
if ((t.width !== o || t.height !== a) && (i.width = t.width = o, i.height = t.height = a, i.style.width = o + "px", i.style.height = a + "px", H.retinaScale(t, n.devicePixelRatio), !e)) {
var s = {
width: o,
height: a
};
Tt.notify(t, "resize", [s]), n.onResize && n.onResize(t, s), t.stop(), t.update({
duration: n.responsiveAnimationDuration
})
}
},
ensureScalesHaveIDs: function() {
var e = this.options,
t = e.scales || {},
n = e.scale;
H.each(t.xAxes, (function(e, n) {
e.id || (e.id = qt(t.xAxes, "x-axis-", n))
})), H.each(t.yAxes, (function(e, n) {
e.id || (e.id = qt(t.yAxes, "y-axis-", n))
})), n && (n.id = n.id || "scale")
},
buildOrUpdateScales: function() {
var e = this,
t = e.options,
n = e.scales || {},
i = [],
r = Object.keys(n).reduce((function(e, t) {
return e[t] = !1, e
}), {});
t.scales && (i = i.concat((t.scales.xAxes || []).map((function(e) {
return {
options: e,
dtype: "category",
dposition: "bottom"
}
})), (t.scales.yAxes || []).map((function(e) {
return {
options: e,
dtype: "linear",
dposition: "left"
}
})))), t.scale && i.push({
options: t.scale,
dtype: "radialLinear",
isDefault: !0,
dposition: "chartArea"
}), H.each(i, (function(t) {
var i = t.options,
o = i.id,
a = $t(i.type, t.dtype);
Wt(i.position) !== Wt(t.dposition) && (i.position = t.dposition), r[o] = !0;
var s = null;
if (o in n && n[o].type === a)(s = n[o]).options = i, s.ctx = e.ctx, s.chart = e;
else {
var l = Dt.getScaleConstructor(a);
if (!l) return;
s = new l({
id: o,
type: a,
options: i,
ctx: e.ctx,
chart: e
}), n[s.id] = s
}
s.mergeTicksOptions(), t.isDefault && (e.scale = s)
})), H.each(r, (function(e, t) {
e || delete n[t]
})), e.scales = n, Dt.addScalesToLayout(this)
},
buildOrUpdateControllers: function() {
var e, t, n = this,
i = [],
r = n.data.datasets;
for (e = 0, t = r.length; e < t; e++) {
var o = r[e],
a = n.getDatasetMeta(e),
s = o.type || n.config.type;
if (a.type && a.type !== s && (n.destroyDatasetMeta(e), a = n.getDatasetMeta(e)), a.type = s, a.order = o.order || 0, a.index = e, a.controller) a.controller.updateIndex(e), a.controller.linkScales();
else {
var l = Ye[a.type];
if (void 0 === l) throw new Error('"' + a.type + '" is not a chart type.');
a.controller = new l(n, e), i.push(a.controller)
}
}
return i
},
resetElements: function() {
var e = this;
H.each(e.data.datasets, (function(t, n) {
e.getDatasetMeta(n).controller.reset()
}), e)
},
reset: function() {
this.resetElements(), this.tooltip.initialize()
},
update: function(e) {
var t, n, i = this;
if (e && "object" == typeof e || (e = {
duration: e,
lazy: arguments[1]
}), Bt(i), Tt._invalidate(i), !1 !== Tt.notify(i, "beforeUpdate")) {
i.tooltip._data = i.data;
var r = i.buildOrUpdateControllers();
for (t = 0, n = i.data.datasets.length; t < n; t++) i.getDatasetMeta(t).controller.buildOrUpdateElements();
i.updateLayout(), i.options.animation && i.options.animation.duration && H.each(r, (function(e) {
e.reset()
})), i.updateDatasets(), i.tooltip.initialize(), i.lastActive = [], Tt.notify(i, "afterUpdate"), i._layers.sort(Ut("z", "_idx")), i._bufferedRender ? i._bufferedRequest = {
duration: e.duration,
easing: e.easing,
lazy: e.lazy
} : i.render(e)
}
},
updateLayout: function() {
var e = this;
!1 !== Tt.notify(e, "beforeLayout") && (ut.update(this, this.width, this.height), e._layers = [], H.each(e.boxes, (function(t) {
t._configure && t._configure(), e._layers.push.apply(e._layers, t._layers())
}), e), e._layers.forEach((function(e, t) {
e._idx = t
})), Tt.notify(e, "afterScaleUpdate"), Tt.notify(e, "afterLayout"))
},
updateDatasets: function() {
if (!1 !== Tt.notify(this, "beforeDatasetsUpdate")) {
for (var e = 0, t = this.data.datasets.length; e < t; ++e) this.updateDataset(e);
Tt.notify(this, "afterDatasetsUpdate")
}
},
updateDataset: function(e) {
var t = this.getDatasetMeta(e),
n = {
meta: t,
index: e
};
!1 !== Tt.notify(this, "beforeDatasetUpdate", [n]) && (t.controller._update(), Tt.notify(this, "afterDatasetUpdate", [n]))
},
render: function(e) {
var t = this;
e && "object" == typeof e || (e = {
duration: e,
lazy: arguments[1]
});
var n = t.options.animation,
i = $t(e.duration, n && n.duration),
r = e.lazy;
if (!1 !== Tt.notify(t, "beforeRender")) {
var o = function(e) {
Tt.notify(t, "afterRender"), H.callback(n && n.onComplete, [e], t)
};
if (n && i) {
var a = new G({
numSteps: i / 16.66,
easing: e.easing || n.easing,
render: function(e, t) {
var n = H.easing.effects[t.easing],
i = t.currentStep,
r = i / t.numSteps;
e.draw(n(r), r, i)
},
onAnimationProgress: n.onProgress,
onAnimationComplete: o
});
Q.addAnimation(t, a, i, r)
} else t.draw(), o(new G({
numSteps: 0,
chart: t
}));
return t
}
},
draw: function(e) {
var t, n, i = this;
if (i.clear(), H.isNullOrUndef(e) && (e = 1), i.transition(e), !(i.width <= 0 || i.height <= 0) && !1 !== Tt.notify(i, "beforeDraw", [e])) {
for (n = i._layers, t = 0; t < n.length && n[t].z <= 0; ++t) n[t].draw(i.chartArea);
for (i.drawDatasets(e); t < n.length; ++t) n[t].draw(i.chartArea);
i._drawTooltip(e), Tt.notify(i, "afterDraw", [e])
}
},
transition: function(e) {
for (var t = 0, n = (this.data.datasets || []).length; t < n; ++t) this.isDatasetVisible(t) && this.getDatasetMeta(t).controller.transition(e);
this.tooltip.transition(e)
},
_getSortedDatasetMetas: function(e) {
var t, n, i = [];
for (t = 0, n = (this.data.datasets || []).length; t < n; ++t) e && !this.isDatasetVisible(t) || i.push(this.getDatasetMeta(t));
return i.sort(Ut("order", "index")), i
},
_getSortedVisibleDatasetMetas: function() {
return this._getSortedDatasetMetas(!0)
},
drawDatasets: function(e) {
var t, n;
if (!1 !== Tt.notify(this, "beforeDatasetsDraw", [e])) {
for (n = (t = this._getSortedVisibleDatasetMetas()).length - 1; n >= 0; --n) this.drawDataset(t[n], e);
Tt.notify(this, "afterDatasetsDraw", [e])
}
},
drawDataset: function(e, t) {
var n = {
meta: e,
index: e.index,
easingValue: t
};
!1 !== Tt.notify(this, "beforeDatasetDraw", [n]) && (e.controller.draw(t), Tt.notify(this, "afterDatasetDraw", [n]))
},
_drawTooltip: function(e) {
var t = this.tooltip,
n = {
tooltip: t,
easingValue: e
};
!1 !== Tt.notify(this, "beforeTooltipDraw", [n]) && (t.draw(), Tt.notify(this, "afterTooltipDraw", [n]))
},
getElementAtEvent: function(e) {
return et.modes.single(this, e)
},
getElementsAtEvent: function(e) {
return et.modes.label(this, e, {
intersect: !0
})
},
getElementsAtXAxis: function(e) {
return et.modes["x-axis"](this, e, {
intersect: !0
})
},
getElementsAtEventForMode: function(e, t, n) {
var i = et.modes[t];
return "function" == typeof i ? i(this, e, n) : []
},
getDatasetAtEvent: function(e) {
return et.modes.dataset(this, e, {
intersect: !0
})
},
getDatasetMeta: function(e) {
var t = this.data.datasets[e];
t._meta || (t._meta = {});
var n = t._meta[this.id];
return n || (n = t._meta[this.id] = {
type: null,
data: [],
dataset: null,
controller: null,
hidden: null,
xAxisID: null,
yAxisID: null,
order: t.order || 0,
index: e
}), n
},
getVisibleDatasetCount: function() {
for (var e = 0, t = 0, n = this.data.datasets.length; t < n; ++t) this.isDatasetVisible(t) && e++;
return e
},
isDatasetVisible: function(e) {
var t = this.getDatasetMeta(e);
return "boolean" == typeof t.hidden ? !t.hidden : !this.data.datasets[e].hidden
},
generateLegend: function() {
return this.options.legendCallback(this)
},
destroyDatasetMeta: function(e) {
var t = this.id,
n = this.data.datasets[e],
i = n._meta && n._meta[t];
i && (i.controller.destroy(), delete n._meta[t])
},
destroy: function() {
var e, t, n = this,
i = n.canvas;
for (n.stop(), e = 0, t = n.data.datasets.length; e < t; ++e) n.destroyDatasetMeta(e);
i && (n.unbindEvents(), H.canvas.clear(n), St.releaseContext(n.ctx), n.canvas = null, n.ctx = null), Tt.notify(n, "destroy"), delete Vt.instances[n.id]
},
toBase64Image: function() {
return this.canvas.toDataURL.apply(this.canvas, arguments)
},
initToolTip: function() {
var e = this;
e.tooltip = new jt({
_chart: e,
_chartInstance: e,
_data: e.data,
_options: e.options.tooltips
}, e)
},
bindEvents: function() {
var e = this,
t = e._listeners = {},
n = function() {
e.eventHandler.apply(e, arguments)
};
H.each(e.options.events, (function(i) {
St.addEventListener(e, i, n), t[i] = n
})), e.options.responsive && (n = function() {
e.resize()
}, St.addEventListener(e, "resize", n), t.resize = n)
},
unbindEvents: function() {
var e = this,
t = e._listeners;
t && (delete e._listeners, H.each(t, (function(t, n) {
St.removeEventListener(e, n, t)
})))
},
updateHoverStyle: function(e, t, n) {
var i, r, o, a = n ? "set" : "remove";
for (r = 0, o = e.length; r < o; ++r)(i = e[r]) && this.getDatasetMeta(i._datasetIndex).controller[a + "HoverStyle"](i);
"dataset" === t && this.getDatasetMeta(e[0]._datasetIndex).controller["_" + a + "DatasetHoverStyle"]()
},
eventHandler: function(e) {
var t = this,
n = t.tooltip;
if (!1 !== Tt.notify(t, "beforeEvent", [e])) {
t._bufferedRender = !0, t._bufferedRequest = null;
var i = t.handleEvent(e);
n && (i = n._start ? n.handleEvent(e) : i | n.handleEvent(e)), Tt.notify(t, "afterEvent", [e]);
var r = t._bufferedRequest;
return r ? t.render(r) : i && !t.animating && (t.stop(), t.render({
duration: t.options.hover.animationDuration,
lazy: !0
})), t._bufferedRender = !1, t._bufferedRequest = null, t
}
},
handleEvent: function(e) {
var t, n = this,
i = n.options || {},
r = i.hover;
return n.lastActive = n.lastActive || [], "mouseout" === e.type ? n.active = [] : n.active = n.getElementsAtEventForMode(e, r.mode, r), H.callback(i.onHover || i.hover.onHover, [e.native, n.active], n), "mouseup" !== e.type && "click" !== e.type || i.onClick && i.onClick.call(n, e.native, n.active), n.lastActive.length && n.updateHoverStyle(n.lastActive, r.mode, !1), n.active.length && r.mode && n.updateHoverStyle(n.active, r.mode, !0), t = !H.arrayEquals(n.active, n.lastActive), n.lastActive = n.active, t
}
}), Vt.instances = {};
var Yt = Vt;
function Xt() {
throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")
}
function Gt(e) {
this.options = e || {}
}
Vt.Controller = Vt, Vt.types = {}, H.configMerge = Ht, H.scaleMerge = zt, H.extend(Gt.prototype, {
formats: Xt,
parse: Xt,
format: Xt,
add: Xt,
diff: Xt,
startOf: Xt,
endOf: Xt,
_create: function(e) {
return e
}
}), Gt.override = function(e) {
H.extend(Gt.prototype, e)
};
var Qt = {
_date: Gt
},
Kt = {
formatters: {
values: function(e) {
return H.isArray(e) ? e : "" + e
},
linear: function(e, t, n) {
var i = n.length > 3 ? n[2] - n[1] : n[1] - n[0];
Math.abs(i) > 1 && e !== Math.floor(e) && (i = e - Math.floor(e));
var r = H.log10(Math.abs(i)),
o = "";
if (0 !== e)
if (Math.max(Math.abs(n[0]), Math.abs(n[n.length - 1])) < 1e-4) {
var a = H.log10(Math.abs(e)),
s = Math.floor(a) - Math.floor(r);
s = Math.max(Math.min(s, 20), 0), o = e.toExponential(s)
} else {
var l = -1 * Math.floor(r);
l = Math.max(Math.min(l, 20), 0), o = e.toFixed(l)
}
else o = "0";
return o
},
logarithmic: function(e, t, n) {
var i = e / Math.pow(10, Math.floor(H.log10(e)));
return 0 === e ? "0" : 1 === i || 2 === i || 5 === i || 0 === t || t === n.length - 1 ? e.toExponential() : ""
}
}
},
Jt = H.isArray,
Zt = H.isNullOrUndef,
en = H.valueOrDefault,
tn = H.valueAtIndexOrDefault;
function nn(e, t, n) {
var i, r = e.getTicks().length,
o = Math.min(t, r - 1),
a = e.getPixelForTick(o),
s = e._startPixel,
l = e._endPixel;
if (!(n && (i = 1 === r ? Math.max(a - s, l - a) : 0 === t ? (e.getPixelForTick(1) - a) / 2 : (a - e.getPixelForTick(o - 1)) / 2, (a += o < t ? i : -i) < s - 1e-6 || a > l + 1e-6))) return a
}
function rn(e) {
return e.drawTicks ? e.tickMarkLength : 0
}
function on(e) {
var t, n;
return e.display ? (t = H.options._parseFont(e), n = H.options.toPadding(e.padding), t.lineHeight + n.height) : 0
}
function an(e, t) {
return H.extend(H.options._parseFont({
fontFamily: en(t.fontFamily, e.fontFamily),
fontSize: en(t.fontSize, e.fontSize),
fontStyle: en(t.fontStyle, e.fontStyle),
lineHeight: en(t.lineHeight, e.lineHeight)
}), {
color: H.options.resolve([t.fontColor, e.fontColor, N.global.defaultFontColor])
})
}
function sn(e) {
var t = an(e, e.minor);
return {
minor: t,
major: e.major.enabled ? an(e, e.major) : t
}
}
function ln(e) {
var t, n, i, r = [];
for (n = 0, i = e.length; n < i; ++n) void 0 !== (t = e[n])._index && r.push(t);
return r
}
function cn(e, t, n, i) {
var r, o, a, s, l = en(n, 0),
c = Math.min(en(i, e.length), e.length),
u = 0;
for (t = Math.ceil(t), i && (t = (r = i - n) / Math.floor(r / t)), s = l; s < 0;) u++, s = Math.round(l + u * t);
for (o = Math.max(l, 0); o < c; o++) a = e[o], o === s ? (a._index = o, u++, s = Math.round(l + u * t)) : delete a.label
}
N._set("scale", {
display: !0,
position: "left",
offset: !1,
gridLines: {
display: !0,
color: "rgba(0,0,0,0.1)",
lineWidth: 1,
drawBorder: !0,
drawOnChartArea: !0,
drawTicks: !0,
tickMarkLength: 10,
zeroLineWidth: 1,
zeroLineColor: "rgba(0,0,0,0.25)",
zeroLineBorderDash: [],
zeroLineBorderDashOffset: 0,
offsetGridLines: !1,
borderDash: [],
borderDashOffset: 0
},
scaleLabel: {
display: !1,
labelString: "",
padding: {
top: 4,
bottom: 4
}
},
ticks: {
beginAtZero: !1,
minRotation: 0,
maxRotation: 50,
mirror: !1,
padding: 0,
reverse: !1,
display: !0,
autoSkip: !0,
autoSkipPadding: 0,
labelOffset: 0,
callback: Kt.formatters.values,
minor: {},
major: {}
}
});
var un = Y.extend({
zeroLineIndex: 0,
getPadding: function() {
return {
left: this.paddingLeft || 0,
top: this.paddingTop || 0,
right: this.paddingRight || 0,
bottom: this.paddingBottom || 0
}
},
getTicks: function() {
return this._ticks
},
_getLabels: function() {
var e = this.chart.data;
return this.options.labels || (this.isHorizontal() ? e.xLabels : e.yLabels) || e.labels || []
},
mergeTicksOptions: function() {},
beforeUpdate: function() {
H.callback(this.options.beforeUpdate, [this])
},
update: function(e, t, n) {
var i, r, o, a, s, l = this,
c = l.options.ticks,
u = c.sampleSize;
if (l.beforeUpdate(), l.maxWidth = e, l.maxHeight = t, l.margins = H.extend({
left: 0,
right: 0,
top: 0,
bottom: 0
}, n), l._ticks = null, l.ticks = null, l._labelSizes = null, l._maxLabelLines = 0, l.longestLabelWidth = 0, l.longestTextCache = l.longestTextCache || {}, l._gridLineItems = null, l._labelItems = null, l.beforeSetDimensions(), l.setDimensions(), l.afterSetDimensions(), l.beforeDataLimits(), l.determineDataLimits(), l.afterDataLimits(), l.beforeBuildTicks(), a = l.buildTicks() || [], (!(a = l.afterBuildTicks(a) || a) || !a.length) && l.ticks)
for (a = [], i = 0, r = l.ticks.length; i < r; ++i) a.push({
value: l.ticks[i],
major: !1
});
return l._ticks = a, s = u < a.length, o = l._convertTicksToLabels(s ? function(e, t) {
for (var n = [], i = e.length / t, r = 0, o = e.length; r < o; r += i) n.push(e[Math.floor(r)]);
return n
}(a, u) : a), l._configure(), l.beforeCalculateTickRotation(), l.calculateTickRotation(), l.afterCalculateTickRotation(), l.beforeFit(), l.fit(), l.afterFit(), l._ticksToDraw = c.display && (c.autoSkip || "auto" === c.source) ? l._autoSkip(a) : a, s && (o = l._convertTicksToLabels(l._ticksToDraw)), l.ticks = o, l.afterUpdate(), l.minSize
},
_configure: function() {
var e, t, n = this,
i = n.options.ticks.reverse;
n.isHorizontal() ? (e = n.left, t = n.right) : (e = n.top, t = n.bottom, i = !i), n._startPixel = e, n._endPixel = t, n._reversePixels = i, n._length = t - e
},
afterUpdate: function() {
H.callback(this.options.afterUpdate, [this])
},
beforeSetDimensions: function() {
H.callback(this.options.beforeSetDimensions, [this])
},
setDimensions: function() {
var e = this;
e.isHorizontal() ? (e.width = e.maxWidth, e.left = 0, e.right = e.width) : (e.height = e.maxHeight, e.top = 0, e.bottom = e.height), e.paddingLeft = 0, e.paddingTop = 0, e.paddingRight = 0, e.paddingBottom = 0
},
afterSetDimensions: function() {
H.callback(this.options.afterSetDimensions, [this])
},
beforeDataLimits: function() {
H.callback(this.options.beforeDataLimits, [this])
},
determineDataLimits: H.noop,
afterDataLimits: function() {
H.callback(this.options.afterDataLimits, [this])
},
beforeBuildTicks: function() {
H.callback(this.options.beforeBuildTicks, [this])
},
buildTicks: H.noop,
afterBuildTicks: function(e) {
var t = this;
return Jt(e) && e.length ? H.callback(t.options.afterBuildTicks, [t, e]) : (t.ticks = H.callback(t.options.afterBuildTicks, [t, t.ticks]) || t.ticks, e)
},
beforeTickToLabelConversion: function() {
H.callback(this.options.beforeTickToLabelConversion, [this])
},
convertTicksToLabels: function() {
var e = this.options.ticks;
this.ticks = this.ticks.map(e.userCallback || e.callback, this)
},
afterTickToLabelConversion: function() {
H.callback(this.options.afterTickToLabelConversion, [this])
},
beforeCalculateTickRotation: function() {
H.callback(this.options.beforeCalculateTickRotation, [this])
},
calculateTickRotation: function() {
var e, t, n, i, r, o, a, s = this,
l = s.options,
c = l.ticks,
u = s.getTicks().length,
d = c.minRotation || 0,
h = c.maxRotation,
f = d;
!s._isVisible() || !c.display || d >= h || u <= 1 || !s.isHorizontal() ? s.labelRotation = d : (t = (e = s._getLabelSizes()).widest.width, n = e.highest.height - e.highest.offset, i = Math.min(s.maxWidth, s.chart.width - t), t + 6 > (r = l.offset ? s.maxWidth / u : i / (u - 1)) && (r = i / (u - (l.offset ? .5 : 1)), o = s.maxHeight - rn(l.gridLines) - c.padding - on(l.scaleLabel), a = Math.sqrt(t * t + n * n), f = H.toDegrees(Math.min(Math.asin(Math.min((e.highest.height + 6) / r, 1)), Math.asin(Math.min(o / a, 1)) - Math.asin(n / a))), f = Math.max(d, Math.min(h, f))), s.labelRotation = f)
},
afterCalculateTickRotation: function() {
H.callback(this.options.afterCalculateTickRotation, [this])
},
beforeFit: function() {
H.callback(this.options.beforeFit, [this])
},
fit: function() {
var e = this,
t = e.minSize = {
width: 0,
height: 0
},
n = e.chart,
i = e.options,
r = i.ticks,
o = i.scaleLabel,
a = i.gridLines,
s = e._isVisible(),
l = "bottom" === i.position,
c = e.isHorizontal();
if (c ? t.width = e.maxWidth : s && (t.width = rn(a) + on(o)), c ? s && (t.height = rn(a) + on(o)) : t.height = e.maxHeight, r.display && s) {
var u = sn(r),
d = e._getLabelSizes(),
h = d.first,
f = d.last,
p = d.widest,
g = d.highest,
m = .4 * u.minor.lineHeight,
v = r.padding;
if (c) {
var y = 0 !== e.labelRotation,
b = H.toRadians(e.labelRotation),
w = Math.cos(b),
x = Math.sin(b),
_ = x * p.width + w * (g.height - (y ? g.offset : 0)) + (y ? 0 : m);
t.height = Math.min(e.maxHeight, t.height + _ + v);
var C, k, S = e.getPixelForTick(0) - e.left,
T = e.right - e.getPixelForTick(e.getTicks().length - 1);
y ? (C = l ? w * h.width + x * h.offset : x * (h.height - h.offset), k = l ? x * (f.height - f.offset) : w * f.width + x * f.offset) : (C = h.width / 2, k = f.width / 2), e.paddingLeft = Math.max((C - S) * e.width / (e.width - S), 0) + 3, e.paddingRight = Math.max((k - T) * e.width / (e.width - T), 0) + 3
} else {
var D = r.mirror ? 0 : p.width + v + m;
t.width = Math.min(e.maxWidth, t.width + D), e.paddingTop = h.height / 2, e.paddingBottom = f.height / 2
}
}
e.handleMargins(), c ? (e.width = e._length = n.width - e.margins.left - e.margins.right, e.height = t.height) : (e.width = t.width, e.height = e._length = n.height - e.margins.top - e.margins.bottom)
},
handleMargins: function() {
var e = this;
e.margins && (e.margins.left = Math.max(e.paddingLeft, e.margins.left), e.margins.top = Math.max(e.paddingTop, e.margins.top), e.margins.right = Math.max(e.paddingRight, e.margins.right), e.margins.bottom = Math.max(e.paddingBottom, e.margins.bottom))
},
afterFit: function() {
H.callback(this.options.afterFit, [this])
},
isHorizontal: function() {
var e = this.options.position;
return "top" === e || "bottom" === e
},
isFullWidth: function() {
return this.options.fullWidth
},
getRightValue: function(e) {
if (Zt(e)) return NaN;
if (("number" == typeof e || e instanceof Number) && !isFinite(e)) return NaN;
if (e)
if (this.isHorizontal()) {
if (void 0 !== e.x) return this.getRightValue(e.x)
} else if (void 0 !== e.y) return this.getRightValue(e.y);
return e
},
_convertTicksToLabels: function(e) {
var t, n, i, r = this;
for (r.ticks = e.map((function(e) {
return e.value
})), r.beforeTickToLabelConversion(), t = r.convertTicksToLabels(e) || r.ticks, r.afterTickToLabelConversion(), n = 0, i = e.length; n < i; ++n) e[n].label = t[n];
return t
},
_getLabelSizes: function() {
var e = this,
t = e._labelSizes;
return t || (e._labelSizes = t = function(e, t, n, i) {
var r, o, a, s, l, c, u, d, h, f, p, g, m, v = n.length,
y = [],
b = [],
w = [];
for (r = 0; r < v; ++r) {
if (s = n[r].label, l = n[r].major ? t.major : t.minor, e.font = c = l.string, u = i[c] = i[c] || {
data: {},
gc: []
}, d = l.lineHeight, h = f = 0, Zt(s) || Jt(s)) {
if (Jt(s))
for (o = 0, a = s.length; o < a; ++o) p = s[o], Zt(p) || Jt(p) || (h = H.measureText(e, u.data, u.gc, h, p), f += d)
} else h = H.measureText(e, u.data, u.gc, h, s), f = d;
y.push(h), b.push(f), w.push(d / 2)
}
function x(e) {
return {
width: y[e] || 0,
height: b[e] || 0,
offset: w[e] || 0
}
}
return function(e, t) {
H.each(e, (function(e) {
var n, i = e.gc,
r = i.length / 2;
if (r > t) {
for (n = 0; n < r; ++n) delete e.data[i[n]];
i.splice(0, r)
}
}))
}(i, v), g = y.indexOf(Math.max.apply(null, y)), m = b.indexOf(Math.max.apply(null, b)), {
first: x(0),
last: x(v - 1),
widest: x(g),
highest: x(m)
}
}(e.ctx, sn(e.options.ticks), e.getTicks(), e.longestTextCache), e.longestLabelWidth = t.widest.width), t
},
_parseValue: function(e) {
var t, n, i, r;
return Jt(e) ? (t = +this.getRightValue(e[0]), n = +this.getRightValue(e[1]), i = Math.min(t, n), r = Math.max(t, n)) : (t = void 0, n = e = +this.getRightValue(e), i = e, r = e), {
min: i,
max: r,
start: t,
end: n
}
},
_getScaleLabel: function(e) {
var t = this._parseValue(e);
return void 0 !== t.start ? "[" + t.start + ", " + t.end + "]" : +this.getRightValue(e)
},
getLabelForIndex: H.noop,
getPixelForValue: H.noop,
getValueForPixel: H.noop,
getPixelForTick: function(e) {
var t = this.options.offset,
n = this._ticks.length,
i = 1 / Math.max(n - (t ? 0 : 1), 1);
return e < 0 || e > n - 1 ? null : this.getPixelForDecimal(e * i + (t ? i / 2 : 0))
},
getPixelForDecimal: function(e) {
return this._reversePixels && (e = 1 - e), this._startPixel + e * this._length
},
getDecimalForPixel: function(e) {
var t = (e - this._startPixel) / this._length;
return this._reversePixels ? 1 - t : t
},
getBasePixel: function() {
return this.getPixelForValue(this.getBaseValue())
},
getBaseValue: function() {
var e = this.min,
t = this.max;
return this.beginAtZero ? 0 : e < 0 && t < 0 ? t : e > 0 && t > 0 ? e : 0
},
_autoSkip: function(e) {
var t, n, i, r, o = this.options.ticks,
a = this._length,
s = o.maxTicksLimit || a / this._tickSize() + 1,
l = o.major.enabled ? function(e) {
var t, n, i = [];
for (t = 0, n = e.length; t < n; t++) e[t].major && i.push(t);
return i
}(e) : [],
c = l.length,
u = l[0],
d = l[c - 1];
if (c > s) return function(e, t, n) {
var i, r, o = 0,
a = t[0];
for (n = Math.ceil(n), i = 0; i < e.length; i++) r = e[i], i === a ? (r._index = i, a = t[++o * n]) : delete r.label
}(e, l, c / s), ln(e);
if (i = function(e, t, n, i) {
var r, o, a, s, l = function(e) {
var t, n, i = e.length;
if (i < 2) return !1;
for (n = e[0], t = 1; t < i; ++t)
if (e[t] - e[t - 1] !== n) return !1;
return n
}(e),
c = (t.length - 1) / i;
if (!l) return Math.max(c, 1);
for (a = 0, s = (r = H.math._factorize(l)).length - 1; a < s; a++)
if ((o = r[a]) > c) return o;
return Math.max(c, 1)
}(l, e, 0, s), c > 0) {
for (t = 0, n = c - 1; t < n; t++) cn(e, i, l[t], l[t + 1]);
return r = c > 1 ? (d - u) / (c - 1) : null, cn(e, i, H.isNullOrUndef(r) ? 0 : u - r, u), cn(e, i, d, H.isNullOrUndef(r) ? e.length : d + r), ln(e)
}
return cn(e, i), ln(e)
},
_tickSize: function() {
var e = this.options.ticks,
t = H.toRadians(this.labelRotation),
n = Math.abs(Math.cos(t)),
i = Math.abs(Math.sin(t)),
r = this._getLabelSizes(),
o = e.autoSkipPadding || 0,
a = r ? r.widest.width + o : 0,
s = r ? r.highest.height + o : 0;
return this.isHorizontal() ? s * n > a * i ? a / n : s / i : s * i < a * n ? s / n : a / i
},
_isVisible: function() {
var e, t, n, i = this.chart,
r = this.options.display;
if ("auto" !== r) return !!r;
for (e = 0, t = i.data.datasets.length; e < t; ++e)
if (i.isDatasetVisible(e) && ((n = i.getDatasetMeta(e)).xAxisID === this.id || n.yAxisID === this.id)) return !0;
return !1
},
_computeGridLineItems: function(e) {
var t, n, i, r, o, a, s, l, c, u, d, h, f, p, g, m, v, y = this,
b = y.chart,
w = y.options,
x = w.gridLines,
_ = w.position,
C = x.offsetGridLines,
k = y.isHorizontal(),
S = y._ticksToDraw,
T = S.length + (C ? 1 : 0),
D = rn(x),
E = [],
A = x.drawBorder ? tn(x.lineWidth, 0, 0) : 0,
M = A / 2,
O = H._alignPixel,
I = function(e) {
return O(b, e, A)
};
for ("top" === _ ? (t = I(y.bottom), s = y.bottom - D, c = t - M, d = I(e.top) + M, f = e.bottom) : "bottom" === _ ? (t = I(y.top), d = e.top, f = I(e.bottom) - M, s = t + M, c = y.top + D) : "left" === _ ? (t = I(y.right), a = y.right - D, l = t - M, u = I(e.left) + M, h = e.right) : (t = I(y.left), u = e.left, h = I(e.right) - M, a = t + M, l = y.left + D), n = 0; n < T; ++n) i = S[n] || {}, Zt(i.label) && n < S.length || (n === y.zeroLineIndex && w.offset === C ? (p = x.zeroLineWidth, g = x.zeroLineColor, m = x.zeroLineBorderDash || [], v = x.zeroLineBorderDashOffset || 0) : (p = tn(x.lineWidth, n, 1), g = tn(x.color, n, "rgba(0,0,0,0.1)"), m = x.borderDash || [], v = x.borderDashOffset || 0), void 0 !== (r = nn(y, i._index || n, C)) && (o = O(b, r, p), k ? a = l = u = h = o : s = c = d = f = o, E.push({
tx1: a,
ty1: s,
tx2: l,
ty2: c,
x1: u,
y1: d,
x2: h,
y2: f,
width: p,
color: g,
borderDash: m,
borderDashOffset: v
})));
return E.ticksLength = T, E.borderValue = t, E
},
_computeLabelItems: function() {
var e, t, n, i, r, o, a, s, l, c, u, d, h = this,
f = h.options,
p = f.ticks,
g = f.position,
m = p.mirror,
v = h.isHorizontal(),
y = h._ticksToDraw,
b = sn(p),
w = p.padding,
x = rn(f.gridLines),
_ = -H.toRadians(h.labelRotation),
C = [];
for ("top" === g ? (o = h.bottom - x - w, a = _ ? "left" : "center") : "bottom" === g ? (o = h.top + x + w, a = _ ? "right" : "center") : "left" === g ? (r = h.right - (m ? 0 : x) - w, a = m ? "left" : "right") : (r = h.left + (m ? 0 : x) + w, a = m ? "right" : "left"), e = 0, t = y.length; e < t; ++e) i = (n = y[e]).label, Zt(i) || (s = h.getPixelForTick(n._index || e) + p.labelOffset, c = (l = n.major ? b.major : b.minor).lineHeight, u = Jt(i) ? i.length : 1, v ? (r = s, d = "top" === g ? ((_ ? 1 : .5) - u) * c : (_ ? 0 : .5) * c) : (o = s, d = (1 - u) * c / 2), C.push({
x: r,
y: o,
rotation: _,
label: i,
font: l,
textOffset: d,
textAlign: a
}));
return C
},
_drawGrid: function(e) {
var t = this,
n = t.options.gridLines;
if (n.display) {
var i, r, o, a, s, l = t.ctx,
c = t.chart,
u = H._alignPixel,
d = n.drawBorder ? tn(n.lineWidth, 0, 0) : 0,
h = t._gridLineItems || (t._gridLineItems = t._computeGridLineItems(e));
for (o = 0, a = h.length; o < a; ++o) i = (s = h[o]).width, r = s.color, i && r && (l.save(), l.lineWidth = i, l.strokeStyle = r, l.setLineDash && (l.setLineDash(s.borderDash), l.lineDashOffset = s.borderDashOffset), l.beginPath(), n.drawTicks && (l.moveTo(s.tx1, s.ty1), l.lineTo(s.tx2, s.ty2)), n.drawOnChartArea && (l.moveTo(s.x1, s.y1), l.lineTo(s.x2, s.y2)), l.stroke(), l.restore());
if (d) {
var f, p, g, m, v = d,
y = tn(n.lineWidth, h.ticksLength - 1, 1),
b = h.borderValue;
t.isHorizontal() ? (f = u(c, t.left, v) - v / 2, p = u(c, t.right, y) + y / 2, g = m = b) : (g = u(c, t.top, v) - v / 2, m = u(c, t.bottom, y) + y / 2, f = p = b), l.lineWidth = d, l.strokeStyle = tn(n.color, 0), l.beginPath(), l.moveTo(f, g), l.lineTo(p, m), l.stroke()
}
}
},
_drawLabels: function() {
var e = this;
if (e.options.ticks.display) {
var t, n, i, r, o, a, s, l, c = e.ctx,
u = e._labelItems || (e._labelItems = e._computeLabelItems());
for (t = 0, i = u.length; t < i; ++t) {
if (a = (o = u[t]).font, c.save(), c.translate(o.x, o.y), c.rotate(o.rotation), c.font = a.string, c.fillStyle = a.color, c.textBaseline = "middle", c.textAlign = o.textAlign, s = o.label, l = o.textOffset, Jt(s))
for (n = 0, r = s.length; n < r; ++n) c.fillText("" + s[n], 0, l), l += a.lineHeight;
else c.fillText(s, 0, l);
c.restore()
}
}
},
_drawTitle: function() {
var e = this,
t = e.ctx,
n = e.options,
i = n.scaleLabel;
if (i.display) {
var r, o, a = en(i.fontColor, N.global.defaultFontColor),
s = H.options._parseFont(i),
l = H.options.toPadding(i.padding),
c = s.lineHeight / 2,
u = n.position,
d = 0;
if (e.isHorizontal()) r = e.left + e.width / 2, o = "bottom" === u ? e.bottom - c - l.bottom : e.top + c + l.top;
else {
var h = "left" === u;
r = h ? e.left + c + l.top : e.right - c - l.top, o = e.top + e.height / 2, d = h ? -.5 * Math.PI : .5 * Math.PI
}
t.save(), t.translate(r, o), t.rotate(d), t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = a, t.font = s.string, t.fillText(i.labelString, 0, 0), t.restore()
}
},
draw: function(e) {
this._isVisible() && (this._drawGrid(e), this._drawTitle(), this._drawLabels())
},
_layers: function() {
var e = this,
t = e.options,
n = t.ticks && t.ticks.z || 0,
i = t.gridLines && t.gridLines.z || 0;
return e._isVisible() && n !== i && e.draw === e._draw ? [{
z: i,
draw: function() {
e._drawGrid.apply(e, arguments), e._drawTitle.apply(e, arguments)
}
}, {
z: n,
draw: function() {
e._drawLabels.apply(e, arguments)
}
}] : [{
z: n,
draw: function() {
e.draw.apply(e, arguments)
}
}]
},
_getMatchingVisibleMetas: function(e) {
var t = this,
n = t.isHorizontal();
return t.chart._getSortedVisibleDatasetMetas().filter((function(i) {
return (!e || i.type === e) && (n ? i.xAxisID === t.id : i.yAxisID === t.id)
}))
}
});
un.prototype._draw = un.prototype.draw;
var dn = un,
hn = H.isNullOrUndef,
fn = dn.extend({
determineDataLimits: function() {
var e, t = this,
n = t._getLabels(),
i = t.options.ticks,
r = i.min,
o = i.max,
a = 0,
s = n.length - 1;
void 0 !== r && (e = n.indexOf(r)) >= 0 && (a = e), void 0 !== o && (e = n.indexOf(o)) >= 0 && (s = e), t.minIndex = a, t.maxIndex = s, t.min = n[a], t.max = n[s]
},
buildTicks: function() {
var e = this._getLabels(),
t = this.minIndex,
n = this.maxIndex;
this.ticks = 0 === t && n === e.length - 1 ? e : e.slice(t, n + 1)
},
getLabelForIndex: function(e, t) {
var n = this.chart;
return n.getDatasetMeta(t).controller._getValueScaleId() === this.id ? this.getRightValue(n.data.datasets[t].data[e]) : this._getLabels()[e]
},
_configure: function() {
var e = this,
t = e.options.offset,
n = e.ticks;
dn.prototype._configure.call(e), e.isHorizontal() || (e._reversePixels = !e._reversePixels), n && (e._startValue = e.minIndex - (t ? .5 : 0), e._valueRange = Math.max(n.length - (t ? 0 : 1), 1))
},
getPixelForValue: function(e, t, n) {
var i, r, o, a = this;
return hn(t) || hn(n) || (e = a.chart.data.datasets[n].data[t]), hn(e) || (i = a.isHorizontal() ? e.x : e.y), (void 0 !== i || void 0 !== e && isNaN(t)) && (r = a._getLabels(), e = H.valueOrDefault(i, e), t = -1 !== (o = r.indexOf(e)) ? o : t, isNaN(t) && (t = e)), a.getPixelForDecimal((t - a._startValue) / a._valueRange)
},
getPixelForTick: function(e) {
var t = this.ticks;
return e < 0 || e > t.length - 1 ? null : this.getPixelForValue(t[e], e + this.minIndex)
},
getValueForPixel: function(e) {
var t = Math.round(this._startValue + this.getDecimalForPixel(e) * this._valueRange);
return Math.min(Math.max(t, 0), this.ticks.length - 1)
},
getBasePixel: function() {
return this.bottom
}
});
fn._defaults = {
position: "bottom"
};
var pn = H.noop,
gn = H.isNullOrUndef,
mn = dn.extend({
getRightValue: function(e) {
return "string" == typeof e ? +e : dn.prototype.getRightValue.call(this, e)
},
handleTickRangeOptions: function() {
var e = this,
t = e.options.ticks;
if (t.beginAtZero) {
var n = H.sign(e.min),
i = H.sign(e.max);
n < 0 && i < 0 ? e.max = 0 : n > 0 && i > 0 && (e.min = 0)
}
var r = void 0 !== t.min || void 0 !== t.suggestedMin,
o = void 0 !== t.max || void 0 !== t.suggestedMax;
void 0 !== t.min ? e.min = t.min : void 0 !== t.suggestedMin && (null === e.min ? e.min = t.suggestedMin : e.min = Math.min(e.min, t.suggestedMin)), void 0 !== t.max ? e.max = t.max : void 0 !== t.suggestedMax && (null === e.max ? e.max = t.suggestedMax : e.max = Math.max(e.max, t.suggestedMax)), r !== o && e.min >= e.max && (r ? e.max = e.min + 1 : e.min = e.max - 1), e.min === e.max && (e.max++, t.beginAtZero || e.min--)
},
getTickLimit: function() {
var e, t = this.options.ticks,
n = t.stepSize,
i = t.maxTicksLimit;
return n ? e = Math.ceil(this.max / n) - Math.floor(this.min / n) + 1 : (e = this._computeTickLimit(), i = i || 11), i && (e = Math.min(i, e)), e
},
_computeTickLimit: function() {
return Number.POSITIVE_INFINITY
},
handleDirectionalChanges: pn,
buildTicks: function() {
var e = this,
t = e.options.ticks,
n = e.getTickLimit(),
i = {
maxTicks: n = Math.max(2, n),
min: t.min,
max: t.max,
precision: t.precision,
stepSize: H.valueOrDefault(t.fixedStepSize, t.stepSize)
},
r = e.ticks = function(e, t) {
var n, i, r, o, a = [],
s = e.stepSize,
l = s || 1,
c = e.maxTicks - 1,
u = e.min,
d = e.max,
h = e.precision,
f = t.min,
p = t.max,
g = H.niceNum((p - f) / c / l) * l;
if (g < 1e-14 && gn(u) && gn(d)) return [f, p];
(o = Math.ceil(p / g) - Math.floor(f / g)) > c && (g = H.niceNum(o * g / c / l) * l), s || gn(h) ? n = Math.pow(10, H._decimalPlaces(g)) : (n = Math.pow(10, h), g = Math.ceil(g * n) / n), i = Math.floor(f / g) * g, r = Math.ceil(p / g) * g, s && (!gn(u) && H.almostWhole(u / g, g / 1e3) && (i = u), !gn(d) && H.almostWhole(d / g, g / 1e3) && (r = d)), o = (r - i) / g, o = H.almostEquals(o, Math.round(o), g / 1e3) ? Math.round(o) : Math.ceil(o), i = Math.round(i * n) / n, r = Math.round(r * n) / n, a.push(gn(u) ? i : u);
for (var m = 1; m < o; ++m) a.push(Math.round((i + m * g) * n) / n);
return a.push(gn(d) ? r : d), a
}(i, e);
e.handleDirectionalChanges(), e.max = H.max(r), e.min = H.min(r), t.reverse ? (r.reverse(), e.start = e.max, e.end = e.min) : (e.start = e.min, e.end = e.max)
},
convertTicksToLabels: function() {
var e = this;
e.ticksAsNumbers = e.ticks.slice(), e.zeroLineIndex = e.ticks.indexOf(0), dn.prototype.convertTicksToLabels.call(e)
},
_configure: function() {
var e, t = this,
n = t.getTicks(),
i = t.min,
r = t.max;
dn.prototype._configure.call(t), t.options.offset && n.length && (i -= e = (r - i) / Math.max(n.length - 1, 1) / 2, r += e), t._startValue = i, t._endValue = r, t._valueRange = r - i
}
}),
vn = {
position: "left",
ticks: {
callback: Kt.formatters.linear
}
};
function yn(e, t, n, i) {
var r, o, a = e.options,
s = function(e, t, n) {
var i = [n.type, void 0 === t && void 0 === n.stack ? n.index : "", n.stack].join(".");
return void 0 === e[i] && (e[i] = {
pos: [],
neg: []
}), e[i]
}(t, a.stacked, n),
l = s.pos,
c = s.neg,
u = i.length;
for (r = 0; r < u; ++r) o = e._parseValue(i[r]), isNaN(o.min) || isNaN(o.max) || n.data[r].hidden || (l[r] = l[r] || 0, c[r] = c[r] || 0, a.relativePoints ? l[r] = 100 : o.min < 0 || o.max < 0 ? c[r] += o.min : l[r] += o.max)
}
function bn(e, t, n) {
var i, r, o = n.length;
for (i = 0; i < o; ++i) r = e._parseValue(n[i]), isNaN(r.min) || isNaN(r.max) || t.data[i].hidden || (e.min = Math.min(e.min, r.min), e.max = Math.max(e.max, r.max))
}
var wn = mn.extend({
determineDataLimits: function() {
var e, t, n, i, r = this,
o = r.options,
a = r.chart.data.datasets,
s = r._getMatchingVisibleMetas(),
l = o.stacked,
c = {},
u = s.length;
if (r.min = Number.POSITIVE_INFINITY, r.max = Number.NEGATIVE_INFINITY, void 0 === l)
for (e = 0; !l && e < u; ++e) l = void 0 !== (t = s[e]).stack;
for (e = 0; e < u; ++e) n = a[(t = s[e]).index].data, l ? yn(r, c, t, n) : bn(r, t, n);
H.each(c, (function(e) {
i = e.pos.concat(e.neg), r.min = Math.min(r.min, H.min(i)), r.max = Math.max(r.max, H.max(i))
})), r.min = H.isFinite(r.min) && !isNaN(r.min) ? r.min : 0, r.max = H.isFinite(r.max) && !isNaN(r.max) ? r.max : 1, r.handleTickRangeOptions()
},
_computeTickLimit: function() {
var e;
return this.isHorizontal() ? Math.ceil(this.width / 40) : (e = H.options._parseFont(this.options.ticks), Math.ceil(this.height / e.lineHeight))
},
handleDirectionalChanges: function() {
this.isHorizontal() || this.ticks.reverse()
},
getLabelForIndex: function(e, t) {
return this._getScaleLabel(this.chart.data.datasets[t].data[e])
},
getPixelForValue: function(e) {
return this.getPixelForDecimal((+this.getRightValue(e) - this._startValue) / this._valueRange)
},
getValueForPixel: function(e) {
return this._startValue + this.getDecimalForPixel(e) * this._valueRange
},
getPixelForTick: function(e) {
var t = this.ticksAsNumbers;
return e < 0 || e > t.length - 1 ? null : this.getPixelForValue(t[e])
}
}),
xn = vn;
wn._defaults = xn;
var _n = H.valueOrDefault,
Cn = H.math.log10,
kn = {
position: "left",
ticks: {
callback: Kt.formatters.logarithmic
}
};
function Sn(e, t) {
return H.isFinite(e) && e >= 0 ? e : t
}
var Tn = dn.extend({
determineDataLimits: function() {
var e, t, n, i, r, o, a = this,
s = a.options,
l = a.chart,
c = l.data.datasets,
u = a.isHorizontal();
function d(e) {
return u ? e.xAxisID === a.id : e.yAxisID === a.id
}
a.min = Number.POSITIVE_INFINITY, a.max = Number.NEGATIVE_INFINITY, a.minNotZero = Number.POSITIVE_INFINITY;
var h = s.stacked;
if (void 0 === h)
for (e = 0; e < c.length; e++)
if (t = l.getDatasetMeta(e), l.isDatasetVisible(e) && d(t) && void 0 !== t.stack) {
h = !0;
break
}
if (s.stacked || h) {
var f = {};
for (e = 0; e < c.length; e++) {
var p = [(t = l.getDatasetMeta(e)).type, void 0 === s.stacked && void 0 === t.stack ? e : "", t.stack].join(".");
if (l.isDatasetVisible(e) && d(t))
for (void 0 === f[p] && (f[p] = []), r = 0, o = (i = c[e].data).length; r < o; r++) {
var g = f[p];
n = a._parseValue(i[r]), isNaN(n.min) || isNaN(n.max) || t.data[r].hidden || n.min < 0 || n.max < 0 || (g[r] = g[r] || 0, g[r] += n.max)
}
}
H.each(f, (function(e) {
if (e.length > 0) {
var t = H.min(e),
n = H.max(e);
a.min = Math.min(a.min, t), a.max = Math.max(a.max, n)
}
}))
} else
for (e = 0; e < c.length; e++)
if (t = l.getDatasetMeta(e), l.isDatasetVisible(e) && d(t))
for (r = 0, o = (i = c[e].data).length; r < o; r++) n = a._parseValue(i[r]), isNaN(n.min) || isNaN(n.max) || t.data[r].hidden || n.min < 0 || n.max < 0 || (a.min = Math.min(n.min, a.min), a.max = Math.max(n.max, a.max), 0 !== n.min && (a.minNotZero = Math.min(n.min, a.minNotZero)));
a.min = H.isFinite(a.min) ? a.min : null, a.max = H.isFinite(a.max) ? a.max : null, a.minNotZero = H.isFinite(a.minNotZero) ? a.minNotZero : null, this.handleTickRangeOptions()
},
handleTickRangeOptions: function() {
var e = this,
t = e.options.ticks;
e.min = Sn(t.min, e.min), e.max = Sn(t.max, e.max), e.min === e.max && (0 !== e.min && null !== e.min ? (e.min = Math.pow(10, Math.floor(Cn(e.min)) - 1), e.max = Math.pow(10, Math.floor(Cn(e.max)) + 1)) : (e.min = 1, e.max = 10)), null === e.min && (e.min = Math.pow(10, Math.floor(Cn(e.max)) - 1)), null === e.max && (e.max = 0 !== e.min ? Math.pow(10, Math.floor(Cn(e.min)) + 1) : 10), null === e.minNotZero && (e.min > 0 ? e.minNotZero = e.min : e.max < 1 ? e.minNotZero = Math.pow(10, Math.floor(Cn(e.max))) : e.minNotZero = 1)
},
buildTicks: function() {
var e = this,
t = e.options.ticks,
n = !e.isHorizontal(),
i = {
min: Sn(t.min),
max: Sn(t.max)
},
r = e.ticks = function(e, t) {
var n, i, r = [],
o = _n(e.min, Math.pow(10, Math.floor(Cn(t.min)))),
a = Math.floor(Cn(t.max)),
s = Math.ceil(t.max / Math.pow(10, a));
0 === o ? (n = Math.floor(Cn(t.minNotZero)), i = Math.floor(t.minNotZero / Math.pow(10, n)), r.push(o), o = i * Math.pow(10, n)) : (n = Math.floor(Cn(o)), i = Math.floor(o / Math.pow(10, n)));
var l = n < 0 ? Math.pow(10, Math.abs(n)) : 1;
do {
r.push(o), 10 == ++i && (i = 1, l = ++n >= 0 ? 1 : l), o = Math.round(i * Math.pow(10, n) * l) / l
} while (n < a || n === a && i < s);
var c = _n(e.max, o);
return r.push(c), r
}(i, e);
e.max = H.max(r), e.min = H.min(r), t.reverse ? (n = !n, e.start = e.max, e.end = e.min) : (e.start = e.min, e.end = e.max), n && r.reverse()
},
convertTicksToLabels: function() {
this.tickValues = this.ticks.slice(), dn.prototype.convertTicksToLabels.call(this)
},
getLabelForIndex: function(e, t) {
return this._getScaleLabel(this.chart.data.datasets[t].data[e])
},
getPixelForTick: function(e) {
var t = this.tickValues;
return e < 0 || e > t.length - 1 ? null : this.getPixelForValue(t[e])
},
_getFirstTickValue: function(e) {
var t = Math.floor(Cn(e));
return Math.floor(e / Math.pow(10, t)) * Math.pow(10, t)
},
_configure: function() {
var e = this,
t = e.min,
n = 0;
dn.prototype._configure.call(e), 0 === t && (t = e._getFirstTickValue(e.minNotZero), n = _n(e.options.ticks.fontSize, N.global.defaultFontSize) / e._length), e._startValue = Cn(t), e._valueOffset = n, e._valueRange = (Cn(e.max) - Cn(t)) / (1 - n)
},
getPixelForValue: function(e) {
var t = this,
n = 0;
return (e = +t.getRightValue(e)) > t.min && e > 0 && (n = (Cn(e) - t._startValue) / t._valueRange + t._valueOffset), t.getPixelForDecimal(n)
},
getValueForPixel: function(e) {
var t = this,
n = t.getDecimalForPixel(e);
return 0 === n && 0 === t.min ? 0 : Math.pow(10, t._startValue + (n - t._valueOffset) * t._valueRange)
}
}),
Dn = kn;
Tn._defaults = Dn;
var En = H.valueOrDefault,
An = H.valueAtIndexOrDefault,
Mn = H.options.resolve,
On = {
display: !0,
animate: !0,
position: "chartArea",
angleLines: {
display: !0,
color: "rgba(0,0,0,0.1)",
lineWidth: 1,
borderDash: [],
borderDashOffset: 0
},
gridLines: {
circular: !1
},
ticks: {
showLabelBackdrop: !0,
backdropColor: "rgba(255,255,255,0.75)",
backdropPaddingY: 2,
backdropPaddingX: 2,
callback: Kt.formatters.linear
},
pointLabels: {
display: !0,
fontSize: 10,
callback: function(e) {
return e
}
}
};
function In(e) {
var t = e.ticks;
return t.display && e.display ? En(t.fontSize, N.global.defaultFontSize) + 2 * t.backdropPaddingY : 0
}
function Pn(e, t, n, i, r) {
return e === i || e === r ? {
start: t - n / 2,
end: t + n / 2
} : e < i || e > r ? {
start: t - n,
end: t
} : {
start: t,
end: t + n
}
}
function Ln(e) {
return 0 === e || 180 === e ? "center" : e < 180 ? "left" : "right"
}
function Fn(e, t, n, i) {
var r, o, a = n.y + i / 2;
if (H.isArray(t))
for (r = 0, o = t.length; r < o; ++r) e.fillText(t[r], n.x, a), a += i;
else e.fillText(t, n.x, a)
}
function Nn(e, t, n) {
90 === e || 270 === e ? n.y -= t.h / 2 : (e > 270 || e < 90) && (n.y -= t.h)
}
function Rn(e) {
return H.isNumber(e) ? e : 0
}
var jn = mn.extend({
setDimensions: function() {
var e = this;
e.width = e.maxWidth, e.height = e.maxHeight, e.paddingTop = In(e.options) / 2, e.xCenter = Math.floor(e.width / 2), e.yCenter = Math.floor((e.height - e.paddingTop) / 2), e.drawingArea = Math.min(e.height - e.paddingTop, e.width) / 2
},
determineDataLimits: function() {
var e = this,
t = e.chart,
n = Number.POSITIVE_INFINITY,
i = Number.NEGATIVE_INFINITY;
H.each(t.data.datasets, (function(r, o) {
if (t.isDatasetVisible(o)) {
var a = t.getDatasetMeta(o);
H.each(r.data, (function(t, r) {
var o = +e.getRightValue(t);
isNaN(o) || a.data[r].hidden || (n = Math.min(o, n), i = Math.max(o, i))
}))
}
})), e.min = n === Number.POSITIVE_INFINITY ? 0 : n, e.max = i === Number.NEGATIVE_INFINITY ? 0 : i, e.handleTickRangeOptions()
},
_computeTickLimit: function() {
return Math.ceil(this.drawingArea / In(this.options))
},
convertTicksToLabels: function() {
var e = this;
mn.prototype.convertTicksToLabels.call(e), e.pointLabels = e.chart.data.labels.map((function() {
var t = H.callback(e.options.pointLabels.callback, arguments, e);
return t || 0 === t ? t : ""
}))
},
getLabelForIndex: function(e, t) {
return +this.getRightValue(this.chart.data.datasets[t].data[e])
},
fit: function() {
var e = this.options;
e.display && e.pointLabels.display ? function(e) {
var t, n, i, r = H.options._parseFont(e.options.pointLabels),
o = {
l: 0,
r: e.width,
t: 0,
b: e.height - e.paddingTop
},
a = {};
e.ctx.font = r.string, e._pointLabelSizes = [];
var s, l, c, u = e.chart.data.labels.length;
for (t = 0; t < u; t++) {
i = e.getPointPosition(t, e.drawingArea + 5), s = e.ctx, l = r.lineHeight, c = e.pointLabels[t], n = H.isArray(c) ? {
w: H.longestText(s, s.font, c),
h: c.length * l
} : {
w: s.measureText(c).width,
h: l
}, e._pointLabelSizes[t] = n;
var d = e.getIndexAngle(t),
h = H.toDegrees(d) % 360,
f = Pn(h, i.x, n.w, 0, 180),
p = Pn(h, i.y, n.h, 90, 270);
f.start < o.l && (o.l = f.start, a.l = d), f.end > o.r && (o.r = f.end, a.r = d), p.start < o.t && (o.t = p.start, a.t = d), p.end > o.b && (o.b = p.end, a.b = d)
}
e.setReductions(e.drawingArea, o, a)
}(this) : this.setCenterPoint(0, 0, 0, 0)
},
setReductions: function(e, t, n) {
var i = this,
r = t.l / Math.sin(n.l),
o = Math.max(t.r - i.width, 0) / Math.sin(n.r),
a = -t.t / Math.cos(n.t),
s = -Math.max(t.b - (i.height - i.paddingTop), 0) / Math.cos(n.b);
r = Rn(r), o = Rn(o), a = Rn(a), s = Rn(s), i.drawingArea = Math.min(Math.floor(e - (r + o) / 2), Math.floor(e - (a + s) / 2)), i.setCenterPoint(r, o, a, s)
},
setCenterPoint: function(e, t, n, i) {
var r = this,
o = r.width - t - r.drawingArea,
a = e + r.drawingArea,
s = n + r.drawingArea,
l = r.height - r.paddingTop - i - r.drawingArea;
r.xCenter = Math.floor((a + o) / 2 + r.left), r.yCenter = Math.floor((s + l) / 2 + r.top + r.paddingTop)
},
getIndexAngle: function(e) {
var t = this.chart,
n = (e * (360 / t.data.labels.length) + ((t.options || {}).startAngle || 0)) % 360;
return (n < 0 ? n + 360 : n) * Math.PI * 2 / 360
},
getDistanceFromCenterForValue: function(e) {
var t = this;
if (H.isNullOrUndef(e)) return NaN;
var n = t.drawingArea / (t.max - t.min);
return t.options.ticks.reverse ? (t.max - e) * n : (e - t.min) * n
},
getPointPosition: function(e, t) {
var n = this.getIndexAngle(e) - Math.PI / 2;
return {
x: Math.cos(n) * t + this.xCenter,
y: Math.sin(n) * t + this.yCenter
}
},
getPointPositionForValue: function(e, t) {
return this.getPointPosition(e, this.getDistanceFromCenterForValue(t))
},
getBasePosition: function(e) {
var t = this.min,
n = this.max;
return this.getPointPositionForValue(e || 0, this.beginAtZero ? 0 : t < 0 && n < 0 ? n : t > 0 && n > 0 ? t : 0)
},
_drawGrid: function() {
var e, t, n, i = this,
r = i.ctx,
o = i.options,
a = o.gridLines,
s = o.angleLines,
l = En(s.lineWidth, a.lineWidth),
c = En(s.color, a.color);
if (o.pointLabels.display && function(e) {
var t = e.ctx,
n = e.options,
i = n.pointLabels,
r = In(n),
o = e.getDistanceFromCenterForValue(n.ticks.reverse ? e.min : e.max),
a = H.options._parseFont(i);
t.save(), t.font = a.string, t.textBaseline = "middle";
for (var s = e.chart.data.labels.length - 1; s >= 0; s--) {
var l = 0 === s ? r / 2 : 0,
c = e.getPointPosition(s, o + l + 5),
u = An(i.fontColor, s, N.global.defaultFontColor);
t.fillStyle = u;
var d = e.getIndexAngle(s),
h = H.toDegrees(d);
t.textAlign = Ln(h), Nn(h, e._pointLabelSizes[s], c), Fn(t, e.pointLabels[s], c, a.lineHeight)
}
t.restore()
}(i), a.display && H.each(i.ticks, (function(e, n) {
0 !== n && (t = i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]), function(e, t, n, i) {
var r, o = e.ctx,
a = t.circular,
s = e.chart.data.labels.length,
l = An(t.color, i - 1),
c = An(t.lineWidth, i - 1);
if ((a || s) && l && c) {
if (o.save(), o.strokeStyle = l, o.lineWidth = c, o.setLineDash && (o.setLineDash(t.borderDash || []), o.lineDashOffset = t.borderDashOffset || 0), o.beginPath(), a) o.arc(e.xCenter, e.yCenter, n, 0, 2 * Math.PI);
else {
r = e.getPointPosition(0, n), o.moveTo(r.x, r.y);
for (var u = 1; u < s; u++) r = e.getPointPosition(u, n), o.lineTo(r.x, r.y)
}
o.closePath(), o.stroke(), o.restore()
}
}(i, a, t, n))
})), s.display && l && c) {
for (r.save(), r.lineWidth = l, r.strokeStyle = c, r.setLineDash && (r.setLineDash(Mn([s.borderDash, a.borderDash, []])), r.lineDashOffset = Mn([s.borderDashOffset, a.borderDashOffset, 0])), e = i.chart.data.labels.length - 1; e >= 0; e--) t = i.getDistanceFromCenterForValue(o.ticks.reverse ? i.min : i.max), n = i.getPointPosition(e, t), r.beginPath(), r.moveTo(i.xCenter, i.yCenter), r.lineTo(n.x, n.y), r.stroke();
r.restore()
}
},
_drawLabels: function() {
var e = this,
t = e.ctx,
n = e.options.ticks;
if (n.display) {
var i, r, o = e.getIndexAngle(0),
a = H.options._parseFont(n),
s = En(n.fontColor, N.global.defaultFontColor);
t.save(), t.font = a.string, t.translate(e.xCenter, e.yCenter), t.rotate(o), t.textAlign = "center", t.textBaseline = "middle", H.each(e.ticks, (function(o, l) {
(0 !== l || n.reverse) && (i = e.getDistanceFromCenterForValue(e.ticksAsNumbers[l]), n.showLabelBackdrop && (r = t.measureText(o).width, t.fillStyle = n.backdropColor, t.fillRect(-r / 2 - n.backdropPaddingX, -i - a.size / 2 - n.backdropPaddingY, r + 2 * n.backdropPaddingX, a.size + 2 * n.backdropPaddingY)), t.fillStyle = s, t.fillText(o, 0, -i))
})), t.restore()
}
},
_drawTitle: H.noop
}),
$n = On;
jn._defaults = $n;
var zn = H._deprecated,
Hn = H.options.resolve,
Bn = H.valueOrDefault,
qn = Number.MIN_SAFE_INTEGER || -9007199254740991,
Wn = Number.MAX_SAFE_INTEGER || 9007199254740991,
Un = {
millisecond: {
common: !0,
size: 1,
steps: 1e3
},
second: {
common: !0,
size: 1e3,
steps: 60
},
minute: {
common: !0,
size: 6e4,
steps: 60
},
hour: {
common: !0,
size: 36e5,
steps: 24
},
day: {
common: !0,
size: 864e5,
steps: 30
},
week: {
common: !1,
size: 6048e5,
steps: 4
},
month: {
common: !0,
size: 2628e6,
steps: 12
},
quarter: {
common: !1,
size: 7884e6,
steps: 4
},
year: {
common: !0,
size: 3154e7
}
},
Vn = Object.keys(Un);
function Yn(e, t) {
return e - t
}
function Xn(e) {
return H.valueOrDefault(e.time.min, e.ticks.min)
}
function Gn(e) {
return H.valueOrDefault(e.time.max, e.ticks.max)
}
function Qn(e, t, n, i) {
var r = function(e, t, n) {
for (var i, r, o, a = 0, s = e.length - 1; a >= 0 && a <= s;) {
if (r = e[(i = a + s >> 1) - 1] || null, o = e[i], !r) return {
lo: null,
hi: o
};
if (o[t] < n) a = i + 1;
else {
if (!(r[t] > n)) return {
lo: r,
hi: o
};
s = i - 1
}
}
return {
lo: o,
hi: null
}
}(e, t, n),
o = r.lo ? r.hi ? r.lo : e[e.length - 2] : e[0],
a = r.lo ? r.hi ? r.hi : e[e.length - 1] : e[1],
s = a[t] - o[t],
l = s ? (n - o[t]) / s : 0,
c = (a[i] - o[i]) * l;
return o[i] + c
}
function Kn(e, t) {
var n = e._adapter,
i = e.options.time,
r = i.parser,
o = r || i.format,
a = t;
return "function" == typeof r && (a = r(a)), H.isFinite(a) || (a = "string" == typeof o ? n.parse(a, o) : n.parse(a)), null !== a ? +a : (r || "function" != typeof o || (a = o(t), H.isFinite(a) || (a = n.parse(a))), a)
}
function Jn(e, t) {
if (H.isNullOrUndef(t)) return null;
var n = e.options.time,
i = Kn(e, e.getRightValue(t));
return null === i || n.round && (i = +e._adapter.startOf(i, n.round)), i
}
function Zn(e, t, n, i) {
var r, o, a, s = Vn.length;
for (r = Vn.indexOf(e); r < s - 1; ++r)
if (a = (o = Un[Vn[r]]).steps ? o.steps : Wn, o.common && Math.ceil((n - t) / (a * o.size)) <= i) return Vn[r];
return Vn[s - 1]
}
function ei(e, t, n) {
var i, r, o = [],
a = {},
s = t.length;
for (i = 0; i < s; ++i) a[r = t[i]] = i, o.push({
value: r,
major: !1
});
return 0 !== s && n ? function(e, t, n, i) {
var r, o, a = e._adapter,
s = +a.startOf(t[0].value, i),
l = t[t.length - 1].value;
for (r = s; r <= l; r = +a.add(r, 1, i))(o = n[r]) >= 0 && (t[o].major = !0);
return t
}(e, o, a, n) : o
}
var ti = dn.extend({
initialize: function() {
this.mergeTicksOptions(), dn.prototype.initialize.call(this)
},
update: function() {
var e = this,
t = e.options,
n = t.time || (t.time = {}),
i = e._adapter = new Qt._date(t.adapters.date);
return zn("time scale", n.format, "time.format", "time.parser"), zn("time scale", n.min, "time.min", "ticks.min"), zn("time scale", n.max, "time.max", "ticks.max"), H.mergeIf(n.displayFormats, i.formats()), dn.prototype.update.apply(e, arguments)
},
getRightValue: function(e) {
return e && void 0 !== e.t && (e = e.t), dn.prototype.getRightValue.call(this, e)
},
determineDataLimits: function() {
var e, t, n, i, r, o, a, s = this,
l = s.chart,
c = s._adapter,
u = s.options,
d = u.time.unit || "day",
h = Wn,
f = qn,
p = [],
g = [],
m = [],
v = s._getLabels();
for (e = 0, n = v.length; e < n; ++e) m.push(Jn(s, v[e]));
for (e = 0, n = (l.data.datasets || []).length; e < n; ++e)
if (l.isDatasetVisible(e))
if (r = l.data.datasets[e].data, H.isObject(r[0]))
for (g[e] = [], t = 0, i = r.length; t < i; ++t) o = Jn(s, r[t]), p.push(o), g[e][t] = o;
else g[e] = m.slice(0), a || (p = p.concat(m), a = !0);
else g[e] = [];
m.length && (h = Math.min(h, m[0]), f = Math.max(f, m[m.length - 1])), p.length && (p = n > 1 ? function(e) {
var t, n, i, r = {},
o = [];
for (t = 0, n = e.length; t < n; ++t) r[i = e[t]] || (r[i] = !0, o.push(i));
return o
}(p).sort(Yn) : p.sort(Yn), h = Math.min(h, p[0]), f = Math.max(f, p[p.length - 1])), h = Jn(s, Xn(u)) || h, f = Jn(s, Gn(u)) || f, h = h === Wn ? +c.startOf(Date.now(), d) : h, f = f === qn ? +c.endOf(Date.now(), d) + 1 : f, s.min = Math.min(h, f), s.max = Math.max(h + 1, f), s._table = [], s._timestamps = {
data: p,
datasets: g,
labels: m
}
},
buildTicks: function() {
var e, t, n, i = this,
r = i.min,
o = i.max,
a = i.options,
s = a.ticks,
l = a.time,
c = i._timestamps,
u = [],
d = i.getLabelCapacity(r),
h = s.source,
f = a.distribution;
for (c = "data" === h || "auto" === h && "series" === f ? c.data : "labels" === h ? c.labels : function(e, t, n, i) {
var r, o = e._adapter,
a = e.options,
s = a.time,
l = s.unit || Zn(s.minUnit, t, n, i),
c = Hn([s.stepSize, s.unitStepSize, 1]),
u = "week" === l && s.isoWeekday,
d = t,
h = [];
if (u && (d = +o.startOf(d, "isoWeek", u)), d = +o.startOf(d, u ? "day" : l), o.diff(n, t, l) > 1e5 * c) throw t + " and " + n + " are too far apart with stepSize of " + c + " " + l;
for (r = d; r < n; r = +o.add(r, c, l)) h.push(r);
return r !== n && "ticks" !== a.bounds || h.push(r), h
}(i, r, o, d), "ticks" === a.bounds && c.length && (r = c[0], o = c[c.length - 1]), r = Jn(i, Xn(a)) || r, o = Jn(i, Gn(a)) || o, e = 0, t = c.length; e < t; ++e)(n = c[e]) >= r && n <= o && u.push(n);
return i.min = r, i.max = o, i._unit = l.unit || (s.autoSkip ? Zn(l.minUnit, i.min, i.max, d) : function(e, t, n, i, r) {
var o, a;
for (o = Vn.length - 1; o >= Vn.indexOf(n); o--)
if (a = Vn[o], Un[a].common && e._adapter.diff(r, i, a) >= t - 1) return a;
return Vn[n ? Vn.indexOf(n) : 0]
}(i, u.length, l.minUnit, i.min, i.max)), i._majorUnit = s.major.enabled && "year" !== i._unit ? function(e) {
for (var t = Vn.indexOf(e) + 1, n = Vn.length; t < n; ++t)
if (Un[Vn[t]].common) return Vn[t]
}(i._unit) : void 0, i._table = function(e, t, n, i) {
if ("linear" === i || !e.length) return [{
time: t,
pos: 0
}, {
time: n,
pos: 1
}];
var r, o, a, s, l, c = [],
u = [t];
for (r = 0, o = e.length; r < o; ++r)(s = e[r]) > t && s < n && u.push(s);
for (u.push(n), r = 0, o = u.length; r < o; ++r) l = u[r + 1], a = u[r - 1], s = u[r], void 0 !== a && void 0 !== l && Math.round((l + a) / 2) === s || c.push({
time: s,
pos: r / (o - 1)
});
return c
}(i._timestamps.data, r, o, f), i._offsets = function(e, t, n, i, r) {
var o, a, s = 0,
l = 0;
return r.offset && t.length && (o = Qn(e, "time", t[0], "pos"), s = 1 === t.length ? 1 - o : (Qn(e, "time", t[1], "pos") - o) / 2, a = Qn(e, "time", t[t.length - 1], "pos"), l = 1 === t.length ? a : (a - Qn(e, "time", t[t.length - 2], "pos")) / 2), {
start: s,
end: l,
factor: 1 / (s + 1 + l)
}
}(i._table, u, 0, 0, a), s.reverse && u.reverse(), ei(i, u, i._majorUnit)
},
getLabelForIndex: function(e, t) {
var n = this,
i = n._adapter,
r = n.chart.data,
o = n.options.time,
a = r.labels && e < r.labels.length ? r.labels[e] : "",
s = r.datasets[t].data[e];
return H.isObject(s) && (a = n.getRightValue(s)), o.tooltipFormat ? i.format(Kn(n, a), o.tooltipFormat) : "string" == typeof a ? a : i.format(Kn(n, a), o.displayFormats.datetime)
},
tickFormatFunction: function(e, t, n, i) {
var r = this._adapter,
o = this.options,
a = o.time.displayFormats,
s = a[this._unit],
l = this._majorUnit,
c = a[l],
u = n[t],
d = o.ticks,
h = l && c && u && u.major,
f = r.format(e, i || (h ? c : s)),
p = h ? d.major : d.minor,
g = Hn([p.callback, p.userCallback, d.callback, d.userCallback]);
return g ? g(f, t, n) : f
},
convertTicksToLabels: function(e) {
var t, n, i = [];
for (t = 0, n = e.length; t < n; ++t) i.push(this.tickFormatFunction(e[t].value, t, e));
return i
},
getPixelForOffset: function(e) {
var t = this._offsets,
n = Qn(this._table, "time", e, "pos");
return this.getPixelForDecimal((t.start + n) * t.factor)
},
getPixelForValue: function(e, t, n) {
var i = null;
if (void 0 !== t && void 0 !== n && (i = this._timestamps.datasets[n][t]), null === i && (i = Jn(this, e)), null !== i) return this.getPixelForOffset(i)
},
getPixelForTick: function(e) {
var t = this.getTicks();
return e >= 0 && e < t.length ? this.getPixelForOffset(t[e].value) : null
},
getValueForPixel: function(e) {
var t = this._offsets,
n = this.getDecimalForPixel(e) / t.factor - t.end,
i = Qn(this._table, "pos", n, "time");
return this._adapter._create(i)
},
_getLabelSize: function(e) {
var t = this.options.ticks,
n = this.ctx.measureText(e).width,
i = H.toRadians(this.isHorizontal() ? t.maxRotation : t.minRotation),
r = Math.cos(i),
o = Math.sin(i),
a = Bn(t.fontSize, N.global.defaultFontSize);
return {
w: n * r + a * o,
h: n * o + a * r
}
},
getLabelWidth: function(e) {
return this._getLabelSize(e).w
},
getLabelCapacity: function(e) {
var t = this,
n = t.options.time,
i = n.displayFormats,
r = i[n.unit] || i.millisecond,
o = t.tickFormatFunction(e, 0, ei(t, [e], t._majorUnit), r),
a = t._getLabelSize(o),
s = Math.floor(t.isHorizontal() ? t.width / a.w : t.height / a.h);
return t.options.offset && s--, s > 0 ? s : 1
}
});
ti._defaults = {
position: "bottom",
distribution: "linear",
bounds: "data",
adapters: {},
time: {
parser: !1,
unit: !1,
round: !1,
displayFormat: !1,
isoWeekday: !1,
minUnit: "millisecond",
displayFormats: {}
},
ticks: {
autoSkip: !1,
source: "auto",
major: {
enabled: !1
}
}
};
var ni = {
category: fn,
linear: wn,
logarithmic: Tn,
radialLinear: jn,
time: ti
},
ii = {
datetime: "MMM D, YYYY, h:mm:ss a",
millisecond: "h:mm:ss.SSS a",
second: "h:mm:ss a",
minute: "h:mm a",
hour: "hA",
day: "MMM D",
week: "ll",
month: "MMM YYYY",
quarter: "[Q]Q - YYYY",
year: "YYYY"
};
Qt._date.override("function" == typeof e ? {
_id: "moment",
formats: function() {
return ii
},
parse: function(t, n) {
return "string" == typeof t && "string" == typeof n ? t = e(t, n) : t instanceof e || (t = e(t)), t.isValid() ? t.valueOf() : null
},
format: function(t, n) {
return e(t).format(n)
},
add: function(t, n, i) {
return e(t).add(n, i).valueOf()
},
diff: function(t, n, i) {
return e(t).diff(e(n), i)
},
startOf: function(t, n, i) {
return t = e(t), "isoWeek" === n ? t.isoWeekday(i).valueOf() : t.startOf(n).valueOf()
},
endOf: function(t, n) {
return e(t).endOf(n).valueOf()
},
_create: function(t) {
return e(t)
}
} : {}), N._set("global", {
plugins: {
filler: {
propagate: !0
}
}
});
var ri = {
dataset: function(e) {
var t = e.fill,
n = e.chart,
i = n.getDatasetMeta(t),
r = i && n.isDatasetVisible(t) && i.dataset._children || [],
o = r.length || 0;
return o ? function(e, t) {
return t < o && r[t]._view || null
} : null
},
boundary: function(e) {
var t = e.boundary,
n = t ? t.x : null,
i = t ? t.y : null;
return H.isArray(t) ? function(e, n) {
return t[n]
} : function(e) {
return {
x: null === n ? e.x : n,
y: null === i ? e.y : i
}
}
}
};
function oi(e, t, n) {
var i, r = e._model || {},
o = r.fill;
if (void 0 === o && (o = !!r.backgroundColor), !1 === o || null === o) return !1;
if (!0 === o) return "origin";
if (i = parseFloat(o, 10), isFinite(i) && Math.floor(i) === i) return "-" !== o[0] && "+" !== o[0] || (i = t + i), !(i === t || i < 0 || i >= n) && i;
switch (o) {
case "bottom":
return "start";
case "top":
return "end";
case "zero":
return "origin";
case "origin":
case "start":
case "end":
return o;
default:
return !1
}
}
function ai(e) {
return (e.el._scale || {}).getPointPositionForValue ? function(e) {
var t, n, i, r, o, a = e.el._scale,
s = a.options,
l = a.chart.data.labels.length,
c = e.fill,
u = [];
if (!l) return null;
for (t = s.ticks.reverse ? a.max : a.min, n = s.ticks.reverse ? a.min : a.max, i = a.getPointPositionForValue(0, t), r = 0; r < l; ++r) o = "start" === c || "end" === c ? a.getPointPositionForValue(r, "start" === c ? t : n) : a.getBasePosition(r), s.gridLines.circular && (o.cx = i.x, o.cy = i.y, o.angle = a.getIndexAngle(r) - Math.PI / 2), u.push(o);
return u
}(e) : function(e) {
var t, n = e.el._model || {},
i = e.el._scale || {},
r = e.fill,
o = null;
if (isFinite(r)) return null;
if ("start" === r ? o = void 0 === n.scaleBottom ? i.bottom : n.scaleBottom : "end" === r ? o = void 0 === n.scaleTop ? i.top : n.scaleTop : void 0 !== n.scaleZero ? o = n.scaleZero : i.getBasePixel && (o = i.getBasePixel()), null != o) {
if (void 0 !== o.x && void 0 !== o.y) return o;
if (H.isFinite(o)) return {
x: (t = i.isHorizontal()) ? o : null,
y: t ? null : o
}
}
return null
}(e)
}
function si(e, t, n) {
var i, r = e[t].fill,
o = [t];
if (!n) return r;
for (; !1 !== r && -1 === o.indexOf(r);) {
if (!isFinite(r)) return r;
if (!(i = e[r])) return !1;
if (i.visible) return r;
o.push(r), r = i.fill
}
return !1
}
function li(e) {
var t = e.fill,
n = "dataset";
return !1 === t ? null : (isFinite(t) || (n = "boundary"), ri[n](e))
}
function ci(e) {
return e && !e.skip
}
function ui(e, t, n, i, r) {
var o, a, s, l;
if (i && r) {
for (e.moveTo(t[0].x, t[0].y), o = 1; o < i; ++o) H.canvas.lineTo(e, t[o - 1], t[o]);
if (void 0 === n[0].angle)
for (e.lineTo(n[r - 1].x, n[r - 1].y), o = r - 1; o > 0; --o) H.canvas.lineTo(e, n[o], n[o - 1], !0);
else
for (a = n[0].cx, s = n[0].cy, l = Math.sqrt(Math.pow(n[0].x - a, 2) + Math.pow(n[0].y - s, 2)), o = r - 1; o > 0; --o) e.arc(a, s, l, n[o].angle, n[o - 1].angle, !0)
}
}
function di(e, t, n, i, r, o) {
var a, s, l, c, u, d, h, f, p = t.length,
g = i.spanGaps,
m = [],
v = [],
y = 0,
b = 0;
for (e.beginPath(), a = 0, s = p; a < s; ++a) u = n(c = t[l = a % p]._view, l, i), d = ci(c), h = ci(u), o && void 0 === f && d && (s = p + (f = a + 1)), d && h ? (y = m.push(c), b = v.push(u)) : y && b && (g ? (d && m.push(c), h && v.push(u)) : (ui(e, m, v, y, b), y = b = 0, m = [], v = []));
ui(e, m, v, y, b), e.closePath(), e.fillStyle = r, e.fill()
}
var hi = {
id: "filler",
afterDatasetsUpdate: function(e, t) {
var n, i, r, o, a = (e.data.datasets || []).length,
s = t.propagate,
l = [];
for (i = 0; i < a; ++i) o = null, (r = (n = e.getDatasetMeta(i)).dataset) && r._model && r instanceof ye.Line && (o = {
visible: e.isDatasetVisible(i),
fill: oi(r, i, a),
chart: e,
el: r
}), n.$filler = o, l.push(o);
for (i = 0; i < a; ++i)(o = l[i]) && (o.fill = si(l, i, s), o.boundary = ai(o), o.mapper = li(o))
},
beforeDatasetsDraw: function(e) {
var t, n, i, r, o, a, s, l = e._getSortedVisibleDatasetMetas(),
c = e.ctx;
for (n = l.length - 1; n >= 0; --n)(t = l[n].$filler) && t.visible && (r = (i = t.el)._view, o = i._children || [], a = t.mapper, s = r.backgroundColor || N.global.defaultColor, a && s && o.length && (H.canvas.clipArea(c, e.chartArea), di(c, o, a, r, s, i._loop), H.canvas.unclipArea(c)))
}
},
fi = H.rtl.getRtlAdapter,
pi = H.noop,
gi = H.valueOrDefault;
function mi(e, t) {
return e.usePointStyle && e.boxWidth > t ? t : e.boxWidth
}
N._set("global", {
legend: {
display: !0,
position: "top",
align: "center",
fullWidth: !0,
reverse: !1,
weight: 1e3,
onClick: function(e, t) {
var n = t.datasetIndex,
i = this.chart,
r = i.getDatasetMeta(n);
r.hidden = null === r.hidden ? !i.data.datasets[n].hidden : null, i.update()
},
onHover: null,
onLeave: null,
labels: {
boxWidth: 40,
padding: 10,
generateLabels: function(e) {
var t = e.data.datasets,
n = e.options.legend || {},
i = n.labels && n.labels.usePointStyle;
return e._getSortedDatasetMetas().map((function(n) {
var r = n.controller.getStyle(i ? 0 : void 0);
return {
text: t[n.index].label,
fillStyle: r.backgroundColor,
hidden: !e.isDatasetVisible(n.index),
lineCap: r.borderCapStyle,
lineDash: r.borderDash,
lineDashOffset: r.borderDashOffset,
lineJoin: r.borderJoinStyle,
lineWidth: r.borderWidth,
strokeStyle: r.borderColor,
pointStyle: r.pointStyle,
rotation: r.rotation,
datasetIndex: n.index
}
}), this)
}
}
},
legendCallback: function(e) {
var t, n, i, r = document.createElement("ul"),
o = e.data.datasets;
for (r.setAttribute("class", e.id + "-legend"), t = 0, n = o.length; t < n; t++)(i = r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor = o[t].backgroundColor, o[t].label && i.appendChild(document.createTextNode(o[t].label));
return r.outerHTML
}
});
var vi = Y.extend({
initialize: function(e) {
H.extend(this, e), this.legendHitBoxes = [], this._hoveredItem = null, this.doughnutMode = !1
},
beforeUpdate: pi,
update: function(e, t, n) {
var i = this;
return i.beforeUpdate(), i.maxWidth = e, i.maxHeight = t, i.margins = n, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i.beforeBuildLabels(), i.buildLabels(), i.afterBuildLabels(), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate(), i.minSize
},
afterUpdate: pi,
beforeSetDimensions: pi,
setDimensions: function() {
var e = this;
e.isHorizontal() ? (e.width = e.maxWidth, e.left = 0, e.right = e.width) : (e.height = e.maxHeight, e.top = 0, e.bottom = e.height), e.paddingLeft = 0, e.paddingTop = 0, e.paddingRight = 0, e.paddingBottom = 0, e.minSize = {
width: 0,
height: 0
}
},
afterSetDimensions: pi,
beforeBuildLabels: pi,
buildLabels: function() {
var e = this,
t = e.options.labels || {},
n = H.callback(t.generateLabels, [e.chart], e) || [];
t.filter && (n = n.filter((function(n) {
return t.filter(n, e.chart.data)
}))), e.options.reverse && n.reverse(), e.legendItems = n
},
afterBuildLabels: pi,
beforeFit: pi,
fit: function() {
var e = this,
t = e.options,
n = t.labels,
i = t.display,
r = e.ctx,
o = H.options._parseFont(n),
a = o.size,
s = e.legendHitBoxes = [],
l = e.minSize,
c = e.isHorizontal();
if (c ? (l.width = e.maxWidth, l.height = i ? 10 : 0) : (l.width = i ? 10 : 0, l.height = e.maxHeight), i) {
if (r.font = o.string, c) {
var u = e.lineWidths = [0],
d = 0;
r.textAlign = "left", r.textBaseline = "middle", H.each(e.legendItems, (function(e, t) {
var i = mi(n, a) + a / 2 + r.measureText(e.text).width;
(0 === t || u[u.length - 1] + i + 2 * n.padding > l.width) && (d += a + n.padding, u[u.length - (t > 0 ? 0 : 1)] = 0), s[t] = {
left: 0,
top: 0,
width: i,
height: a
}, u[u.length - 1] += i + n.padding
})), l.height += d
} else {
var h = n.padding,
f = e.columnWidths = [],
p = e.columnHeights = [],
g = n.padding,
m = 0,
v = 0;
H.each(e.legendItems, (function(e, t) {
var i = mi(n, a) + a / 2 + r.measureText(e.text).width;
t > 0 && v + a + 2 * h > l.height && (g += m + n.padding, f.push(m), p.push(v), m = 0, v = 0), m = Math.max(m, i), v += a + h, s[t] = {
left: 0,
top: 0,
width: i,
height: a
}
})), g += m, f.push(m), p.push(v), l.width += g
}
e.width = l.width, e.height = l.height
} else e.width = l.width = e.height = l.height = 0
},
afterFit: pi,
isHorizontal: function() {
return "top" === this.options.position || "bottom" === this.options.position
},
draw: function() {
var e = this,
t = e.options,
n = t.labels,
i = N.global,
r = i.defaultColor,
o = i.elements.line,
a = e.height,
s = e.columnHeights,
l = e.width,
c = e.lineWidths;
if (t.display) {
var u, d = fi(t.rtl, e.left, e.minSize.width),
h = e.ctx,
f = gi(n.fontColor, i.defaultFontColor),
p = H.options._parseFont(n),
g = p.size;
h.textAlign = d.textAlign("left"), h.textBaseline = "middle", h.lineWidth = .5, h.strokeStyle = f, h.fillStyle = f, h.font = p.string;
var m = mi(n, g),
v = e.legendHitBoxes,
y = function(e, i) {
switch (t.align) {
case "start":
return n.padding;
case "end":
return e - i;
default:
return (e - i + n.padding) / 2
}
},
b = e.isHorizontal();
u = b ? {
x: e.left + y(l, c[0]),
y: e.top + n.padding,
line: 0
} : {
x: e.left + n.padding,
y: e.top + y(a, s[0]),
line: 0
}, H.rtl.overrideTextDirection(e.ctx, t.textDirection);
var w = g + n.padding;
H.each(e.legendItems, (function(t, i) {
var f = h.measureText(t.text).width,
p = m + g / 2 + f,
x = u.x,
_ = u.y;
d.setWidth(e.minSize.width), b ? i > 0 && x + p + n.padding > e.left + e.minSize.width && (_ = u.y += w, u.line++, x = u.x = e.left + y(l, c[u.line])) : i > 0 && _ + w > e.top + e.minSize.height && (x = u.x = x + e.columnWidths[u.line] + n.padding, u.line++, _ = u.y = e.top + y(a, s[u.line]));
var C = d.x(x);
! function(e, t, i) {
if (!(isNaN(m) || m <= 0)) {
h.save();
var a = gi(i.lineWidth, o.borderWidth);
if (h.fillStyle = gi(i.fillStyle, r), h.lineCap = gi(i.lineCap, o.borderCapStyle), h.lineDashOffset = gi(i.lineDashOffset, o.borderDashOffset), h.lineJoin = gi(i.lineJoin, o.borderJoinStyle), h.lineWidth = a, h.strokeStyle = gi(i.strokeStyle, r), h.setLineDash && h.setLineDash(gi(i.lineDash, o.borderDash)), n && n.usePointStyle) {
var s = m * Math.SQRT2 / 2,
l = d.xPlus(e, m / 2),
c = t + g / 2;
H.canvas.drawPoint(h, i.pointStyle, s, l, c, i.rotation)
} else h.fillRect(d.leftForLtr(e, m), t, m, g), 0 !== a && h.strokeRect(d.leftForLtr(e, m), t, m, g);
h.restore()
}
}(C, _, t), v[i].left = d.leftForLtr(C, v[i].width), v[i].top = _,
function(e, t, n, i) {
var r = g / 2,
o = d.xPlus(e, m + r),
a = t + r;
h.fillText(n.text, o, a), n.hidden && (h.beginPath(), h.lineWidth = 2, h.moveTo(o, a), h.lineTo(d.xPlus(o, i), a), h.stroke())
}(C, _, t, f), b ? u.x += p + n.padding : u.y += w
})), H.rtl.restoreTextDirection(e.ctx, t.textDirection)
}
},
_getLegendItemAt: function(e, t) {
var n, i, r, o = this;
if (e >= o.left && e <= o.right && t >= o.top && t <= o.bottom)
for (r = o.legendHitBoxes, n = 0; n < r.length; ++n)
if (e >= (i = r[n]).left && e <= i.left + i.width && t >= i.top && t <= i.top + i.height) return o.legendItems[n];
return null
},
handleEvent: function(e) {
var t, n = this,
i = n.options,
r = "mouseup" === e.type ? "click" : e.type;
if ("mousemove" === r) {
if (!i.onHover && !i.onLeave) return
} else {
if ("click" !== r) return;
if (!i.onClick) return
}
t = n._getLegendItemAt(e.x, e.y), "click" === r ? t && i.onClick && i.onClick.call(n, e.native, t) : (i.onLeave && t !== n._hoveredItem && (n._hoveredItem && i.onLeave.call(n, e.native, n._hoveredItem), n._hoveredItem = t), i.onHover && t && i.onHover.call(n, e.native, t))
}
});
function yi(e, t) {
var n = new vi({
ctx: e.ctx,
options: t,
chart: e
});
ut.configure(e, n, t), ut.addBox(e, n), e.legend = n
}
var bi = {
id: "legend",
_element: vi,
beforeInit: function(e) {
var t = e.options.legend;
t && yi(e, t)
},
beforeUpdate: function(e) {
var t = e.options.legend,
n = e.legend;
t ? (H.mergeIf(t, N.global.legend), n ? (ut.configure(e, n, t), n.options = t) : yi(e, t)) : n && (ut.removeBox(e, n), delete e.legend)
},
afterEvent: function(e, t) {
var n = e.legend;
n && n.handleEvent(t)
}
},
wi = H.noop;
N._set("global", {
title: {
display: !1,
fontStyle: "bold",
fullWidth: !0,
padding: 10,
position: "top",
text: "",
weight: 2e3
}
});
var xi = Y.extend({
initialize: function(e) {
H.extend(this, e), this.legendHitBoxes = []
},
beforeUpdate: wi,
update: function(e, t, n) {
var i = this;
return i.beforeUpdate(), i.maxWidth = e, i.maxHeight = t, i.margins = n, i.beforeSetDimensions(), i.setDimensions(), i.afterSetDimensions(), i.beforeBuildLabels(), i.buildLabels(), i.afterBuildLabels(), i.beforeFit(), i.fit(), i.afterFit(), i.afterUpdate(), i.minSize
},
afterUpdate: wi,
beforeSetDimensions: wi,
setDimensions: function() {
var e = this;
e.isHorizontal() ? (e.width = e.maxWidth, e.left = 0, e.right = e.width) : (e.height = e.maxHeight, e.top = 0, e.bottom = e.height), e.paddingLeft = 0, e.paddingTop = 0, e.paddingRight = 0, e.paddingBottom = 0, e.minSize = {
width: 0,
height: 0
}
},
afterSetDimensions: wi,
beforeBuildLabels: wi,
buildLabels: wi,
afterBuildLabels: wi,
beforeFit: wi,
fit: function() {
var e, t = this,
n = t.options,
i = t.minSize = {},
r = t.isHorizontal();
n.display ? (e = (H.isArray(n.text) ? n.text.length : 1) * H.options._parseFont(n).lineHeight + 2 * n.padding, t.width = i.width = r ? t.maxWidth : e, t.height = i.height = r ? e : t.maxHeight) : t.width = i.width = t.height = i.height = 0
},
afterFit: wi,
isHorizontal: function() {
var e = this.options.position;
return "top" === e || "bottom" === e
},
draw: function() {
var e = this,
t = e.ctx,
n = e.options;
if (n.display) {
var i, r, o, a = H.options._parseFont(n),
s = a.lineHeight,
l = s / 2 + n.padding,
c = 0,
u = e.top,
d = e.left,
h = e.bottom,
f = e.right;
t.fillStyle = H.valueOrDefault(n.fontColor, N.global.defaultFontColor), t.font = a.string, e.isHorizontal() ? (r = d + (f - d) / 2, o = u + l, i = f - d) : (r = "left" === n.position ? d + l : f - l, o = u + (h - u) / 2, i = h - u, c = Math.PI * ("left" === n.position ? -.5 : .5)), t.save(), t.translate(r, o), t.rotate(c), t.textAlign = "center", t.textBaseline = "middle";
var p = n.text;
if (H.isArray(p))
for (var g = 0, m = 0; m < p.length; ++m) t.fillText(p[m], 0, g, i), g += s;
else t.fillText(p, 0, 0, i);
t.restore()
}
}
});
function _i(e, t) {
var n = new xi({
ctx: e.ctx,
options: t,
chart: e
});
ut.configure(e, n, t), ut.addBox(e, n), e.titleBlock = n
}
var Ci = {},
ki = hi,
Si = bi,
Ti = {
id: "title",
_element: xi,
beforeInit: function(e) {
var t = e.options.title;
t && _i(e, t)
},
beforeUpdate: function(e) {
var t = e.options.title,
n = e.titleBlock;
t ? (H.mergeIf(t, N.global.title), n ? (ut.configure(e, n, t), n.options = t) : _i(e, t)) : n && (ut.removeBox(e, n), delete e.titleBlock)
}
};
for (var Di in Ci.filler = ki, Ci.legend = Si, Ci.title = Ti, Yt.helpers = H,
function() {
function e(e, t, n) {
var i;
return "string" == typeof e ? (i = parseInt(e, 10), -1 !== e.indexOf("%") && (i = i / 100 * t.parentNode[n])) : i = e, i
}
function t(e) {
return null != e && "none" !== e
}
function n(n, i, r) {
var o = document.defaultView,
a = H._getParentNode(n),
s = o.getComputedStyle(n)[i],
l = o.getComputedStyle(a)[i],
c = t(s),
u = t(l),
d = Number.POSITIVE_INFINITY;
return c || u ? Math.min(c ? e(s, n, r) : d, u ? e(l, a, r) : d) : "none"
}
H.where = function(e, t) {
if (H.isArray(e) && Array.prototype.filter) return e.filter(t);
var n = [];
return H.each(e, (function(e) {
t(e) && n.push(e)
})), n
}, H.findIndex = Array.prototype.findIndex ? function(e, t, n) {
return e.findIndex(t, n)
} : function(e, t, n) {
n = void 0 === n ? e : n;
for (var i = 0, r = e.length; i < r; ++i)
if (t.call(n, e[i], i, e)) return i;
return -1
}, H.findNextWhere = function(e, t, n) {
H.isNullOrUndef(n) && (n = -1);
for (var i = n + 1; i < e.length; i++) {
var r = e[i];
if (t(r)) return r
}
}, H.findPreviousWhere = function(e, t, n) {
H.isNullOrUndef(n) && (n = e.length);
for (var i = n - 1; i >= 0; i--) {
var r = e[i];
if (t(r)) return r
}
}, H.isNumber = function(e) {
return !isNaN(parseFloat(e)) && isFinite(e)
}, H.almostEquals = function(e, t, n) {
return Math.abs(e - t) < n
}, H.almostWhole = function(e, t) {
var n = Math.round(e);
return n - t <= e && n + t >= e
}, H.max = function(e) {
return e.reduce((function(e, t) {
return isNaN(t) ? e : Math.max(e, t)
}), Number.NEGATIVE_INFINITY)
}, H.min = function(e) {
return e.reduce((function(e, t) {
return isNaN(t) ? e : Math.min(e, t)
}), Number.POSITIVE_INFINITY)
}, H.sign = Math.sign ? function(e) {
return Math.sign(e)
} : function(e) {
return 0 == (e = +e) || isNaN(e) ? e : e > 0 ? 1 : -1
}, H.toRadians = function(e) {
return e * (Math.PI / 180)
}, H.toDegrees = function(e) {
return e * (180 / Math.PI)
}, H._decimalPlaces = function(e) {
if (H.isFinite(e)) {
for (var t = 1, n = 0; Math.round(e * t) / t !== e;) t *= 10, n++;
return n
}
}, H.getAngleFromPoint = function(e, t) {
var n = t.x - e.x,
i = t.y - e.y,
r = Math.sqrt(n * n + i * i),
o = Math.atan2(i, n);
return o < -.5 * Math.PI && (o += 2 * Math.PI), {
angle: o,
distance: r
}
}, H.distanceBetweenPoints = function(e, t) {
return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))
}, H.aliasPixel = function(e) {
return e % 2 == 0 ? 0 : .5
}, H._alignPixel = function(e, t, n) {
var i = e.currentDevicePixelRatio,
r = n / 2;
return Math.round((t - r) * i) / i + r
}, H.splineCurve = function(e, t, n, i) {
var r = e.skip ? t : e,
o = t,
a = n.skip ? t : n,
s = Math.sqrt(Math.pow(o.x - r.x, 2) + Math.pow(o.y - r.y, 2)),
l = Math.sqrt(Math.pow(a.x - o.x, 2) + Math.pow(a.y - o.y, 2)),
c = s / (s + l),
u = l / (s + l),
d = i * (c = isNaN(c) ? 0 : c),
h = i * (u = isNaN(u) ? 0 : u);
return {
previous: {
x: o.x - d * (a.x - r.x),
y: o.y - d * (a.y - r.y)
},
next: {
x: o.x + h * (a.x - r.x),
y: o.y + h * (a.y - r.y)
}
}
}, H.EPSILON = Number.EPSILON || 1e-14, H.splineCurveMonotone = function(e) {
var t, n, i, r, o, a, s, l, c, u = (e || []).map((function(e) {
return {
model: e._model,
deltaK: 0,
mK: 0
}
})),
d = u.length;
for (t = 0; t < d; ++t)
if (!(i = u[t]).model.skip) {
if (n = t > 0 ? u[t - 1] : null, (r = t < d - 1 ? u[t + 1] : null) && !r.model.skip) {
var h = r.model.x - i.model.x;
i.deltaK = 0 !== h ? (r.model.y - i.model.y) / h : 0
}!n || n.model.skip ? i.mK = i.deltaK : !r || r.model.skip ? i.mK = n.deltaK : this.sign(n.deltaK) !== this.sign(i.deltaK) ? i.mK = 0 : i.mK = (n.deltaK + i.deltaK) / 2
}
for (t = 0; t < d - 1; ++t) i = u[t], r = u[t + 1], i.model.skip || r.model.skip || (H.almostEquals(i.deltaK, 0, this.EPSILON) ? i.mK = r.mK = 0 : (o = i.mK / i.deltaK, a = r.mK / i.deltaK, (l = Math.pow(o, 2) + Math.pow(a, 2)) <= 9 || (s = 3 / Math.sqrt(l), i.mK = o * s * i.deltaK, r.mK = a * s * i.deltaK)));
for (t = 0; t < d; ++t)(i = u[t]).model.skip || (n = t > 0 ? u[t - 1] : null, r = t < d - 1 ? u[t + 1] : null, n && !n.model.skip && (c = (i.model.x - n.model.x) / 3, i.model.controlPointPreviousX = i.model.x - c, i.model.controlPointPreviousY = i.model.y - c * i.mK), r && !r.model.skip && (c = (r.model.x - i.model.x) / 3, i.model.controlPointNextX = i.model.x + c, i.model.controlPointNextY = i.model.y + c * i.mK))
}, H.nextItem = function(e, t, n) {
return n ? t >= e.length - 1 ? e[0] : e[t + 1] : t >= e.length - 1 ? e[e.length - 1] : e[t + 1]
}, H.previousItem = function(e, t, n) {
return n ? t <= 0 ? e[e.length - 1] : e[t - 1] : t <= 0 ? e[0] : e[t - 1]
}, H.niceNum = function(e, t) {
var n = Math.floor(H.log10(e)),
i = e / Math.pow(10, n);
return (t ? i < 1.5 ? 1 : i < 3 ? 2 : i < 7 ? 5 : 10 : i <= 1 ? 1 : i <= 2 ? 2 : i <= 5 ? 5 : 10) * Math.pow(10, n)
}, H.requestAnimFrame = "undefined" == typeof window ? function(e) {
e()
} : window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(e) {
return window.setTimeout(e, 1e3 / 60)
}, H.getRelativePosition = function(e, t) {
var n, i, r = e.originalEvent || e,
o = e.target || e.srcElement,
a = o.getBoundingClientRect(),
s = r.touches;
s && s.length > 0 ? (n = s[0].clientX, i = s[0].clientY) : (n = r.clientX, i = r.clientY);
var l = parseFloat(H.getStyle(o, "padding-left")),
c = parseFloat(H.getStyle(o, "padding-top")),
u = parseFloat(H.getStyle(o, "padding-right")),
d = parseFloat(H.getStyle(o, "padding-bottom")),
h = a.right - a.left - l - u,
f = a.bottom - a.top - c - d;
return {
x: n = Math.round((n - a.left - l) / h * o.width / t.currentDevicePixelRatio),
y: i = Math.round((i - a.top - c) / f * o.height / t.currentDevicePixelRatio)
}
}, H.getConstraintWidth = function(e) {
return n(e, "max-width", "clientWidth")
}, H.getConstraintHeight = function(e) {
return n(e, "max-height", "clientHeight")
}, H._calculatePadding = function(e, t, n) {
return (t = H.getStyle(e, t)).indexOf("%") > -1 ? n * parseInt(t, 10) / 100 : parseInt(t, 10)
}, H._getParentNode = function(e) {
var t = e.parentNode;
return t && "[object ShadowRoot]" === t.toString() && (t = t.host), t
}, H.getMaximumWidth = function(e) {
var t = H._getParentNode(e);
if (!t) return e.clientWidth;
var n = t.clientWidth,
i = n - H._calculatePadding(t, "padding-left", n) - H._calculatePadding(t, "padding-right", n),
r = H.getConstraintWidth(e);
return isNaN(r) ? i : Math.min(i, r)
}, H.getMaximumHeight = function(e) {
var t = H._getParentNode(e);
if (!t) return e.clientHeight;
var n = t.clientHeight,
i = n - H._calculatePadding(t, "padding-top", n) - H._calculatePadding(t, "padding-bottom", n),
r = H.getConstraintHeight(e);
return isNaN(r) ? i : Math.min(i, r)
}, H.getStyle = function(e, t) {
return e.currentStyle ? e.currentStyle[t] : document.defaultView.getComputedStyle(e, null).getPropertyValue(t)
}, H.retinaScale = function(e, t) {
var n = e.currentDevicePixelRatio = t || "undefined" != typeof window && window.devicePixelRatio || 1;
if (1 !== n) {
var i = e.canvas,
r = e.height,
o = e.width;
i.height = r * n, i.width = o * n, e.ctx.scale(n, n), i.style.height || i.style.width || (i.style.height = r + "px", i.style.width = o + "px")
}
}, H.fontString = function(e, t, n) {
return t + " " + e + "px " + n
}, H.longestText = function(e, t, n, i) {
var r = (i = i || {}).data = i.data || {},
o = i.garbageCollect = i.garbageCollect || [];
i.font !== t && (r = i.data = {}, o = i.garbageCollect = [], i.font = t), e.font = t;
var a, s, l, c, u, d = 0,
h = n.length;
for (a = 0; a < h; a++)
if (null != (c = n[a]) && !0 !== H.isArray(c)) d = H.measureText(e, r, o, d, c);
else if (H.isArray(c))
for (s = 0, l = c.length; s < l; s++) null == (u = c[s]) || H.isArray(u) || (d = H.measureText(e, r, o, d, u));
var f = o.length / 2;
if (f > n.length) {
for (a = 0; a < f; a++) delete r[o[a]];
o.splice(0, f)
}
return d
}, H.measureText = function(e, t, n, i, r) {
var o = t[r];
return o || (o = t[r] = e.measureText(r).width, n.push(r)), o > i && (i = o), i
}, H.numberOfLabelLines = function(e) {
var t = 1;
return H.each(e, (function(e) {
H.isArray(e) && e.length > t && (t = e.length)
})), t
}, H.color = _ ? function(e) {
return e instanceof CanvasGradient && (e = N.global.defaultColor), _(e)
} : function(e) {
return console.error("Color.js not found!"), e
}, H.getHoverColor = function(e) {
return e instanceof CanvasPattern || e instanceof CanvasGradient ? e : H.color(e).saturate(.5).darken(.1).rgbString()
}
}(), Yt._adapters = Qt, Yt.Animation = G, Yt.animationService = Q, Yt.controllers = Ye, Yt.DatasetController = te, Yt.defaults = N, Yt.Element = Y, Yt.elements = ye, Yt.Interaction = et, Yt.layouts = ut, Yt.platform = St, Yt.plugins = Tt, Yt.Scale = dn, Yt.scaleService = Dt, Yt.Ticks = Kt, Yt.Tooltip = jt, Yt.helpers.each(ni, (function(e, t) {
Yt.scaleService.registerScaleType(t, e, e._defaults)
})), Ci) Ci.hasOwnProperty(Di) && Yt.plugins.register(Ci[Di]);
Yt.platform.initialize();
var Ei = Yt;
return "undefined" != typeof window && (window.Chart = Yt), Yt.Chart = Yt, Yt.Legend = Ci.legend._element, Yt.Title = Ci.title._element, Yt.pluginService = Yt.plugins, Yt.PluginBase = Yt.Element.extend({}), Yt.canvasHelpers = Yt.helpers.canvas, Yt.layoutService = Yt.layouts, Yt.LinearScaleBase = mn, Yt.helpers.each(["Bar", "Bubble", "Doughnut", "Line", "PolarArea", "Radar", "Scatter"], (function(e) {
Yt[e] = function(t, n) {
return new Yt(t, Yt.helpers.merge(n || {}, {
type: e.charAt(0).toLowerCase() + e.slice(1)
}))
}
})), Ei
})),
function(e) {
"function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? module.exports = e() : window.noUiSlider = e()
}((function() {
"use strict";
var e = "14.6.2";
function t(e) {
e.parentElement.removeChild(e)
}
function n(e) {
return null != e
}
function i(e) {
e.preventDefault()
}
function r(e) {
return "number" == typeof e && !isNaN(e) && isFinite(e)
}
function o(e, t, n) {
0 < n && (c(e, t), setTimeout((function() {
u(e, t)
}), n))
}
function a(e) {
return Math.max(Math.min(e, 100), 0)
}
function s(e) {
return Array.isArray(e) ? e : [e]
}
function l(e) {
var t = (e = String(e)).split(".");
return 1 < t.length ? t[1].length : 0
}
function c(e, t) {
e.classList && !/\s/.test(t) ? e.classList.add(t) : e.className += " " + t
}
function u(e, t) {
e.classList && !/\s/.test(t) ? e.classList.remove(t) : e.className = e.className.replace(new RegExp("(^|\\b)" + t.split(" ").join("|") + "(\\b|$)", "gi"), " ")
}
function d(e) {
var t = void 0 !== window.pageXOffset,
n = "CSS1Compat" === (e.compatMode || "");
return {
x: t ? window.pageXOffset : n ? e.documentElement.scrollLeft : e.body.scrollLeft,
y: t ? window.pageYOffset : n ? e.documentElement.scrollTop : e.body.scrollTop
}
}
function h(e, t) {
return 100 / (t - e)
}
function f(e, t, n) {
return 100 * t / (e[n + 1] - e[n])
}
function p(e, t) {
for (var n = 1; e >= t[n];) n += 1;
return n
}
function g(e, t, n) {
var i;
if ("number" == typeof t && (t = [t]), !Array.isArray(t)) throw new Error("noUiSlider (14.6.2): 'range' contains invalid value.");
if (!r(i = "min" === e ? 0 : "max" === e ? 100 : parseFloat(e)) || !r(t[0])) throw new Error("noUiSlider (14.6.2): 'range' value isn't numeric.");
n.xPct.push(i), n.xVal.push(t[0]), i ? n.xSteps.push(!isNaN(t[1]) && t[1]) : isNaN(t[1]) || (n.xSteps[0] = t[1]), n.xHighestCompleteStep.push(0)
}
function m(e, t, n) {
if (t)
if (n.xVal[e] !== n.xVal[e + 1]) {
n.xSteps[e] = f([n.xVal[e], n.xVal[e + 1]], t, 0) / h(n.xPct[e], n.xPct[e + 1]);
var i = (n.xVal[e + 1] - n.xVal[e]) / n.xNumSteps[e],
r = Math.ceil(Number(i.toFixed(3)) - 1),
o = n.xVal[e] + n.xNumSteps[e] * r;
n.xHighestCompleteStep[e] = o
} else n.xSteps[e] = n.xHighestCompleteStep[e] = n.xVal[e]
}
function v(e, t, n) {
var i;
this.xPct = [], this.xVal = [], this.xSteps = [n || !1], this.xNumSteps = [!1], this.xHighestCompleteStep = [], this.snap = t;
var r = [];
for (i in e) e.hasOwnProperty(i) && r.push([e[i], i]);
for (r.length && "object" == typeof r[0][0] ? r.sort((function(e, t) {
return e[0][0] - t[0][0]
})) : r.sort((function(e, t) {
return e[0] - t[0]
})), i = 0; i < r.length; i++) g(r[i][1], r[i][0], this);
for (this.xNumSteps = this.xSteps.slice(0), i = 0; i < this.xNumSteps.length; i++) m(i, this.xNumSteps[i], this)
}
v.prototype.getDistance = function(e) {
var t, n = [];
for (t = 0; t < this.xNumSteps.length - 1; t++) {
var i = this.xNumSteps[t];
if (i && e / i % 1 != 0) throw new Error("noUiSlider (14.6.2): 'limit', 'margin' and 'padding' of " + this.xPct[t] + "% range must be divisible by step.");
n[t] = f(this.xVal, e, t)
}
return n
}, v.prototype.getAbsoluteDistance = function(e, t, n) {
var i, r = 0;
if (e < this.xPct[this.xPct.length - 1])
for (; e > this.xPct[r + 1];) r++;
else e === this.xPct[this.xPct.length - 1] && (r = this.xPct.length - 2);
n || e !== this.xPct[r + 1] || r++;
var o = 1,
a = t[r],
s = 0,
l = 0,
c = 0,
u = 0;
for (i = n ? (e - this.xPct[r]) / (this.xPct[r + 1] - this.xPct[r]) : (this.xPct[r + 1] - e) / (this.xPct[r + 1] - this.xPct[r]); 0 < a;) s = this.xPct[r + 1 + u] - this.xPct[r + u], 100 < t[r + u] * o + 100 - 100 * i ? (l = s * i, o = (a - 100 * i) / t[r + u], i = 1) : (l = t[r + u] * s / 100 * o, o = 0), n ? (c -= l, 1 <= this.xPct.length + u && u--) : (c += l, 1 <= this.xPct.length - u && u++), a = t[r + u] * o;
return e + c
}, v.prototype.toStepping = function(e) {
return function(e, t, n) {
if (n >= e.slice(-1)[0]) return 100;
var i, r, o = p(n, e),
a = e[o - 1],
s = e[o],
l = t[o - 1],
c = t[o];
return l + (r = n, f(i = [a, s], i[0] < 0 ? r + Math.abs(i[0]) : r - i[0], 0) / h(l, c))
}(this.xVal, this.xPct, e)
}, v.prototype.fromStepping = function(e) {
return function(e, t, n) {
if (100 <= n) return e.slice(-1)[0];
var i, r = p(n, t),
o = e[r - 1],
a = e[r],
s = t[r - 1];
return i = [o, a], (n - s) * h(s, t[r]) * (i[1] - i[0]) / 100 + i[0]
}(this.xVal, this.xPct, e)
}, v.prototype.getStep = function(e) {
return function(e, t, n, i) {
if (100 === i) return i;
var r, o, a = p(i, e),
s = e[a - 1],
l = e[a];
return n ? (l - s) / 2 < i - s ? l : s : t[a - 1] ? e[a - 1] + (r = i - e[a - 1], o = t[a - 1], Math.round(r / o) * o) : i
}(this.xPct, this.xSteps, this.snap, e)
}, v.prototype.getDefaultStep = function(e, t, n) {
var i = p(e, this.xPct);
return (100 === e || t && e === this.xPct[i - 1]) && (i = Math.max(i - 1, 1)), (this.xVal[i] - this.xVal[i - 1]) / n
}, v.prototype.getNearbySteps = function(e) {
var t = p(e, this.xPct);
return {
stepBefore: {
startValue: this.xVal[t - 2],
step: this.xNumSteps[t - 2],
highestStep: this.xHighestCompleteStep[t - 2]
},
thisStep: {
startValue: this.xVal[t - 1],
step: this.xNumSteps[t - 1],
highestStep: this.xHighestCompleteStep[t - 1]
},
stepAfter: {
startValue: this.xVal[t],
step: this.xNumSteps[t],
highestStep: this.xHighestCompleteStep[t]
}
}
}, v.prototype.countStepDecimals = function() {
var e = this.xNumSteps.map(l);
return Math.max.apply(null, e)
}, v.prototype.convert = function(e) {
return this.getStep(this.toStepping(e))
};
var y = {
to: function(e) {
return void 0 !== e && e.toFixed(2)
},
from: Number
},
b = {
target: "target",
base: "base",
origin: "origin",
handle: "handle",
handleLower: "handle-lower",
handleUpper: "handle-upper",
touchArea: "touch-area",
horizontal: "horizontal",
vertical: "vertical",
background: "background",
connect: "connect",
connects: "connects",
ltr: "ltr",
rtl: "rtl",
textDirectionLtr: "txt-dir-ltr",
textDirectionRtl: "txt-dir-rtl",
draggable: "draggable",
drag: "state-drag",
tap: "state-tap",
active: "active",
tooltip: "tooltip",
pips: "pips",
pipsHorizontal: "pips-horizontal",
pipsVertical: "pips-vertical",
marker: "marker",
markerHorizontal: "marker-horizontal",
markerVertical: "marker-vertical",
markerNormal: "marker-normal",
markerLarge: "marker-large",
markerSub: "marker-sub",
value: "value",
valueHorizontal: "value-horizontal",
valueVertical: "value-vertical",
valueNormal: "value-normal",
valueLarge: "value-large",
valueSub: "value-sub"
};
function w(e) {
if ("object" == typeof(t = e) && "function" == typeof t.to && "function" == typeof t.from) return !0;
var t;
throw new Error("noUiSlider (14.6.2): 'format' requires 'to' and 'from' methods.")
}
function x(e, t) {
if (!r(t)) throw new Error("noUiSlider (14.6.2): 'step' is not numeric.");
e.singleStep = t
}
function _(e, t) {
if (!r(t)) throw new Error("noUiSlider (14.6.2): 'keyboardPageMultiplier' is not numeric.");
e.keyboardPageMultiplier = t
}
function C(e, t) {
if (!r(t)) throw new Error("noUiSlider (14.6.2): 'keyboardDefaultStep' is not numeric.");
e.keyboardDefaultStep = t
}
function k(e, t) {
if ("object" != typeof t || Array.isArray(t)) throw new Error("noUiSlider (14.6.2): 'range' is not an object.");
if (void 0 === t.min || void 0 === t.max) throw new Error("noUiSlider (14.6.2): Missing 'min' or 'max' in 'range'.");
if (t.min === t.max) throw new Error("noUiSlider (14.6.2): 'range' 'min' and 'max' cannot be equal.");
e.spectrum = new v(t, e.snap, e.singleStep)
}
function S(e, t) {
if (t = s(t), !Array.isArray(t) || !t.length) throw new Error("noUiSlider (14.6.2): 'start' option is incorrect.");
e.handles = t.length, e.start = t
}
function T(e, t) {
if ("boolean" != typeof(e.snap = t)) throw new Error("noUiSlider (14.6.2): 'snap' option must be a boolean.")
}
function D(e, t) {
if ("boolean" != typeof(e.animate = t)) throw new Error("noUiSlider (14.6.2): 'animate' option must be a boolean.")
}
function E(e, t) {
if ("number" != typeof(e.animationDuration = t)) throw new Error("noUiSlider (14.6.2): 'animationDuration' option must be a number.")
}
function A(e, t) {
var n, i = [!1];
if ("lower" === t ? t = [!0, !1] : "upper" === t && (t = [!1, !0]), !0 === t || !1 === t) {
for (n = 1; n < e.handles; n++) i.push(t);
i.push(!1)
} else {
if (!Array.isArray(t) || !t.length || t.length !== e.handles + 1) throw new Error("noUiSlider (14.6.2): 'connect' option doesn't match handle count.");
i = t
}
e.connect = i
}
function M(e, t) {
switch (t) {
case "horizontal":
e.ort = 0;
break;
case "vertical":
e.ort = 1;
break;
default:
throw new Error("noUiSlider (14.6.2): 'orientation' option is invalid.")
}
}
function O(e, t) {
if (!r(t)) throw new Error("noUiSlider (14.6.2): 'margin' option must be numeric.");
0 !== t && (e.margin = e.spectrum.getDistance(t))
}
function I(e, t) {
if (!r(t)) throw new Error("noUiSlider (14.6.2): 'limit' option must be numeric.");
if (e.limit = e.spectrum.getDistance(t), !e.limit || e.handles < 2) throw new Error("noUiSlider (14.6.2): 'limit' option is only supported on linear sliders with 2 or more handles.")
}
function P(e, t) {
var n;
if (!r(t) && !Array.isArray(t)) throw new Error("noUiSlider (14.6.2): 'padding' option must be numeric or array of exactly 2 numbers.");
if (Array.isArray(t) && 2 !== t.length && !r(t[0]) && !r(t[1])) throw new Error("noUiSlider (14.6.2): 'padding' option must be numeric or array of exactly 2 numbers.");
if (0 !== t) {
for (Array.isArray(t) || (t = [t, t]), e.padding = [e.spectrum.getDistance(t[0]), e.spectrum.getDistance(t[1])], n = 0; n < e.spectrum.xNumSteps.length - 1; n++)
if (e.padding[0][n] < 0 || e.padding[1][n] < 0) throw new Error("noUiSlider (14.6.2): 'padding' option must be a positive number(s).");
var i = t[0] + t[1],
o = e.spectrum.xVal[0];
if (1 < i / (e.spectrum.xVal[e.spectrum.xVal.length - 1] - o)) throw new Error("noUiSlider (14.6.2): 'padding' option must not exceed 100% of the range.")
}
}
function L(e, t) {
switch (t) {
case "ltr":
e.dir = 0;
break;
case "rtl":
e.dir = 1;
break;
default:
throw new Error("noUiSlider (14.6.2): 'direction' option was not recognized.")
}
}
function F(e, t) {
if ("string" != typeof t) throw new Error("noUiSlider (14.6.2): 'behaviour' must be a string containing options.");
var n = 0 <= t.indexOf("tap"),
i = 0 <= t.indexOf("drag"),
r = 0 <= t.indexOf("fixed"),
o = 0 <= t.indexOf("snap"),
a = 0 <= t.indexOf("hover"),
s = 0 <= t.indexOf("unconstrained");
if (r) {
if (2 !== e.handles) throw new Error("noUiSlider (14.6.2): 'fixed' behaviour must be used with 2 handles");
O(e, e.start[1] - e.start[0])
}
if (s && (e.margin || e.limit)) throw new Error("noUiSlider (14.6.2): 'unconstrained' behaviour cannot be used with margin or limit");
e.events = {
tap: n || o,
drag: i,
fixed: r,
snap: o,
hover: a,
unconstrained: s
}
}
function N(e, t) {
if (!1 !== t)
if (!0 === t) {
e.tooltips = [];
for (var n = 0; n < e.handles; n++) e.tooltips.push(!0)
} else {
if (e.tooltips = s(t), e.tooltips.length !== e.handles) throw new Error("noUiSlider (14.6.2): must pass a formatter for all handles.");
e.tooltips.forEach((function(e) {
if ("boolean" != typeof e && ("object" != typeof e || "function" != typeof e.to)) throw new Error("noUiSlider (14.6.2): 'tooltips' must be passed a formatter or 'false'.")
}))
}
}
function R(e, t) {
w(e.ariaFormat = t)
}
function j(e, t) {
w(e.format = t)
}
function $(e, t) {
if ("boolean" != typeof(e.keyboardSupport = t)) throw new Error("noUiSlider (14.6.2): 'keyboardSupport' option must be a boolean.")
}
function z(e, t) {
e.documentElement = t
}
function H(e, t) {
if ("string" != typeof t && !1 !== t) throw new Error("noUiSlider (14.6.2): 'cssPrefix' must be a string or `false`.");
e.cssPrefix = t
}
function B(e, t) {
if ("object" != typeof t) throw new Error("noUiSlider (14.6.2): 'cssClasses' must be an object.");
if ("string" == typeof e.cssPrefix)
for (var n in e.cssClasses = {}, t) t.hasOwnProperty(n) && (e.cssClasses[n] = e.cssPrefix + t[n]);
else e.cssClasses = t
}
function q(e) {
var t = {
margin: 0,
limit: 0,
padding: 0,
animate: !0,
animationDuration: 300,
ariaFormat: y,
format: y
},
i = {
step: {
r: !1,
t: x
},
keyboardPageMultiplier: {
r: !1,
t: _
},
keyboardDefaultStep: {
r: !1,
t: C
},
start: {
r: !0,
t: S
},
connect: {
r: !0,
t: A
},
direction: {
r: !0,
t: L
},
snap: {
r: !1,
t: T
},
animate: {
r: !1,
t: D
},
animationDuration: {
r: !1,
t: E
},
range: {
r: !0,
t: k
},
orientation: {
r: !1,
t: M
},
margin: {
r: !1,
t: O
},
limit: {
r: !1,
t: I
},
padding: {
r: !1,
t: P
},
behaviour: {
r: !0,
t: F
},
ariaFormat: {
r: !1,
t: R
},
format: {
r: !1,
t: j
},
tooltips: {
r: !1,
t: N
},
keyboardSupport: {
r: !0,
t: $
},
documentElement: {
r: !1,
t: z
},
cssPrefix: {
r: !0,
t: H
},
cssClasses: {
r: !0,
t: B
}
},
r = {
connect: !1,
direction: "ltr",
behaviour: "tap",
orientation: "horizontal",
keyboardSupport: !0,
cssPrefix: "noUi-",
cssClasses: b,
keyboardPageMultiplier: 5,
keyboardDefaultStep: 10
};
e.format && !e.ariaFormat && (e.ariaFormat = e.format), Object.keys(i).forEach((function(o) {
if (!n(e[o]) && void 0 === r[o]) {
if (i[o].r) throw new Error("noUiSlider (14.6.2): '" + o + "' is required.");
return !0
}
i[o].t(t, n(e[o]) ? e[o] : r[o])
})), t.pips = e.pips;
var o = document.createElement("div"),
a = void 0 !== o.style.msTransform,
s = void 0 !== o.style.transform;
return t.transformRule = s ? "transform" : a ? "msTransform" : "webkitTransform", t.style = [
["left", "top"],
["right", "bottom"]
][t.dir][t.ort], t
}
return {
__spectrum: v,
version: e,
cssClasses: b,
create: function(e, n) {
if (!e || !e.nodeName) throw new Error("noUiSlider (14.6.2): create requires a single element, got: " + e);
if (e.noUiSlider) throw new Error("noUiSlider (14.6.2): Slider was already initialized.");
var r = function(e, n, r) {
var l, h, f, p, g, m, v, y, b = window.navigator.pointerEnabled ? {
start: "pointerdown",
move: "pointermove",
end: "pointerup"
} : window.navigator.msPointerEnabled ? {
start: "MSPointerDown",
move: "MSPointerMove",
end: "MSPointerUp"
} : {
start: "mousedown touchstart",
move: "mousemove touchmove",
end: "mouseup touchend"
},
w = window.CSS && CSS.supports && CSS.supports("touch-action", "none") && function() {
var e = !1;
try {
var t = Object.defineProperty({}, "passive", {
get: function() {
e = !0
}
});
window.addEventListener("test", null, t)
} catch (e) {}
return e
}(),
x = e,
_ = n.spectrum,
C = [],
k = [],
S = [],
T = 0,
D = {},
E = e.ownerDocument,
A = n.documentElement || E.documentElement,
M = E.body,
O = "rtl" === E.dir || 1 === n.ort ? 0 : 100;
function I(e, t) {
var n = E.createElement("div");
return t && c(n, t), e.appendChild(n), n
}
function P(e, t) {
var i = I(e, n.cssClasses.origin),
r = I(i, n.cssClasses.handle);
return I(r, n.cssClasses.touchArea), r.setAttribute("data-handle", t), n.keyboardSupport && (r.setAttribute("tabindex", "0"), r.addEventListener("keydown", (function(e) {
return function(e, t) {
if (N() || R(t)) return !1;
var i = ["Left", "Right"],
r = ["Down", "Up"],
o = ["PageDown", "PageUp"],
a = ["Home", "End"];
n.dir && !n.ort ? i.reverse() : n.ort && !n.dir && (r.reverse(), o.reverse());
var s, l = e.key.replace("Arrow", ""),
c = l === o[0],
u = l === o[1],
d = l === r[0] || l === i[0] || c,
h = l === r[1] || l === i[1] || u,
f = l === a[1];
if (!(d || h || l === a[0] || f)) return !0;
if (e.preventDefault(), h || d) {
var p = n.keyboardPageMultiplier,
g = d ? 0 : 1,
m = ue(t)[g];
if (null === m) return !1;
!1 === m && (m = _.getDefaultStep(k[t], d, n.keyboardDefaultStep)), (u || c) && (m *= p), m = Math.max(m, 1e-7), m *= d ? -1 : 1, s = C[t] + m
} else s = f ? n.spectrum.xVal[n.spectrum.xVal.length - 1] : n.spectrum.xVal[0];
return oe(t, _.toStepping(s), !0, !0), Z("slide", t), Z("update", t), Z("change", t), Z("set", t), !1
}(e, t)
}))), r.setAttribute("role", "slider"), r.setAttribute("aria-orientation", n.ort ? "vertical" : "horizontal"), 0 === t ? c(r, n.cssClasses.handleLower) : t === n.handles - 1 && c(r, n.cssClasses.handleUpper), i
}
function L(e, t) {
return !!t && I(e, n.cssClasses.connect)
}
function F(e, t) {
return !!n.tooltips[t] && I(e.firstChild, n.cssClasses.tooltip)
}
function N() {
return x.hasAttribute("disabled")
}
function R(e) {
return h[e].hasAttribute("disabled")
}
function j() {
g && (J("update.tooltips"), g.forEach((function(e) {
e && t(e)
})), g = null)
}
function $() {
j(), g = h.map(F), K("update.tooltips", (function(e, t, i) {
if (g[t]) {
var r = e[t];
!0 !== n.tooltips[t] && (r = n.tooltips[t].to(i[t])), g[t].innerHTML = r
}
}))
}
function z(e, t, i) {
var r = E.createElement("div"),
o = [];
o[0] = n.cssClasses.valueNormal, o[1] = n.cssClasses.valueLarge, o[2] = n.cssClasses.valueSub;
var a = [];
a[0] = n.cssClasses.markerNormal, a[1] = n.cssClasses.markerLarge, a[2] = n.cssClasses.markerSub;
var s = [n.cssClasses.valueHorizontal, n.cssClasses.valueVertical],
l = [n.cssClasses.markerHorizontal, n.cssClasses.markerVertical];
function u(e, t) {
var i = t === n.cssClasses.value,
r = i ? o : a;
return t + " " + (i ? s : l)[n.ort] + " " + r[e]
}
return c(r, n.cssClasses.pips), c(r, 0 === n.ort ? n.cssClasses.pipsHorizontal : n.cssClasses.pipsVertical), Object.keys(e).forEach((function(o) {
! function(e, o, a) {
if (-1 !== (a = t ? t(o, a) : a)) {
var s = I(r, !1);
s.className = u(a, n.cssClasses.marker), s.style[n.style] = e + "%", 0 < a && ((s = I(r, !1)).className = u(a, n.cssClasses.value), s.setAttribute("data-value", o), s.style[n.style] = e + "%", s.innerHTML = i.to(o))
}
}(o, e[o][0], e[o][1])
})), r
}
function H() {
p && (t(p), p = null)
}
function B(e) {
H();
var t, n, i, r, o, a, s, l, c, u = e.mode,
d = e.density || 1,
h = e.filter || !1,
f = function(e, t, n) {
if ("range" === e || "steps" === e) return _.xVal;
if ("count" === e) {
if (t < 2) throw new Error("noUiSlider (14.6.2): 'values' (>= 2) required for mode 'count'.");
var i = t - 1,
r = 100 / i;
for (t = []; i--;) t[i] = i * r;
t.push(100), e = "positions"
}
return "positions" === e ? t.map((function(e) {
return _.fromStepping(n ? _.getStep(e) : e)
})) : "values" === e ? n ? t.map((function(e) {
return _.fromStepping(_.getStep(_.toStepping(e)))
})) : t : void 0
}(u, e.values || !1, e.stepped || !1),
g = (t = d, n = u, i = f, r = {}, o = _.xVal[0], a = _.xVal[_.xVal.length - 1], l = s = !1, c = 0, (i = i.slice().sort((function(e, t) {
return e - t
})).filter((function(e) {
return !this[e] && (this[e] = !0)
}), {}))[0] !== o && (i.unshift(o), s = !0), i[i.length - 1] !== a && (i.push(a), l = !0), i.forEach((function(e, o) {
var a, u, d, h, f, p, g, m, v, y, b = e,
w = i[o + 1],
x = "steps" === n;
if (x && (a = _.xNumSteps[o]), a || (a = w - b), !1 !== b)
for (void 0 === w && (w = b), a = Math.max(a, 1e-7), u = b; u <= w; u = (u + a).toFixed(7) / 1) {
for (m = (f = (h = _.toStepping(u)) - c) / t, y = f / (v = Math.round(m)), d = 1; d <= v; d += 1) r[(p = c + d * y).toFixed(5)] = [_.fromStepping(p), 0];
g = -1 < i.indexOf(u) ? 1 : x ? 2 : 0, !o && s && u !== w && (g = 0), u === w && l || (r[h.toFixed(5)] = [u, g]), c = h
}
})), r),
m = e.format || {
to: Math.round
};
return p = x.appendChild(z(g, h, m))
}
function W() {
var e = l.getBoundingClientRect(),
t = "offset" + ["Width", "Height"][n.ort];
return 0 === n.ort ? e.width || l[t] : e.height || l[t]
}
function U(e, t, i, r) {
var o = function(o) {
return !!(o = function(e, t, n) {
var i, r, o = 0 === e.type.indexOf("touch"),
a = 0 === e.type.indexOf("mouse"),
s = 0 === e.type.indexOf("pointer");
if (0 === e.type.indexOf("MSPointer") && (s = !0), "mousedown" === e.type && !e.buttons && !e.touches) return !1;
if (o) {
var l = function(e) {
return e.target === n || n.contains(e.target) || e.target.shadowRoot && e.target.shadowRoot.contains(n)
};
if ("touchstart" === e.type) {
var c = Array.prototype.filter.call(e.touches, l);
if (1 < c.length) return !1;
i = c[0].pageX, r = c[0].pageY
} else {
var u = Array.prototype.find.call(e.changedTouches, l);
if (!u) return !1;
i = u.pageX, r = u.pageY
}
}
return t = t || d(E), (a || s) && (i = e.clientX + t.x, r = e.clientY + t.y), e.pageOffset = t, e.points = [i, r], e.cursor = a || s, e
}(o, r.pageOffset, r.target || t)) && !(N() && !r.doNotReject) && (a = x, s = n.cssClasses.tap, !((a.classList ? a.classList.contains(s) : new RegExp("\\b" + s + "\\b").test(a.className)) && !r.doNotReject) && !(e === b.start && void 0 !== o.buttons && 1 < o.buttons) && (!r.hover || !o.buttons) && (w || o.preventDefault(), o.calcPoint = o.points[n.ort], void i(o, r)));
var a, s
},
a = [];
return e.split(" ").forEach((function(e) {
t.addEventListener(e, o, !!w && {
passive: !0
}), a.push([e, o])
})), a
}
function V(e) {
var t, i, r, o, s, c, u = 100 * (e - (t = l, i = n.ort, r = t.getBoundingClientRect(), s = (o = t.ownerDocument).documentElement, c = d(o), /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (c.x = 0), i ? r.top + c.y - s.clientTop : r.left + c.x - s.clientLeft)) / W();
return u = a(u), n.dir ? 100 - u : u
}
function Y(e, t) {
"mouseout" === e.type && "HTML" === e.target.nodeName && null === e.relatedTarget && G(e, t)
}
function X(e, t) {
if (-1 === navigator.appVersion.indexOf("MSIE 9") && 0 === e.buttons && 0 !== t.buttonsProperty) return G(e, t);
var i = (n.dir ? -1 : 1) * (e.calcPoint - t.startCalcPoint);
ne(0 < i, 100 * i / t.baseSize, t.locations, t.handleNumbers)
}
function G(e, t) {
t.handle && (u(t.handle, n.cssClasses.active), T -= 1), t.listeners.forEach((function(e) {
A.removeEventListener(e[0], e[1])
})), 0 === T && (u(x, n.cssClasses.drag), re(), e.cursor && (M.style.cursor = "", M.removeEventListener("selectstart", i))), t.handleNumbers.forEach((function(e) {
Z("change", e), Z("set", e), Z("end", e)
}))
}
function Q(e, t) {
if (t.handleNumbers.some(R)) return !1;
var r;
1 === t.handleNumbers.length && (r = h[t.handleNumbers[0]].children[0], T += 1, c(r, n.cssClasses.active)), e.stopPropagation();
var o = [],
a = U(b.move, A, X, {
target: e.target,
handle: r,
listeners: o,
startCalcPoint: e.calcPoint,
baseSize: W(),
pageOffset: e.pageOffset,
handleNumbers: t.handleNumbers,
buttonsProperty: e.buttons,
locations: k.slice()
}),
s = U(b.end, A, G, {
target: e.target,
handle: r,
listeners: o,
doNotReject: !0,
handleNumbers: t.handleNumbers
}),
l = U("mouseout", A, Y, {
target: e.target,
handle: r,
listeners: o,
doNotReject: !0,
handleNumbers: t.handleNumbers
});
o.push.apply(o, a.concat(s, l)), e.cursor && (M.style.cursor = getComputedStyle(e.target).cursor, 1 < h.length && c(x, n.cssClasses.drag), M.addEventListener("selectstart", i, !1)), t.handleNumbers.forEach((function(e) {
Z("start", e)
}))
}
function K(e, t) {
D[e] = D[e] || [], D[e].push(t), "update" === e.split(".")[0] && h.forEach((function(e, t) {
Z("update", t)
}))
}
function J(e) {
var t = e && e.split(".")[0],
n = t && e.substring(t.length);
Object.keys(D).forEach((function(e) {
var i = e.split(".")[0],
r = e.substring(i.length);
t && t !== i || n && n !== r || delete D[e]
}))
}
function Z(e, t, i) {
Object.keys(D).forEach((function(r) {
var o = r.split(".")[0];
e === o && D[r].forEach((function(e) {
e.call(m, C.map(n.format.to), t, C.slice(), i || !1, k.slice(), m)
}))
}))
}
function ee(e, t, i, r, o, s) {
var l;
return 1 < h.length && !n.events.unconstrained && (r && 0 < t && (l = _.getAbsoluteDistance(e[t - 1], n.margin, 0), i = Math.max(i, l)), o && t < h.length - 1 && (l = _.getAbsoluteDistance(e[t + 1], n.margin, 1), i = Math.min(i, l))), 1 < h.length && n.limit && (r && 0 < t && (l = _.getAbsoluteDistance(e[t - 1], n.limit, 0), i = Math.min(i, l)), o && t < h.length - 1 && (l = _.getAbsoluteDistance(e[t + 1], n.limit, 1), i = Math.max(i, l))), n.padding && (0 === t && (l = _.getAbsoluteDistance(0, n.padding[0], 0), i = Math.max(i, l)), t === h.length - 1 && (l = _.getAbsoluteDistance(100, n.padding[1], 1), i = Math.min(i, l))), !((i = a(i = _.getStep(i))) === e[t] && !s) && i
}
function te(e, t) {
var i = n.ort;
return (i ? t : e) + ", " + (i ? e : t)
}
function ne(e, t, n, i) {
var r = n.slice(),
o = [!e, e],
a = [e, !e];
i = i.slice(), e && i.reverse(), 1 < i.length ? i.forEach((function(e, n) {
var i = ee(r, e, r[e] + t, o[n], a[n], !1);
!1 === i ? t = 0 : (t = i - r[e], r[e] = i)
})) : o = a = [!0];
var s = !1;
i.forEach((function(e, i) {
s = oe(e, n[e] + t, o[i], a[i]) || s
})), s && i.forEach((function(e) {
Z("update", e), Z("slide", e)
}))
}
function ie(e, t) {
return n.dir ? 100 - e - t : e
}
function re() {
S.forEach((function(e) {
var t = 50 < k[e] ? -1 : 1,
n = 3 + (h.length + t * e);
h[e].style.zIndex = n
}))
}
function oe(e, t, i, r, o) {
return o || (t = ee(k, e, t, i, r, !1)), !1 !== t && (function(e, t) {
k[e] = t, C[e] = _.fromStepping(t);
var i = "translate(" + te(10 * (ie(t, 0) - O) + "%", "0") + ")";
h[e].style[n.transformRule] = i, ae(e), ae(e + 1)
}(e, t), !0)
}
function ae(e) {
if (f[e]) {
var t = 0,
i = 100;
0 !== e && (t = k[e - 1]), e !== f.length - 1 && (i = k[e]);
var r = i - t,
o = "translate(" + te(ie(t, r) + "%", "0") + ")",
a = "scale(" + te(r / 100, "1") + ")";
f[e].style[n.transformRule] = o + " " + a
}
}
function se(e, t) {
return null === e || !1 === e || void 0 === e ? k[t] : ("number" == typeof e && (e = String(e)), e = n.format.from(e), !1 === (e = _.toStepping(e)) || isNaN(e) ? k[t] : e)
}
function le(e, t, i) {
var r = s(e),
a = void 0 === k[0];
t = void 0 === t || !!t, n.animate && !a && o(x, n.cssClasses.tap, n.animationDuration), S.forEach((function(e) {
oe(e, se(r[e], e), !0, !1, i)
}));
for (var l = 1 === S.length ? 0 : 1; l < S.length; ++l) S.forEach((function(e) {
oe(e, k[e], !0, !0, i)
}));
re(), S.forEach((function(e) {
Z("update", e), null !== r[e] && t && Z("set", e)
}))
}
function ce() {
var e = C.map(n.format.to);
return 1 === e.length ? e[0] : e
}
function ue(e) {
var t = k[e],
i = _.getNearbySteps(t),
r = C[e],
o = i.thisStep.step,
a = null;
if (n.snap) return [r - i.stepBefore.startValue || null, i.stepAfter.startValue - r || null];
!1 !== o && r + o > i.stepAfter.startValue && (o = i.stepAfter.startValue - r), a = r > i.thisStep.startValue ? i.thisStep.step : !1 !== i.stepBefore.step && r - i.stepBefore.highestStep, 100 === t ? o = null : 0 === t && (a = null);
var s = _.countStepDecimals();
return null !== o && !1 !== o && (o = Number(o.toFixed(s))), null !== a && !1 !== a && (a = Number(a.toFixed(s))), [a, o]
}
return c(v = x, n.cssClasses.target), 0 === n.dir ? c(v, n.cssClasses.ltr) : c(v, n.cssClasses.rtl), 0 === n.ort ? c(v, n.cssClasses.horizontal) : c(v, n.cssClasses.vertical), c(v, "rtl" === getComputedStyle(v).direction ? n.cssClasses.textDirectionRtl : n.cssClasses.textDirectionLtr), l = I(v, n.cssClasses.base),
function(e, t) {
var i = I(t, n.cssClasses.connects);
h = [], (f = []).push(L(i, e[0]));
for (var r = 0; r < n.handles; r++) h.push(P(t, r)), S[r] = r, f.push(L(i, e[r + 1]))
}(n.connect, l), (y = n.events).fixed || h.forEach((function(e, t) {
U(b.start, e.children[0], Q, {
handleNumbers: [t]
})
})), y.tap && U(b.start, l, (function(e) {
e.stopPropagation();
var t, i, r, a = V(e.calcPoint),
s = (t = a, r = !(i = 100), h.forEach((function(e, n) {
if (!R(n)) {
var o = k[n],
a = Math.abs(o - t);
(a < i || a <= i && o < t || 100 === a && 100 === i) && (r = n, i = a)
}
})), r);
if (!1 === s) return !1;
n.events.snap || o(x, n.cssClasses.tap, n.animationDuration), oe(s, a, !0, !0), re(), Z("slide", s, !0), Z("update", s, !0), Z("change", s, !0), Z("set", s, !0), n.events.snap && Q(e, {
handleNumbers: [s]
})
}), {}), y.hover && U(b.move, l, (function(e) {
var t = V(e.calcPoint),
n = _.getStep(t),
i = _.fromStepping(n);
Object.keys(D).forEach((function(e) {
"hover" === e.split(".")[0] && D[e].forEach((function(e) {
e.call(m, i)
}))
}))
}), {
hover: !0
}), y.drag && f.forEach((function(e, t) {
if (!1 !== e && 0 !== t && t !== f.length - 1) {
var i = h[t - 1],
r = h[t],
o = [e];
c(e, n.cssClasses.draggable), y.fixed && (o.push(i.children[0]), o.push(r.children[0])), o.forEach((function(e) {
U(b.start, e, Q, {
handles: [i, r],
handleNumbers: [t - 1, t]
})
}))
}
})), le(n.start), n.pips && B(n.pips), n.tooltips && $(), K("update", (function(e, t, i, r, o) {
S.forEach((function(e) {
var t = h[e],
r = ee(k, e, 0, !0, !0, !0),
a = ee(k, e, 100, !0, !0, !0),
s = o[e],
l = n.ariaFormat.to(i[e]);
r = _.fromStepping(r).toFixed(1), a = _.fromStepping(a).toFixed(1), s = _.fromStepping(s).toFixed(1), t.children[0].setAttribute("aria-valuemin", r), t.children[0].setAttribute("aria-valuemax", a), t.children[0].setAttribute("aria-valuenow", s), t.children[0].setAttribute("aria-valuetext", l)
}))
})), m = {
destroy: function() {
for (var e in n.cssClasses) n.cssClasses.hasOwnProperty(e) && u(x, n.cssClasses[e]);
for (; x.firstChild;) x.removeChild(x.firstChild);
delete x.noUiSlider
},
steps: function() {
return S.map(ue)
},
on: K,
off: J,
get: ce,
set: le,
setHandle: function(e, t, n, i) {
if (!(0 <= (e = Number(e)) && e < S.length)) throw new Error("noUiSlider (14.6.2): invalid handle number, got: " + e);
oe(e, se(t, e), !0, !0, i), Z("update", e), n && Z("set", e)
},
reset: function(e) {
le(n.start, e)
},
__moveHandles: function(e, t, n) {
ne(e, t, k, n)
},
options: r,
updateOptions: function(e, t) {
var i = ce(),
o = ["margin", "limit", "padding", "range", "animate", "snap", "step", "format", "pips", "tooltips"];
o.forEach((function(t) {
void 0 !== e[t] && (r[t] = e[t])
}));
var a = q(r);
o.forEach((function(t) {
void 0 !== e[t] && (n[t] = a[t])
})), _ = a.spectrum, n.margin = a.margin, n.limit = a.limit, n.padding = a.padding, n.pips ? B(n.pips) : H(), n.tooltips ? $() : j(), k = [], le(e.start || i, t)
},
target: x,
removePips: H,
removeTooltips: j,
getTooltips: function() {
return g
},
getOrigins: function() {
return h
},
pips: B
}
}(e, q(n), n);
return e.noUiSlider = r
}
}
})),
function(e) {
"function" == typeof define && define.amd ? define(["jquery"], (function(t) {
return e(t, window, document)
})) : "object" == typeof exports ? module.exports = function(t, n) {
return t || (t = window), n || (n = "undefined" != typeof window ? require("jquery") : require("jquery")(t)), e(n, t, t.document)
} : e(jQuery, window, document)
}((function(e, t, n, i) {
function r(t) {
var n, i, o = {};
e.each(t, (function(e) {
(n = e.match(/^([^A-Z]+?)([A-Z])/)) && -1 !== "a aa ai ao as b fn i m o s ".indexOf(n[1] + " ") && (i = e.replace(n[0], n[2].toLowerCase()), o[i] = e, "o" === n[1] && r(t[e]))
})), t._hungarianMap = o
}
function o(t, n, a) {
var s;
t._hungarianMap || r(t), e.each(n, (function(r) {
(s = t._hungarianMap[r]) === i || !a && n[s] !== i || ("o" === s.charAt(0) ? (n[s] || (n[s] = {}), e.extend(!0, n[s], n[r]), o(t[s], n[s], a)) : n[s] = n[r])
}))
}
function a(e) {
var t = Ve.defaults.oLanguage,
n = t.sDecimal;
if (n && ze(n), e) {
var i = e.sZeroRecords;
!e.sEmptyTable && i && "No data available in table" === t.sEmptyTable && Oe(e, e, "sZeroRecords", "sEmptyTable"), !e.sLoadingRecords && i && "Loading..." === t.sLoadingRecords && Oe(e, e, "sZeroRecords", "sLoadingRecords"), e.sInfoThousands && (e.sThousands = e.sInfoThousands), (e = e.sDecimal) && n !== e && ze(e)
}
}
function s(e) {
if (ct(e, "ordering", "bSort"), ct(e, "orderMulti", "bSortMulti"), ct(e, "orderClasses", "bSortClasses"), ct(e, "orderCellsTop", "bSortCellsTop"), ct(e, "order", "aaSorting"), ct(e, "orderFixed", "aaSortingFixed"), ct(e, "paging", "bPaginate"), ct(e, "pagingType", "sPaginationType"), ct(e, "pageLength", "iDisplayLength"), ct(e, "searching", "bFilter"), "boolean" == typeof e.sScrollX && (e.sScrollX = e.sScrollX ? "100%" : ""), "boolean" == typeof e.scrollX && (e.scrollX = e.scrollX ? "100%" : ""), e = e.aoSearchCols)
for (var t = 0, n = e.length; t < n; t++) e[t] && o(Ve.models.oSearch, e[t])
}
function l(t) {
ct(t, "orderable", "bSortable"), ct(t, "orderData", "aDataSort"), ct(t, "orderSequence", "asSorting"), ct(t, "orderDataType", "sortDataType");
var n = t.aDataSort;
"number" == typeof n && !e.isArray(n) && (t.aDataSort = [n])
}
function c(n) {
if (!Ve.__browser) {
var i = {};
Ve.__browser = i;
var r = e("<div/>").css({
position: "fixed",
top: 0,
left: -1 * e(t).scrollLeft(),
height: 1,
width: 1,
overflow: "hidden"
}).append(e("<div/>").css({
position: "absolute",
top: 1,
left: 1,
width: 100,
overflow: "scroll"
}).append(e("<div/>").css({
width: "100%",
height: 10
}))).appendTo("body"),
o = r.children(),
a = o.children();
i.barWidth = o[0].offsetWidth - o[0].clientWidth, i.bScrollOversize = 100 === a[0].offsetWidth && 100 !== o[0].clientWidth, i.bScrollbarLeft = 1 !== Math.round(a.offset().left), i.bBounding = !!r[0].getBoundingClientRect().width, r.remove()
}
e.extend(n.oBrowser, Ve.__browser), n.oScroll.iBarWidth = Ve.__browser.barWidth
}
function u(e, t, n, r, o, a) {
var s, l = !1;
for (n !== i && (s = n, l = !0); r !== o;) e.hasOwnProperty(r) && (s = l ? t(s, e[r], r, e) : e[r], l = !0, r += a);
return s
}
function d(t, i) {
var r = Ve.defaults.column,
o = t.aoColumns.length;
r = e.extend({}, Ve.models.oColumn, r, {
nTh: i || n.createElement("th"),
sTitle: r.sTitle ? r.sTitle : i ? i.innerHTML : "",
aDataSort: r.aDataSort ? r.aDataSort : [o],
mData: r.mData ? r.mData : o,
idx: o
});
t.aoColumns.push(r), (r = t.aoPreSearchCols)[o] = e.extend({}, Ve.models.oSearch, r[o]), h(t, o, e(i).data())
}
function h(t, n, r) {
n = t.aoColumns[n];
var a = t.oClasses,
s = e(n.nTh);
if (!n.sWidthOrig) {
n.sWidthOrig = s.attr("width") || null;
var c = (s.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/);
c && (n.sWidthOrig = c[1])
}
r !== i && null !== r && (l(r), o(Ve.defaults.column, r, !0), r.mDataProp !== i && !r.mData && (r.mData = r.mDataProp), r.sType && (n._sManualType = r.sType), r.className && !r.sClass && (r.sClass = r.className), r.sClass && s.addClass(r.sClass), e.extend(n, r), Oe(n, r, "sWidth", "sWidthOrig"), r.iDataSort !== i && (n.aDataSort = [r.iDataSort]), Oe(n, r, "aDataSort"));
var u = n.mData,
d = S(u),
h = n.mRender ? S(n.mRender) : null;
r = function(e) {
return "string" == typeof e && -1 !== e.indexOf("@")
};
n._bAttrSrc = e.isPlainObject(u) && (r(u.sort) || r(u.type) || r(u.filter)), n._setter = null, n.fnGetData = function(e, t, n) {
var r = d(e, t, i, n);
return h && t ? h(r, t, e, n) : r
}, n.fnSetData = function(e, t, n) {
return T(u)(e, t, n)
}, "number" != typeof u && (t._rowReadObject = !0), t.oFeatures.bSort || (n.bSortable = !1, s.addClass(a.sSortableNone)), t = -1 !== e.inArray("asc", n.asSorting), r = -1 !== e.inArray("desc", n.asSorting), n.bSortable && (t || r) ? t && !r ? (n.sSortingClass = a.sSortableAsc, n.sSortingClassJUI = a.sSortJUIAscAllowed) : !t && r ? (n.sSortingClass = a.sSortableDesc, n.sSortingClassJUI = a.sSortJUIDescAllowed) : (n.sSortingClass = a.sSortable, n.sSortingClassJUI = a.sSortJUI) : (n.sSortingClass = a.sSortableNone, n.sSortingClassJUI = "")
}
function f(e) {
if (!1 !== e.oFeatures.bAutoWidth) {
var t = e.aoColumns;
ge(e);
for (var n = 0, i = t.length; n < i; n++) t[n].nTh.style.width = t[n].sWidth
}("" !== (t = e.oScroll).sY || "" !== t.sX) && fe(e), Fe(e, null, "column-sizing", [e])
}
function p(e, t) {
var n = v(e, "bVisible");
return "number" == typeof n[t] ? n[t] : null
}
function g(t, n) {
var i = v(t, "bVisible");
return -1 !== (i = e.inArray(n, i)) ? i : null
}
function m(t) {
var n = 0;
return e.each(t.aoColumns, (function(t, i) {
i.bVisible && "none" !== e(i.nTh).css("display") && n++
})), n
}
function v(t, n) {
var i = [];
return e.map(t.aoColumns, (function(e, t) {
e[n] && i.push(t)
})), i
}
function y(e) {
var t, n, r, o, a, s, l, c, u, d = e.aoColumns,
h = e.aoData,
f = Ve.ext.type.detect;
for (t = 0, n = d.length; t < n; t++)
if (u = [], !(l = d[t]).sType && l._sManualType) l.sType = l._sManualType;
else if (!l.sType) {
for (r = 0, o = f.length; r < o; r++) {
for (a = 0, s = h.length; a < s && (u[a] === i && (u[a] = _(e, a, t, "type")), (c = f[r](u[a], e)) || r === f.length - 1) && "html" !== c; a++);
if (c) {
l.sType = c;
break
}
}
l.sType || (l.sType = "string")
}
}
function b(t, n, r, o) {
var a, s, l, c, u, h, f = t.aoColumns;
if (n)
for (a = n.length - 1; 0 <= a; a--) {
var p = (h = n[a]).targets !== i ? h.targets : h.aTargets;
for (e.isArray(p) || (p = [p]), s = 0, l = p.length; s < l; s++)
if ("number" == typeof p[s] && 0 <= p[s]) {
for (; f.length <= p[s];) d(t);
o(p[s], h)
} else if ("number" == typeof p[s] && 0 > p[s]) o(f.length + p[s], h);
else if ("string" == typeof p[s])
for (c = 0, u = f.length; c < u; c++)("_all" == p[s] || e(f[c].nTh).hasClass(p[s])) && o(c, h)
}
if (r)
for (a = 0, t = r.length; a < t; a++) o(a, r[a])
}
function w(t, n, r, o) {
var a = t.aoData.length,
s = e.extend(!0, {}, Ve.models.oRow, {
src: r ? "dom" : "data",
idx: a
});
s._aData = n, t.aoData.push(s);
for (var l = t.aoColumns, c = 0, u = l.length; c < u; c++) l[c].sType = null;
return t.aiDisplayMaster.push(a), (n = t.rowIdFn(n)) !== i && (t.aIds[n] = s), (r || !t.oFeatures.bDeferRender) && I(t, a, r, o), a
}
function x(t, n) {
var i;
return n instanceof e || (n = e(n)), n.map((function(e, n) {
return i = O(t, n), w(t, i.data, n, i.cells)
}))
}
function _(e, t, n, r) {
var o = e.iDraw,
a = e.aoColumns[n],
s = e.aoData[t]._aData,
l = a.sDefaultContent,
c = a.fnGetData(s, r, {
settings: e,
row: t,
col: n
});
if (c === i) return e.iDrawError != o && null === l && (Me(e, 0, "Requested unknown parameter " + ("function" == typeof a.mData ? "{function}" : "'" + a.mData + "'") + " for row " + t + ", column " + n, 4), e.iDrawError = o), l;
if (c !== s && null !== c || null === l || r === i) {
if ("function" == typeof c) return c.call(s)
} else c = l;
return null === c && "display" == r ? "" : c
}
function C(e, t, n, i) {
e.aoColumns[n].fnSetData(e.aoData[t]._aData, i, {
settings: e,
row: t,
col: n
})
}
function k(t) {
return e.map(t.match(/(\\.|[^\.])+/g) || [""], (function(e) {
return e.replace(/\\\./g, ".")
}))
}
function S(t) {
if (e.isPlainObject(t)) {
var n = {};
return e.each(t, (function(e, t) {
t && (n[e] = S(t))
})),
function(e, t, r, o) {
var a = n[t] || n._;
return a !== i ? a(e, t, r, o) : e
}
}
if (null === t) return function(e) {
return e
};
if ("function" == typeof t) return function(e, n, i, r) {
return t(e, n, i, r)
};
if ("string" == typeof t && (-1 !== t.indexOf(".") || -1 !== t.indexOf("[") || -1 !== t.indexOf("("))) {
var r = function(t, n, o) {
var a, s;
if ("" !== o)
for (var l = 0, c = (s = k(o)).length; l < c; l++) {
if (o = s[l].match(ut), a = s[l].match(dt), o) {
if (s[l] = s[l].replace(ut, ""), "" !== s[l] && (t = t[s[l]]), a = [], s.splice(0, l + 1), s = s.join("."), e.isArray(t))
for (l = 0, c = t.length; l < c; l++) a.push(r(t[l], n, s));
t = "" === (t = o[0].substring(1, o[0].length - 1)) ? a : a.join(t);
break
}
if (a) s[l] = s[l].replace(dt, ""), t = t[s[l]]();
else {
if (null === t || t[s[l]] === i) return i;
t = t[s[l]]
}
}
return t
};
return function(e, n) {
return r(e, n, t)
}
}
return function(e) {
return e[t]
}
}
function T(t) {
if (e.isPlainObject(t)) return T(t._);
if (null === t) return function() {};
if ("function" == typeof t) return function(e, n, i) {
t(e, "set", n, i)
};
if ("string" == typeof t && (-1 !== t.indexOf(".") || -1 !== t.indexOf("[") || -1 !== t.indexOf("("))) {
var n = function(t, r, o) {
var a;
a = (o = k(o))[o.length - 1];
for (var s, l, c = 0, u = o.length - 1; c < u; c++) {
if (s = o[c].match(ut), l = o[c].match(dt), s) {
if (o[c] = o[c].replace(ut, ""), t[o[c]] = [], (a = o.slice()).splice(0, c + 1), s = a.join("."), e.isArray(r))
for (l = 0, u = r.length; l < u; l++) n(a = {}, r[l], s), t[o[c]].push(a);
else t[o[c]] = r;
return
}
l && (o[c] = o[c].replace(dt, ""), t = t[o[c]](r)), null !== t[o[c]] && t[o[c]] !== i || (t[o[c]] = {}), t = t[o[c]]
}
a.match(dt) ? t[a.replace(dt, "")](r) : t[a.replace(ut, "")] = r
};
return function(e, i) {
return n(e, i, t)
}
}
return function(e, n) {
e[t] = n
}
}
function D(e) {
return rt(e.aoData, "_aData")
}
function E(e) {
e.aoData.length = 0, e.aiDisplayMaster.length = 0, e.aiDisplay.length = 0, e.aIds = {}
}
function A(e, t, n) {
for (var r = -1, o = 0, a = e.length; o < a; o++) e[o] == t ? r = o : e[o] > t && e[o]--; - 1 != r && n === i && e.splice(r, 1)
}
function M(e, t, n, r) {
var o, a = e.aoData[t],
s = function(n, i) {
for (; n.childNodes.length;) n.removeChild(n.firstChild);
n.innerHTML = _(e, t, i, "display")
};
if ("dom" !== n && (n && "auto" !== n || "dom" !== a.src)) {
var l = a.anCells;
if (l)
if (r !== i) s(l[r], r);
else
for (n = 0, o = l.length; n < o; n++) s(l[n], n)
} else a._aData = O(e, a, r, r === i ? i : a._aData).data;
if (a._aSortData = null, a._aFilterData = null, s = e.aoColumns, r !== i) s[r].sType = null;
else {
for (n = 0, o = s.length; n < o; n++) s[n].sType = null;
P(e, a)
}
}
function O(t, n, r, o) {
var a, s, l, c = [],
u = n.firstChild,
d = 0,
h = t.aoColumns,
f = t._rowReadObject,
p = (o = o !== i ? o : f ? {} : [], function(e, t) {
if ("string" == typeof e) {
var n = e.indexOf("@"); - 1 !== n && (n = e.substring(n + 1), T(e)(o, t.getAttribute(n)))
}
}),
g = function(t) {
r !== i && r !== d || (s = h[d], l = e.trim(t.innerHTML), s && s._bAttrSrc ? (T(s.mData._)(o, l), p(s.mData.sort, t), p(s.mData.type, t), p(s.mData.filter, t)) : f ? (s._setter || (s._setter = T(s.mData)), s._setter(o, l)) : o[d] = l), d++
};
if (u)
for (; u;) "TD" != (a = u.nodeName.toUpperCase()) && "TH" != a || (g(u), c.push(u)), u = u.nextSibling;
else
for (u = 0, a = (c = n.anCells).length; u < a; u++) g(c[u]);
return (n = n.firstChild ? n : n.nTr) && (n = n.getAttribute("id")) && T(t.rowId)(o, n), {
data: o,
cells: c
}
}
function I(t, i, r, o) {
var a, s, l, c, u, d, h = t.aoData[i],
f = h._aData,
p = [];
if (null === h.nTr) {
for (a = r || n.createElement("tr"), h.nTr = a, h.anCells = p, a._DT_RowIndex = i, P(t, h), c = 0, u = t.aoColumns.length; c < u; c++) l = t.aoColumns[c], (s = (d = !r) ? n.createElement(l.sCellType) : o[c])._DT_CellIndex = {
row: i,
column: c
}, p.push(s), !d && (r && !l.mRender && l.mData === c || e.isPlainObject(l.mData) && l.mData._ === c + ".display") || (s.innerHTML = _(t, i, c, "display")), l.sClass && (s.className += " " + l.sClass), l.bVisible && !r ? a.appendChild(s) : !l.bVisible && r && s.parentNode.removeChild(s), l.fnCreatedCell && l.fnCreatedCell.call(t.oInstance, s, _(t, i, c), f, i, c);
Fe(t, "aoRowCreatedCallback", null, [a, f, i, p])
}
h.nTr.setAttribute("role", "row")
}
function P(t, n) {
var i = n.nTr,
r = n._aData;
if (i) {
var o = t.rowIdFn(r);
o && (i.id = o), r.DT_RowClass && (o = r.DT_RowClass.split(" "), n.__rowc = n.__rowc ? lt(n.__rowc.concat(o)) : o, e(i).removeClass(n.__rowc.join(" ")).addClass(r.DT_RowClass)), r.DT_RowAttr && e(i).attr(r.DT_RowAttr), r.DT_RowData && e(i).data(r.DT_RowData)
}
}
function L(t) {
var n, i, r, o, a, s = t.nTHead,
l = t.nTFoot,
c = 0 === e("th, td", s).length,
u = t.oClasses,
d = t.aoColumns;
for (c && (o = e("<tr/>").appendTo(s)), n = 0, i = d.length; n < i; n++) a = d[n], r = e(a.nTh).addClass(a.sClass), c && r.appendTo(o), t.oFeatures.bSort && (r.addClass(a.sSortingClass), !1 !== a.bSortable && (r.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), ke(t, a.nTh, n))), a.sTitle != r[0].innerHTML && r.html(a.sTitle), Re(t, "header")(t, r, a, u);
if (c && $(t.aoHeader, s), e(s).find(">tr").attr("role", "row"), e(s).find(">tr>th, >tr>td").addClass(u.sHeaderTH), e(l).find(">tr>th, >tr>td").addClass(u.sFooterTH), null !== l)
for (n = 0, i = (t = t.aoFooter[0]).length; n < i; n++)(a = d[n]).nTf = t[n].cell, a.sClass && e(a.nTf).addClass(a.sClass)
}
function F(t, n, r) {
var o, a, s, l, c = [],
u = [],
d = t.aoColumns.length;
if (n) {
for (r === i && (r = !1), o = 0, a = n.length; o < a; o++) {
for (c[o] = n[o].slice(), c[o].nTr = n[o].nTr, s = d - 1; 0 <= s; s--) !t.aoColumns[s].bVisible && !r && c[o].splice(s, 1);
u.push([])
}
for (o = 0, a = c.length; o < a; o++) {
if (t = c[o].nTr)
for (; s = t.firstChild;) t.removeChild(s);
for (s = 0, n = c[o].length; s < n; s++)
if (l = d = 1, u[o][s] === i) {
for (t.appendChild(c[o][s].cell), u[o][s] = 1; c[o + d] !== i && c[o][s].cell == c[o + d][s].cell;) u[o + d][s] = 1, d++;
for (; c[o][s + l] !== i && c[o][s].cell == c[o][s + l].cell;) {
for (r = 0; r < d; r++) u[o + r][s + l] = 1;
l++
}
e(c[o][s].cell).attr("rowspan", d).attr("colspan", l)
}
}
}
}
function N(t) {
var n = Fe(t, "aoPreDrawCallback", "preDraw", [t]);
if (-1 !== e.inArray(!1, n)) de(t, !1);
else {
n = [];
var r = 0,
o = t.asStripeClasses,
a = o.length,
s = t.oLanguage,
l = t.iInitDisplayStart,
c = "ssp" == je(t),
u = t.aiDisplay;
t.bDrawing = !0, l !== i && -1 !== l && (t._iDisplayStart = c ? l : l >= t.fnRecordsDisplay() ? 0 : l, t.iInitDisplayStart = -1);
l = t._iDisplayStart;
var d = t.fnDisplayEnd();
if (t.bDeferLoading) t.bDeferLoading = !1, t.iDraw++, de(t, !1);
else if (c) {
if (!t.bDestroying && !B(t)) return
} else t.iDraw++;
if (0 !== u.length)
for (s = c ? t.aoData.length : d, c = c ? 0 : l; c < s; c++) {
var h = u[c],
f = t.aoData[h];
null === f.nTr && I(t, h);
var p = f.nTr;
if (0 !== a) {
var g = o[r % a];
f._sRowStripe != g && (e(p).removeClass(f._sRowStripe).addClass(g), f._sRowStripe = g)
}
Fe(t, "aoRowCallback", null, [p, f._aData, r, c, h]), n.push(p), r++
} else r = s.sZeroRecords, 1 == t.iDraw && "ajax" == je(t) ? r = s.sLoadingRecords : s.sEmptyTable && 0 === t.fnRecordsTotal() && (r = s.sEmptyTable), n[0] = e("<tr/>", {
class: a ? o[0] : ""
}).append(e("<td />", {
valign: "top",
colSpan: m(t),
class: t.oClasses.sRowEmpty
}).html(r))[0];
Fe(t, "aoHeaderCallback", "header", [e(t.nTHead).children("tr")[0], D(t), l, d, u]), Fe(t, "aoFooterCallback", "footer", [e(t.nTFoot).children("tr")[0], D(t), l, d, u]), (o = e(t.nTBody)).children().detach(), o.append(e(n)), Fe(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1
}
}
function R(e, t) {
var n = e.oFeatures,
i = n.bFilter;
n.bSort && xe(e), i ? Y(e, e.oPreviousSearch) : e.aiDisplay = e.aiDisplayMaster.slice(), !0 !== t && (e._iDisplayStart = 0), e._drawHold = t, N(e), e._drawHold = !1
}
function j(t) {
var n = t.oClasses,
i = e(t.nTable),
r = (i = e("<div/>").insertBefore(i), t.oFeatures),
o = e("<div/>", {
id: t.sTableId + "_wrapper",
class: n.sWrapper + (t.nTFoot ? "" : " " + n.sNoFooter)
});
t.nHolding = i[0], t.nTableWrapper = o[0], t.nTableReinsertBefore = t.nTable.nextSibling;
for (var a, s, l, c, u, d, h = t.sDom.split(""), f = 0; f < h.length; f++) {
if (a = null, "<" == (s = h[f])) {
if (l = e("<div/>")[0], "'" == (c = h[f + 1]) || '"' == c) {
for (u = "", d = 2; h[f + d] != c;) u += h[f + d], d++;
"H" == u ? u = n.sJUIHeader : "F" == u && (u = n.sJUIFooter), -1 != u.indexOf(".") ? (c = u.split("."), l.id = c[0].substr(1, c[0].length - 1), l.className = c[1]) : "#" == u.charAt(0) ? l.id = u.substr(1, u.length - 1) : l.className = u, f += d
}
o.append(l), o = e(l)
} else if (">" == s) o = o.parent();
else if ("l" == s && r.bPaginate && r.bLengthChange) a = se(t);
else if ("f" == s && r.bFilter) a = V(t);
else if ("r" == s && r.bProcessing) a = ue(t);
else if ("t" == s) a = he(t);
else if ("i" == s && r.bInfo) a = te(t);
else if ("p" == s && r.bPaginate) a = le(t);
else if (0 !== Ve.ext.feature.length)
for (d = 0, c = (l = Ve.ext.feature).length; d < c; d++)
if (s == l[d].cFeature) {
a = l[d].fnInit(t);
break
}
a && ((l = t.aanFeatures)[s] || (l[s] = []), l[s].push(a), o.append(a))
}
i.replaceWith(o), t.nHolding = null
}
function $(t, n) {
var i, r, o, a, s, l, c, u, d, h, f = e(n).children("tr");
for (t.splice(0, t.length), o = 0, l = f.length; o < l; o++) t.push([]);
for (o = 0, l = f.length; o < l; o++)
for (r = (i = f[o]).firstChild; r;) {
if ("TD" == r.nodeName.toUpperCase() || "TH" == r.nodeName.toUpperCase()) {
for (u = (u = 1 * r.getAttribute("colspan")) && 0 !== u && 1 !== u ? u : 1, d = (d = 1 * r.getAttribute("rowspan")) && 0 !== d && 1 !== d ? d : 1, a = 0, s = t[o]; s[a];) a++;
for (c = a, h = 1 === u, s = 0; s < u; s++)
for (a = 0; a < d; a++) t[o + a][c + s] = {
cell: r,
unique: h
}, t[o + a].nTr = i
}
r = r.nextSibling
}
}
function z(e, t, n) {
var i = [];
n || (n = e.aoHeader, t && $(n = [], t));
t = 0;
for (var r = n.length; t < r; t++)
for (var o = 0, a = n[t].length; o < a; o++) !n[t][o].unique || i[o] && e.bSortCellsTop || (i[o] = n[t][o].cell);
return i
}
function H(t, n, i) {
if (Fe(t, "aoServerParams", "serverParams", [n]), n && e.isArray(n)) {
var r = {},
o = /(.*?)\[\]$/;
e.each(n, (function(e, t) {
var n = t.name.match(o);
n ? (n = n[0], r[n] || (r[n] = []), r[n].push(t.value)) : r[t.name] = t.value
})), n = r
}
var a, s = t.ajax,
l = t.oInstance,
c = function(e) {
Fe(t, null, "xhr", [t, e, t.jqXHR]), i(e)
};
if (e.isPlainObject(s) && s.data) {
var u = "function" == typeof(a = s.data) ? a(n, t) : a;
n = "function" == typeof a && u ? u : e.extend(!0, n, u);
delete s.data
}
u = {
data: n,
success: function(e) {
var n = e.error || e.sError;
n && Me(t, 0, n), t.json = e, c(e)
},
dataType: "json",
cache: !1,
type: t.sServerMethod,
error: function(n, i) {
var r = Fe(t, null, "xhr", [t, null, t.jqXHR]); - 1 === e.inArray(!0, r) && ("parsererror" == i ? Me(t, 0, "Invalid JSON response", 1) : 4 === n.readyState && Me(t, 0, "Ajax error", 7)), de(t, !1)
}
}, t.oAjaxData = n, Fe(t, null, "preXhr", [t, n]), t.fnServerData ? t.fnServerData.call(l, t.sAjaxSource, e.map(n, (function(e, t) {
return {
name: t,
value: e
}
})), c, t) : t.sAjaxSource || "string" == typeof s ? t.jqXHR = e.ajax(e.extend(u, {
url: s || t.sAjaxSource
})) : "function" == typeof s ? t.jqXHR = s.call(l, n, c, t) : (t.jqXHR = e.ajax(e.extend(u, s)), s.data = a)
}
function B(e) {
return !e.bAjaxDataGet || (e.iDraw++, de(e, !0), H(e, q(e), (function(t) {
W(e, t)
})), !1)
}
function q(t) {
var n, i, r, o, a = t.aoColumns,
s = a.length,
l = t.oFeatures,
c = t.oPreviousSearch,
u = t.aoPreSearchCols,
d = [],
h = we(t);
n = t._iDisplayStart, i = !1 !== l.bPaginate ? t._iDisplayLength : -1;
var f = function(e, t) {
d.push({
name: e,
value: t
})
};
f("sEcho", t.iDraw), f("iColumns", s), f("sColumns", rt(a, "sName").join(",")), f("iDisplayStart", n), f("iDisplayLength", i);
var p = {
draw: t.iDraw,
columns: [],
order: [],
start: n,
length: i,
search: {
value: c.sSearch,
regex: c.bRegex
}
};
for (n = 0; n < s; n++) r = a[n], o = u[n], i = "function" == typeof r.mData ? "function" : r.mData, p.columns.push({
data: i,
name: r.sName,
searchable: r.bSearchable,
orderable: r.bSortable,
search: {
value: o.sSearch,
regex: o.bRegex
}
}), f("mDataProp_" + n, i), l.bFilter && (f("sSearch_" + n, o.sSearch), f("bRegex_" + n, o.bRegex), f("bSearchable_" + n, r.bSearchable)), l.bSort && f("bSortable_" + n, r.bSortable);
return l.bFilter && (f("sSearch", c.sSearch), f("bRegex", c.bRegex)), l.bSort && (e.each(h, (function(e, t) {
p.order.push({
column: t.col,
dir: t.dir
}), f("iSortCol_" + e, t.col), f("sSortDir_" + e, t.dir)
})), f("iSortingCols", h.length)), null === (a = Ve.ext.legacy.ajax) ? t.sAjaxSource ? d : p : a ? d : p
}
function W(e, t) {
var n = U(e, t),
r = t.sEcho !== i ? t.sEcho : t.draw,
o = t.iTotalRecords !== i ? t.iTotalRecords : t.recordsTotal,
a = t.iTotalDisplayRecords !== i ? t.iTotalDisplayRecords : t.recordsFiltered;
if (r !== i) {
if (1 * r < e.iDraw) return;
e.iDraw = 1 * r
}
for (E(e), e._iRecordsTotal = parseInt(o, 10), e._iRecordsDisplay = parseInt(a, 10), r = 0, o = n.length; r < o; r++) w(e, n[r]);
e.aiDisplay = e.aiDisplayMaster.slice(), e.bAjaxDataGet = !1, N(e), e._bInitComplete || oe(e, t), e.bAjaxDataGet = !0, de(e, !1)
}
function U(t, n) {
var r = e.isPlainObject(t.ajax) && t.ajax.dataSrc !== i ? t.ajax.dataSrc : t.sAjaxDataProp;
return "data" === r ? n.aaData || n[r] : "" !== r ? S(r)(n) : n
}
function V(t) {
var i = t.oClasses,
r = t.sTableId,
o = t.oLanguage,
a = t.oPreviousSearch,
s = t.aanFeatures,
l = '<input type="search" class="' + i.sFilterInput + '"/>',
c = (c = o.sSearch).match(/_INPUT_/) ? c.replace("_INPUT_", l) : c + l,
u = (i = e("<div/>", {
id: s.f ? null : r + "_filter",
class: i.sFilter
}).append(e("<label/>").append(c)), function() {
var e = this.value ? this.value : "";
e != a.sSearch && (Y(t, {
sSearch: e,
bRegex: a.bRegex,
bSmart: a.bSmart,
bCaseInsensitive: a.bCaseInsensitive
}), t._iDisplayStart = 0, N(t))
}),
d = (s = null !== t.searchDelay ? t.searchDelay : "ssp" === je(t) ? 400 : 0, e("input", i).val(a.sSearch).attr("placeholder", o.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", s ? mt(u, s) : u).on("mouseup", (function() {
setTimeout((function() {
u.call(d[0])
}), 10)
})).on("keypress.DT", (function(e) {
if (13 == e.keyCode) return !1
})).attr("aria-controls", r));
return e(t.nTable).on("search.dt.DT", (function(e, i) {
if (t === i) try {
d[0] !== n.activeElement && d.val(a.sSearch)
} catch (e) {}
})), i[0]
}
function Y(e, t, n) {
var r = e.oPreviousSearch,
o = e.aoPreSearchCols,
a = function(e) {
r.sSearch = e.sSearch, r.bRegex = e.bRegex, r.bSmart = e.bSmart, r.bCaseInsensitive = e.bCaseInsensitive
};
if (y(e), "ssp" != je(e)) {
for (Q(e, t.sSearch, n, t.bEscapeRegex !== i ? !t.bEscapeRegex : t.bRegex, t.bSmart, t.bCaseInsensitive), a(t), t = 0; t < o.length; t++) G(e, o[t].sSearch, t, o[t].bEscapeRegex !== i ? !o[t].bEscapeRegex : o[t].bRegex, o[t].bSmart, o[t].bCaseInsensitive);
X(e)
} else a(t);
e.bFiltered = !0, Fe(e, null, "search", [e])
}
function X(t) {
for (var n, i, r = Ve.ext.search, o = t.aiDisplay, a = 0, s = r.length; a < s; a++) {
for (var l = [], c = 0, u = o.length; c < u; c++) i = o[c], n = t.aoData[i], r[a](t, n._aFilterData, i, n._aData, c) && l.push(i);
o.length = 0, e.merge(o, l)
}
}
function G(e, t, n, i, r, o) {
if ("" !== t) {
var a = [],
s = e.aiDisplay;
for (i = K(t, i, r, o), r = 0; r < s.length; r++) t = e.aoData[s[r]]._aFilterData[n], i.test(t) && a.push(s[r]);
e.aiDisplay = a
}
}
function Q(e, t, n, i, r, o) {
r = K(t, i, r, o);
var a, s = e.oPreviousSearch.sSearch,
l = e.aiDisplayMaster;
o = [];
if (0 !== Ve.ext.search.length && (n = !0), a = J(e), 0 >= t.length) e.aiDisplay = l.slice();
else {
for ((a || n || i || s.length > t.length || 0 !== t.indexOf(s) || e.bSorted) && (e.aiDisplay = l.slice()), t = e.aiDisplay, n = 0; n < t.length; n++) r.test(e.aoData[t[n]]._sFilterRow) && o.push(t[n]);
e.aiDisplay = o
}
}
function K(t, n, i, r) {
return t = n ? t : ht(t), i && (t = "^(?=.*?" + e.map(t.match(/"[^"]+"|[^ ]+/g) || [""], (function(e) {
if ('"' === e.charAt(0)) {
var t = e.match(/^"(.*)"$/);
e = t ? t[1] : e
}
return e.replace('"', "")
})).join(")(?=.*?") + ").*$"), RegExp(t, r ? "i" : "")
}
function J(e) {
var t, n, i, r, o, a, s, l, c = e.aoColumns,
u = Ve.ext.type.search;
for (t = !1, n = 0, r = e.aoData.length; n < r; n++)
if (!(l = e.aoData[n])._aFilterData) {
for (a = [], i = 0, o = c.length; i < o; i++)(t = c[i]).bSearchable ? (s = _(e, n, i, "filter"), u[t.sType] && (s = u[t.sType](s)), null === s && (s = ""), "string" != typeof s && s.toString && (s = s.toString())) : s = "", s.indexOf && -1 !== s.indexOf("&") && (ft.innerHTML = s, s = pt ? ft.textContent : ft.innerText), s.replace && (s = s.replace(/[\r\n\u2028]/g, "")), a.push(s);
l._aFilterData = a, l._sFilterRow = a.join(" "), t = !0
}
return t
}
function Z(e) {
return {
search: e.sSearch,
smart: e.bSmart,
regex: e.bRegex,
caseInsensitive: e.bCaseInsensitive
}
}
function ee(e) {
return {
sSearch: e.search,
bSmart: e.smart,
bRegex: e.regex,
bCaseInsensitive: e.caseInsensitive
}
}
function te(t) {
var n = t.sTableId,
i = t.aanFeatures.i,
r = e("<div/>", {
class: t.oClasses.sInfo,
id: i ? null : n + "_info"
});
return i || (t.aoDrawCallback.push({
fn: ne,
sName: "information"
}), r.attr("role", "status").attr("aria-live", "polite"), e(t.nTable).attr("aria-describedby", n + "_info")), r[0]
}
function ne(t) {
var n = t.aanFeatures.i;
if (0 !== n.length) {
var i = t.oLanguage,
r = t._iDisplayStart + 1,
o = t.fnDisplayEnd(),
a = t.fnRecordsTotal(),
s = t.fnRecordsDisplay(),
l = s ? i.sInfo : i.sInfoEmpty;
s !== a && (l += " " + i.sInfoFiltered), l = ie(t, l += i.sInfoPostFix), null !== (i = i.fnInfoCallback) && (l = i.call(t.oInstance, t, r, o, a, s, l)), e(n).html(l)
}
}
function ie(e, t) {
var n = e.fnFormatNumber,
i = e._iDisplayStart + 1,
r = e._iDisplayLength,
o = e.fnRecordsDisplay(),
a = -1 === r;
return t.replace(/_START_/g, n.call(e, i)).replace(/_END_/g, n.call(e, e.fnDisplayEnd())).replace(/_MAX_/g, n.call(e, e.fnRecordsTotal())).replace(/_TOTAL_/g, n.call(e, o)).replace(/_PAGE_/g, n.call(e, a ? 1 : Math.ceil(i / r))).replace(/_PAGES_/g, n.call(e, a ? 1 : Math.ceil(o / r)))
}
function re(e) {
var t, n, i, r = e.iInitDisplayStart,
o = e.aoColumns;
n = e.oFeatures;
var a = e.bDeferLoading;
if (e.bInitialised) {
for (j(e), L(e), F(e, e.aoHeader), F(e, e.aoFooter), de(e, !0), n.bAutoWidth && ge(e), t = 0, n = o.length; t < n; t++)(i = o[t]).sWidth && (i.nTh.style.width = be(i.sWidth));
Fe(e, null, "preInit", [e]), R(e), ("ssp" != (o = je(e)) || a) && ("ajax" == o ? H(e, [], (function(n) {
var i = U(e, n);
for (t = 0; t < i.length; t++) w(e, i[t]);
e.iInitDisplayStart = r, R(e), de(e, !1), oe(e, n)
})) : (de(e, !1), oe(e)))
} else setTimeout((function() {
re(e)
}), 200)
}
function oe(e, t) {
e._bInitComplete = !0, (t || e.oInit.aaData) && f(e), Fe(e, null, "plugin-init", [e, t]), Fe(e, "aoInitComplete", "init", [e, t])
}
function ae(e, t) {
var n = parseInt(t, 10);
e._iDisplayLength = n, Ne(e), Fe(e, null, "length", [e, n])
}
function se(t) {
for (var n = t.oClasses, i = t.sTableId, r = t.aLengthMenu, o = (a = e.isArray(r[0])) ? r[0] : r, a = (r = a ? r[1] : r, e("<select/>", {
name: i + "_length",
"aria-controls": i,
class: n.sLengthSelect
})), s = 0, l = o.length; s < l; s++) a[0][s] = new Option("number" == typeof r[s] ? t.fnFormatNumber(r[s]) : r[s], o[s]);
var c = e("<div><label/></div>").addClass(n.sLength);
return t.aanFeatures.l || (c[0].id = i + "_length"), c.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", a[0].outerHTML)), e("select", c).val(t._iDisplayLength).on("change.DT", (function() {
ae(t, e(this).val()), N(t)
})), e(t.nTable).on("length.dt.DT", (function(n, i, r) {
t === i && e("select", c).val(r)
})), c[0]
}
function le(t) {
var n = t.sPaginationType,
i = Ve.ext.pager[n],
r = "function" == typeof i,
o = function(e) {
N(e)
},
a = (n = e("<div/>").addClass(t.oClasses.sPaging + n)[0], t.aanFeatures);
return r || i.fnInit(t, n, o), a.p || (n.id = t.sTableId + "_paginate", t.aoDrawCallback.push({
fn: function(e) {
if (r) {
var t, n = e._iDisplayStart,
s = e._iDisplayLength,
l = e.fnRecordsDisplay(),
c = (n = (c = -1 === s) ? 0 : Math.ceil(n / s), s = c ? 1 : Math.ceil(l / s), l = i(n, s), 0);
for (t = a.p.length; c < t; c++) Re(e, "pageButton")(e, a.p[c], c, l, n, s)
} else i.fnUpdate(e, o)
},
sName: "pagination"
})), n
}
function ce(e, t, n) {
var i = e._iDisplayStart,
r = e._iDisplayLength,
o = e.fnRecordsDisplay();
return 0 === o || -1 === r ? i = 0 : "number" == typeof t ? (i = t * r) > o && (i = 0) : "first" == t ? i = 0 : "previous" == t ? 0 > (i = 0 <= r ? i - r : 0) && (i = 0) : "next" == t ? i + r < o && (i += r) : "last" == t ? i = Math.floor((o - 1) / r) * r : Me(e, 0, "Unknown paging action: " + t, 5), t = e._iDisplayStart !== i, e._iDisplayStart = i, t && (Fe(e, null, "page", [e]), n && N(e)), t
}
function ue(t) {
return e("<div/>", {
id: t.aanFeatures.r ? null : t.sTableId + "_processing",
class: t.oClasses.sProcessing
}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]
}
function de(t, n) {
t.oFeatures.bProcessing && e(t.aanFeatures.r).css("display", n ? "block" : "none"), Fe(t, null, "processing", [t, n])
}
function he(t) {
(d = e(t.nTable)).attr("role", "grid");
var n = t.oScroll;
if ("" === n.sX && "" === n.sY) return t.nTable;
var i = n.sX,
r = n.sY,
o = t.oClasses,
a = d.children("caption"),
s = a.length ? a[0]._captionSide : null,
l = e(d[0].cloneNode(!1)),
c = e(d[0].cloneNode(!1)),
u = d.children("tfoot");
u.length || (u = null), l = e("<div/>", {
class: o.sScrollWrapper
}).append(e("<div/>", {
class: o.sScrollHead
}).css({
overflow: "hidden",
position: "relative",
border: 0,
width: i ? i ? be(i) : null : "100%"
}).append(e("<div/>", {
class: o.sScrollHeadInner
}).css({
"box-sizing": "content-box",
width: n.sXInner || "100%"
}).append(l.removeAttr("id").css("margin-left", 0).append("top" === s ? a : null).append(d.children("thead"))))).append(e("<div/>", {
class: o.sScrollBody
}).css({
position: "relative",
overflow: "auto",
width: i ? be(i) : null
}).append(d)), u && l.append(e("<div/>", {
class: o.sScrollFoot
}).css({
overflow: "hidden",
border: 0,
width: i ? i ? be(i) : null : "100%"
}).append(e("<div/>", {
class: o.sScrollFootInner
}).append(c.removeAttr("id").css("margin-left", 0).append("bottom" === s ? a : null).append(d.children("tfoot")))));
var d, h = (d = l.children())[0],
f = (o = d[1], u ? d[2] : null);
return i && e(o).on("scroll.DT", (function() {
var e = this.scrollLeft;
h.scrollLeft = e, u && (f.scrollLeft = e)
})), e(o).css("max-height", r), n.bCollapse || e(o).css("height", r), t.nScrollHead = h, t.nScrollBody = o, t.nScrollFoot = f, t.aoDrawCallback.push({
fn: fe,
sName: "scrolling"
}), l[0]
}
function fe(t) {
var n, r, o, a, s, l = (d = t.oScroll).sX,
c = d.sXInner,
u = d.sY,
d = d.iBarWidth,
h = e(t.nScrollHead),
g = h[0].style,
m = (y = h.children("div"))[0].style,
v = y.children("table"),
y = t.nScrollBody,
b = e(y),
w = y.style,
x = e(t.nScrollFoot).children("div"),
_ = x.children("table"),
C = e(t.nTHead),
k = e(t.nTable),
S = k[0],
T = S.style,
D = t.nTFoot ? e(t.nTFoot) : null,
E = t.oBrowser,
A = E.bScrollOversize,
M = rt(t.aoColumns, "nTh"),
O = [],
I = [],
P = [],
L = [],
F = function(e) {
(e = e.style).paddingTop = "0", e.paddingBottom = "0", e.borderTopWidth = "0", e.borderBottomWidth = "0", e.height = 0
};
r = y.scrollHeight > y.clientHeight, t.scrollBarVis !== r && t.scrollBarVis !== i ? (t.scrollBarVis = r, f(t)) : (t.scrollBarVis = r, k.children("thead, tfoot").remove(), D && (o = D.clone().prependTo(k), n = D.find("tr"), o = o.find("tr")), a = C.clone().prependTo(k), C = C.find("tr"), r = a.find("tr"), a.find("th, td").removeAttr("tabindex"), l || (w.width = "100%", h[0].style.width = "100%"), e.each(z(t, a), (function(e, n) {
s = p(t, e), n.style.width = t.aoColumns[s].sWidth
})), D && pe((function(e) {
e.style.width = ""
}), o), h = k.outerWidth(), "" === l ? (T.width = "100%", A && (k.find("tbody").height() > y.offsetHeight || "scroll" == b.css("overflow-y")) && (T.width = be(k.outerWidth() - d)), h = k.outerWidth()) : "" !== c && (T.width = be(c), h = k.outerWidth()), pe(F, r), pe((function(t) {
P.push(t.innerHTML), O.push(be(e(t).css("width")))
}), r), pe((function(t, n) {
-1 !== e.inArray(t, M) && (t.style.width = O[n])
}), C), e(r).height(0), D && (pe(F, o), pe((function(t) {
L.push(t.innerHTML), I.push(be(e(t).css("width")))
}), o), pe((function(e, t) {
e.style.width = I[t]
}), n), e(o).height(0)), pe((function(e, t) {
e.innerHTML = '<div class="dataTables_sizing">' + P[t] + "</div>", e.childNodes[0].style.height = "0", e.childNodes[0].style.overflow = "hidden", e.style.width = O[t]
}), r), D && pe((function(e, t) {
e.innerHTML = '<div class="dataTables_sizing">' + L[t] + "</div>", e.childNodes[0].style.height = "0", e.childNodes[0].style.overflow = "hidden", e.style.width = I[t]
}), o), k.outerWidth() < h ? (n = y.scrollHeight > y.offsetHeight || "scroll" == b.css("overflow-y") ? h + d : h, A && (y.scrollHeight > y.offsetHeight || "scroll" == b.css("overflow-y")) && (T.width = be(n - d)), ("" === l || "" !== c) && Me(t, 1, "Possible column misalignment", 6)) : n = "100%", w.width = be(n), g.width = be(n), D && (t.nScrollFoot.style.width = be(n)), !u && A && (w.height = be(S.offsetHeight + d)), l = k.outerWidth(), v[0].style.width = be(l), m.width = be(l), c = k.height() > y.clientHeight || "scroll" == b.css("overflow-y"), m[u = "padding" + (E.bScrollbarLeft ? "Left" : "Right")] = c ? d + "px" : "0px", D && (_[0].style.width = be(l), x[0].style.width = be(l), x[0].style[u] = c ? d + "px" : "0px"), k.children("colgroup").insertBefore(k.children("thead")), b.trigger("scroll"), !t.bSorted && !t.bFiltered || t._drawHold || (y.scrollTop = 0))
}
function pe(e, t, n) {
for (var i, r, o = 0, a = 0, s = t.length; a < s;) {
for (i = t[a].firstChild, r = n ? n[a].firstChild : null; i;) 1 === i.nodeType && (n ? e(i, r, o) : e(i, o), o++), i = i.nextSibling, r = n ? r.nextSibling : null;
a++
}
}
function ge(n) {
var i, r, o = n.nTable,
a = n.aoColumns,
s = (x = n.oScroll).sY,
l = x.sX,
c = x.sXInner,
u = a.length,
d = v(n, "bVisible"),
h = e("th", n.nTHead),
g = o.getAttribute("width"),
y = o.parentNode,
b = !1,
w = n.oBrowser,
x = w.bScrollOversize;
for ((i = o.style.width) && -1 !== i.indexOf("%") && (g = i), i = 0; i < d.length; i++) null !== (r = a[d[i]]).sWidth && (r.sWidth = me(r.sWidthOrig, y), b = !0);
if (x || !b && !l && !s && u == m(n) && u == h.length)
for (i = 0; i < u; i++) null !== (d = p(n, i)) && (a[d].sWidth = be(h.eq(i).width()));
else {
(u = e(o).clone().css("visibility", "hidden").removeAttr("id")).find("tbody tr").remove();
var _ = e("<tr/>").appendTo(u.find("tbody"));
for (u.find("thead, tfoot").remove(), u.append(e(n.nTHead).clone()).append(e(n.nTFoot).clone()), u.find("tfoot th, tfoot td").css("width", ""), h = z(n, u.find("thead")[0]), i = 0; i < d.length; i++) r = a[d[i]], h[i].style.width = null !== r.sWidthOrig && "" !== r.sWidthOrig ? be(r.sWidthOrig) : "", r.sWidthOrig && l && e(h[i]).append(e("<div/>").css({
width: r.sWidthOrig,
margin: 0,
padding: 0,
border: 0,
height: 1
}));
if (n.aoData.length)
for (i = 0; i < d.length; i++) r = a[b = d[i]], e(ve(n, b)).clone(!1).append(r.sContentPadding).appendTo(_);
for (e("[name]", u).removeAttr("name"), r = e("<div/>").css(l || s ? {
position: "absolute",
top: 0,
left: 0,
height: 1,
right: 0,
overflow: "hidden"
} : {}).append(u).appendTo(y), l && c ? u.width(c) : l ? (u.css("width", "auto"), u.removeAttr("width"), u.width() < y.clientWidth && g && u.width(y.clientWidth)) : s ? u.width(y.clientWidth) : g && u.width(g), i = s = 0; i < d.length; i++) c = (y = e(h[i])).outerWidth() - y.width(), s += y = w.bBounding ? Math.ceil(h[i].getBoundingClientRect().width) : y.outerWidth(), a[d[i]].sWidth = be(y - c);
o.style.width = be(s), r.remove()
}
g && (o.style.width = be(g)), !g && !l || n._reszEvt || (o = function() {
e(t).on("resize.DT-" + n.sInstance, mt((function() {
f(n)
})))
}, x ? setTimeout(o, 1e3) : o(), n._reszEvt = !0)
}
function me(t, i) {
if (!t) return 0;
var r = e("<div/>").css("width", be(t)).appendTo(i || n.body),
o = r[0].offsetWidth;
return r.remove(), o
}
function ve(t, n) {
var i = ye(t, n);
if (0 > i) return null;
var r = t.aoData[i];
return r.nTr ? r.anCells[n] : e("<td/>").html(_(t, i, n, "display"))[0]
}
function ye(e, t) {
for (var n, i = -1, r = -1, o = 0, a = e.aoData.length; o < a; o++)(n = (n = (n = _(e, o, t, "display") + "").replace(gt, "")).replace(/ /g, " ")).length > i && (i = n.length, r = o);
return r
}
function be(e) {
return null === e ? "0px" : "number" == typeof e ? 0 > e ? "0px" : e + "px" : e.match(/\d$/) ? e + "px" : e
}
function we(t) {
var n, r, o, a, s, l, c = [],
u = t.aoColumns;
n = t.aaSortingFixed, r = e.isPlainObject(n);
var d = [];
for (o = function(t) {
t.length && !e.isArray(t[0]) ? d.push(t) : e.merge(d, t)
}, e.isArray(n) && o(n), r && n.pre && o(n.pre), o(t.aaSorting), r && n.post && o(n.post), t = 0; t < d.length; t++)
for (n = 0, r = (o = u[l = d[t][0]].aDataSort).length; n < r; n++) s = u[a = o[n]].sType || "string", d[t]._idx === i && (d[t]._idx = e.inArray(d[t][1], u[a].asSorting)), c.push({
src: l,
col: a,
dir: d[t][1],
index: d[t]._idx,
type: s,
formatter: Ve.ext.type.order[s + "-pre"]
});
return c
}
function xe(e) {
var t, n, i, r, o = [],
a = Ve.ext.type.order,
s = e.aoData,
l = 0,
c = e.aiDisplayMaster;
for (y(e), t = 0, n = (r = we(e)).length; t < n; t++)(i = r[t]).formatter && l++, Te(e, i.col);
if ("ssp" != je(e) && 0 !== r.length) {
for (t = 0, n = c.length; t < n; t++) o[c[t]] = t;
l === r.length ? c.sort((function(e, t) {
var n, i, a, l, c = r.length,
u = s[e]._aSortData,
d = s[t]._aSortData;
for (a = 0; a < c; a++)
if (0 !== (n = (n = u[(l = r[a]).col]) < (i = d[l.col]) ? -1 : n > i ? 1 : 0)) return "asc" === l.dir ? n : -n;
return (n = o[e]) < (i = o[t]) ? -1 : n > i ? 1 : 0
})) : c.sort((function(e, t) {
var n, i, l, c, u = r.length,
d = s[e]._aSortData,
h = s[t]._aSortData;
for (l = 0; l < u; l++)
if (n = d[(c = r[l]).col], i = h[c.col], 0 !== (n = (c = a[c.type + "-" + c.dir] || a["string-" + c.dir])(n, i))) return n;
return (n = o[e]) < (i = o[t]) ? -1 : n > i ? 1 : 0
}))
}
e.bSorted = !0
}
function _e(e) {
for (var t, n, i = e.aoColumns, r = we(e), o = (e = e.oLanguage.oAria, 0), a = i.length; o < a; o++) {
var s = (n = i[o]).asSorting;
t = n.sTitle.replace(/<.*?>/g, "");
var l = n.nTh;
l.removeAttribute("aria-sort"), n.bSortable && (0 < r.length && r[0].col == o ? (l.setAttribute("aria-sort", "asc" == r[0].dir ? "ascending" : "descending"), n = s[r[0].index + 1] || s[0]) : n = s[0], t += "asc" === n ? e.sSortAscending : e.sSortDescending), l.setAttribute("aria-label", t)
}
}
function Ce(t, n, r, o) {
var a = t.aaSorting,
s = t.aoColumns[n].asSorting,
l = function(t, n) {
var r = t._idx;
return r === i && (r = e.inArray(t[1], s)), r + 1 < s.length ? r + 1 : n ? null : 0
};
"number" == typeof a[0] && (a = t.aaSorting = [a]), r && t.oFeatures.bSortMulti ? -1 !== (r = e.inArray(n, rt(a, "0"))) ? (null === (n = l(a[r], !0)) && 1 === a.length && (n = 0), null === n ? a.splice(r, 1) : (a[r][1] = s[n], a[r]._idx = n)) : (a.push([n, s[0], 0]), a[a.length - 1]._idx = 0) : a.length && a[0][0] == n ? (n = l(a[0]), a.length = 1, a[0][1] = s[n], a[0]._idx = n) : (a.length = 0, a.push([n, s[0]]), a[0]._idx = 0), R(t), "function" == typeof o && o(t)
}
function ke(e, t, n, i) {
var r = e.aoColumns[n];
Pe(t, {}, (function(t) {
!1 !== r.bSortable && (e.oFeatures.bProcessing ? (de(e, !0), setTimeout((function() {
Ce(e, n, t.shiftKey, i), "ssp" !== je(e) && de(e, !1)
}), 0)) : Ce(e, n, t.shiftKey, i))
}))
}
function Se(t) {
var n, i, r = t.aLastSort,
o = t.oClasses.sSortColumn,
a = we(t),
s = t.oFeatures;
if (s.bSort && s.bSortClasses) {
for (s = 0, n = r.length; s < n; s++) i = r[s].src, e(rt(t.aoData, "anCells", i)).removeClass(o + (2 > s ? s + 1 : 3));
for (s = 0, n = a.length; s < n; s++) i = a[s].src, e(rt(t.aoData, "anCells", i)).addClass(o + (2 > s ? s + 1 : 3))
}
t.aLastSort = a
}
function Te(e, t) {
var n, i = e.aoColumns[t],
r = Ve.ext.order[i.sSortDataType];
r && (n = r.call(e.oInstance, e, t, g(e, t)));
for (var o, a = Ve.ext.type.order[i.sType + "-pre"], s = 0, l = e.aoData.length; s < l; s++)(i = e.aoData[s])._aSortData || (i._aSortData = []), (!i._aSortData[t] || r) && (o = r ? n[s] : _(e, s, t, "sort"), i._aSortData[t] = a ? a(o) : o)
}
function De(t) {
if (t.oFeatures.bStateSave && !t.bDestroying) {
var n = {
time: +new Date,
start: t._iDisplayStart,
length: t._iDisplayLength,
order: e.extend(!0, [], t.aaSorting),
search: Z(t.oPreviousSearch),
columns: e.map(t.aoColumns, (function(e, n) {
return {
visible: e.bVisible,
search: Z(t.aoPreSearchCols[n])
}
}))
};
Fe(t, "aoStateSaveParams", "stateSaveParams", [t, n]), t.oSavedState = n, t.fnStateSaveCallback.call(t.oInstance, t, n)
}
}
function Ee(t, n, r) {
var o, a, s = t.aoColumns;
n = function(n) {
if (n && n.time) {
var l = Fe(t, "aoStateLoadParams", "stateLoadParams", [t, n]);
if (-1 === e.inArray(!1, l) && !(0 < (l = t.iStateDuration) && n.time < +new Date - 1e3 * l || n.columns && s.length !== n.columns.length)) {
if (t.oLoadedState = e.extend(!0, {}, n), n.start !== i && (t._iDisplayStart = n.start, t.iInitDisplayStart = n.start), n.length !== i && (t._iDisplayLength = n.length), n.order !== i && (t.aaSorting = [], e.each(n.order, (function(e, n) {
t.aaSorting.push(n[0] >= s.length ? [0, n[1]] : n)
}))), n.search !== i && e.extend(t.oPreviousSearch, ee(n.search)), n.columns)
for (o = 0, a = n.columns.length; o < a; o++)(l = n.columns[o]).visible !== i && (s[o].bVisible = l.visible), l.search !== i && e.extend(t.aoPreSearchCols[o], ee(l.search));
Fe(t, "aoStateLoaded", "stateLoaded", [t, n])
}
}
r()
};
if (t.oFeatures.bStateSave) {
var l = t.fnStateLoadCallback.call(t.oInstance, t, n);
l !== i && n(l)
} else r()
}
function Ae(t) {
var n = Ve.settings;
return -1 !== (t = e.inArray(t, rt(n, "nTable"))) ? n[t] : null
}
function Me(e, n, i, r) {
if (i = "DataTables warning: " + (e ? "table id=" + e.sTableId + " - " : "") + i, r && (i += ". For more information about this error, please see http://datatables.net/tn/" + r), n) t.console && console.log && console.log(i);
else if (n = (n = Ve.ext).sErrMode || n.errMode, e && Fe(e, null, "error", [e, r, i]), "alert" == n) alert(i);
else {
if ("throw" == n) throw Error(i);
"function" == typeof n && n(e, r, i)
}
}
function Oe(t, n, r, o) {
e.isArray(r) ? e.each(r, (function(i, r) {
e.isArray(r) ? Oe(t, n, r[0], r[1]) : Oe(t, n, r)
})) : (o === i && (o = r), n[r] !== i && (t[o] = n[r]))
}
function Ie(t, n, i) {
var r, o;
for (o in n) n.hasOwnProperty(o) && (r = n[o], e.isPlainObject(r) ? (e.isPlainObject(t[o]) || (t[o] = {}), e.extend(!0, t[o], r)) : t[o] = i && "data" !== o && "aaData" !== o && e.isArray(r) ? r.slice() : r);
return t
}
function Pe(t, n, i) {
e(t).on("click.DT", n, (function(n) {
e(t).trigger("blur"), i(n)
})).on("keypress.DT", n, (function(e) {
13 === e.which && (e.preventDefault(), i(e))
})).on("selectstart.DT", (function() {
return !1
}))
}
function Le(e, t, n, i) {
n && e[t].push({
fn: n,
sName: i
})
}
function Fe(t, n, i, r) {
var o = [];
return n && (o = e.map(t[n].slice().reverse(), (function(e) {
return e.fn.apply(t.oInstance, r)
}))), null !== i && (n = e.Event(i + ".dt"), e(t.nTable).trigger(n, r), o.push(n.result)), o
}
function Ne(e) {
var t = e._iDisplayStart,
n = e.fnDisplayEnd(),
i = e._iDisplayLength;
t >= n && (t = n - i), t -= t % i, (-1 === i || 0 > t) && (t = 0), e._iDisplayStart = t
}
function Re(t, n) {
var i = t.renderer,
r = Ve.ext.renderer[n];
return e.isPlainObject(i) && i[n] ? r[i[n]] || r._ : "string" == typeof i && r[i] || r._
}
function je(e) {
return e.oFeatures.bServerSide ? "ssp" : e.ajax || e.sAjaxSource ? "ajax" : "dom"
}
function $e(e, t) {
var n = [],
i = (n = At.numbers_length, Math.floor(n / 2));
return t <= n ? n = at(0, t) : e <= i ? ((n = at(0, n - 2)).push("ellipsis"), n.push(t - 1)) : (e >= t - 1 - i ? n = at(t - (n - 2), t) : ((n = at(e - i + 2, e + i - 1)).push("ellipsis"), n.push(t - 1)), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n
}
function ze(t) {
e.each({
num: function(e) {
return Mt(e, t)
},
"num-fmt": function(e) {
return Mt(e, t, Je)
},
"html-num": function(e) {
return Mt(e, t, Ge)
},
"html-num-fmt": function(e) {
return Mt(e, t, Ge, Je)
}
}, (function(e, n) {
Be.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (Be.type.search[e + t] = Be.type.search.html)
}))
}
function He(e) {
return function() {
var t = [Ae(this[Ve.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));
return Ve.ext.internal[e].apply(this, t)
}
}
var Be, qe, We, Ue, Ve = function(t) {
this.$ = function(e, t) {
return this.api(!0).$(e, t)
}, this._ = function(e, t) {
return this.api(!0).rows(e, t).data()
}, this.api = function(e) {
return new qe(e ? Ae(this[Be.iApiIndex]) : this)
}, this.fnAddData = function(t, n) {
var r = this.api(!0),
o = e.isArray(t) && (e.isArray(t[0]) || e.isPlainObject(t[0])) ? r.rows.add(t) : r.row.add(t);
return (n === i || n) && r.draw(), o.flatten().toArray()
}, this.fnAdjustColumnSizing = function(e) {
var t = this.api(!0).columns.adjust(),
n = t.settings()[0],
r = n.oScroll;
e === i || e ? t.draw(!1) : ("" !== r.sX || "" !== r.sY) && fe(n)
}, this.fnClearTable = function(e) {
var t = this.api(!0).clear();
(e === i || e) && t.draw()
}, this.fnClose = function(e) {
this.api(!0).row(e).child.hide()
}, this.fnDeleteRow = function(e, t, n) {
var r = this.api(!0),
o = (e = r.rows(e)).settings()[0],
a = o.aoData[e[0][0]];
return e.remove(), t && t.call(this, o, a), (n === i || n) && r.draw(), a
}, this.fnDestroy = function(e) {
this.api(!0).destroy(e)
}, this.fnDraw = function(e) {
this.api(!0).draw(e)
}, this.fnFilter = function(e, t, n, r, o, a) {
o = this.api(!0), null === t || t === i ? o.search(e, n, r, a) : o.column(t).search(e, n, r, a), o.draw()
}, this.fnGetData = function(e, t) {
var n = this.api(!0);
if (e !== i) {
var r = e.nodeName ? e.nodeName.toLowerCase() : "";
return t !== i || "td" == r || "th" == r ? n.cell(e, t).data() : n.row(e).data() || null
}
return n.data().toArray()
}, this.fnGetNodes = function(e) {
var t = this.api(!0);
return e !== i ? t.row(e).node() : t.rows().nodes().flatten().toArray()
}, this.fnGetPosition = function(e) {
var t = this.api(!0),
n = e.nodeName.toUpperCase();
return "TR" == n ? t.row(e).index() : "TD" == n || "TH" == n ? [(e = t.cell(e).index()).row, e.columnVisible, e.column] : null
}, this.fnIsOpen = function(e) {
return this.api(!0).row(e).child.isShown()
}, this.fnOpen = function(e, t, n) {
return this.api(!0).row(e).child(t, n).show().child()[0]
}, this.fnPageChange = function(e, t) {
var n = this.api(!0).page(e);
(t === i || t) && n.draw(!1)
}, this.fnSetColumnVis = function(e, t, n) {
e = this.api(!0).column(e).visible(t), (n === i || n) && e.columns.adjust().draw()
}, this.fnSettings = function() {
return Ae(this[Be.iApiIndex])
}, this.fnSort = function(e) {
this.api(!0).order(e).draw()
}, this.fnSortListener = function(e, t, n) {
this.api(!0).order.listener(e, t, n)
}, this.fnUpdate = function(e, t, n, r, o) {
var a = this.api(!0);
return n === i || null === n ? a.row(t).data(e) : a.cell(t, n).data(e), (o === i || o) && a.columns.adjust(), (r === i || r) && a.draw(), 0
}, this.fnVersionCheck = Be.fnVersionCheck;
var n = this,
r = t === i,
u = this.length;
for (var f in r && (t = {}), this.oApi = this.internal = Be.internal, Ve.ext.internal) f && (this[f] = He(f));
return this.each((function() {
var f, p = {},
g = 1 < u ? Ie(p, t, !0) : t,
m = 0,
v = (p = this.getAttribute("id"), !1),
y = Ve.defaults,
_ = e(this);
if ("table" != this.nodeName.toLowerCase()) Me(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2);
else {
s(y), l(y.column), o(y, y, !0), o(y.column, y.column, !0), o(y, e.extend(g, _.data()), !0);
var C = Ve.settings;
m = 0;
for (f = C.length; m < f; m++) {
var k = C[m];
if (k.nTable == this || k.nTHead && k.nTHead.parentNode == this || k.nTFoot && k.nTFoot.parentNode == this) {
var T = g.bRetrieve !== i ? g.bRetrieve : y.bRetrieve;
if (r || T) return k.oInstance;
if (g.bDestroy !== i ? g.bDestroy : y.bDestroy) {
k.oInstance.fnDestroy();
break
}
return void Me(k, 0, "Cannot reinitialise DataTable", 3)
}
if (k.sTableId == this.id) {
C.splice(m, 1);
break
}
}
null !== p && "" !== p || (this.id = p = "DataTables_Table_" + Ve.ext._unique++);
var D = e.extend(!0, {}, Ve.models.oSettings, {
sDestroyWidth: _[0].style.width,
sInstance: p,
sTableId: p
});
D.nTable = this, D.oApi = n.internal, D.oInit = g, C.push(D), D.oInstance = 1 === n.length ? n : _.dataTable(), s(g), a(g.oLanguage), g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = e.isArray(g.aLengthMenu[0]) ? g.aLengthMenu[0][0] : g.aLengthMenu[0]), g = Ie(e.extend(!0, {}, y), g), Oe(D.oFeatures, g, "bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" ")), Oe(D, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"],
["oSearch", "oPreviousSearch"],
["aoSearchCols", "aoPreSearchCols"],
["iDisplayLength", "_iDisplayLength"]
]), Oe(D.oScroll, g, [
["sScrollX", "sX"],
["sScrollXInner", "sXInner"],
["sScrollY", "sY"],
["bScrollCollapse", "bCollapse"]
]), Oe(D.oLanguage, g, "fnInfoCallback"), Le(D, "aoDrawCallback", g.fnDrawCallback, "user"), Le(D, "aoServerParams", g.fnServerParams, "user"), Le(D, "aoStateSaveParams", g.fnStateSaveParams, "user"), Le(D, "aoStateLoadParams", g.fnStateLoadParams, "user"), Le(D, "aoStateLoaded", g.fnStateLoaded, "user"), Le(D, "aoRowCallback", g.fnRowCallback, "user"), Le(D, "aoRowCreatedCallback", g.fnCreatedRow, "user"), Le(D, "aoHeaderCallback", g.fnHeaderCallback, "user"), Le(D, "aoFooterCallback", g.fnFooterCallback, "user"), Le(D, "aoInitComplete", g.fnInitComplete, "user"), Le(D, "aoPreDrawCallback", g.fnPreDrawCallback, "user"), D.rowIdFn = S(g.rowId), c(D);
var E = D.oClasses;
e.extend(E, Ve.ext.classes, g.oClasses), _.addClass(E.sTable), D.iInitDisplayStart === i && (D.iInitDisplayStart = g.iDisplayStart, D._iDisplayStart = g.iDisplayStart), null !== g.iDeferLoading && (D.bDeferLoading = !0, p = e.isArray(g.iDeferLoading), D._iRecordsDisplay = p ? g.iDeferLoading[0] : g.iDeferLoading, D._iRecordsTotal = p ? g.iDeferLoading[1] : g.iDeferLoading);
var A = D.oLanguage;
e.extend(!0, A, g.oLanguage), A.sUrl && (e.ajax({
dataType: "json",
url: A.sUrl,
success: function(t) {
a(t), o(y.oLanguage, t), e.extend(!0, A, t), re(D)
},
error: function() {
re(D)
}
}), v = !0), null === g.asStripeClasses && (D.asStripeClasses = [E.sStripeOdd, E.sStripeEven]);
p = D.asStripeClasses;
var M = _.children("tbody").find("tr").eq(0);
if (-1 !== e.inArray(!0, e.map(p, (function(e) {
return M.hasClass(e)
}))) && (e("tbody tr", this).removeClass(p.join(" ")), D.asDestroyStripes = p.slice()), p = [], 0 !== (C = this.getElementsByTagName("thead")).length && ($(D.aoHeader, C[0]), p = z(D)), null === g.aoColumns)
for (C = [], m = 0, f = p.length; m < f; m++) C.push(null);
else C = g.aoColumns;
for (m = 0, f = C.length; m < f; m++) d(D, p ? p[m] : null);
if (b(D, g.aoColumnDefs, C, (function(e, t) {
h(D, e, t)
})), M.length) {
var O = function(e, t) {
return null !== e.getAttribute("data-" + t) ? t : null
};
e(M[0]).children("th, td").each((function(e, t) {
var n = D.aoColumns[e];
if (n.mData === e) {
var r = O(t, "sort") || O(t, "order"),
o = O(t, "filter") || O(t, "search");
null === r && null === o || (n.mData = {
_: e + ".display",
sort: null !== r ? e + ".@data-" + r : i,
type: null !== r ? e + ".@data-" + r : i,
filter: null !== o ? e + ".@data-" + o : i
}, h(D, e))
}
}))
}
var I = D.oFeatures;
p = function() {
if (g.aaSorting === i) {
var t = D.aaSorting;
for (m = 0, f = t.length; m < f; m++) t[m][1] = D.aoColumns[m].asSorting[0]
}
Se(D), I.bSort && Le(D, "aoDrawCallback", (function() {
if (D.bSorted) {
var t = we(D),
n = {};
e.each(t, (function(e, t) {
n[t.src] = t.dir
})), Fe(D, null, "order", [D, t, n]), _e(D)
}
})), Le(D, "aoDrawCallback", (function() {
(D.bSorted || "ssp" === je(D) || I.bDeferRender) && Se(D)
}), "sc");
t = _.children("caption").each((function() {
this._captionSide = e(this).css("caption-side")
}));
var n = _.children("thead");
if (0 === n.length && (n = e("<thead/>").appendTo(_)), D.nTHead = n[0], 0 === (n = _.children("tbody")).length && (n = e("<tbody/>").appendTo(_)), D.nTBody = n[0], 0 === (n = _.children("tfoot")).length && t.length > 0 && ("" !== D.oScroll.sX || "" !== D.oScroll.sY) && (n = e("<tfoot/>").appendTo(_)), 0 === n.length || 0 === n.children().length ? _.addClass(E.sNoFooter) : n.length > 0 && (D.nTFoot = n[0], $(D.aoFooter, D.nTFoot)), g.aaData)
for (m = 0; m < g.aaData.length; m++) w(D, g.aaData[m]);
else(D.bDeferLoading || "dom" == je(D)) && x(D, e(D.nTBody).children("tr"));
D.aiDisplay = D.aiDisplayMaster.slice(), D.bInitialised = !0, !1 === v && re(D)
};
g.bStateSave ? (I.bStateSave = !0, Le(D, "aoDrawCallback", De, "state_save"), Ee(D, g, p)) : p()
}
})), n = null, this
},
Ye = {},
Xe = /[\r\n\u2028]/g,
Ge = /<.*?>/g,
Qe = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,
Ke = RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)", "g"),
Je = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,
Ze = function(e) {
return !e || !0 === e || "-" === e
},
et = function(e) {
var t = parseInt(e, 10);
return !isNaN(t) && isFinite(e) ? t : null
},
tt = function(e, t) {
return Ye[t] || (Ye[t] = RegExp(ht(t), "g")), "string" == typeof e && "." !== t ? e.replace(/\./g, "").replace(Ye[t], ".") : e
},
nt = function(e, t, n) {
var i = "string" == typeof e;
return !!Ze(e) || (t && i && (e = tt(e, t)), n && i && (e = e.replace(Je, "")), !isNaN(parseFloat(e)) && isFinite(e))
},
it = function(e, t, n) {
return !!Ze(e) || ((Ze(e) || "string" == typeof e) && !!nt(e.replace(Ge, ""), t, n) || null)
},
rt = function(e, t, n) {
var r = [],
o = 0,
a = e.length;
if (n !== i)
for (; o < a; o++) e[o] && e[o][t] && r.push(e[o][t][n]);
else
for (; o < a; o++) e[o] && r.push(e[o][t]);
return r
},
ot = function(e, t, n, r) {
var o = [],
a = 0,
s = t.length;
if (r !== i)
for (; a < s; a++) e[t[a]][n] && o.push(e[t[a]][n][r]);
else
for (; a < s; a++) o.push(e[t[a]][n]);
return o
},
at = function(e, t) {
var n, r = [];
t === i ? (t = 0, n = e) : (n = t, t = e);
for (var o = t; o < n; o++) r.push(o);
return r
},
st = function(e) {
for (var t = [], n = 0, i = e.length; n < i; n++) e[n] && t.push(e[n]);
return t
},
lt = function(e) {
var t;
e: {
if (!(2 > e.length))
for (var n = (t = e.slice().sort())[0], i = 1, r = t.length; i < r; i++) {
if (t[i] === n) {
t = !1;
break e
}
n = t[i]
}
t = !0
}
if (t) return e.slice();
t = [];
r = e.length;
var o, a = 0;
i = 0;
e: for (; i < r; i++) {
for (n = e[i], o = 0; o < a; o++)
if (t[o] === n) continue e;
t.push(n), a++
}
return t
};
Ve.util = {
throttle: function(e, t) {
var n, r, o = t !== i ? t : 200;
return function() {
var t = this,
a = +new Date,
s = arguments;
n && a < n + o ? (clearTimeout(r), r = setTimeout((function() {
n = i, e.apply(t, s)
}), o)) : (n = a, e.apply(t, s))
}
},
escapeRegex: function(e) {
return e.replace(Ke, "\\$1")
}
};
var ct = function(e, t, n) {
e[t] !== i && (e[n] = e[t])
},
ut = /\[.*?\]$/,
dt = /\(\)$/,
ht = Ve.util.escapeRegex,
ft = e("<div>")[0],
pt = ft.textContent !== i,
gt = /<.*?>/g,
mt = Ve.util.throttle,
vt = [],
yt = Array.prototype;
qe = function(t, n) {
if (!(this instanceof qe)) return new qe(t, n);
var i = [],
r = function(t) {
(t = function(t) {
var n, i, r = Ve.settings,
o = e.map(r, (function(e) {
return e.nTable
}));
return t ? t.nTable && t.oApi ? [t] : t.nodeName && "table" === t.nodeName.toLowerCase() ? -1 !== (n = e.inArray(t, o)) ? [r[n]] : null : t && "function" == typeof t.settings ? t.settings().toArray() : ("string" == typeof t ? i = e(t) : t instanceof e && (i = t), i ? i.map((function() {
return -1 !== (n = e.inArray(this, o)) ? r[n] : null
})).toArray() : void 0) : []
}(t)) && i.push.apply(i, t)
};
if (e.isArray(t))
for (var o = 0, a = t.length; o < a; o++) r(t[o]);
else r(t);
this.context = lt(i), n && e.merge(this, n), this.selector = {
rows: null,
cols: null,
opts: null
}, qe.extend(this, this, vt)
}, Ve.Api = qe, e.extend(qe.prototype, {
any: function() {
return 0 !== this.count()
},
concat: yt.concat,
context: [],
count: function() {
return this.flatten().length
},
each: function(e) {
for (var t = 0, n = this.length; t < n; t++) e.call(this, this[t], t, this);
return this
},
eq: function(e) {
var t = this.context;
return t.length > e ? new qe(t[e], this[e]) : null
},
filter: function(e) {
var t = [];
if (yt.filter) t = yt.filter.call(this, e, this);
else
for (var n = 0, i = this.length; n < i; n++) e.call(this, this[n], n, this) && t.push(this[n]);
return new qe(this.context, t)
},
flatten: function() {
var e = [];
return new qe(this.context, e.concat.apply(e, this.toArray()))
},
join: yt.join,
indexOf: yt.indexOf || function(e, t) {
for (var n = t || 0, i = this.length; n < i; n++)
if (this[n] === e) return n;
return -1
},
iterator: function(e, t, n, r) {
var o, a, s, l, c, u, d, h = [],
f = this.context,
p = this.selector;
for ("string" == typeof e && (r = n, n = t, t = e, e = !1), a = 0, s = f.length; a < s; a++) {
var g = new qe(f[a]);
if ("table" === t)(o = n.call(g, f[a], a)) !== i && h.push(o);
else if ("columns" === t || "rows" === t)(o = n.call(g, f[a], this[a], a)) !== i && h.push(o);
else if ("column" === t || "column-rows" === t || "row" === t || "cell" === t)
for (d = this[a], "column-rows" === t && (u = kt(f[a], p.opts)), l = 0, c = d.length; l < c; l++) o = d[l], (o = "cell" === t ? n.call(g, f[a], o.row, o.column, a, l) : n.call(g, f[a], o, a, l, u)) !== i && h.push(o)
}
return h.length || r ? ((t = (e = new qe(f, e ? h.concat.apply([], h) : h)).selector).rows = p.rows, t.cols = p.cols, t.opts = p.opts, e) : this
},
lastIndexOf: yt.lastIndexOf || function(e, t) {
return this.indexOf.apply(this.toArray.reverse(), arguments)
},
length: 0,
map: function(e) {
var t = [];
if (yt.map) t = yt.map.call(this, e, this);
else
for (var n = 0, i = this.length; n < i; n++) t.push(e.call(this, this[n], n));
return new qe(this.context, t)
},
pluck: function(e) {
return this.map((function(t) {
return t[e]
}))
},
pop: yt.pop,
push: yt.push,
reduce: yt.reduce || function(e, t) {
return u(this, e, t, 0, this.length, 1)
},
reduceRight: yt.reduceRight || function(e, t) {
return u(this, e, t, this.length - 1, -1, -1)
},
reverse: yt.reverse,
selector: null,
shift: yt.shift,
slice: function() {
return new qe(this.context, this)
},
sort: yt.sort,
splice: yt.splice,
toArray: function() {
return yt.slice.call(this)
},
to$: function() {
return e(this)
},
toJQuery: function() {
return e(this)
},
unique: function() {
return new qe(this.context, lt(this))
},
unshift: yt.unshift
}), qe.extend = function(e, t, n) {
if (n.length && t && (t instanceof qe || t.__dt_wrapper)) {
var i, r, o, a = function(e, t, n) {
return function() {
var i = t.apply(e, arguments);
return qe.extend(i, i, n.methodExt), i
}
};
for (i = 0, r = n.length; i < r; i++) t[(o = n[i]).name] = "function" === o.type ? a(e, o.val, o) : "object" === o.type ? {} : o.val, t[o.name].__dt_wrapper = !0, qe.extend(e, t[o.name], o.propExt)
}
}, qe.register = We = function(t, n) {
if (e.isArray(t))
for (var i = 0, r = t.length; i < r; i++) qe.register(t[i], n);
else {
var o, a, s = t.split("."),
l = vt;
for (i = 0, r = s.length; i < r; i++) {
var c;
o = (a = -1 !== s[i].indexOf("()")) ? s[i].replace("()", "") : s[i];
e: {
c = 0;
for (var u = l.length; c < u; c++)
if (l[c].name === o) {
c = l[c];
break e
}
c = null
}
c || (c = {
name: o,
val: {},
methodExt: [],
propExt: [],
type: "object"
}, l.push(c)), i === r - 1 ? (c.val = n, c.type = "function" == typeof n ? "function" : e.isPlainObject(n) ? "object" : "other") : l = a ? c.methodExt : c.propExt
}
}
}, qe.registerPlural = Ue = function(t, n, r) {
qe.register(t, r), qe.register(n, (function() {
var t = r.apply(this, arguments);
return t === this ? this : t instanceof qe ? t.length ? e.isArray(t[0]) ? new qe(t.context, t[0]) : t[0] : i : t
}))
};
var bt = function(t, n) {
if (e.isArray(t)) return e.map(t, (function(e) {
return bt(e, n)
}));
if ("number" == typeof t) return [n[t]];
var i = e.map(n, (function(e) {
return e.nTable
}));
return e(i).filter(t).map((function() {
var t = e.inArray(this, i);
return n[t]
})).toArray()
};
We("tables()", (function(e) {
return e !== i && null !== e ? new qe(bt(e, this.context)) : this
})), We("table()", (function(e) {
var t = (e = this.tables(e)).context;
return t.length ? new qe(t[0]) : e
})), Ue("tables().nodes()", "table().node()", (function() {
return this.iterator("table", (function(e) {
return e.nTable
}), 1)
})), Ue("tables().body()", "table().body()", (function() {
return this.iterator("table", (function(e) {
return e.nTBody
}), 1)
})), Ue("tables().header()", "table().header()", (function() {
return this.iterator("table", (function(e) {
return e.nTHead
}), 1)
})), Ue("tables().footer()", "table().footer()", (function() {
return this.iterator("table", (function(e) {
return e.nTFoot
}), 1)
})), Ue("tables().containers()", "table().container()", (function() {
return this.iterator("table", (function(e) {
return e.nTableWrapper
}), 1)
})), We("draw()", (function(e) {
return this.iterator("table", (function(t) {
"page" === e ? N(t) : ("string" == typeof e && (e = "full-hold" !== e), R(t, !1 === e))
}))
})), We("page()", (function(e) {
return e === i ? this.page.info().page : this.iterator("table", (function(t) {
ce(t, e)
}))
})), We("page.info()", (function() {
if (0 === this.context.length) return i;
var e = this.context[0],
t = e._iDisplayStart,
n = e.oFeatures.bPaginate ? e._iDisplayLength : -1,
r = e.fnRecordsDisplay(),
o = -1 === n;
return {
page: o ? 0 : Math.floor(t / n),
pages: o ? 1 : Math.ceil(r / n),
start: t,
end: e.fnDisplayEnd(),
length: n,
recordsTotal: e.fnRecordsTotal(),
recordsDisplay: r,
serverSide: "ssp" === je(e)
}
})), We("page.len()", (function(e) {
return e === i ? 0 !== this.context.length ? this.context[0]._iDisplayLength : i : this.iterator("table", (function(t) {
ae(t, e)
}))
}));
var wt = function(e, t, n) {
if (n) {
var i = new qe(e);
i.one("draw", (function() {
n(i.ajax.json())
}))
}
if ("ssp" == je(e)) R(e, t);
else {
de(e, !0);
var r = e.jqXHR;
r && 4 !== r.readyState && r.abort(), H(e, [], (function(n) {
E(e);
for (var i = 0, r = (n = U(e, n)).length; i < r; i++) w(e, n[i]);
R(e, t), de(e, !1)
}))
}
};
We("ajax.json()", (function() {
var e = this.context;
if (0 < e.length) return e[0].json
})), We("ajax.params()", (function() {
var e = this.context;
if (0 < e.length) return e[0].oAjaxData
})), We("ajax.reload()", (function(e, t) {
return this.iterator("table", (function(n) {
wt(n, !1 === t, e)
}))
})), We("ajax.url()", (function(t) {
var n = this.context;
return t === i ? 0 === n.length ? i : (n = n[0]).ajax ? e.isPlainObject(n.ajax) ? n.ajax.url : n.ajax : n.sAjaxSource : this.iterator("table", (function(n) {
e.isPlainObject(n.ajax) ? n.ajax.url = t : n.ajax = t
}))
})), We("ajax.url().load()", (function(e, t) {
return this.iterator("table", (function(n) {
wt(n, !1 === t, e)
}))
}));
var xt = function(t, n, r, o, a) {
var s, l, c, u, d, h, f = [];
for (c = typeof n, n && "string" !== c && "function" !== c && n.length !== i || (n = [n]), c = 0, u = n.length; c < u; c++)
for (d = 0, h = (l = n[c] && n[c].split && !n[c].match(/[\[\(:]/) ? n[c].split(",") : [n[c]]).length; d < h; d++)(s = r("string" == typeof l[d] ? e.trim(l[d]) : l[d])) && s.length && (f = f.concat(s));
if ((t = Be.selector[t]).length)
for (c = 0, u = t.length; c < u; c++) f = t[c](o, a, f);
return lt(f)
},
_t = function(t) {
return t || (t = {}), t.filter && t.search === i && (t.search = t.filter), e.extend({
search: "none",
order: "current",
page: "all"
}, t)
},
Ct = function(e) {
for (var t = 0, n = e.length; t < n; t++)
if (0 < e[t].length) return e[0] = e[t], e[0].length = 1, e.length = 1, e.context = [e.context[t]], e;
return e.length = 0, e
},
kt = function(t, n) {
var i, r, o, a = [],
s = t.aiDisplay;
o = t.aiDisplayMaster;
var l = n.search;
if (i = n.order, r = n.page, "ssp" == je(t)) return "removed" === l ? [] : at(0, o.length);
if ("current" == r)
for (i = t._iDisplayStart, r = t.fnDisplayEnd(); i < r; i++) a.push(s[i]);
else if ("current" == i || "applied" == i) {
if ("none" == l) a = o.slice();
else if ("applied" == l) a = s.slice();
else if ("removed" == l) {
var c = {};
for (i = 0, r = s.length; i < r; i++) c[s[i]] = null;
a = e.map(o, (function(e) {
return c.hasOwnProperty(e) ? null : e
}))
}
} else if ("index" == i || "original" == i)
for (i = 0, r = t.aoData.length; i < r; i++) "none" == l ? a.push(i) : (-1 === (o = e.inArray(i, s)) && "removed" == l || 0 <= o && "applied" == l) && a.push(i);
return a
};
We("rows()", (function(t, n) {
t === i ? t = "" : e.isPlainObject(t) && (n = t, t = "");
n = _t(n);
var r = this.iterator("table", (function(r) {
var o, a = n;
return xt("row", t, (function(t) {
var n = et(t),
s = r.aoData;
if (null !== n && !a) return [n];
if (o || (o = kt(r, a)), null !== n && -1 !== e.inArray(n, o)) return [n];
if (null === t || t === i || "" === t) return o;
if ("function" == typeof t) return e.map(o, (function(e) {
var n = s[e];
return t(e, n._aData, n.nTr) ? e : null
}));
if (t.nodeName) {
n = t._DT_RowIndex;
var l = t._DT_CellIndex;
return n !== i ? s[n] && s[n].nTr === t ? [n] : [] : l ? s[l.row] && s[l.row].nTr === t.parentNode ? [l.row] : [] : (n = e(t).closest("*[data-dt-row]")).length ? [n.data("dt-row")] : []
}
return "string" == typeof t && "#" === t.charAt(0) && (n = r.aIds[t.replace(/^#/, "")]) !== i ? [n.idx] : (n = st(ot(r.aoData, o, "nTr")), e(n).filter(t).map((function() {
return this._DT_RowIndex
})).toArray())
}), r, a)
}), 1);
return r.selector.rows = t, r.selector.opts = n, r
})), We("rows().nodes()", (function() {
return this.iterator("row", (function(e, t) {
return e.aoData[t].nTr || i
}), 1)
})), We("rows().data()", (function() {
return this.iterator(!0, "rows", (function(e, t) {
return ot(e.aoData, t, "_aData")
}), 1)
})), Ue("rows().cache()", "row().cache()", (function(e) {
return this.iterator("row", (function(t, n) {
var i = t.aoData[n];
return "search" === e ? i._aFilterData : i._aSortData
}), 1)
})), Ue("rows().invalidate()", "row().invalidate()", (function(e) {
return this.iterator("row", (function(t, n) {
M(t, n, e)
}))
})), Ue("rows().indexes()", "row().index()", (function() {
return this.iterator("row", (function(e, t) {
return t
}), 1)
})), Ue("rows().ids()", "row().id()", (function(e) {
for (var t = [], n = this.context, i = 0, r = n.length; i < r; i++)
for (var o = 0, a = this[i].length; o < a; o++) {
var s = n[i].rowIdFn(n[i].aoData[this[i][o]]._aData);
t.push((!0 === e ? "#" : "") + s)
}
return new qe(n, t)
})), Ue("rows().remove()", "row().remove()", (function() {
var e = this;
return this.iterator("row", (function(t, n, r) {
var o, a, s, l, c, u = t.aoData,
d = u[n];
for (u.splice(n, 1), o = 0, a = u.length; o < a; o++)
if (c = (s = u[o]).anCells, null !== s.nTr && (s.nTr._DT_RowIndex = o), null !== c)
for (s = 0, l = c.length; s < l; s++) c[s]._DT_CellIndex.row = o;
A(t.aiDisplayMaster, n), A(t.aiDisplay, n), A(e[r], n, !1), 0 < t._iRecordsDisplay && t._iRecordsDisplay--, Ne(t), (n = t.rowIdFn(d._aData)) !== i && delete t.aIds[n]
})), this.iterator("table", (function(e) {
for (var t = 0, n = e.aoData.length; t < n; t++) e.aoData[t].idx = t
})), this
})), We("rows.add()", (function(t) {
var n = this.iterator("table", (function(e) {
var n, i, r, o = [];
for (i = 0, r = t.length; i < r; i++)(n = t[i]).nodeName && "TR" === n.nodeName.toUpperCase() ? o.push(x(e, n)[0]) : o.push(w(e, n));
return o
}), 1),
i = this.rows(-1);
return i.pop(), e.merge(i, n), i
})), We("row()", (function(e, t) {
return Ct(this.rows(e, t))
})), We("row().data()", (function(t) {
var n = this.context;
if (t === i) return n.length && this.length ? n[0].aoData[this[0]]._aData : i;
var r = n[0].aoData[this[0]];
return r._aData = t, e.isArray(t) && r.nTr && r.nTr.id && T(n[0].rowId)(t, r.nTr.id), M(n[0], this[0], "data"), this
})), We("row().node()", (function() {
var e = this.context;
return e.length && this.length && e[0].aoData[this[0]].nTr || null
})), We("row.add()", (function(t) {
t instanceof e && t.length && (t = t[0]);
var n = this.iterator("table", (function(e) {
return t.nodeName && "TR" === t.nodeName.toUpperCase() ? x(e, t)[0] : w(e, t)
}));
return this.row(n[0])
}));
var St = function(e, t) {
var n = e.context;
n.length && (n = n[0].aoData[t !== i ? t : e[0]]) && n._details && (n._details.remove(), n._detailsShow = i, n._details = i)
},
Tt = function(e, t) {
var n = e.context;
if (n.length && e.length) {
var i = n[0].aoData[e[0]];
if (i._details) {
(i._detailsShow = t) ? i._details.insertAfter(i.nTr): i._details.detach();
var r = n[0],
o = new qe(r),
a = r.aoData;
o.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"), 0 < rt(a, "_details").length && (o.on("draw.dt.DT_details", (function(e, t) {
r === t && o.rows({
page: "current"
}).eq(0).each((function(e) {
(e = a[e])._detailsShow && e._details.insertAfter(e.nTr)
}))
})), o.on("column-visibility.dt.DT_details", (function(e, t) {
if (r === t)
for (var n, i = m(t), o = 0, s = a.length; o < s; o++)(n = a[o])._details && n._details.children("td[colspan]").attr("colspan", i)
})), o.on("destroy.dt.DT_details", (function(e, t) {
if (r === t)
for (var n = 0, i = a.length; n < i; n++) a[n]._details && St(o, n)
})))
}
}
};
We("row().child()", (function(t, n) {
var r = this.context;
if (t === i) return r.length && this.length ? r[0].aoData[this[0]]._details : i;
if (!0 === t) this.child.show();
else if (!1 === t) St(this);
else if (r.length && this.length) {
var o = r[0],
a = (r = r[0].aoData[this[0]], []),
s = function(t, n) {
if (e.isArray(t) || t instanceof e)
for (var i = 0, r = t.length; i < r; i++) s(t[i], n);
else t.nodeName && "tr" === t.nodeName.toLowerCase() ? a.push(t) : (i = e("<tr><td/></tr>").addClass(n), e("td", i).addClass(n).html(t)[0].colSpan = m(o), a.push(i[0]))
};
s(t, n), r._details && r._details.detach(), r._details = e(a), r._detailsShow && r._details.insertAfter(r.nTr)
}
return this
})), We(["row().child.show()", "row().child().show()"], (function() {
return Tt(this, !0), this
})), We(["row().child.hide()", "row().child().hide()"], (function() {
return Tt(this, !1), this
})), We(["row().child.remove()", "row().child().remove()"], (function() {
return St(this), this
})), We("row().child.isShown()", (function() {
var e = this.context;
return e.length && this.length && e[0].aoData[this[0]]._detailsShow || !1
}));
var Dt = /^([^:]+):(name|visIdx|visible)$/,
Et = function(e, t, n, i, r) {
n = [], i = 0;
for (var o = r.length; i < o; i++) n.push(_(e, r[i], t));
return n
};
We("columns()", (function(t, n) {
t === i ? t = "" : e.isPlainObject(t) && (n = t, t = "");
n = _t(n);
var r = this.iterator("table", (function(i) {
var r = t,
o = n,
a = i.aoColumns,
s = rt(a, "sName"),
l = rt(a, "nTh");
return xt("column", r, (function(t) {
var n = et(t);
if ("" === t) return at(a.length);
if (null !== n) return [n >= 0 ? n : a.length + n];
if ("function" == typeof t) {
var r = kt(i, o);
return e.map(a, (function(e, n) {
return t(n, Et(i, n, 0, 0, r), l[n]) ? n : null
}))
}
var c = "string" == typeof t ? t.match(Dt) : "";
if (c) switch (c[2]) {
case "visIdx":
case "visible":
if ((n = parseInt(c[1], 10)) < 0) {
var u = e.map(a, (function(e, t) {
return e.bVisible ? t : null
}));
return [u[u.length + n]]
}
return [p(i, n)];
case "name":
return e.map(s, (function(e, t) {
return e === c[1] ? t : null
}));
default:
return []
}
return t.nodeName && t._DT_CellIndex ? [t._DT_CellIndex.column] : (n = e(l).filter(t).map((function() {
return e.inArray(this, l)
})).toArray()).length || !t.nodeName ? n : (n = e(t).closest("*[data-dt-column]")).length ? [n.data("dt-column")] : []
}), i, o)
}), 1);
return r.selector.cols = t, r.selector.opts = n, r
})), Ue("columns().header()", "column().header()", (function() {
return this.iterator("column", (function(e, t) {
return e.aoColumns[t].nTh
}), 1)
})), Ue("columns().footer()", "column().footer()", (function() {
return this.iterator("column", (function(e, t) {
return e.aoColumns[t].nTf
}), 1)
})), Ue("columns().data()", "column().data()", (function() {
return this.iterator("column-rows", Et, 1)
})), Ue("columns().dataSrc()", "column().dataSrc()", (function() {
return this.iterator("column", (function(e, t) {
return e.aoColumns[t].mData
}), 1)
})), Ue("columns().cache()", "column().cache()", (function(e) {
return this.iterator("column-rows", (function(t, n, i, r, o) {
return ot(t.aoData, o, "search" === e ? "_aFilterData" : "_aSortData", n)
}), 1)
})), Ue("columns().nodes()", "column().nodes()", (function() {
return this.iterator("column-rows", (function(e, t, n, i, r) {
return ot(e.aoData, r, "anCells", t)
}), 1)
})), Ue("columns().visible()", "column().visible()", (function(t, n) {
var r = this,
o = this.iterator("column", (function(n, r) {
if (t === i) return n.aoColumns[r].bVisible;
var o, a, s, l = n.aoColumns,
c = l[r],
u = n.aoData;
if (t !== i && c.bVisible !== t) {
if (t) {
var d = e.inArray(!0, rt(l, "bVisible"), r + 1);
for (o = 0, a = u.length; o < a; o++) s = u[o].nTr, l = u[o].anCells, s && s.insertBefore(l[r], l[d] || null)
} else e(rt(n.aoData, "anCells", r)).detach();
c.bVisible = t
}
}));
return t !== i && this.iterator("table", (function(o) {
F(o, o.aoHeader), F(o, o.aoFooter), o.aiDisplay.length || e(o.nTBody).find("td[colspan]").attr("colspan", m(o)), De(o), r.iterator("column", (function(e, i) {
Fe(e, null, "column-visibility", [e, i, t, n])
})), (n === i || n) && r.columns.adjust()
})), o
})), Ue("columns().indexes()", "column().index()", (function(e) {
return this.iterator("column", (function(t, n) {
return "visible" === e ? g(t, n) : n
}), 1)
})), We("columns.adjust()", (function() {
return this.iterator("table", (function(e) {
f(e)
}), 1)
})), We("column.index()", (function(e, t) {
if (0 !== this.context.length) {
var n = this.context[0];
if ("fromVisible" === e || "toData" === e) return p(n, t);
if ("fromData" === e || "toVisible" === e) return g(n, t)
}
})), We("column()", (function(e, t) {
return Ct(this.columns(e, t))
})), We("cells()", (function(t, n, r) {
if (e.isPlainObject(t) && (t.row === i ? (r = t, t = null) : (r = n, n = null)), e.isPlainObject(n) && (r = n, n = null), null === n || n === i) return this.iterator("table", (function(n) {
var o, a, s, l, c, u, d, h = t,
f = _t(r),
p = n.aoData,
g = kt(n, f),
m = st(ot(p, g, "anCells")),
v = e([].concat.apply([], m)),
y = n.aoColumns.length;
return xt("cell", h, (function(t) {
var r = "function" == typeof t;
if (null === t || t === i || r) {
for (a = [], s = 0, l = g.length; s < l; s++)
for (o = g[s], c = 0; c < y; c++) u = {
row: o,
column: c
}, r ? (d = p[o], t(u, _(n, o, c), d.anCells ? d.anCells[c] : null) && a.push(u)) : a.push(u);
return a
}
return e.isPlainObject(t) ? t.column !== i && t.row !== i && -1 !== e.inArray(t.row, g) ? [t] : [] : (r = v.filter(t).map((function(e, t) {
return {
row: t._DT_CellIndex.row,
column: t._DT_CellIndex.column
}
})).toArray()).length || !t.nodeName ? r : (d = e(t).closest("*[data-dt-row]")).length ? [{
row: d.data("dt-row"),
column: d.data("dt-column")
}] : []
}), n, f)
}));
var o, a, s, l, c = r ? {
page: r.page,
order: r.order,
search: r.search
} : {},
u = this.columns(n, c),
d = this.rows(t, c);
c = this.iterator("table", (function(e, t) {
var n = [];
for (o = 0, a = d[t].length; o < a; o++)
for (s = 0, l = u[t].length; s < l; s++) n.push({
row: d[t][o],
column: u[t][s]
});
return n
}), 1), c = r && r.selected ? this.cells(c, r) : c;
return e.extend(c.selector, {
cols: n,
rows: t,
opts: r
}), c
})), Ue("cells().nodes()", "cell().node()", (function() {
return this.iterator("cell", (function(e, t, n) {
return (e = e.aoData[t]) && e.anCells ? e.anCells[n] : i
}), 1)
})), We("cells().data()", (function() {
return this.iterator("cell", (function(e, t, n) {
return _(e, t, n)
}), 1)
})), Ue("cells().cache()", "cell().cache()", (function(e) {
return e = "search" === e ? "_aFilterData" : "_aSortData", this.iterator("cell", (function(t, n, i) {
return t.aoData[n][e][i]
}), 1)
})), Ue("cells().render()", "cell().render()", (function(e) {
return this.iterator("cell", (function(t, n, i) {
return _(t, n, i, e)
}), 1)
})), Ue("cells().indexes()", "cell().index()", (function() {
return this.iterator("cell", (function(e, t, n) {
return {
row: t,
column: n,
columnVisible: g(e, n)
}
}), 1)
})), Ue("cells().invalidate()", "cell().invalidate()", (function(e) {
return this.iterator("cell", (function(t, n, i) {
M(t, n, e, i)
}))
})), We("cell()", (function(e, t, n) {
return Ct(this.cells(e, t, n))
})), We("cell().data()", (function(e) {
var t = this.context,
n = this[0];
return e === i ? t.length && n.length ? _(t[0], n[0].row, n[0].column) : i : (C(t[0], n[0].row, n[0].column, e), M(t[0], n[0].row, "data", n[0].column), this)
})), We("order()", (function(t, n) {
var r = this.context;
return t === i ? 0 !== r.length ? r[0].aaSorting : i : ("number" == typeof t ? t = [
[t, n]
] : t.length && !e.isArray(t[0]) && (t = Array.prototype.slice.call(arguments)), this.iterator("table", (function(e) {
e.aaSorting = t.slice()
})))
})), We("order.listener()", (function(e, t, n) {
return this.iterator("table", (function(i) {
ke(i, e, t, n)
}))
})), We("order.fixed()", (function(t) {
if (!t) {
var n = (n = this.context).length ? n[0].aaSortingFixed : i;
return e.isArray(n) ? {
pre: n
} : n
}
return this.iterator("table", (function(n) {
n.aaSortingFixed = e.extend(!0, {}, t)
}))
})), We(["columns().order()", "column().order()"], (function(t) {
var n = this;
return this.iterator("table", (function(i, r) {
var o = [];
e.each(n[r], (function(e, n) {
o.push([n, t])
})), i.aaSorting = o
}))
})), We("search()", (function(t, n, r, o) {
var a = this.context;
return t === i ? 0 !== a.length ? a[0].oPreviousSearch.sSearch : i : this.iterator("table", (function(i) {
i.oFeatures.bFilter && Y(i, e.extend({}, i.oPreviousSearch, {
sSearch: t + "",
bRegex: null !== n && n,
bSmart: null === r || r,
bCaseInsensitive: null === o || o
}), 1)
}))
})), Ue("columns().search()", "column().search()", (function(t, n, r, o) {
return this.iterator("column", (function(a, s) {
var l = a.aoPreSearchCols;
if (t === i) return l[s].sSearch;
a.oFeatures.bFilter && (e.extend(l[s], {
sSearch: t + "",
bRegex: null !== n && n,
bSmart: null === r || r,
bCaseInsensitive: null === o || o
}), Y(a, a.oPreviousSearch, 1))
}))
})), We("state()", (function() {
return this.context.length ? this.context[0].oSavedState : null
})), We("state.clear()", (function() {
return this.iterator("table", (function(e) {
e.fnStateSaveCallback.call(e.oInstance, e, {})
}))
})), We("state.loaded()", (function() {
return this.context.length ? this.context[0].oLoadedState : null
})), We("state.save()", (function() {
return this.iterator("table", (function(e) {
De(e)
}))
})), Ve.versionCheck = Ve.fnVersionCheck = function(e) {
for (var t, n, i = Ve.version.split("."), r = 0, o = (e = e.split(".")).length; r < o; r++)
if ((t = parseInt(i[r], 10) || 0) !== (n = parseInt(e[r], 10) || 0)) return t > n;
return !0
}, Ve.isDataTable = Ve.fnIsDataTable = function(t) {
var n = e(t).get(0),
i = !1;
return t instanceof Ve.Api || (e.each(Ve.settings, (function(t, r) {
var o = r.nScrollHead ? e("table", r.nScrollHead)[0] : null,
a = r.nScrollFoot ? e("table", r.nScrollFoot)[0] : null;
r.nTable !== n && o !== n && a !== n || (i = !0)
})), i)
}, Ve.tables = Ve.fnTables = function(t) {
var n = !1;
e.isPlainObject(t) && (n = t.api, t = t.visible);
var i = e.map(Ve.settings, (function(n) {
if (!t || t && e(n.nTable).is(":visible")) return n.nTable
}));
return n ? new qe(i) : i
}, Ve.camelToHungarian = o, We("$()", (function(t, n) {
var i = this.rows(n).nodes();
i = e(i);
return e([].concat(i.filter(t).toArray(), i.find(t).toArray()))
})), e.each(["on", "one", "off"], (function(t, n) {
We(n + "()", (function() {
var t = Array.prototype.slice.call(arguments);
t[0] = e.map(t[0].split(/\s/), (function(e) {
return e.match(/\.dt\b/) ? e : e + ".dt"
})).join(" ");
var i = e(this.tables().nodes());
return i[n].apply(i, t), this
}))
})), We("clear()", (function() {
return this.iterator("table", (function(e) {
E(e)
}))
})), We("settings()", (function() {
return new qe(this.context, this.context)
})), We("init()", (function() {
var e = this.context;
return e.length ? e[0].oInit : null
})), We("data()", (function() {
return this.iterator("table", (function(e) {
return rt(e.aoData, "_aData")
})).flatten()
})), We("destroy()", (function(n) {
return n = n || !1, this.iterator("table", (function(i) {
var r, o = i.nTableWrapper.parentNode,
a = i.oClasses,
s = i.nTable,
l = i.nTBody,
c = i.nTHead,
u = i.nTFoot,
d = e(s),
h = (l = e(l), e(i.nTableWrapper)),
f = e.map(i.aoData, (function(e) {
return e.nTr
}));
i.bDestroying = !0, Fe(i, "aoDestroyCallback", "destroy", [i]), n || new qe(i).columns().visible(!0), h.off(".DT").find(":not(tbody *)").off(".DT"), e(t).off(".DT-" + i.sInstance), s != c.parentNode && (d.children("thead").detach(), d.append(c)), u && s != u.parentNode && (d.children("tfoot").detach(), d.append(u)), i.aaSorting = [], i.aaSortingFixed = [], Se(i), e(f).removeClass(i.asStripeClasses.join(" ")), e("th, td", c).removeClass(a.sSortable + " " + a.sSortableAsc + " " + a.sSortableDesc + " " + a.sSortableNone), l.children().detach(), l.append(f), d[c = n ? "remove" : "detach"](), h[c](), !n && o && (o.insertBefore(s, i.nTableReinsertBefore), d.css("width", i.sDestroyWidth).removeClass(a.sTable), (r = i.asDestroyStripes.length) && l.children().each((function(t) {
e(this).addClass(i.asDestroyStripes[t % r])
}))), -1 !== (o = e.inArray(i, Ve.settings)) && Ve.settings.splice(o, 1)
}))
})), e.each(["column", "row", "cell"], (function(e, t) {
We(t + "s().every()", (function(e) {
var n = this.selector.opts,
r = this;
return this.iterator(t, (function(o, a, s, l, c) {
e.call(r[t](a, "cell" === t ? s : n, "cell" === t ? n : i), a, s, l, c)
}))
}))
})), We("i18n()", (function(t, n, r) {
var o = this.context[0];
return (t = S(t)(o.oLanguage)) === i && (t = n), r !== i && e.isPlainObject(t) && (t = t[r] !== i ? t[r] : t._), t.replace("%d", r)
})), Ve.version = "1.10.21", Ve.settings = [], Ve.models = {}, Ve.models.oSearch = {
bCaseInsensitive: !0,
sSearch: "",
bRegex: !1,
bSmart: !0
}, Ve.models.oRow = {
nTr: null,
anCells: null,
_aData: [],
_aSortData: null,
_aFilterData: null,
_sFilterRow: null,
_sRowStripe: "",
src: null,
idx: -1
}, Ve.models.oColumn = {
idx: null,
aDataSort: null,
asSorting: null,
bSearchable: null,
bSortable: null,
bVisible: null,
_sManualType: null,
_bAttrSrc: !1,
fnCreatedCell: null,
fnGetData: null,
fnSetData: null,
mData: null,
mRender: null,
nTh: null,
nTf: null,
sClass: null,
sContentPadding: null,
sDefaultContent: null,
sName: null,
sSortDataType: "std",
sSortingClass: null,
sSortingClassJUI: null,
sTitle: null,
sType: null,
sWidth: null,
sWidthOrig: null
}, Ve.defaults = {
aaData: null,
aaSorting: [
[0, "asc"]
],
aaSortingFixed: [],
ajax: null,
aLengthMenu: [10, 25, 50, 100],
aoColumns: null,
aoColumnDefs: null,
aoSearchCols: [],
asStripeClasses: null,
bAutoWidth: !0,
bDeferRender: !1,
bDestroy: !1,
bFilter: !0,
bInfo: !0,
bLengthChange: !0,
bPaginate: !0,
bProcessing: !1,
bRetrieve: !1,
bScrollCollapse: !1,
bServerSide: !1,
bSort: !0,
bSortMulti: !0,
bSortCellsTop: !1,
bSortClasses: !0,
bStateSave: !1,
fnCreatedRow: null,
fnDrawCallback: null,
fnFooterCallback: null,
fnFormatNumber: function(e) {
return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)
},
fnHeaderCallback: null,
fnInfoCallback: null,
fnInitComplete: null,
fnPreDrawCallback: null,
fnRowCallback: null,
fnServerData: null,
fnServerParams: null,
fnStateLoadCallback: function(e) {
try {
return JSON.parse((-1 === e.iStateDuration ? sessionStorage : localStorage).getItem("DataTables_" + e.sInstance + "_" + location.pathname))
} catch (e) {
return {}
}
},
fnStateLoadParams: null,
fnStateLoaded: null,
fnStateSaveCallback: function(e, t) {
try {
(-1 === e.iStateDuration ? sessionStorage : localStorage).setItem("DataTables_" + e.sInstance + "_" + location.pathname, JSON.stringify(t))
} catch (e) {}
},
fnStateSaveParams: null,
iStateDuration: 7200,
iDeferLoading: null,
iDisplayLength: 10,
iDisplayStart: 0,
iTabIndex: 0,
oClasses: {},
oLanguage: {
oAria: {
sSortAscending: ": activate to sort column ascending",
sSortDescending: ": activate to sort column descending"
},
oPaginate: {
sFirst: "First",
sLast: "Last",
sNext: "Next",
sPrevious: "Previous"
},
sEmptyTable: "No data available in table",
sInfo: "Showing _START_ to _END_ of _TOTAL_ entries",
sInfoEmpty: "Showing 0 to 0 of 0 entries",
sInfoFiltered: "(filtered from _MAX_ total entries)",
sInfoPostFix: "",
sDecimal: "",
sThousands: ",",
sLengthMenu: "Show _MENU_ entries",
sLoadingRecords: "Loading...",
sProcessing: "Processing...",
sSearch: "Search:",
sSearchPlaceholder: "",
sUrl: "",
sZeroRecords: "No matching records found"
},
oSearch: e.extend({}, Ve.models.oSearch),
sAjaxDataProp: "data",
sAjaxSource: null,
sDom: "lfrtip",
searchDelay: null,
sPaginationType: "simple_numbers",
sScrollX: "",
sScrollXInner: "",
sScrollY: "",
sServerMethod: "GET",
renderer: null,
rowId: "DT_RowId"
}, r(Ve.defaults), Ve.defaults.column = {
aDataSort: null,
iDataSort: -1,
asSorting: ["asc", "desc"],
bSearchable: !0,
bSortable: !0,
bVisible: !0,
fnCreatedCell: null,
mData: null,
mRender: null,
sCellType: "td",
sClass: "",
sContentPadding: "",
sDefaultContent: null,
sName: "",
sSortDataType: "std",
sTitle: null,
sType: null,
sWidth: null
}, r(Ve.defaults.column), Ve.models.oSettings = {
oFeatures: {
bAutoWidth: null,
bDeferRender: null,
bFilter: null,
bInfo: null,
bLengthChange: null,
bPaginate: null,
bProcessing: null,
bServerSide: null,
bSort: null,
bSortMulti: null,
bSortClasses: null,
bStateSave: null
},
oScroll: {
bCollapse: null,
iBarWidth: 0,
sX: null,
sXInner: null,
sY: null
},
oLanguage: {
fnInfoCallback: null
},
oBrowser: {
bScrollOversize: !1,
bScrollbarLeft: !1,
bBounding: !1,
barWidth: 0
},
ajax: null,
aanFeatures: [],
aoData: [],
aiDisplay: [],
aiDisplayMaster: [],
aIds: {},
aoColumns: [],
aoHeader: [],
aoFooter: [],
oPreviousSearch: {},
aoPreSearchCols: [],
aaSorting: null,
aaSortingFixed: [],
asStripeClasses: null,
asDestroyStripes: [],
sDestroyWidth: 0,
aoRowCallback: [],
aoHeaderCallback: [],
aoFooterCallback: [],
aoDrawCallback: [],
aoRowCreatedCallback: [],
aoPreDrawCallback: [],
aoInitComplete: [],
aoStateSaveParams: [],
aoStateLoadParams: [],
aoStateLoaded: [],
sTableId: "",
nTable: null,
nTHead: null,
nTFoot: null,
nTBody: null,
nTableWrapper: null,
bDeferLoading: !1,
bInitialised: !1,
aoOpenRows: [],
sDom: null,
searchDelay: null,
sPaginationType: "two_button",
iStateDuration: 0,
aoStateSave: [],
aoStateLoad: [],
oSavedState: null,
oLoadedState: null,
sAjaxSource: null,
sAjaxDataProp: null,
bAjaxDataGet: !0,
jqXHR: null,
json: i,
oAjaxData: i,
fnServerData: null,
aoServerParams: [],
sServerMethod: null,
fnFormatNumber: null,
aLengthMenu: null,
iDraw: 0,
bDrawing: !1,
iDrawError: -1,
_iDisplayLength: 10,
_iDisplayStart: 0,
_iRecordsTotal: 0,
_iRecordsDisplay: 0,
oClasses: {},
bFiltered: !1,
bSorted: !1,
bSortCellsTop: null,
oInit: null,
aoDestroyCallback: [],
fnRecordsTotal: function() {
return "ssp" == je(this) ? 1 * this._iRecordsTotal : this.aiDisplayMaster.length
},
fnRecordsDisplay: function() {
return "ssp" == je(this) ? 1 * this._iRecordsDisplay : this.aiDisplay.length
},
fnDisplayEnd: function() {
var e = this._iDisplayLength,
t = this._iDisplayStart,
n = t + e,
i = this.aiDisplay.length,
r = this.oFeatures,
o = r.bPaginate;
return r.bServerSide ? !1 === o || -1 === e ? t + i : Math.min(t + e, this._iRecordsDisplay) : !o || n > i || -1 === e ? i : n
},
oInstance: null,
sInstance: null,
iTabIndex: 0,
nScrollHead: null,
nScrollFoot: null,
aLastSort: [],
oPlugins: {},
rowIdFn: null,
rowId: null
}, Ve.ext = Be = {
buttons: {},
classes: {},
builder: "-source-",
errMode: "alert",
feature: [],
search: [],
selector: {
cell: [],
column: [],
row: []
},
internal: {},
legacy: {
ajax: null
},
pager: {},
renderer: {
pageButton: {},
header: {}
},
order: {},
type: {
detect: [],
search: {},
order: {}
},
_unique: 0,
fnVersionCheck: Ve.fnVersionCheck,
iApiIndex: 0,
oJUIClasses: {},
sVersion: Ve.version
}, e.extend(Be, {
afnFiltering: Be.search,
aTypes: Be.type.detect,
ofnSearch: Be.type.search,
oSort: Be.type.order,
afnSortData: Be.order,
aoFeatures: Be.feature,
oApi: Be.internal,
oStdClasses: Be.classes,
oPagination: Be.pager
}), e.extend(Ve.ext.classes, {
sTable: "dataTable",
sNoFooter: "no-footer",
sPageButton: "paginate_button",
sPageButtonActive: "current",
sPageButtonDisabled: "disabled",
sStripeOdd: "odd",
sStripeEven: "even",
sRowEmpty: "dataTables_empty",
sWrapper: "dataTables_wrapper",
sFilter: "dataTables_filter",
sInfo: "dataTables_info",
sPaging: "dataTables_paginate paging_",
sLength: "dataTables_length",
sProcessing: "dataTables_processing",
sSortAsc: "sorting_asc",
sSortDesc: "sorting_desc",
sSortable: "sorting",
sSortableAsc: "sorting_asc_disabled",
sSortableDesc: "sorting_desc_disabled",
sSortableNone: "sorting_disabled",
sSortColumn: "sorting_",
sFilterInput: "",
sLengthSelect: "",
sScrollWrapper: "dataTables_scroll",
sScrollHead: "dataTables_scrollHead",
sScrollHeadInner: "dataTables_scrollHeadInner",
sScrollBody: "dataTables_scrollBody",
sScrollFoot: "dataTables_scrollFoot",
sScrollFootInner: "dataTables_scrollFootInner",
sHeaderTH: "",
sFooterTH: "",
sSortJUIAsc: "",
sSortJUIDesc: "",
sSortJUI: "",
sSortJUIAscAllowed: "",
sSortJUIDescAllowed: "",
sSortJUIWrapper: "",
sSortIcon: "",
sJUIHeader: "",
sJUIFooter: ""
});
var At = Ve.ext.pager;
e.extend(At, {
simple: function() {
return ["previous", "next"]
},
full: function() {
return ["first", "previous", "next", "last"]
},
numbers: function(e, t) {
return [$e(e, t)]
},
simple_numbers: function(e, t) {
return ["previous", $e(e, t), "next"]
},
full_numbers: function(e, t) {
return ["first", "previous", $e(e, t), "next", "last"]
},
first_last_numbers: function(e, t) {
return ["first", $e(e, t), "last"]
},
_numbers: $e,
numbers_length: 7
}), e.extend(!0, Ve.ext.renderer, {
pageButton: {
_: function(t, r, o, a, s, l) {
var c, u, d, h = t.oClasses,
f = t.oLanguage.oPaginate,
p = t.oLanguage.oAria.paginate || {},
g = 0,
m = function(n, i) {
var r, a, d, v, y = h.sPageButtonDisabled,
b = function(e) {
ce(t, e.data.action, !0)
};
for (r = 0, a = i.length; r < a; r++)
if (v = i[r], e.isArray(v)) d = e("<" + (v.DT_el || "div") + "/>").appendTo(n), m(d, v);
else {
switch (c = null, u = v, d = t.iTabIndex, v) {
case "ellipsis":
n.append('<span class="ellipsis">…</span>');
break;
case "first":
c = f.sFirst, 0 === s && (d = -1, u = u + " " + y);
break;
case "previous":
c = f.sPrevious, 0 === s && (d = -1, u = u + " " + y);
break;
case "next":
c = f.sNext, 0 !== l && s !== l - 1 || (d = -1, u = u + " " + y);
break;
case "last":
c = f.sLast, s === l - 1 && (d = -1, u = u + " " + y);
break;
default:
c = v + 1, u = s === v ? h.sPageButtonActive : ""
}
null !== c && (Pe(d = e("<a>", {
class: h.sPageButton + " " + u,
"aria-controls": t.sTableId,
"aria-label": p[v],
"data-dt-idx": g,
tabindex: d,
id: 0 === o && "string" == typeof v ? t.sTableId + "_" + v : null
}).html(c).appendTo(n), {
action: v
}, b), g++)
}
};
try {
d = e(r).find(n.activeElement).data("dt-idx")
} catch (e) {}
m(e(r).empty(), a), d !== i && e(r).find("[data-dt-idx=" + d + "]").trigger("focus")
}
}
}), e.extend(Ve.ext.type.detect, [function(e, t) {
var n = t.oLanguage.sDecimal;
return nt(e, n) ? "num" + n : null
}, function(e) {
if (e && !(e instanceof Date) && !Qe.test(e)) return null;
var t = Date.parse(e);
return null !== t && !isNaN(t) || Ze(e) ? "date" : null
}, function(e, t) {
var n = t.oLanguage.sDecimal;
return nt(e, n, !0) ? "num-fmt" + n : null
}, function(e, t) {
var n = t.oLanguage.sDecimal;
return it(e, n) ? "html-num" + n : null
}, function(e, t) {
var n = t.oLanguage.sDecimal;
return it(e, n, !0) ? "html-num-fmt" + n : null
}, function(e) {
return Ze(e) || "string" == typeof e && -1 !== e.indexOf("<") ? "html" : null
}]), e.extend(Ve.ext.type.search, {
html: function(e) {
return Ze(e) ? e : "string" == typeof e ? e.replace(Xe, " ").replace(Ge, "") : ""
},
string: function(e) {
return Ze(e) ? e : "string" == typeof e ? e.replace(Xe, " ") : e
}
});
var Mt = function(e, t, n, i) {
return 0 === e || e && "-" !== e ? (t && (e = tt(e, t)), e.replace && (n && (e = e.replace(n, "")), i && (e = e.replace(i, ""))), 1 * e) : -1 / 0
};
e.extend(Be.type.order, {
"date-pre": function(e) {
return e = Date.parse(e), isNaN(e) ? -1 / 0 : e
},
"html-pre": function(e) {
return Ze(e) ? "" : e.replace ? e.replace(/<.*?>/g, "").toLowerCase() : e + ""
},
"string-pre": function(e) {
return Ze(e) ? "" : "string" == typeof e ? e.toLowerCase() : e.toString ? e.toString() : ""
},
"string-asc": function(e, t) {
return e < t ? -1 : e > t ? 1 : 0
},
"string-desc": function(e, t) {
return e < t ? 1 : e > t ? -1 : 0
}
}), ze(""), e.extend(!0, Ve.ext.renderer, {
header: {
_: function(t, n, i, r) {
e(t.nTable).on("order.dt.DT", (function(e, o, a, s) {
t === o && (e = i.idx, n.removeClass(i.sSortingClass + " " + r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[e] ? r.sSortAsc : "desc" == s[e] ? r.sSortDesc : i.sSortingClass))
}))
},
jqueryui: function(t, n, i, r) {
e("<div/>").addClass(r.sSortJUIWrapper).append(n.contents()).append(e("<span/>").addClass(r.sSortIcon + " " + i.sSortingClassJUI)).appendTo(n), e(t.nTable).on("order.dt.DT", (function(e, o, a, s) {
t === o && (e = i.idx, n.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[e] ? r.sSortAsc : "desc" == s[e] ? r.sSortDesc : i.sSortingClass), n.find("span." + r.sSortIcon).removeClass(r.sSortJUIAsc + " " + r.sSortJUIDesc + " " + r.sSortJUI + " " + r.sSortJUIAscAllowed + " " + r.sSortJUIDescAllowed).addClass("asc" == s[e] ? r.sSortJUIAsc : "desc" == s[e] ? r.sSortJUIDesc : i.sSortingClassJUI))
}))
}
}
});
var Ot = function(e) {
return "string" == typeof e ? e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """) : e
};
return Ve.render = {
number: function(e, t, n, i, r) {
return {
display: function(o) {
if ("number" != typeof o && "string" != typeof o) return o;
var a = 0 > o ? "-" : "",
s = parseFloat(o);
return isNaN(s) ? Ot(o) : (s = s.toFixed(n), o = Math.abs(s), s = parseInt(o, 10), o = n ? t + (o - s).toFixed(n).substring(2) : "", a + (i || "") + s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, e) + o + (r || ""))
}
}
},
text: function() {
return {
display: Ot,
filter: Ot
}
}
}, e.extend(Ve.ext.internal, {
_fnExternApiFunc: He,
_fnBuildAjax: H,
_fnAjaxUpdate: B,
_fnAjaxParameters: q,
_fnAjaxUpdateDraw: W,
_fnAjaxDataSrc: U,
_fnAddColumn: d,
_fnColumnOptions: h,
_fnAdjustColumnSizing: f,
_fnVisibleToColumnIndex: p,
_fnColumnIndexToVisible: g,
_fnVisbleColumns: m,
_fnGetColumns: v,
_fnColumnTypes: y,
_fnApplyColumnDefs: b,
_fnHungarianMap: r,
_fnCamelToHungarian: o,
_fnLanguageCompat: a,
_fnBrowserDetect: c,
_fnAddData: w,
_fnAddTr: x,
_fnNodeToDataIndex: function(e, t) {
return t._DT_RowIndex !== i ? t._DT_RowIndex : null
},
_fnNodeToColumnIndex: function(t, n, i) {
return e.inArray(i, t.aoData[n].anCells)
},
_fnGetCellData: _,
_fnSetCellData: C,
_fnSplitObjNotation: k,
_fnGetObjectDataFn: S,
_fnSetObjectDataFn: T,
_fnGetDataMaster: D,
_fnClearTable: E,
_fnDeleteIndex: A,
_fnInvalidate: M,
_fnGetRowElements: O,
_fnCreateTr: I,
_fnBuildHead: L,
_fnDrawHead: F,
_fnDraw: N,
_fnReDraw: R,
_fnAddOptionsHtml: j,
_fnDetectHeader: $,
_fnGetUniqueThs: z,
_fnFeatureHtmlFilter: V,
_fnFilterComplete: Y,
_fnFilterCustom: X,
_fnFilterColumn: G,
_fnFilter: Q,
_fnFilterCreateSearch: K,
_fnEscapeRegex: ht,
_fnFilterData: J,
_fnFeatureHtmlInfo: te,
_fnUpdateInfo: ne,
_fnInfoMacros: ie,
_fnInitialise: re,
_fnInitComplete: oe,
_fnLengthChange: ae,
_fnFeatureHtmlLength: se,
_fnFeatureHtmlPaginate: le,
_fnPageChange: ce,
_fnFeatureHtmlProcessing: ue,
_fnProcessingDisplay: de,
_fnFeatureHtmlTable: he,
_fnScrollDraw: fe,
_fnApplyToChildren: pe,
_fnCalculateColumnWidths: ge,
_fnThrottle: mt,
_fnConvertToWidth: me,
_fnGetWidestNode: ve,
_fnGetMaxLenString: ye,
_fnStringToCss: be,
_fnSortFlatten: we,
_fnSort: xe,
_fnSortAria: _e,
_fnSortListener: Ce,
_fnSortAttachListener: ke,
_fnSortingClasses: Se,
_fnSortData: Te,
_fnSaveState: De,
_fnLoadState: Ee,
_fnSettingsFromNode: Ae,
_fnLog: Me,
_fnMap: Oe,
_fnBindAction: Pe,
_fnCallbackReg: Le,
_fnCallbackFire: Fe,
_fnLengthOverflow: Ne,
_fnRenderer: Re,
_fnDataSource: je,
_fnRowAttributes: P,
_fnExtend: Ie,
_fnCalculateEnd: function() {}
}), e.fn.dataTable = Ve, Ve.$ = e, e.fn.dataTableSettings = Ve.settings, e.fn.dataTableExt = Ve.ext, e.fn.DataTable = function(t) {
return e(this).dataTable(t).api()
}, e.each(Ve, (function(t, n) {
e.fn.DataTable[t] = n
})), e.fn.dataTable
})),
function(e) {
"function" == typeof define && define.amd ? define(["jquery", "datatables.net"], (function(t) {
return e(t, window, document)
})) : "object" == typeof exports ? module.exports = function(t, n) {
return t || (t = window), n && n.fn.dataTable || (n = require("datatables.net")(t, n).$), e(n, t, t.document)
} : e(jQuery, window, document)
}((function(e, t, n, i) {
function r(e, t, n) {
var r = t + "-" + n;
if (s[r]) {
e = e.cell(t, n).node(), t = [];
for (var o = 0, a = (n = s[r][0].parentNode.childNodes).length; o < a; o++) t.push(n[o]);
for (n = 0, o = t.length; n < o; n++) e.appendChild(t[n]);
s[r] = i
}
}
var o = e.fn.dataTable,
a = function(t, n) {
if (!o.versionCheck || !o.versionCheck("1.10.10")) throw "DataTables Responsive requires DataTables 1.10.10 or newer";
this.s = {
dt: new o.Api(t),
columns: [],
current: []
}, this.s.dt.settings()[0].responsive || (n && "string" == typeof n.details ? n.details = {
type: n.details
} : n && !1 === n.details ? n.details = {
type: !1
} : n && !0 === n.details && (n.details = {
type: "inline"
}), this.c = e.extend(!0, {}, a.defaults, o.defaults.responsive, n), t.responsive = this, this._constructor())
};
e.extend(a.prototype, {
_constructor: function() {
var n = this,
i = this.s.dt,
r = i.settings()[0],
a = e(t).innerWidth();
i.settings()[0]._responsive = this, e(t).on("resize.dtr orientationchange.dtr", o.util.throttle((function() {
var i = e(t).innerWidth();
i !== a && (n._resize(), a = i)
}))), r.oApi._fnCallbackReg(r, "aoRowCreatedCallback", (function(t) {
-1 !== e.inArray(!1, n.s.current) && e(">td, >th", t).each((function(t) {
t = i.column.index("toData", t), !1 === n.s.current[t] && e(this).css("display", "none")
}))
})), i.on("destroy.dtr", (function() {
i.off(".dtr"), e(i.table().body()).off(".dtr"), e(t).off("resize.dtr orientationchange.dtr"), i.cells(".dtr-control").nodes().to$().removeClass("dtr-control"), e.each(n.s.current, (function(e, t) {
!1 === t && n._setColumnVis(e, !0)
}))
})), this.c.breakpoints.sort((function(e, t) {
return e.width < t.width ? 1 : e.width > t.width ? -1 : 0
})), this._classLogic(), this._resizeAuto(), !1 !== (r = this.c.details).type && (n._detailsInit(), i.on("column-visibility.dtr", (function() {
n._timer && clearTimeout(n._timer), n._timer = setTimeout((function() {
n._timer = null, n._classLogic(), n._resizeAuto(), n._resize(), n._redrawChildren()
}), 100)
})), i.on("draw.dtr", (function() {
n._redrawChildren()
})), e(i.table().node()).addClass("dtr-" + r.type)), i.on("column-reorder.dtr", (function() {
n._classLogic(), n._resizeAuto(), n._resize(!0)
})), i.on("column-sizing.dtr", (function() {
n._resizeAuto(), n._resize()
})), i.on("preXhr.dtr", (function() {
var e = [];
i.rows().every((function() {
this.child.isShown() && e.push(this.id(!0))
})), i.one("draw.dtr", (function() {
n._resizeAuto(), n._resize(), i.rows(e).every((function() {
n._detailsDisplay(this, !1)
}))
}))
})), i.on("draw.dtr", (function() {
n._controlClass()
})).on("init.dtr", (function(t) {
"dt" === t.namespace && (n._resizeAuto(), n._resize(), e.inArray(!1, n.s.current) && i.columns.adjust())
})), this._resize()
},
_columnsVisiblity: function(t) {
var n, i, r = this.s.dt,
o = this.s.columns,
a = o.map((function(e, t) {
return {
columnIdx: t,
priority: e.priority
}
})).sort((function(e, t) {
return e.priority !== t.priority ? e.priority - t.priority : e.columnIdx - t.columnIdx
})),
s = e.map(o, (function(n, i) {
return !1 === r.column(i).visible() ? "not-visible" : (!n.auto || null !== n.minWidth) && (!0 === n.auto ? "-" : -1 !== e.inArray(t, n.includeIn))
})),
l = 0;
for (n = 0, i = s.length; n < i; n++) !0 === s[n] && (l += o[n].minWidth);
for (n = (n = r.settings()[0].oScroll).sY || n.sX ? n.iBarWidth : 0, l = r.table().container().offsetWidth - n - l, n = 0, i = s.length; n < i; n++) o[n].control && (l -= o[n].minWidth);
var c = !1;
for (n = 0, i = a.length; n < i; n++) {
var u = a[n].columnIdx;
"-" === s[u] && !o[u].control && o[u].minWidth && (c || 0 > l - o[u].minWidth ? (c = !0, s[u] = !1) : s[u] = !0, l -= o[u].minWidth)
}
for (a = !1, n = 0, i = o.length; n < i; n++)
if (!o[n].control && !o[n].never && !1 === s[n]) {
a = !0;
break
}
for (n = 0, i = o.length; n < i; n++) o[n].control && (s[n] = a), "not-visible" === s[n] && (s[n] = !1);
return -1 === e.inArray(!0, s) && (s[0] = !0), s
},
_classLogic: function() {
var t = this,
n = this.c.breakpoints,
r = this.s.dt,
o = r.columns().eq(0).map((function(e) {
var t = (n = this.column(e)).header().className,
n = (e = r.settings()[0].aoColumns[e].responsivePriority, n.header().getAttribute("data-priority"));
return e === i && (e = n === i || null === n ? 1e4 : 1 * n), {
className: t,
includeIn: [],
auto: !1,
control: !1,
never: !!t.match(/\bnever\b/),
priority: e
}
})),
a = function(t, n) {
var i = o[t].includeIn; - 1 === e.inArray(n, i) && i.push(n)
},
s = function(e, i, r, s) {
if (r) {
if ("max-" === r)
for (s = t._find(i).width, i = 0, r = n.length; i < r; i++) n[i].width <= s && a(e, n[i].name);
else if ("min-" === r)
for (s = t._find(i).width, i = 0, r = n.length; i < r; i++) n[i].width >= s && a(e, n[i].name);
else if ("not-" === r)
for (i = 0, r = n.length; i < r; i++) - 1 === n[i].name.indexOf(s) && a(e, n[i].name)
} else o[e].includeIn.push(i)
};
o.each((function(t, i) {
for (var r = t.className.split(" "), o = !1, a = 0, l = r.length; a < l; a++) {
var c = e.trim(r[a]);
if ("all" === c) return o = !0, void(t.includeIn = e.map(n, (function(e) {
return e.name
})));
if ("none" === c || t.never) return void(o = !0);
if ("control" === c) return o = !0, void(t.control = !0);
e.each(n, (function(e, t) {
var n = t.name.split("-"),
r = c.match(RegExp("(min\\-|max\\-|not\\-)?(" + n[0] + ")(\\-[_a-zA-Z0-9])?"));
r && (o = !0, r[2] === n[0] && r[3] === "-" + n[1] ? s(i, t.name, r[1], r[2] + r[3]) : r[2] === n[0] && !r[3] && s(i, t.name, r[1], r[2]))
}))
}
o || (t.auto = !0)
})), this.s.columns = o
},
_controlClass: function() {
if ("inline" === this.c.details.type) {
var t = this.s.dt,
n = e.inArray(!0, this.s.current);
t.cells(null, (function(e) {
return e !== n
}), {
page: "current"
}).nodes().to$().filter(".dtr-control").removeClass("dtr-control"), t.cells(null, n, {
page: "current"
}).nodes().to$().addClass("dtr-control")
}
},
_detailsDisplay: function(t, n) {
var i = this,
r = this.s.dt,
o = this.c.details;
if (o && !1 !== o.type) {
var a = o.display(t, n, (function() {
return o.renderer(r, t[0], i._detailsObj(t[0]))
}));
(!0 === a || !1 === a) && e(r.table().node()).triggerHandler("responsive-display.dt", [r, t, a, n])
}
},
_detailsInit: function() {
var t = this,
n = this.s.dt,
r = this.c.details;
"inline" === r.type && (r.target = "td.dtr-control, th.dtr-control"), n.on("draw.dtr", (function() {
t._tabIndexes()
})), t._tabIndexes(), e(n.table().body()).on("keyup.dtr", "td, th", (function(t) {
13 === t.keyCode && e(this).data("dtr-keyboard") && e(this).click()
}));
var o = r.target;
o === i && null === o || e(n.table().body()).on("click.dtr mousedown.dtr mouseup.dtr", "string" == typeof o ? o : "td, th", (function(i) {
if (e(n.table().node()).hasClass("collapsed") && -1 !== e.inArray(e(this).closest("tr").get(0), n.rows().nodes().toArray())) {
if ("number" == typeof o) {
var r = o < 0 ? n.columns().eq(0).length + o : o;
if (n.cell(this).index().column !== r) return
}
r = n.row(e(this).closest("tr")), "click" === i.type ? t._detailsDisplay(r, !1) : "mousedown" === i.type ? e(this).css("outline", "none") : "mouseup" === i.type && e(this).trigger("blur").css("outline", "")
}
}))
},
_detailsObj: function(t) {
var n = this,
i = this.s.dt;
return e.map(this.s.columns, (function(r, o) {
if (!r.never && !r.control) {
var a = i.settings()[0].aoColumns[o];
return {
className: a.sClass,
columnIndex: o,
data: i.cell(t, o).render(n.c.orthogonal),
hidden: i.column(o).visible() && !n.s.current[o],
rowIndex: t,
title: null !== a.sTitle ? a.sTitle : e(i.column(o).header()).text()
}
}
}))
},
_find: function(e) {
for (var t = this.c.breakpoints, n = 0, i = t.length; n < i; n++)
if (t[n].name === e) return t[n]
},
_redrawChildren: function() {
var e = this,
t = this.s.dt;
t.rows({
page: "current"
}).iterator("row", (function(n, i) {
t.row(i), e._detailsDisplay(t.row(i), !0)
}))
},
_resize: function(n) {
var i, r = this,
o = this.s.dt,
a = e(t).innerWidth(),
s = this.c.breakpoints,
l = s[0].name,
c = this.s.columns,
u = this.s.current.slice();
for (i = s.length - 1; 0 <= i; i--)
if (a <= s[i].width) {
l = s[i].name;
break
}
var d = this._columnsVisiblity(l);
for (this.s.current = d, s = !1, i = 0, a = c.length; i < a; i++)
if (!1 === d[i] && !c[i].never && !c[i].control && !1 == !o.column(i).visible()) {
s = !0;
break
}
e(o.table().node()).toggleClass("collapsed", s);
var h = !1,
f = 0;
o.columns().eq(0).each((function(e, t) {
!0 === d[t] && f++, (n || d[t] !== u[t]) && (h = !0, r._setColumnVis(e, d[t]))
})), h && (this._redrawChildren(), e(o.table().node()).trigger("responsive-resize.dt", [o, this.s.current]), 0 === o.page.info().recordsDisplay && e("td", o.table().body()).eq(0).attr("colspan", f))
},
_resizeAuto: function() {
var t = this.s.dt,
n = this.s.columns;
if (this.c.auto && -1 !== e.inArray(!0, e.map(n, (function(e) {
return e.auto
})))) {
e.isEmptyObject(s) || e.each(s, (function(e) {
e = e.split("-"), r(t, 1 * e[0], 1 * e[1])
})), t.table().node();
var i = t.table().node().cloneNode(!1),
o = e(t.table().header().cloneNode(!1)).appendTo(i),
a = e(t.table().body()).clone(!1, !1).empty().appendTo(i);
i.style.width = "auto";
var l = t.columns().header().filter((function(e) {
return t.column(e).visible()
})).to$().clone(!1).css("display", "table-cell").css("width", "auto").css("min-width", 0);
if (e(a).append(e(t.rows({
page: "current"
}).nodes()).clone(!1)).find("th, td").css("display", ""), a = t.table().footer()) {
a = e(a.cloneNode(!1)).appendTo(i);
var c = t.columns().footer().filter((function(e) {
return t.column(e).visible()
})).to$().clone(!1).css("display", "table-cell");
e("<tr/>").append(c).appendTo(a)
}
e("<tr/>").append(l).appendTo(o), "inline" === this.c.details.type && e(i).addClass("dtr-inline collapsed"), e(i).find("[name]").removeAttr("name"), e(i).css("position", "relative"), (i = e("<div/>").css({
width: 1,
height: 1,
overflow: "hidden",
clear: "both"
}).append(i)).insertBefore(t.table().node()), l.each((function(e) {
e = t.column.index("fromVisible", e), n[e].minWidth = this.offsetWidth || 0
})), i.remove()
}
},
_responsiveOnlyHidden: function() {
var t = this.s.dt;
return e.map(this.s.current, (function(e, n) {
return !1 === t.column(n).visible() || e
}))
},
_setColumnVis: function(t, n) {
var i = this.s.dt,
o = n ? "" : "none";
e(i.column(t).header()).css("display", o), e(i.column(t).footer()).css("display", o), i.column(t).nodes().to$().css("display", o), e.isEmptyObject(s) || i.cells(null, t).indexes().each((function(e) {
r(i, e.row, e.column)
}))
},
_tabIndexes: function() {
var t = this.s.dt,
n = t.cells({
page: "current"
}).nodes().to$(),
i = t.settings()[0],
r = this.c.details.target;
n.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]"), "number" == typeof r ? t.cells(null, r, {
page: "current"
}).nodes().to$().attr("tabIndex", i.iTabIndex).data("dtr-keyboard", 1) : ("td:first-child, th:first-child" === r && (r = ">td:first-child, >th:first-child"), e(r, t.rows({
page: "current"
}).nodes()).attr("tabIndex", i.iTabIndex).data("dtr-keyboard", 1))
}
}), a.breakpoints = [{
name: "desktop",
width: 1 / 0
}, {
name: "tablet-l",
width: 1024
}, {
name: "tablet-p",
width: 768
}, {
name: "mobile-l",
width: 480
}, {
name: "mobile-p",
width: 320
}], a.display = {
childRow: function(t, n, i) {
return n ? e(t.node()).hasClass("parent") ? (t.child(i(), "child").show(), !0) : void 0 : t.child.isShown() ? (t.child(!1), e(t.node()).removeClass("parent"), !1) : (t.child(i(), "child").show(), e(t.node()).addClass("parent"), !0)
},
childRowImmediate: function(t, n, i) {
return !n && t.child.isShown() || !t.responsive.hasHidden() ? (t.child(!1), e(t.node()).removeClass("parent"), !1) : (t.child(i(), "child").show(), e(t.node()).addClass("parent"), !0)
},
modal: function(t) {
return function(i, r, o) {
if (r) e("div.dtr-modal-content").empty().append(o());
else {
var a = function() {
s.remove(), e(n).off("keypress.dtr")
},
s = e('<div class="dtr-modal"/>').append(e('<div class="dtr-modal-display"/>').append(e('<div class="dtr-modal-content"/>').append(o())).append(e('<div class="dtr-modal-close">×</div>').click((function() {
a()
})))).append(e('<div class="dtr-modal-background"/>').click((function() {
a()
}))).appendTo("body");
e(n).on("keyup.dtr", (function(e) {
27 === e.keyCode && (e.stopPropagation(), a())
}))
}
t && t.header && e("div.dtr-modal-content").prepend("<h2>" + t.header(i) + "</h2>")
}
}
};
var s = {};
a.renderer = {
listHiddenNodes: function() {
return function(t, n, i) {
var r = e('<ul data-dtr-index="' + n + '" class="dtr-details"/>'),
o = !1;
return e.each(i, (function(n, i) {
i.hidden && (e("<li " + (i.className ? 'class="' + i.className + '"' : "") + ' data-dtr-index="' + i.columnIndex + '" data-dt-row="' + i.rowIndex + '" data-dt-column="' + i.columnIndex + '"><span class="dtr-title">' + i.title + "</span> </li>").append(e('<span class="dtr-data"/>').append(function(e, t, n) {
var i = t + "-" + n;
if (s[i]) return s[i];
var r = [];
for (e = e.cell(t, n).node().childNodes, t = 0, n = e.length; t < n; t++) r.push(e[t]);
return s[i] = r
}(t, i.rowIndex, i.columnIndex))).appendTo(r), o = !0)
})), !!o && r
}
},
listHidden: function() {
return function(t, n, i) {
return !!(t = e.map(i, (function(e) {
var t = e.className ? 'class="' + e.className + '"' : "";
return e.hidden ? "<li " + t + ' data-dtr-index="' + e.columnIndex + '" data-dt-row="' + e.rowIndex + '" data-dt-column="' + e.columnIndex + '"><span class="dtr-title">' + e.title + '</span> <span class="dtr-data">' + e.data + "</span></li>" : ""
})).join("")) && e('<ul data-dtr-index="' + n + '" class="dtr-details"/>').append(t)
}
},
tableAll: function(t) {
return t = e.extend({
tableClass: ""
}, t),
function(n, i, r) {
return n = e.map(r, (function(e) {
return "<tr " + (e.className ? 'class="' + e.className + '"' : "") + ' data-dt-row="' + e.rowIndex + '" data-dt-column="' + e.columnIndex + '"><td>' + e.title + ":</td> <td>" + e.data + "</td></tr>"
})).join(""), e('<table class="' + t.tableClass + ' dtr-details" width="100%"/>').append(n)
}
}
}, a.defaults = {
breakpoints: a.breakpoints,
auto: !0,
details: {
display: a.display.childRow,
renderer: a.renderer.listHidden(),
target: 0,
type: "inline"
},
orthogonal: "display"
};
var l = e.fn.dataTable.Api;
return l.register("responsive()", (function() {
return this
})), l.register("responsive.index()", (function(t) {
return {
column: (t = e(t)).data("dtr-index"),
row: t.parent().data("dtr-index")
}
})), l.register("responsive.rebuild()", (function() {
return this.iterator("table", (function(e) {
e._responsive && e._responsive._classLogic()
}))
})), l.register("responsive.recalc()", (function() {
return this.iterator("table", (function(e) {
e._responsive && (e._responsive._resizeAuto(), e._responsive._resize())
}))
})), l.register("responsive.hasHidden()", (function() {
var t = this.context[0];
return !!t._responsive && -1 !== e.inArray(!1, t._responsive._responsiveOnlyHidden())
})), l.registerPlural("columns().responsiveHidden()", "column().responsiveHidden()", (function() {
return this.iterator("column", (function(e, t) {
return !!e._responsive && e._responsive._responsiveOnlyHidden()[t]
}), 1)
})), a.version = "2.2.5", e.fn.dataTable.Responsive = a, e.fn.DataTable.Responsive = a, e(n).on("preInit.dt.dtr", (function(t, n) {
if ("dt" === t.namespace && (e(n.nTable).hasClass("responsive") || e(n.nTable).hasClass("dt-responsive") || n.oInit.responsive || o.defaults.responsive)) {
var i = n.oInit.responsive;
!1 !== i && new a(n, e.isPlainObject(i) ? i : {})
}
})), a
})),
function(e) {
"function" == typeof define && define.amd ? define(["jquery", "datatables.net"], (function(t) {
return e(t, window, document)
})) : "object" == typeof exports ? module.exports = function(t, n) {
return t || (t = window), n && n.fn.dataTable || (n = require("datatables.net")(t, n).$), e(n, t, t.document)
} : e(jQuery, window, document)
}((function(e, t, n, i) {
var r = e.fn.dataTable;
return e.extend(!0, r.defaults, {
dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer: "bootstrap"
}), e.extend(r.ext.classes, {
sWrapper: "dataTables_wrapper dt-bootstrap4",
sFilterInput: "form-control form-control-sm",
sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
sProcessing: "dataTables_processing card",
sPageButton: "paginate_button page-item"
}), r.ext.renderer.pageButton.bootstrap = function(t, o, a, s, l, c) {
var u, d, h, f = new r.Api(t),
p = t.oClasses,
g = t.oLanguage.oPaginate,
m = t.oLanguage.oAria.paginate || {},
v = 0,
y = function(n, i) {
var r, o, s, h, b = function(t) {
t.preventDefault(), !e(t.currentTarget).hasClass("disabled") && f.page() != t.data.action && f.page(t.data.action).draw("page")
};
for (r = 0, o = i.length; r < o; r++)
if (h = i[r], e.isArray(h)) y(n, h);
else {
switch (d = u = "", h) {
case "ellipsis":
u = "…", d = "disabled";
break;
case "first":
u = g.sFirst, d = h + (0 < l ? "" : " disabled");
break;
case "previous":
u = g.sPrevious, d = h + (0 < l ? "" : " disabled");
break;
case "next":
u = g.sNext, d = h + (l < c - 1 ? "" : " disabled");
break;
case "last":
u = g.sLast, d = h + (l < c - 1 ? "" : " disabled");
break;
default:
u = h + 1, d = l === h ? "active" : ""
}
u && (s = e("<li>", {
class: p.sPageButton + " " + d,
id: 0 === a && "string" == typeof h ? t.sTableId + "_" + h : null
}).append(e("<a>", {
href: "#",
"aria-controls": t.sTableId,
"aria-label": m[h],
"data-dt-idx": v,
tabindex: t.iTabIndex,
class: "page-link"
}).html(u)).appendTo(n), t.oApi._fnBindAction(s, {
action: h
}, b), v++)
}
};
try {
h = e(o).find(n.activeElement).data("dt-idx")
} catch (e) {}
y(e(o).empty().html('<ul class="pagination"/>').children("ul"), s), h !== i && e(o).find("[data-dt-idx=" + h + "]").trigger("focus")
}, r
})),
function(e) {
"function" == typeof define && define.amd ? define(["jquery", "datatables.net-bs4", "datatables.net-responsive"], (function(t) {
return e(t, window, document)
})) : "object" == typeof exports ? module.exports = function(t, n) {
return t || (t = window), n && n.fn.dataTable || (n = require("datatables.net-bs4")(t, n).$), n.fn.dataTable.Responsive || require("datatables.net-responsive")(t, n), e(n, t.document)
} : e(jQuery, window, document)
}((function(e) {
var t = e.fn.dataTable,
n = t.Responsive.display,
i = n.modal,
r = e('<div class="modal fade dtr-bs-modal" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body"/></div></div></div>');
return n.modal = function(t) {
return function(n, o, a) {
if (e.fn.modal) {
if (!o) {
if (t && t.header) {
var s = (o = r.find("div.modal-header")).find("button").detach();
o.empty().append('<h4 class="modal-title">' + t.header(n) + "</h4>").append(s)
}
r.find("div.modal-body").empty().append(a()), r.appendTo("body").modal()
}
} else i(n, o, a)
}
}, t.Responsive
}));
var Emitter = function() {
function e() {
_classCallCheck(this, e)
}
return _createClass(e, [{
key: "on",
value: function(e, t) {
return this._callbacks = this._callbacks || {}, this._callbacks[e] || (this._callbacks[e] = []), this._callbacks[e].push(t), this
}
}, {
key: "emit",
value: function(e) {
this._callbacks = this._callbacks || {};
var t = this._callbacks[e];
if (t) {
for (var n = arguments.length, i = new Array(1 < n ? n - 1 : 0), r = 1; r < n; r++) i[r - 1] = arguments[r];
var o, a = _createForOfIteratorHelper(t);
try {
for (a.s(); !(o = a.n()).done;) o.value.apply(this, i)
} catch (e) {
a.e(e)
} finally {
a.f()
}
}
return this
}
}, {
key: "off",
value: function(e, t) {
if (!this._callbacks || 0 === arguments.length) return this._callbacks = {}, this;
var n = this._callbacks[e];
if (!n) return this;
if (1 === arguments.length) return delete this._callbacks[e], this;
for (var i = 0; i < n.length; i++)
if (n[i] === t) {
n.splice(i, 1);
break
}
return this
}
}]), e
}(),
Dropzone = function() {
_inherits(t, Emitter);
var e = _createSuper(t);
function t(n, i) {
var r, o, a;
if (_classCallCheck(this, t), (r = e.call(this)).element = n, r.version = t.version, r.defaultOptions.previewTemplate = r.defaultOptions.previewTemplate.replace(/\n*/g, ""), r.clickableElements = [], r.listeners = [], r.files = [], "string" == typeof r.element && (r.element = document.querySelector(r.element)), !r.element || null == r.element.nodeType) throw new Error("Invalid dropzone element.");
if (r.element.dropzone) throw new Error("Dropzone already attached.");
t.instances.push(_assertThisInitialized(r)), r.element.dropzone = _assertThisInitialized(r);
var s = null != (a = t.optionsForElement(r.element)) ? a : {};
if (r.options = t.extend({}, r.defaultOptions, s, null != i ? i : {}), r.options.forceFallback || !t.isBrowserSupported()) return _possibleConstructorReturn(r, r.options.fallback.call(_assertThisInitialized(r)));
if (null == r.options.url && (r.options.url = r.element.getAttribute("action")), !r.options.url) throw new Error("No URL provided.");
if (r.options.acceptedFiles && r.options.acceptedMimeTypes) throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");
if (r.options.uploadMultiple && r.options.chunking) throw new Error("You cannot set both: uploadMultiple and chunking.");
return r.options.acceptedMimeTypes && (r.options.acceptedFiles = r.options.acceptedMimeTypes, delete r.options.acceptedMimeTypes), null != r.options.renameFilename && (r.options.renameFile = function(e) {
return r.options.renameFilename.call(_assertThisInitialized(r), e.name, e)
}), "string" == typeof r.options.method && (r.options.method = r.options.method.toUpperCase()), (o = r.getExistingFallback()) && o.parentNode && o.parentNode.removeChild(o), !1 !== r.options.previewsContainer && (r.options.previewsContainer ? r.previewsContainer = t.getElement(r.options.previewsContainer, "previewsContainer") : r.previewsContainer = r.element), r.options.clickable && (!0 === r.options.clickable ? r.clickableElements = [r.element] : r.clickableElements = t.getElements(r.options.clickable, "clickable")), r.init(), r
}
return _createClass(t, null, [{
key: "initClass",
value: function() {
this.prototype.Emitter = Emitter, this.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"], this.prototype.defaultOptions = {
url: null,
method: "post",
withCredentials: !1,
timeout: 3e4,
parallelUploads: 2,
uploadMultiple: !1,
chunking: !1,
forceChunking: !1,
chunkSize: 2e6,
parallelChunkUploads: !1,
retryChunks: !1,
retryChunksLimit: 3,
maxFilesize: 256,
paramName: "file",
createImageThumbnails: !0,
maxThumbnailFilesize: 10,
thumbnailWidth: 120,
thumbnailHeight: 120,
thumbnailMethod: "crop",
resizeWidth: null,
resizeHeight: null,
resizeMimeType: null,
resizeQuality: .8,
resizeMethod: "contain",
filesizeBase: 1e3,
maxFiles: null,
headers: null,
clickable: !0,
ignoreHiddenFiles: !0,
acceptedFiles: null,
acceptedMimeTypes: null,
autoProcessQueue: !0,
autoQueue: !0,
addRemoveLinks: !1,
previewsContainer: null,
hiddenInputContainer: "body",
capture: null,
renameFilename: null,
renameFile: null,
forceFallback: !1,
dictDefaultMessage: "Drop files here to upload",
dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.",
dictFallbackText: "Please use the fallback form below to upload your files like in the olden days.",
dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.",
dictInvalidFileType: "You can't upload files of this type.",
dictResponseError: "Server responded with {{statusCode}} code.",
dictCancelUpload: "Cancel upload",
dictUploadCanceled: "Upload canceled.",
dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?",
dictRemoveFile: "Remove file",
dictRemoveFileConfirmation: null,
dictMaxFilesExceeded: "You can not upload any more files.",
dictFileSizeUnits: {
tb: "TB",
gb: "GB",
mb: "MB",
kb: "KB",
b: "b"
},
init: function() {},
params: function(e, t, n) {
if (n) return {
dzuuid: n.file.upload.uuid,
dzchunkindex: n.index,
dztotalfilesize: n.file.size,
dzchunksize: this.options.chunkSize,
dztotalchunkcount: n.file.upload.totalChunkCount,
dzchunkbyteoffset: n.index * this.options.chunkSize
}
},
accept: function(e, t) {
return t()
},
chunksUploaded: function(e, t) {
t()
},
fallback: function() {
var e;
this.element.className = "".concat(this.element.className, " dz-browser-not-supported");
var n, i = _createForOfIteratorHelper(this.element.getElementsByTagName("div"));
try {
for (i.s(); !(n = i.n()).done;) {
var r = n.value;
if (/(^| )dz-message($| )/.test(r.className)) {
(e = r).className = "dz-message";
break
}
}
} catch (e) {
i.e(e)
} finally {
i.f()
}
e || (e = t.createElement('<div class="dz-message"><span></span></div>'), this.element.appendChild(e));
var o = e.getElementsByTagName("span")[0];
return o && (null != o.textContent ? o.textContent = this.options.dictFallbackMessage : null != o.innerText && (o.innerText = this.options.dictFallbackMessage)), this.element.appendChild(this.getFallbackForm())
},
resize: function(e, t, n, i) {
var r = {
srcX: 0,
srcY: 0,
srcWidth: e.width,
srcHeight: e.height
},
o = e.width / e.height;
null == t && null == n ? (t = r.srcWidth, n = r.srcHeight) : null == t ? t = n * o : null == n && (n = t / o);
var a = (t = Math.min(t, r.srcWidth)) / (n = Math.min(n, r.srcHeight));
if (r.srcWidth > t || r.srcHeight > n)
if ("crop" === i) a < o ? (r.srcHeight = e.height, r.srcWidth = r.srcHeight * a) : (r.srcWidth = e.width, r.srcHeight = r.srcWidth / a);
else {
if ("contain" !== i) throw new Error("Unknown resizeMethod '".concat(i, "'"));
a < o ? n = t / o : t = n * o
}
return r.srcX = (e.width - r.srcWidth) / 2, r.srcY = (e.height - r.srcHeight) / 2, r.trgWidth = t, r.trgHeight = n, r
},
transformFile: function(e, t) {
return (this.options.resizeWidth || this.options.resizeHeight) && e.type.match(/image.*/) ? this.resizeImage(e, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, t) : t(e)
},
previewTemplate: '<div class="dz-preview dz-file-preview">\n <div class="dz-image"><img data-dz-thumbnail /></div>\n <div class="dz-details">\n <div class="dz-size"><span data-dz-size></span></div>\n <div class="dz-filename"><span data-dz-name></span></div>\n </div>\n <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>\n <div class="dz-error-message"><span data-dz-errormessage></span></div>\n <div class="dz-success-mark">\n <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <title>Check</title>\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <path d="M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z" stroke-opacity="0.198794158" stroke="#747474" fill-opacity="0.816519475" fill="#FFFFFF"></path>\n </g>\n </svg>\n </div>\n <div class="dz-error-mark">\n <svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <title>Error</title>\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475">\n <path d="M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z"></path>\n </g>\n </g>\n </svg>\n </div>\n</div>',
drop: function() {
return this.element.classList.remove("dz-drag-hover")
},
dragstart: function() {},
dragend: function() {
return this.element.classList.remove("dz-drag-hover")
},
dragenter: function() {
return this.element.classList.add("dz-drag-hover")
},
dragover: function() {
return this.element.classList.add("dz-drag-hover")
},
dragleave: function() {
return this.element.classList.remove("dz-drag-hover")
},
paste: function() {},
reset: function() {
return this.element.classList.remove("dz-started")
},
addedfile: function(e) {
var n = this;
if (this.element === this.previewsContainer && this.element.classList.add("dz-started"), this.previewsContainer) {
e.previewElement = t.createElement(this.options.previewTemplate.trim()), e.previewTemplate = e.previewElement, this.previewsContainer.appendChild(e.previewElement);
var i, r = _createForOfIteratorHelper(e.previewElement.querySelectorAll("[data-dz-name]"));
try {
for (r.s(); !(i = r.n()).done;) {
var o = i.value;
o.textContent = e.name
}
} catch (i) {
r.e(i)
} finally {
r.f()
}
var a, s = _createForOfIteratorHelper(e.previewElement.querySelectorAll("[data-dz-size]"));
try {
for (s.s(); !(a = s.n()).done;)(o = a.value).innerHTML = this.filesize(e.size)
} catch (i) {
s.e(i)
} finally {
s.f()
}
this.options.addRemoveLinks && (e._removeLink = t.createElement('<a class="dz-remove" href="javascript:undefined;" data-dz-remove>'.concat(this.options.dictRemoveFile, "</a>")), e.previewElement.appendChild(e._removeLink));
var l, c = function(i) {
return i.preventDefault(), i.stopPropagation(), e.status === t.UPLOADING ? t.confirm(n.options.dictCancelUploadConfirmation, (function() {
return n.removeFile(e)
})) : n.options.dictRemoveFileConfirmation ? t.confirm(n.options.dictRemoveFileConfirmation, (function() {
return n.removeFile(e)
})) : n.removeFile(e)
},
u = _createForOfIteratorHelper(e.previewElement.querySelectorAll("[data-dz-remove]"));
try {
for (u.s(); !(l = u.n()).done;) l.value.addEventListener("click", c)
} catch (i) {
u.e(i)
} finally {
u.f()
}
}
},
removedfile: function(e) {
return null != e.previewElement && null != e.previewElement.parentNode && e.previewElement.parentNode.removeChild(e.previewElement), this._updateMaxFilesReachedClass()
},
thumbnail: function(e, t) {
if (e.previewElement) {
e.previewElement.classList.remove("dz-file-preview");
var n, i = _createForOfIteratorHelper(e.previewElement.querySelectorAll("[data-dz-thumbnail]"));
try {
for (i.s(); !(n = i.n()).done;) {
var r = n.value;
r.alt = e.name, r.src = t
}
} catch (e) {
i.e(e)
} finally {
i.f()
}
return setTimeout((function() {
return e.previewElement.classList.add("dz-image-preview")
}), 1)
}
},
error: function(e, t) {
if (e.previewElement) {
e.previewElement.classList.add("dz-error"), "string" != typeof t && t.error && (t = t.error);
var n, i = _createForOfIteratorHelper(e.previewElement.querySelectorAll("[data-dz-errormessage]"));
try {
for (i.s(); !(n = i.n()).done;) n.value.textContent = t
} catch (e) {
i.e(e)
} finally {
i.f()
}
}
},
errormultiple: function() {},
processing: function(e) {
if (e.previewElement && (e.previewElement.classList.add("dz-processing"), e._removeLink)) return e._removeLink.innerHTML = this.options.dictCancelUpload
},
processingmultiple: function() {},
uploadprogress: function(e, t) {
if (e.previewElement) {
var n, i = _createForOfIteratorHelper(e.previewElement.querySelectorAll("[data-dz-uploadprogress]"));
try {
for (i.s(); !(n = i.n()).done;) {
var r = n.value;
"PROGRESS" === r.nodeName ? r.value = t : r.style.width = "".concat(t, "%")
}
} catch (e) {
i.e(e)
} finally {
i.f()
}
}
},
totaluploadprogress: function() {},
sending: function() {},
sendingmultiple: function() {},
success: function(e) {
if (e.previewElement) return e.previewElement.classList.add("dz-success")
},
successmultiple: function() {},
canceled: function(e) {
return this.emit("error", e, this.options.dictUploadCanceled)
},
canceledmultiple: function() {},
complete: function(e) {
if (e._removeLink && (e._removeLink.innerHTML = this.options.dictRemoveFile), e.previewElement) return e.previewElement.classList.add("dz-complete")
},
completemultiple: function() {},
maxfilesexceeded: function() {},
maxfilesreached: function() {},
queuecomplete: function() {},
addedfiles: function() {}
}, this.prototype._thumbnailQueue = [], this.prototype._processingThumbnail = !1
}
}, {
key: "extend",
value: function(e) {
for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i];
for (var r = 0, o = n; r < o.length; r++) {
var a = o[r];
for (var s in a) {
var l = a[s];
e[s] = l
}
}
return e
}
}]), _createClass(t, [{
key: "getAcceptedFiles",
value: function() {
return this.files.filter((function(e) {
return e.accepted
})).map((function(e) {
return e
}))
}
}, {
key: "getRejectedFiles",
value: function() {
return this.files.filter((function(e) {
return !e.accepted
})).map((function(e) {
return e
}))
}
}, {
key: "getFilesWithStatus",
value: function(e) {
return this.files.filter((function(t) {
return t.status === e
})).map((function(e) {
return e
}))
}
}, {
key: "getQueuedFiles",
value: function() {
return this.getFilesWithStatus(t.QUEUED)
}
}, {
key: "getUploadingFiles",
value: function() {
return this.getFilesWithStatus(t.UPLOADING)
}
}, {
key: "getAddedFiles",
value: function() {
return this.getFilesWithStatus(t.ADDED)
}
}, {
key: "getActiveFiles",
value: function() {
return this.files.filter((function(e) {
return e.status === t.UPLOADING || e.status === t.QUEUED
})).map((function(e) {
return e
}))
}
}, {
key: "init",
value: function() {
var e = this;
"form" === this.element.tagName && this.element.setAttribute("enctype", "multipart/form-data"), this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message") && this.element.appendChild(t.createElement('<div class="dz-default dz-message"><button class="dz-button" type="button">'.concat(this.options.dictDefaultMessage, "</button></div>"))), this.clickableElements.length && function n() {
return e.hiddenFileInput && e.hiddenFileInput.parentNode.removeChild(e.hiddenFileInput), e.hiddenFileInput = document.createElement("input"), e.hiddenFileInput.setAttribute("type", "file"), (null === e.options.maxFiles || 1 < e.options.maxFiles) && e.hiddenFileInput.setAttribute("multiple", "multiple"), e.hiddenFileInput.className = "dz-hidden-input", null !== e.options.acceptedFiles && e.hiddenFileInput.setAttribute("accept", e.options.acceptedFiles), null !== e.options.capture && e.hiddenFileInput.setAttribute("capture", e.options.capture), e.hiddenFileInput.style.visibility = "hidden", e.hiddenFileInput.style.position = "absolute", e.hiddenFileInput.style.top = "0", e.hiddenFileInput.style.left = "0", e.hiddenFileInput.style.height = "0", e.hiddenFileInput.style.width = "0", t.getElement(e.options.hiddenInputContainer, "hiddenInputContainer").appendChild(e.hiddenFileInput), e.hiddenFileInput.addEventListener("change", (function() {
var t = e.hiddenFileInput.files;
if (t.length) {
var i, r = _createForOfIteratorHelper(t);
try {
for (r.s(); !(i = r.n()).done;) {
var o = i.value;
e.addFile(o)
}
} catch (t) {
r.e(t)
} finally {
r.f()
}
}
return e.emit("addedfiles", t), n()
}))
}(), this.URL = null !== window.URL ? window.URL : window.webkitURL;
var n, i = _createForOfIteratorHelper(this.events);
try {
for (i.s(); !(n = i.n()).done;) {
var r = n.value;
this.on(r, this.options[r])
}
} catch (n) {
i.e(n)
} finally {
i.f()
}
function o(e) {
return function(e) {
if (e.dataTransfer.types)
for (var t = 0; t < e.dataTransfer.types.length; t++)
if ("Files" === e.dataTransfer.types[t]) return !0;
return !1
}(e) && (e.stopPropagation(), e.preventDefault ? e.preventDefault() : e.returnValue = !1)
}
return this.on("uploadprogress", (function() {
return e.updateTotalUploadProgress()
})), this.on("removedfile", (function() {
return e.updateTotalUploadProgress()
})), this.on("canceled", (function(t) {
return e.emit("complete", t)
})), this.on("complete", (function(t) {
if (0 === e.getAddedFiles().length && 0 === e.getUploadingFiles().length && 0 === e.getQueuedFiles().length) return setTimeout((function() {
return e.emit("queuecomplete")
}), 0)
})), this.listeners = [{
element: this.element,
events: {
dragstart: function(t) {
return e.emit("dragstart", t)
},
dragenter: function(t) {
return o(t), e.emit("dragenter", t)
},
dragover: function(t) {
var n;
try {
n = t.dataTransfer.effectAllowed
} catch (t) {}
return t.dataTransfer.dropEffect = "move" === n || "linkMove" === n ? "move" : "copy", o(t), e.emit("dragover", t)
},
dragleave: function(t) {
return e.emit("dragleave", t)
},
drop: function(t) {
return o(t), e.drop(t)
},
dragend: function(t) {
return e.emit("dragend", t)
}
}
}], this.clickableElements.forEach((function(n) {
return e.listeners.push({
element: n,
events: {
click: function(i) {
return n === e.element && i.target !== e.element && !t.elementInside(i.target, e.element.querySelector(".dz-message")) || e.hiddenFileInput.click(), !0
}
}
})
})), this.enable(), this.options.init.call(this)
}
}, {
key: "destroy",
value: function() {
return this.disable(), this.removeAllFiles(!0), null != this.hiddenFileInput && this.hiddenFileInput.parentNode && (this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput), this.hiddenFileInput = null), delete this.element.dropzone, t.instances.splice(t.instances.indexOf(this), 1)
}
}, {
key: "updateTotalUploadProgress",
value: function() {
var e, t = 0,
n = 0;
if (this.getActiveFiles().length) {
var i, r = _createForOfIteratorHelper(this.getActiveFiles());
try {
for (r.s(); !(i = r.n()).done;) {
var o = i.value;
t += o.upload.bytesSent, n += o.upload.total
}
} catch (e) {
r.e(e)
} finally {
r.f()
}
e = 100 * t / n
} else e = 100;
return this.emit("totaluploadprogress", e, n, t)
}
}, {
key: "_getParamName",
value: function(e) {
return "function" == typeof this.options.paramName ? this.options.paramName(e) : "".concat(this.options.paramName).concat(this.options.uploadMultiple ? "[".concat(e, "]") : "")
}
}, {
key: "_renameFile",
value: function(e) {
return "function" != typeof this.options.renameFile ? e.name : this.options.renameFile(e)
}
}, {
key: "getFallbackForm",
value: function() {
var e, n;
if (e = this.getExistingFallback()) return e;
var i = '<div class="dz-fallback">';
this.options.dictFallbackText && (i += "<p>".concat(this.options.dictFallbackText, "</p>")), i += '<input type="file" name="'.concat(this._getParamName(0), '" ').concat(this.options.uploadMultiple ? 'multiple="multiple"' : void 0, ' /><input type="submit" value="Upload!"></div>');
var r = t.createElement(i);
return "FORM" !== this.element.tagName ? (n = t.createElement('<form action="'.concat(this.options.url, '" enctype="multipart/form-data" method="').concat(this.options.method, '"></form>'))).appendChild(r) : (this.element.setAttribute("enctype", "multipart/form-data"), this.element.setAttribute("method", this.options.method)), null != n ? n : r
}
}, {
key: "getExistingFallback",
value: function() {
for (var e = function(e) {
var t, n = _createForOfIteratorHelper(e);
try {
for (n.s(); !(t = n.n()).done;) {
var i = t.value;
if (/(^| )fallback($| )/.test(i.className)) return i
}
} catch (e) {
n.e(e)
} finally {
n.f()
}
}, t = 0, n = ["div", "form"]; t < n.length; t++) {
var i, r = n[t];
if (i = e(this.element.getElementsByTagName(r))) return i
}
}
}, {
key: "setupEventListeners",
value: function() {
return this.listeners.map((function(e) {
return function() {
var t = [];
for (var n in e.events) {
var i = e.events[n];
t.push(e.element.addEventListener(n, i, !1))
}
return t
}()
}))
}
}, {
key: "removeEventListeners",
value: function() {
return this.listeners.map((function(e) {
return function() {
var t = [];
for (var n in e.events) {
var i = e.events[n];
t.push(e.element.removeEventListener(n, i, !1))
}
return t
}()
}))
}
}, {
key: "disable",
value: function() {
var e = this;
return this.clickableElements.forEach((function(e) {
return e.classList.remove("dz-clickable")
})), this.removeEventListeners(), this.disabled = !0, this.files.map((function(t) {
return e.cancelUpload(t)
}))
}
}, {
key: "enable",
value: function() {
return delete this.disabled, this.clickableElements.forEach((function(e) {
return e.classList.add("dz-clickable")
})), this.setupEventListeners()
}
}, {
key: "filesize",
value: function(e) {
var t = 0,
n = "b";
if (0 < e) {
for (var i = ["tb", "gb", "mb", "kb", "b"], r = 0; r < i.length; r++) {
var o = i[r];
if (Math.pow(this.options.filesizeBase, 4 - r) / 10 <= e) {
t = e / Math.pow(this.options.filesizeBase, 4 - r), n = o;
break
}
}
t = Math.round(10 * t) / 10
}
return "<strong>".concat(t, "</strong> ").concat(this.options.dictFileSizeUnits[n])
}
}, {
key: "_updateMaxFilesReachedClass",
value: function() {
return null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (this.getAcceptedFiles().length === this.options.maxFiles && this.emit("maxfilesreached", this.files), this.element.classList.add("dz-max-files-reached")) : this.element.classList.remove("dz-max-files-reached")
}
}, {
key: "drop",
value: function(e) {
if (e.dataTransfer) {
this.emit("drop", e);
for (var t = [], n = 0; n < e.dataTransfer.files.length; n++) t[n] = e.dataTransfer.files[n];
if (t.length) {
var i = e.dataTransfer.items;
i && i.length && null != i[0].webkitGetAsEntry ? this._addFilesFromItems(i) : this.handleFiles(t)
}
this.emit("addedfiles", t)
}
}
}, {
key: "paste",
value: function(e) {
if (null != __guard__(null != e ? e.clipboardData : void 0, (function(e) {
return e.items
}))) {
this.emit("paste", e);
var t = e.clipboardData.items;
return t.length ? this._addFilesFromItems(t) : void 0
}
}
}, {
key: "handleFiles",
value: function(e) {
var t, n = _createForOfIteratorHelper(e);
try {
for (n.s(); !(t = n.n()).done;) {
var i = t.value;
this.addFile(i)
}
} catch (e) {
n.e(e)
} finally {
n.f()
}
}
}, {
key: "_addFilesFromItems",
value: function(e) {
var t = this;
return function() {
var n, i = [],
r = _createForOfIteratorHelper(e);
try {
for (r.s(); !(n = r.n()).done;) {
var o, a = n.value;
null != a.webkitGetAsEntry && (o = a.webkitGetAsEntry()) ? o.isFile ? i.push(t.addFile(a.getAsFile())) : o.isDirectory ? i.push(t._addFilesFromDirectory(o, o.name)) : i.push(void 0) : null == a.getAsFile || null != a.kind && "file" !== a.kind ? i.push(void 0) : i.push(t.addFile(a.getAsFile()))
}
} catch (n) {
r.e(n)
} finally {
r.f()
}
return i
}()
}
}, {
key: "_addFilesFromDirectory",
value: function(e, t) {
function n(e) {
return __guardMethod__(console, "log", (function(t) {
return t.log(e)
}))
}
var i = this,
r = e.createReader();
return function e() {
return r.readEntries((function(n) {
if (0 < n.length) {
var r, o = _createForOfIteratorHelper(n);
try {
for (o.s(); !(r = o.n()).done;) {
var a = r.value;
a.isFile ? a.file((function(e) {
if (!i.options.ignoreHiddenFiles || "." !== e.name.substring(0, 1)) return e.fullPath = "".concat(t, "/").concat(e.name), i.addFile(e)
})) : a.isDirectory && i._addFilesFromDirectory(a, "".concat(t, "/").concat(a.name))
}
} catch (n) {
o.e(n)
} finally {
o.f()
}
e()
}
return null
}), n)
}()
}
}, {
key: "accept",
value: function(e, n) {
this.options.maxFilesize && e.size > 1024 * this.options.maxFilesize * 1024 ? n(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(e.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)) : t.isValidFile(e, this.options.acceptedFiles) ? null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (n(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)), this.emit("maxfilesexceeded", e)) : this.options.accept.call(this, e, n) : n(this.options.dictInvalidFileType)
}
}, {
key: "addFile",
value: function(e) {
var n = this;
e.upload = {
uuid: t.uuidv4(),
progress: 0,
total: e.size,
bytesSent: 0,
filename: this._renameFile(e)
}, this.files.push(e), e.status = t.ADDED, this.emit("addedfile", e), this._enqueueThumbnail(e), this.accept(e, (function(t) {
t ? (e.accepted = !1, n._errorProcessing([e], t)) : (e.accepted = !0, n.options.autoQueue && n.enqueueFile(e)), n._updateMaxFilesReachedClass()
}))
}
}, {
key: "enqueueFiles",
value: function(e) {
var t, n = _createForOfIteratorHelper(e);
try {
for (n.s(); !(t = n.n()).done;) {
var i = t.value;
this.enqueueFile(i)
}
} catch (e) {
n.e(e)
} finally {
n.f()
}
return null
}
}, {
key: "enqueueFile",
value: function(e) {
var n = this;
if (e.status !== t.ADDED || !0 !== e.accepted) throw new Error("This file can't be queued because it has already been processed or was rejected.");
if (e.status = t.QUEUED, this.options.autoProcessQueue) return setTimeout((function() {
return n.processQueue()
}), 0)
}
}, {
key: "_enqueueThumbnail",
value: function(e) {
var t = this;
if (this.options.createImageThumbnails && e.type.match(/image.*/) && e.size <= 1024 * this.options.maxThumbnailFilesize * 1024) return this._thumbnailQueue.push(e), setTimeout((function() {
return t._processThumbnailQueue()
}), 0)
}
}, {
key: "_processThumbnailQueue",
value: function() {
var e = this;
if (!this._processingThumbnail && 0 !== this._thumbnailQueue.length) {
this._processingThumbnail = !0;
var t = this._thumbnailQueue.shift();
return this.createThumbnail(t, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, !0, (function(n) {
return e.emit("thumbnail", t, n), e._processingThumbnail = !1, e._processThumbnailQueue()
}))
}
}
}, {
key: "removeFile",
value: function(e) {
if (e.status === t.UPLOADING && this.cancelUpload(e), this.files = without(this.files, e), this.emit("removedfile", e), 0 === this.files.length) return this.emit("reset")
}
}, {
key: "removeAllFiles",
value: function(e) {
null == e && (e = !1);
var n, i = _createForOfIteratorHelper(this.files.slice());
try {
for (i.s(); !(n = i.n()).done;) {
var r = n.value;
r.status === t.UPLOADING && !e || this.removeFile(r)
}
} catch (e) {
i.e(e)
} finally {
i.f()
}
return null
}
}, {
key: "resizeImage",
value: function(e, n, i, r, o) {
var a = this;
return this.createThumbnail(e, n, i, r, !0, (function(n, i) {
if (null == i) return o(e);
var r = a.options.resizeMimeType;
null == r && (r = e.type);
var s = i.toDataURL(r, a.options.resizeQuality);
return "image/jpeg" !== r && "image/jpg" !== r || (s = ExifRestore.restore(e.dataURL, s)), o(t.dataURItoBlob(s))
}))
}
}, {
key: "createThumbnail",
value: function(e, t, n, i, r, o) {
var a = this,
s = new FileReader;
s.onload = function() {
e.dataURL = s.result, "image/svg+xml" !== e.type ? a.createThumbnailFromUrl(e, t, n, i, r, o) : null != o && o(s.result)
}, s.readAsDataURL(e)
}
}, {
key: "displayExistingFile",
value: function(e, t, n, i, r) {
var o = this,
a = !(4 < arguments.length && void 0 !== r) || r;
this.emit("addedfile", e), this.emit("complete", e), a ? (e.dataURL = t, this.createThumbnailFromUrl(e, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.resizeMethod, this.options.fixOrientation, (function(t) {
o.emit("thumbnail", e, t), n && n()
}), i)) : (this.emit("thumbnail", e, t), n && n())
}
}, {
key: "createThumbnailFromUrl",
value: function(e, t, n, i, r, o, a) {
var s = this,
l = document.createElement("img");
return a && (l.crossOrigin = a), r = "from-image" != getComputedStyle(document.body).imageOrientation && r, l.onload = function() {
var a = function(e) {
return e(1)
};
return "undefined" != typeof EXIF && null !== EXIF && r && (a = function(e) {
return EXIF.getData(l, (function() {
return e(EXIF.getTag(this, "Orientation"))
}))
}), a((function(r) {
e.width = l.width, e.height = l.height;
var a = s.options.resize.call(s, e, t, n, i),
c = document.createElement("canvas"),
u = c.getContext("2d");
switch (c.width = a.trgWidth, c.height = a.trgHeight, 4 < r && (c.width = a.trgHeight, c.height = a.trgWidth), r) {
case 2:
u.translate(c.width, 0), u.scale(-1, 1);
break;
case 3:
u.translate(c.width, c.height), u.rotate(Math.PI);
break;
case 4:
u.translate(0, c.height), u.scale(1, -1);
break;
case 5:
u.rotate(.5 * Math.PI), u.scale(1, -1);
break;
case 6:
u.rotate(.5 * Math.PI), u.translate(0, -c.width);
break;
case 7:
u.rotate(.5 * Math.PI), u.translate(c.height, -c.width), u.scale(-1, 1);
break;
case 8:
u.rotate(-.5 * Math.PI), u.translate(-c.height, 0)
}
drawImageIOSFix(u, l, null != a.srcX ? a.srcX : 0, null != a.srcY ? a.srcY : 0, a.srcWidth, a.srcHeight, null != a.trgX ? a.trgX : 0, null != a.trgY ? a.trgY : 0, a.trgWidth, a.trgHeight);
var d = c.toDataURL("image/png");
if (null != o) return o(d, c)
}))
}, null != o && (l.onerror = o), l.src = e.dataURL
}
}, {
key: "processQueue",
value: function() {
var e = this.options.parallelUploads,
t = this.getUploadingFiles().length,
n = t;
if (!(e <= t)) {
var i = this.getQueuedFiles();
if (0 < i.length) {
if (this.options.uploadMultiple) return this.processFiles(i.slice(0, e - t));
for (; n < e;) {
if (!i.length) return;
this.processFile(i.shift()), n++
}
}
}
}
}, {
key: "processFile",
value: function(e) {
return this.processFiles([e])
}
}, {
key: "processFiles",
value: function(e) {
var n, i = _createForOfIteratorHelper(e);
try {
for (i.s(); !(n = i.n()).done;) {
var r = n.value;
r.processing = !0, r.status = t.UPLOADING, this.emit("processing", r)
}
} catch (e) {
i.e(e)
} finally {
i.f()
}
return this.options.uploadMultiple && this.emit("processingmultiple", e), this.uploadFiles(e)
}
}, {
key: "_getFilesWithXhr",
value: function(e) {
return this.files.filter((function(t) {
return t.xhr === e
})).map((function(e) {
return e
}))
}
}, {
key: "cancelUpload",
value: function(e) {
if (e.status === t.UPLOADING) {
var n, i = this._getFilesWithXhr(e.xhr),
r = _createForOfIteratorHelper(i);
try {
for (r.s(); !(n = r.n()).done;) n.value.status = t.CANCELED
} catch (e) {
r.e(e)
} finally {
r.f()
}
void 0 !== e.xhr && e.xhr.abort();
var o, a = _createForOfIteratorHelper(i);
try {
for (a.s(); !(o = a.n()).done;) {
var s = o.value;
this.emit("canceled", s)
}
} catch (e) {
a.e(e)
} finally {
a.f()
}
this.options.uploadMultiple && this.emit("canceledmultiple", i)
} else e.status !== t.ADDED && e.status !== t.QUEUED || (e.status = t.CANCELED, this.emit("canceled", e), this.options.uploadMultiple && this.emit("canceledmultiple", [e]));
if (this.options.autoProcessQueue) return this.processQueue()
}
}, {
key: "resolveOption",
value: function(e) {
if ("function" != typeof e) return e;
for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i];
return e.apply(this, n)
}
}, {
key: "uploadFile",
value: function(e) {
return this.uploadFiles([e])
}
}, {
key: "uploadFiles",
value: function(e) {
var n = this;
this._transformFiles(e, (function(i) {
if (n.options.chunking) {
var r = i[0];
e[0].upload.chunked = n.options.chunking && (n.options.forceChunking || r.size > n.options.chunkSize), e[0].upload.totalChunkCount = Math.ceil(r.size / n.options.chunkSize)
}
if (e[0].upload.chunked) {
var o = e[0],
a = i[0];
o.upload.chunks = [];
var s = function() {
for (var i = 0; void 0 !== o.upload.chunks[i];) i++;
if (!(i >= o.upload.totalChunkCount)) {
var r = i * n.options.chunkSize,
s = Math.min(r + n.options.chunkSize, a.size),
l = {
name: n._getParamName(0),
data: a.webkitSlice ? a.webkitSlice(r, s) : a.slice(r, s),
filename: o.upload.filename,
chunkIndex: i
};
o.upload.chunks[i] = {
file: o,
index: i,
dataBlock: l,
status: t.UPLOADING,
progress: 0,
retries: 0
}, n._uploadData(e, [l])
}
};
if (o.upload.finishedChunkUpload = function(i) {
var r = !0;
i.status = t.SUCCESS, i.dataBlock = null, i.xhr = null;
for (var a = 0; a < o.upload.totalChunkCount; a++) {
if (void 0 === o.upload.chunks[a]) return s();
o.upload.chunks[a].status !== t.SUCCESS && (r = !1)
}
r && n.options.chunksUploaded(o, (function() {
n._finished(e, "", null)
}))
}, n.options.parallelChunkUploads)
for (var l = 0; l < o.upload.totalChunkCount; l++) s();
else s()
} else {
for (var c = [], u = 0; u < e.length; u++) c[u] = {
name: n._getParamName(u),
data: i[u],
filename: e[u].upload.filename
};
n._uploadData(e, c)
}
}))
}
}, {
key: "_getChunk",
value: function(e, t) {
for (var n = 0; n < e.upload.totalChunkCount; n++)
if (void 0 !== e.upload.chunks[n] && e.upload.chunks[n].xhr === t) return e.upload.chunks[n]
}
}, {
key: "_uploadData",
value: function(e, n) {
var i, r = this,
o = new XMLHttpRequest,
a = _createForOfIteratorHelper(e);
try {
for (a.s(); !(i = a.n()).done;) i.value.xhr = o
} catch (n) {
a.e(n)
} finally {
a.f()
}
e[0].upload.chunked && (e[0].upload.chunks[n[0].chunkIndex].xhr = o);
var s = this.resolveOption(this.options.method, e),
l = this.resolveOption(this.options.url, e);
o.open(s, l, !0), o.timeout = this.resolveOption(this.options.timeout, e), o.withCredentials = !!this.options.withCredentials, o.onload = function(t) {
r._finishedUploading(e, o, t)
}, o.ontimeout = function() {
r._handleUploadError(e, o, "Request timedout after ".concat(r.options.timeout / 1e3, " seconds"))
}, o.onerror = function() {
r._handleUploadError(e, o)
}, (null != o.upload ? o.upload : o).onprogress = function(t) {
return r._updateFilesUploadProgress(e, o, t)
};
var c = {
Accept: "application/json",
"Cache-Control": "no-cache",
"X-Requested-With": "XMLHttpRequest"
};
for (var u in this.options.headers && t.extend(c, this.options.headers), c) {
var d = c[u];
d && o.setRequestHeader(u, d)
}
var h = new FormData;
if (this.options.params) {
var f = this.options.params;
for (var p in "function" == typeof f && (f = f.call(this, e, o, e[0].upload.chunked ? this._getChunk(e[0], o) : null)), f) {
var g = f[p];
if (Array.isArray(g))
for (var m = 0; m < g.length; m++) h.append(p, g[m]);
else h.append(p, g)
}
}
var v, y = _createForOfIteratorHelper(e);
try {
for (y.s(); !(v = y.n()).done;) {
var b = v.value;
this.emit("sending", b, o, h)
}
} catch (n) {
y.e(n)
} finally {
y.f()
}
this.options.uploadMultiple && this.emit("sendingmultiple", e, o, h), this._addFormElementData(h);
for (var w = 0; w < n.length; w++) {
var x = n[w];
h.append(x.name, x.data, x.filename)
}
this.submitRequest(o, h, e)
}
}, {
key: "_transformFiles",
value: function(e, t) {
for (var n = this, i = [], r = 0, o = function(o) {
n.options.transformFile.call(n, e[o], (function(n) {
i[o] = n, ++r === e.length && t(i)
}))
}, a = 0; a < e.length; a++) o(a)
}
}, {
key: "_addFormElementData",
value: function(e) {
if ("FORM" === this.element.tagName) {
var t, n = _createForOfIteratorHelper(this.element.querySelectorAll("input, textarea, select, button"));
try {
for (n.s(); !(t = n.n()).done;) {
var i = t.value,
r = i.getAttribute("name"),
o = i.getAttribute("type");
if (o = o && o.toLowerCase(), null != r)
if ("SELECT" === i.tagName && i.hasAttribute("multiple")) {
var a, s = _createForOfIteratorHelper(i.options);
try {
for (s.s(); !(a = s.n()).done;) {
var l = a.value;
l.selected && e.append(r, l.value)
}
} catch (e) {
s.e(e)
} finally {
s.f()
}
} else(!o || "checkbox" !== o && "radio" !== o || i.checked) && e.append(r, i.value)
}
} catch (e) {
n.e(e)
} finally {
n.f()
}
}
}
}, {
key: "_updateFilesUploadProgress",
value: function(e, t, n) {
var i;
if (void 0 !== n) {
if (i = 100 * n.loaded / n.total, e[0].upload.chunked) {
var r = e[0],
o = this._getChunk(r, t);
o.progress = i, o.total = n.total, o.bytesSent = n.loaded, r.upload.progress = 0, r.upload.total = 0;
for (var a = r.upload.bytesSent = 0; a < r.upload.totalChunkCount; a++) void 0 !== r.upload.chunks[a] && void 0 !== r.upload.chunks[a].progress && (r.upload.progress += r.upload.chunks[a].progress, r.upload.total += r.upload.chunks[a].total, r.upload.bytesSent += r.upload.chunks[a].bytesSent);
r.upload.progress = r.upload.progress / r.upload.totalChunkCount
} else {
var s, l = _createForOfIteratorHelper(e);
try {
for (l.s(); !(s = l.n()).done;) {
var c = s.value;
c.upload.progress = i, c.upload.total = n.total, c.upload.bytesSent = n.loaded
}
} catch (e) {
l.e(e)
} finally {
l.f()
}
}
var u, d = _createForOfIteratorHelper(e);
try {
for (d.s(); !(u = d.n()).done;) {
var h = u.value;
this.emit("uploadprogress", h, h.upload.progress, h.upload.bytesSent)
}
} catch (e) {
d.e(e)
} finally {
d.f()
}
} else {
var f = !0;
i = 100;
var p, g = _createForOfIteratorHelper(e);
try {
for (g.s(); !(p = g.n()).done;) {
var m = p.value;
100 === m.upload.progress && m.upload.bytesSent === m.upload.total || (f = !1), m.upload.progress = i, m.upload.bytesSent = m.upload.total
}
} catch (e) {
g.e(e)
} finally {
g.f()
}
if (f) return;
var v, y = _createForOfIteratorHelper(e);
try {
for (y.s(); !(v = y.n()).done;) {
var b = v.value;
this.emit("uploadprogress", b, i, b.upload.bytesSent)
}
} catch (e) {
y.e(e)
} finally {
y.f()
}
}
}
}, {
key: "_finishedUploading",
value: function(e, n, i) {
var r;
if (e[0].status !== t.CANCELED && 4 === n.readyState) {
if ("arraybuffer" !== n.responseType && "blob" !== n.responseType && (r = n.responseText, n.getResponseHeader("content-type") && ~n.getResponseHeader("content-type").indexOf("application/json"))) try {
r = JSON.parse(r)
} catch (e) {
i = e, r = "Invalid JSON response from server."
}
this._updateFilesUploadProgress(e), 200 <= n.status && n.status < 300 ? e[0].upload.chunked ? e[0].upload.finishedChunkUpload(this._getChunk(e[0], n)) : this._finished(e, r, i) : this._handleUploadError(e, n, r)
}
}
}, {
key: "_handleUploadError",
value: function(e, n, i) {
if (e[0].status !== t.CANCELED) {
if (e[0].upload.chunked && this.options.retryChunks) {
var r = this._getChunk(e[0], n);
if (r.retries++ < this.options.retryChunksLimit) return void this._uploadData(e, [r.dataBlock]);
console.warn("Retried this chunk too often. Giving up.")
}
this._errorProcessing(e, i || this.options.dictResponseError.replace("{{statusCode}}", n.status), n)
}
}
}, {
key: "submitRequest",
value: function(e, t) {
e.send(t)
}
}, {
key: "_finished",
value: function(e, n, i) {
var r, o = _createForOfIteratorHelper(e);
try {
for (o.s(); !(r = o.n()).done;) {
var a = r.value;
a.status = t.SUCCESS, this.emit("success", a, n, i), this.emit("complete", a)
}
} catch (e) {
o.e(e)
} finally {
o.f()
}
if (this.options.uploadMultiple && (this.emit("successmultiple", e, n, i), this.emit("completemultiple", e)), this.options.autoProcessQueue) return this.processQueue()
}
}, {
key: "_errorProcessing",
value: function(e, n, i) {
var r, o = _createForOfIteratorHelper(e);
try {
for (o.s(); !(r = o.n()).done;) {
var a = r.value;
a.status = t.ERROR, this.emit("error", a, n, i), this.emit("complete", a)
}
} catch (e) {
o.e(e)
} finally {
o.f()
}
if (this.options.uploadMultiple && (this.emit("errormultiple", e, n, i), this.emit("completemultiple", e)), this.options.autoProcessQueue) return this.processQueue()
}
}], [{
key: "uuidv4",
value: function() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function(e) {
var t = 16 * Math.random() | 0;
return ("x" === e ? t : 3 & t | 8).toString(16)
}))
}
}]), t
}();
Dropzone.initClass(), Dropzone.version = "5.7.2", Dropzone.options = {}, Dropzone.optionsForElement = function(e) {
return e.getAttribute("id") ? Dropzone.options[camelize(e.getAttribute("id"))] : void 0
}, Dropzone.instances = [], Dropzone.forElement = function(e) {
if ("string" == typeof e && (e = document.querySelector(e)), null == (null != e ? e.dropzone : void 0)) throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");
return e.dropzone
}, Dropzone.autoDiscover = !0, Dropzone.discover = function() {
var e;
if (document.querySelectorAll) e = document.querySelectorAll(".dropzone");
else {
e = [];
var t = function(t) {
return function() {
var n, i = [],
r = _createForOfIteratorHelper(t);
try {
for (r.s(); !(n = r.n()).done;) {
var o = n.value;
/(^| )dropzone($| )/.test(o.className) ? i.push(e.push(o)) : i.push(void 0)
}
} catch (n) {
r.e(n)
} finally {
r.f()
}
return i
}()
};
t(document.getElementsByTagName("div")), t(document.getElementsByTagName("form"))
}
return function() {
var t, n = [],
i = _createForOfIteratorHelper(e);
try {
for (i.s(); !(t = i.n()).done;) {
var r = t.value;
!1 !== Dropzone.optionsForElement(r) ? n.push(new Dropzone(r)) : n.push(void 0)
}
} catch (t) {
i.e(t)
} finally {
i.f()
}
return n
}()
}, Dropzone.blacklistedBrowsers = [/opera.*(Macintosh|Windows Phone).*version\/12/i], Dropzone.isBrowserSupported = function() {
var e = !0;
if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector)
if ("classList" in document.createElement("a")) {
var t, n = _createForOfIteratorHelper(Dropzone.blacklistedBrowsers);
try {
for (n.s(); !(t = n.n()).done;) t.value.test(navigator.userAgent) && (e = !1)
} catch (e) {
n.e(e)
} finally {
n.f()
}
} else e = !1;
else e = !1;
return e
}, Dropzone.dataURItoBlob = function(e) {
for (var t = atob(e.split(",")[1]), n = e.split(",")[0].split(":")[1].split(";")[0], i = new ArrayBuffer(t.length), r = new Uint8Array(i), o = 0, a = t.length, s = 0 <= a; s ? o <= a : a <= o; s ? o++ : o--) r[o] = t.charCodeAt(o);
return new Blob([i], {
type: n
})
};
var without = function(e, t) {
return e.filter((function(e) {
return e !== t
})).map((function(e) {
return e
}))
},
camelize = function(e) {
return e.replace(/[\-_](\w)/g, (function(e) {
return e.charAt(1).toUpperCase()
}))
};
Dropzone.createElement = function(e) {
var t = document.createElement("div");
return t.innerHTML = e, t.childNodes[0]
}, Dropzone.elementInside = function(e, t) {
if (e === t) return !0;
for (; e = e.parentNode;)
if (e === t) return !0;
return !1
}, Dropzone.getElement = function(e, t) {
var n;
if ("string" == typeof e ? n = document.querySelector(e) : null != e.nodeType && (n = e), null == n) throw new Error("Invalid `".concat(t, "` option provided. Please provide a CSS selector or a plain HTML element."));
return n
}, Dropzone.getElements = function(e, t) {
var n, i;
if (e instanceof Array) {
i = [];
try {
var r, o = _createForOfIteratorHelper(e);
try {
for (o.s(); !(r = o.n()).done;) n = r.value, i.push(this.getElement(n, t))
} catch (e) {
o.e(e)
} finally {
o.f()
}
} catch (e) {
i = null
}
} else if ("string" == typeof e) {
i = [];
var a, s = _createForOfIteratorHelper(document.querySelectorAll(e));
try {
for (s.s(); !(a = s.n()).done;) n = a.value, i.push(n)
} catch (e) {
s.e(e)
} finally {
s.f()
}
} else null != e.nodeType && (i = [e]);
if (null == i || !i.length) throw new Error("Invalid `".concat(t, "` option provided. Please provide a CSS selector, a plain HTML element or a list of those."));
return i
}, Dropzone.confirm = function(e, t, n) {
return window.confirm(e) ? t() : null != n ? n() : void 0
}, Dropzone.isValidFile = function(e, t) {
if (!t) return !0;
t = t.split(",");
var n, i = e.type,
r = i.replace(/\/.*$/, ""),
o = _createForOfIteratorHelper(t);
try {
for (o.s(); !(n = o.n()).done;) {
var a = n.value;
if ("." === (a = a.trim()).charAt(0)) {
if (-1 !== e.name.toLowerCase().indexOf(a.toLowerCase(), e.name.length - a.length)) return !0
} else if (/\/\*$/.test(a)) {
if (r === a.replace(/\/.*$/, "")) return !0
} else if (i === a) return !0
}
} catch (e) {
o.e(e)
} finally {
o.f()
}
return !1
}, "undefined" != typeof jQuery && null !== jQuery && (jQuery.fn.dropzone = function(e) {
return this.each((function() {
return new Dropzone(this, e)
}))
}), "undefined" != typeof module && null !== module ? module.exports = Dropzone : window.Dropzone = Dropzone, Dropzone.ADDED = "added", Dropzone.QUEUED = "queued", Dropzone.ACCEPTED = Dropzone.QUEUED, Dropzone.UPLOADING = "uploading", Dropzone.PROCESSING = Dropzone.UPLOADING, Dropzone.CANCELED = "canceled", Dropzone.ERROR = "error", Dropzone.SUCCESS = "success";
var detectVerticalSquash = function(e) {
e.naturalWidth;
var t = e.naturalHeight,
n = document.createElement("canvas");
n.width = 1, n.height = t;
var i = n.getContext("2d");
i.drawImage(e, 0, 0);
for (var r = i.getImageData(1, 0, 1, t).data, o = 0, a = t, s = t; o < s;) 0 === r[4 * (s - 1) + 3] ? a = s : o = s, s = a + o >> 1;
var l = s / t;
return 0 == l ? 1 : l
},
drawImageIOSFix = function(e, t, n, i, r, o, a, s, l, c) {
var u = detectVerticalSquash(t);
return e.drawImage(t, n, i, r, o, a, s, l, c / u)
},
ExifRestore = function() {
function e() {
_classCallCheck(this, e)
}
return _createClass(e, null, [{
key: "initClass",
value: function() {
this.KEY_STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
}
}, {
key: "encode64",
value: function(e) {
for (var t = "", n = void 0, i = void 0, r = "", o = void 0, a = void 0, s = void 0, l = "", c = 0; o = (n = e[c++]) >> 2, a = (3 & n) << 4 | (i = e[c++]) >> 4, s = (15 & i) << 2 | (r = e[c++]) >> 6, l = 63 & r, isNaN(i) ? s = l = 64 : isNaN(r) && (l = 64), t = t + this.KEY_STR.charAt(o) + this.KEY_STR.charAt(a) + this.KEY_STR.charAt(s) + this.KEY_STR.charAt(l), n = i = r = "", o = a = s = l = "", c < e.length;);
return t
}
}, {
key: "restore",
value: function(e, t) {
if (!e.match("data:image/jpeg;base64,")) return t;
var n = this.decode64(e.replace("data:image/jpeg;base64,", "")),
i = this.slice2Segments(n),
r = this.exifManipulation(t, i);
return "data:image/jpeg;base64,".concat(this.encode64(r))
}
}, {
key: "exifManipulation",
value: function(e, t) {
var n = this.getExifArray(t),
i = this.insertExif(e, n);
return new Uint8Array(i)
}
}, {
key: "getExifArray",
value: function(e) {
for (var t = void 0, n = 0; n < e.length;) {
if (255 === (t = e[n])[0] & 225 === t[1]) return t;
n++
}
return []
}
}, {
key: "insertExif",
value: function(e, t) {
var n = e.replace("data:image/jpeg;base64,", ""),
i = this.decode64(n),
r = i.indexOf(255, 3),
o = i.slice(0, r),
a = i.slice(r),
s = o;
return (s = s.concat(t)).concat(a)
}
}, {
key: "slice2Segments",
value: function(e) {
for (var t = 0, n = []; !(255 === e[t] & 218 === e[t + 1]);) {
if (255 === e[t] & 216 === e[t + 1]) t += 2;
else {
var i = t + (256 * e[t + 2] + e[t + 3]) + 2,
r = e.slice(t, i);
n.push(r), t = i
}
if (t > e.length) break
}
return n
}
}, {
key: "decode64",
value: function(e) {
var t = void 0,
n = void 0,
i = "",
r = void 0,
o = void 0,
a = "",
s = 0,
l = [];
for (/[^A-Za-z0-9\+\/\=]/g.exec(e) && console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."), e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); t = this.KEY_STR.indexOf(e.charAt(s++)) << 2 | (r = this.KEY_STR.indexOf(e.charAt(s++))) >> 4, n = (15 & r) << 4 | (o = this.KEY_STR.indexOf(e.charAt(s++))) >> 2, i = (3 & o) << 6 | (a = this.KEY_STR.indexOf(e.charAt(s++))), l.push(t), 64 !== o && l.push(n), 64 !== a && l.push(i), t = n = i = "", r = o = a = "", s < e.length;);
return l
}
}]), e
}();
ExifRestore.initClass();
var contentLoaded = function(e, t) {
function n(r) {
if ("readystatechange" !== r.type || "complete" === o.readyState) return ("load" === r.type ? e : o)[l](c + r.type, n, !1), !i && (i = !0) ? t.call(e, r.type || r) : void 0
}
var i = !1,
r = !0,
o = e.document,
a = o.documentElement,
s = o.addEventListener ? "addEventListener" : "attachEvent",
l = o.addEventListener ? "removeEventListener" : "detachEvent",
c = o.addEventListener ? "" : "on";
if ("complete" !== o.readyState) {
if (o.createEventObject && a.doScroll) {
try {
r = !e.frameElement
} catch (r) {}
r && function e() {
try {
a.doScroll("left")
} catch (t) {
return void setTimeout(e, 50)
}
return n("poll")
}()
}
return o[s](c + "DOMContentLoaded", n, !1), o[s](c + "readystatechange", n, !1), e[s](c + "load", n, !1)
}
};
function __guard__(e, t) {
return null != e ? t(e) : void 0
}
function __guardMethod__(e, t, n) {
return null != e && "function" == typeof e[t] ? n(e, t) : void 0
}
Dropzone._autoDiscoverFunction = function() {
if (Dropzone.autoDiscover) return Dropzone.discover()
}, contentLoaded(window, Dropzone._autoDiscoverFunction),
function(e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : e("object" == typeof exports ? require("jquery") : jQuery)
}((function(e, t) {
function n() {
return new Date(Date.UTC.apply(Date, arguments))
}
function i() {
var e = new Date;
return n(e.getFullYear(), e.getMonth(), e.getDate())
}
function r(e, t) {
return e.getUTCFullYear() === t.getUTCFullYear() && e.getUTCMonth() === t.getUTCMonth() && e.getUTCDate() === t.getUTCDate()
}
function o(n, i) {
return function() {
return i !== t && e.fn.datepicker.deprecated(i), this[n].apply(this, arguments)
}
}
function a(t, n) {
function i(e, t) {
return t.toLowerCase()
}
var r = e(t).data(),
o = {},
a = new RegExp("^" + n.toLowerCase() + "([A-Z])");
for (var s in n = new RegExp("^" + n.toLowerCase()), r) n.test(s) && (o[s.replace(a, i)] = r[s]);
return o
}
function s(t) {
var n = {};
if (g[t] || (t = t.split("-")[0], g[t])) {
var i = g[t];
return e.each(p, (function(e, t) {
t in i && (n[t] = i[t])
})), n
}
}
var l = function() {
var t = {
get: function(e) {
return this.slice(e)[0]
},
contains: function(e) {
for (var t = e && e.valueOf(), n = 0, i = this.length; n < i; n++)
if (0 <= this[n].valueOf() - t && this[n].valueOf() - t < 864e5) return n;
return -1
},
remove: function(e) {
this.splice(e, 1)
},
replace: function(t) {
t && (e.isArray(t) || (t = [t]), this.clear(), this.push.apply(this, t))
},
clear: function() {
this.length = 0
},
copy: function() {
var e = new l;
return e.replace(this), e
}
};
return function() {
var n = [];
return n.push.apply(n, arguments), e.extend(n, t), n
}
}(),
c = function(t, n) {
e.data(t, "datepicker", this), this._events = [], this._secondaryEvents = [], this._process_options(n), this.dates = new l, this.viewDate = this.o.defaultViewDate, this.focusDate = null, this.element = e(t), this.isInput = this.element.is("input"), this.inputField = this.isInput ? this.element : this.element.find("input"), this.component = !!this.element.hasClass("date") && this.element.find(".add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn"), this.component && 0 === this.component.length && (this.component = !1), this.isInline = !this.component && this.element.is("div"), this.picker = e(m.template), this._check_template(this.o.templates.leftArrow) && this.picker.find(".prev").html(this.o.templates.leftArrow), this._check_template(this.o.templates.rightArrow) && this.picker.find(".next").html(this.o.templates.rightArrow), this._buildEvents(), this._attachEvents(), this.isInline ? this.picker.addClass("datepicker-inline").appendTo(this.element) : this.picker.addClass("datepicker-dropdown dropdown-menu"), this.o.rtl && this.picker.addClass("datepicker-rtl"), this.o.calendarWeeks && this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan", (function(e, t) {
return Number(t) + 1
})), this._process_options({
startDate: this._o.startDate,
endDate: this._o.endDate,
daysOfWeekDisabled: this.o.daysOfWeekDisabled,
daysOfWeekHighlighted: this.o.daysOfWeekHighlighted,
datesDisabled: this.o.datesDisabled
}), this._allow_update = !1, this.setViewMode(this.o.startView), this._allow_update = !0, this.fillDow(), this.fillMonths(), this.update(), this.isInline && this.show()
};
c.prototype = {
constructor: c,
_resolveViewName: function(t) {
return e.each(m.viewModes, (function(n, i) {
if (t === n || -1 !== e.inArray(t, i.names)) return t = n, !1
})), t
},
_resolveDaysOfWeek: function(t) {
return e.isArray(t) || (t = t.split(/[,\s]*/)), e.map(t, Number)
},
_check_template: function(n) {
try {
return n !== t && "" !== n && ((n.match(/[<>]/g) || []).length <= 0 || e(n).length > 0)
} catch (e) {
return !1
}
},
_process_options: function(t) {
this._o = e.extend({}, this._o, t);
var r = this.o = e.extend({}, this._o),
o = r.language;
g[o] || (o = o.split("-")[0], g[o] || (o = f.language)), r.language = o, r.startView = this._resolveViewName(r.startView), r.minViewMode = this._resolveViewName(r.minViewMode), r.maxViewMode = this._resolveViewName(r.maxViewMode), r.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, r.startView)), !0 !== r.multidate && (r.multidate = Number(r.multidate) || !1, !1 !== r.multidate && (r.multidate = Math.max(0, r.multidate))), r.multidateSeparator = String(r.multidateSeparator), r.weekStart %= 7, r.weekEnd = (r.weekStart + 6) % 7;
var a = m.parseFormat(r.format);
r.startDate !== -1 / 0 && (r.startDate ? r.startDate instanceof Date ? r.startDate = this._local_to_utc(this._zero_time(r.startDate)) : r.startDate = m.parseDate(r.startDate, a, r.language, r.assumeNearbyYear) : r.startDate = -1 / 0), r.endDate !== 1 / 0 && (r.endDate ? r.endDate instanceof Date ? r.endDate = this._local_to_utc(this._zero_time(r.endDate)) : r.endDate = m.parseDate(r.endDate, a, r.language, r.assumeNearbyYear) : r.endDate = 1 / 0), r.daysOfWeekDisabled = this._resolveDaysOfWeek(r.daysOfWeekDisabled || []), r.daysOfWeekHighlighted = this._resolveDaysOfWeek(r.daysOfWeekHighlighted || []), r.datesDisabled = r.datesDisabled || [], e.isArray(r.datesDisabled) || (r.datesDisabled = r.datesDisabled.split(",")), r.datesDisabled = e.map(r.datesDisabled, (function(e) {
return m.parseDate(e, a, r.language, r.assumeNearbyYear)
}));
var s = String(r.orientation).toLowerCase().split(/\s+/g),
l = r.orientation.toLowerCase();
if (s = e.grep(s, (function(e) {
return /^auto|left|right|top|bottom$/.test(e)
})), r.orientation = {
x: "auto",
y: "auto"
}, l && "auto" !== l)
if (1 === s.length) switch (s[0]) {
case "top":
case "bottom":
r.orientation.y = s[0];
break;
case "left":
case "right":
r.orientation.x = s[0]
} else l = e.grep(s, (function(e) {
return /^left|right$/.test(e)
})), r.orientation.x = l[0] || "auto", l = e.grep(s, (function(e) {
return /^top|bottom$/.test(e)
})), r.orientation.y = l[0] || "auto";
if (r.defaultViewDate instanceof Date || "string" == typeof r.defaultViewDate) r.defaultViewDate = m.parseDate(r.defaultViewDate, a, r.language, r.assumeNearbyYear);
else if (r.defaultViewDate) {
var c = r.defaultViewDate.year || (new Date).getFullYear(),
u = r.defaultViewDate.month || 0,
d = r.defaultViewDate.day || 1;
r.defaultViewDate = n(c, u, d)
} else r.defaultViewDate = i()
},
_applyEvents: function(e) {
for (var n, i, r, o = 0; o < e.length; o++) n = e[o][0], 2 === e[o].length ? (i = t, r = e[o][1]) : 3 === e[o].length && (i = e[o][1], r = e[o][2]), n.on(r, i)
},
_unapplyEvents: function(e) {
for (var n, i, r, o = 0; o < e.length; o++) n = e[o][0], 2 === e[o].length ? (r = t, i = e[o][1]) : 3 === e[o].length && (r = e[o][1], i = e[o][2]), n.off(i, r)
},
_buildEvents: function() {
var t = {
keyup: e.proxy((function(t) {
-1 === e.inArray(t.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) && this.update()
}), this),
keydown: e.proxy(this.keydown, this),
paste: e.proxy(this.paste, this)
};
!0 === this.o.showOnFocus && (t.focus = e.proxy(this.show, this)), this.isInput ? this._events = [
[this.element, t]
] : this.component && this.inputField.length ? this._events = [
[this.inputField, t],
[this.component, {
click: e.proxy(this.show, this)
}]
] : this._events = [
[this.element, {
click: e.proxy(this.show, this),
keydown: e.proxy(this.keydown, this)
}]
], this._events.push([this.element, "*", {
blur: e.proxy((function(e) {
this._focused_from = e.target
}), this)
}], [this.element, {
blur: e.proxy((function(e) {
this._focused_from = e.target
}), this)
}]), this.o.immediateUpdates && this._events.push([this.element, {
"changeYear changeMonth": e.proxy((function(e) {
this.update(e.date)
}), this)
}]), this._secondaryEvents = [
[this.picker, {
click: e.proxy(this.click, this)
}],
[this.picker, ".prev, .next", {
click: e.proxy(this.navArrowsClick, this)
}],
[this.picker, ".day:not(.disabled)", {
click: e.proxy(this.dayCellClick, this)
}],
[e(window), {
resize: e.proxy(this.place, this)
}],
[e(document), {
"mousedown touchstart": e.proxy((function(e) {
this.element.is(e.target) || this.element.find(e.target).length || this.picker.is(e.target) || this.picker.find(e.target).length || this.isInline || this.hide()
}), this)
}]
]
},
_attachEvents: function() {
this._detachEvents(), this._applyEvents(this._events)
},
_detachEvents: function() {
this._unapplyEvents(this._events)
},
_attachSecondaryEvents: function() {
this._detachSecondaryEvents(), this._applyEvents(this._secondaryEvents)
},
_detachSecondaryEvents: function() {
this._unapplyEvents(this._secondaryEvents)
},
_trigger: function(t, n) {
var i = n || this.dates.get(-1),
r = this._utc_to_local(i);
this.element.trigger({
type: t,
date: r,
viewMode: this.viewMode,
dates: e.map(this.dates, this._utc_to_local),
format: e.proxy((function(e, t) {
0 === arguments.length ? (e = this.dates.length - 1, t = this.o.format) : "string" == typeof e && (t = e, e = this.dates.length - 1), t = t || this.o.format;
var n = this.dates.get(e);
return m.formatDate(n, t, this.o.language)
}), this)
})
},
show: function() {
if (!(this.inputField.is(":disabled") || this.inputField.prop("readonly") && !1 === this.o.enableOnReadonly)) return this.isInline || this.picker.appendTo(this.o.container), this.place(), this.picker.show(), this._attachSecondaryEvents(), this._trigger("show"), (window.navigator.msMaxTouchPoints || "ontouchstart" in document) && this.o.disableTouchKeyboard && e(this.element).blur(), this
},
hide: function() {
return this.isInline || !this.picker.is(":visible") || (this.focusDate = null, this.picker.hide().detach(), this._detachSecondaryEvents(), this.setViewMode(this.o.startView), this.o.forceParse && this.inputField.val() && this.setValue(), this._trigger("hide")), this
},
destroy: function() {
return this.hide(), this._detachEvents(), this._detachSecondaryEvents(), this.picker.remove(), delete this.element.data().datepicker, this.isInput || delete this.element.data().date, this
},
paste: function(t) {
var n;
if (t.originalEvent.clipboardData && t.originalEvent.clipboardData.types && -1 !== e.inArray("text/plain", t.originalEvent.clipboardData.types)) n = t.originalEvent.clipboardData.getData("text/plain");
else {
if (!window.clipboardData) return;
n = window.clipboardData.getData("Text")
}
this.setDate(n), this.update(), t.preventDefault()
},
_utc_to_local: function(e) {
if (!e) return e;
var t = new Date(e.getTime() + 6e4 * e.getTimezoneOffset());
return t.getTimezoneOffset() !== e.getTimezoneOffset() && (t = new Date(e.getTime() + 6e4 * t.getTimezoneOffset())), t
},
_local_to_utc: function(e) {
return e && new Date(e.getTime() - 6e4 * e.getTimezoneOffset())
},
_zero_time: function(e) {
return e && new Date(e.getFullYear(), e.getMonth(), e.getDate())
},
_zero_utc_time: function(e) {
return e && n(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate())
},
getDates: function() {
return e.map(this.dates, this._utc_to_local)
},
getUTCDates: function() {
return e.map(this.dates, (function(e) {
return new Date(e)
}))
},
getDate: function() {
return this._utc_to_local(this.getUTCDate())
},
getUTCDate: function() {
var e = this.dates.get(-1);
return e !== t ? new Date(e) : null
},
clearDates: function() {
this.inputField.val(""), this.update(), this._trigger("changeDate"), this.o.autoclose && this.hide()
},
setDates: function() {
var t = e.isArray(arguments[0]) ? arguments[0] : arguments;
return this.update.apply(this, t), this._trigger("changeDate"), this.setValue(), this
},
setUTCDates: function() {
var t = e.isArray(arguments[0]) ? arguments[0] : arguments;
return this.setDates.apply(this, e.map(t, this._utc_to_local)), this
},
setDate: o("setDates"),
setUTCDate: o("setUTCDates"),
remove: o("destroy", "Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),
setValue: function() {
var e = this.getFormattedDate();
return this.inputField.val(e), this
},
getFormattedDate: function(n) {
n === t && (n = this.o.format);
var i = this.o.language;
return e.map(this.dates, (function(e) {
return m.formatDate(e, n, i)
})).join(this.o.multidateSeparator)
},
getStartDate: function() {
return this.o.startDate
},
setStartDate: function(e) {
return this._process_options({
startDate: e
}), this.update(), this.updateNavArrows(), this
},
getEndDate: function() {
return this.o.endDate
},
setEndDate: function(e) {
return this._process_options({
endDate: e
}), this.update(), this.updateNavArrows(), this
},
setDaysOfWeekDisabled: function(e) {
return this._process_options({
daysOfWeekDisabled: e
}), this.update(), this
},
setDaysOfWeekHighlighted: function(e) {
return this._process_options({
daysOfWeekHighlighted: e
}), this.update(), this
},
setDatesDisabled: function(e) {
return this._process_options({
datesDisabled: e
}), this.update(), this
},
place: function() {
if (this.isInline) return this;
var t = this.picker.outerWidth(),
n = this.picker.outerHeight(),
i = e(this.o.container),
r = i.width(),
o = "body" === this.o.container ? e(document).scrollTop() : i.scrollTop(),
a = i.offset(),
s = [0];
this.element.parents().each((function() {
var t = e(this).css("z-index");
"auto" !== t && 0 !== Number(t) && s.push(Number(t))
}));
var l = Math.max.apply(Math, s) + this.o.zIndexOffset,
c = this.component ? this.component.parent().offset() : this.element.offset(),
u = this.component ? this.component.outerHeight(!0) : this.element.outerHeight(!1),
d = this.component ? this.component.outerWidth(!0) : this.element.outerWidth(!1),
h = c.left - a.left,
f = c.top - a.top;
"body" !== this.o.container && (f += o), this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"), "auto" !== this.o.orientation.x ? (this.picker.addClass("datepicker-orient-" + this.o.orientation.x), "right" === this.o.orientation.x && (h -= t - d)) : c.left < 0 ? (this.picker.addClass("datepicker-orient-left"), h -= c.left - 10) : h + t > r ? (this.picker.addClass("datepicker-orient-right"), h += d - t) : this.o.rtl ? this.picker.addClass("datepicker-orient-right") : this.picker.addClass("datepicker-orient-left");
var p = this.o.orientation.y;
if ("auto" === p && (p = -o + f - n < 0 ? "bottom" : "top"), this.picker.addClass("datepicker-orient-" + p), "top" === p ? f -= n + parseInt(this.picker.css("padding-top")) : f += u, this.o.rtl) {
var g = r - (h + d);
this.picker.css({
top: f,
right: g,
zIndex: l
})
} else this.picker.css({
top: f,
left: h,
zIndex: l
});
return this
},
_allow_update: !0,
update: function() {
if (!this._allow_update) return this;
var t = this.dates.copy(),
n = [],
i = !1;
return arguments.length ? (e.each(arguments, e.proxy((function(e, t) {
t instanceof Date && (t = this._local_to_utc(t)), n.push(t)
}), this)), i = !0) : (n = (n = this.isInput ? this.element.val() : this.element.data("date") || this.inputField.val()) && this.o.multidate ? n.split(this.o.multidateSeparator) : [n], delete this.element.data().date), n = e.map(n, e.proxy((function(e) {
return m.parseDate(e, this.o.format, this.o.language, this.o.assumeNearbyYear)
}), this)), n = e.grep(n, e.proxy((function(e) {
return !this.dateWithinRange(e) || !e
}), this), !0), this.dates.replace(n), this.o.updateViewDate && (this.dates.length ? this.viewDate = new Date(this.dates.get(-1)) : this.viewDate < this.o.startDate ? this.viewDate = new Date(this.o.startDate) : this.viewDate > this.o.endDate ? this.viewDate = new Date(this.o.endDate) : this.viewDate = this.o.defaultViewDate), i ? (this.setValue(), this.element.change()) : this.dates.length && String(t) !== String(this.dates) && i && (this._trigger("changeDate"), this.element.change()), !this.dates.length && t.length && (this._trigger("clearDate"), this.element.change()), this.fill(), this
},
fillDow: function() {
if (this.o.showWeekDays) {
var t = this.o.weekStart,
n = "<tr>";
for (this.o.calendarWeeks && (n += '<th class="cw"> </th>'); t < this.o.weekStart + 7;) n += '<th class="dow', -1 !== e.inArray(t, this.o.daysOfWeekDisabled) && (n += " disabled"), n += '">' + g[this.o.language].daysMin[t++ % 7] + "</th>";
n += "</tr>", this.picker.find(".datepicker-days thead").append(n)
}
},
fillMonths: function() {
for (var e = this._utc_to_local(this.viewDate), t = "", n = 0; n < 12; n++) t += '<span class="month' + (e && e.getMonth() === n ? " focused" : "") + '">' + g[this.o.language].monthsShort[n] + "</span>";
this.picker.find(".datepicker-months td").html(t)
},
setRange: function(t) {
t && t.length ? this.range = e.map(t, (function(e) {
return e.valueOf()
})) : delete this.range, this.fill()
},
getClassNames: function(t) {
var n = [],
o = this.viewDate.getUTCFullYear(),
a = this.viewDate.getUTCMonth(),
s = i();
return t.getUTCFullYear() < o || t.getUTCFullYear() === o && t.getUTCMonth() < a ? n.push("old") : (t.getUTCFullYear() > o || t.getUTCFullYear() === o && t.getUTCMonth() > a) && n.push("new"), this.focusDate && t.valueOf() === this.focusDate.valueOf() && n.push("focused"), this.o.todayHighlight && r(t, s) && n.push("today"), -1 !== this.dates.contains(t) && n.push("active"), this.dateWithinRange(t) || n.push("disabled"), this.dateIsDisabled(t) && n.push("disabled", "disabled-date"), -1 !== e.inArray(t.getUTCDay(), this.o.daysOfWeekHighlighted) && n.push("highlighted"), this.range && (t > this.range[0] && t < this.range[this.range.length - 1] && n.push("range"), -1 !== e.inArray(t.valueOf(), this.range) && n.push("selected"), t.valueOf() === this.range[0] && n.push("range-start"), t.valueOf() === this.range[this.range.length - 1] && n.push("range-end")), n
},
_fill_yearsView: function(n, i, r, o, a, s, l) {
for (var c, u, d, h = "", f = r / 10, p = this.picker.find(n), g = Math.floor(o / r) * r, m = g + 9 * f, v = Math.floor(this.viewDate.getFullYear() / f) * f, y = e.map(this.dates, (function(e) {
return Math.floor(e.getUTCFullYear() / f) * f
})), b = g - f; b <= m + f; b += f) c = [i], u = null, b === g - f ? c.push("old") : b === m + f && c.push("new"), -1 !== e.inArray(b, y) && c.push("active"), (b < a || b > s) && c.push("disabled"), b === v && c.push("focused"), l !== e.noop && ((d = l(new Date(b, 0, 1))) === t ? d = {} : "boolean" == typeof d ? d = {
enabled: d
} : "string" == typeof d && (d = {
classes: d
}), !1 === d.enabled && c.push("disabled"), d.classes && (c = c.concat(d.classes.split(/\s+/))), d.tooltip && (u = d.tooltip)), h += '<span class="' + c.join(" ") + '"' + (u ? ' title="' + u + '"' : "") + ">" + b + "</span>";
p.find(".datepicker-switch").text(g + "-" + m), p.find("td").html(h)
},
fill: function() {
var r, o, a = new Date(this.viewDate),
s = a.getUTCFullYear(),
l = a.getUTCMonth(),
c = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCFullYear() : -1 / 0,
u = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCMonth() : -1 / 0,
d = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0,
h = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0,
f = g[this.o.language].today || g.en.today || "",
p = g[this.o.language].clear || g.en.clear || "",
v = g[this.o.language].titleFormat || g.en.titleFormat,
y = i(),
b = (!0 === this.o.todayBtn || "linked" === this.o.todayBtn) && y >= this.o.startDate && y <= this.o.endDate && !this.weekOfDateIsDisabled(y);
if (!isNaN(s) && !isNaN(l)) {
this.picker.find(".datepicker-days .datepicker-switch").text(m.formatDate(a, v, this.o.language)), this.picker.find("tfoot .today").text(f).css("display", b ? "table-cell" : "none"), this.picker.find("tfoot .clear").text(p).css("display", !0 === this.o.clearBtn ? "table-cell" : "none"), this.picker.find("thead .datepicker-title").text(this.o.title).css("display", "string" == typeof this.o.title && "" !== this.o.title ? "table-cell" : "none"), this.updateNavArrows(), this.fillMonths();
var w = n(s, l, 0),
x = w.getUTCDate();
w.setUTCDate(x - (w.getUTCDay() - this.o.weekStart + 7) % 7);
var _ = new Date(w);
w.getUTCFullYear() < 100 && _.setUTCFullYear(w.getUTCFullYear()), _.setUTCDate(_.getUTCDate() + 42), _ = _.valueOf();
for (var C, k, S = []; w.valueOf() < _;) {
if ((C = w.getUTCDay()) === this.o.weekStart && (S.push("<tr>"), this.o.calendarWeeks)) {
var T = new Date(+w + (this.o.weekStart - C - 7) % 7 * 864e5),
D = new Date(Number(T) + (11 - T.getUTCDay()) % 7 * 864e5),
E = new Date(Number(E = n(D.getUTCFullYear(), 0, 1)) + (11 - E.getUTCDay()) % 7 * 864e5),
A = (D - E) / 864e5 / 7 + 1;
S.push('<td class="cw">' + A + "</td>")
}(k = this.getClassNames(w)).push("day");
var M = w.getUTCDate();
this.o.beforeShowDay !== e.noop && ((o = this.o.beforeShowDay(this._utc_to_local(w))) === t ? o = {} : "boolean" == typeof o ? o = {
enabled: o
} : "string" == typeof o && (o = {
classes: o
}), !1 === o.enabled && k.push("disabled"), o.classes && (k = k.concat(o.classes.split(/\s+/))), o.tooltip && (r = o.tooltip), o.content && (M = o.content)), k = e.isFunction(e.uniqueSort) ? e.uniqueSort(k) : e.unique(k), S.push('<td class="' + k.join(" ") + '"' + (r ? ' title="' + r + '"' : "") + ' data-date="' + w.getTime().toString() + '">' + M + "</td>"), r = null, C === this.o.weekEnd && S.push("</tr>"), w.setUTCDate(w.getUTCDate() + 1)
}
this.picker.find(".datepicker-days tbody").html(S.join(""));
var O = g[this.o.language].monthsTitle || g.en.monthsTitle || "Months",
I = this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode < 2 ? O : s).end().find("tbody span").removeClass("active");
if (e.each(this.dates, (function(e, t) {
t.getUTCFullYear() === s && I.eq(t.getUTCMonth()).addClass("active")
})), (s < c || s > d) && I.addClass("disabled"), s === c && I.slice(0, u).addClass("disabled"), s === d && I.slice(h + 1).addClass("disabled"), this.o.beforeShowMonth !== e.noop) {
var P = this;
e.each(I, (function(n, i) {
var r = new Date(s, n, 1),
o = P.o.beforeShowMonth(r);
o === t ? o = {} : "boolean" == typeof o ? o = {
enabled: o
} : "string" == typeof o && (o = {
classes: o
}), !1 !== o.enabled || e(i).hasClass("disabled") || e(i).addClass("disabled"), o.classes && e(i).addClass(o.classes), o.tooltip && e(i).prop("title", o.tooltip)
}))
}
this._fill_yearsView(".datepicker-years", "year", 10, s, c, d, this.o.beforeShowYear), this._fill_yearsView(".datepicker-decades", "decade", 100, s, c, d, this.o.beforeShowDecade), this._fill_yearsView(".datepicker-centuries", "century", 1e3, s, c, d, this.o.beforeShowCentury)
}
},
updateNavArrows: function() {
if (this._allow_update) {
var e, t, n = new Date(this.viewDate),
i = n.getUTCFullYear(),
r = n.getUTCMonth(),
o = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCFullYear() : -1 / 0,
a = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCMonth() : -1 / 0,
s = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0,
l = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0,
c = 1;
switch (this.viewMode) {
case 4:
c *= 10;
case 3:
c *= 10;
case 2:
c *= 10;
case 1:
e = Math.floor(i / c) * c <= o, t = Math.floor(i / c) * c + c > s;
break;
case 0:
e = i <= o && r <= a, t = i >= s && r >= l
}
this.picker.find(".prev").toggleClass("disabled", e), this.picker.find(".next").toggleClass("disabled", t)
}
},
click: function(t) {
var r, o, a;
t.preventDefault(), t.stopPropagation(), (r = e(t.target)).hasClass("datepicker-switch") && this.viewMode !== this.o.maxViewMode && this.setViewMode(this.viewMode + 1), r.hasClass("today") && !r.hasClass("day") && (this.setViewMode(0), this._setDate(i(), "linked" === this.o.todayBtn ? null : "view")), r.hasClass("clear") && this.clearDates(), r.hasClass("disabled") || (r.hasClass("month") || r.hasClass("year") || r.hasClass("decade") || r.hasClass("century")) && (this.viewDate.setUTCDate(1), 1, 1 === this.viewMode ? (a = r.parent().find("span").index(r), o = this.viewDate.getUTCFullYear(), this.viewDate.setUTCMonth(a)) : (a = 0, o = Number(r.text()), this.viewDate.setUTCFullYear(o)), this._trigger(m.viewModes[this.viewMode - 1].e, this.viewDate), this.viewMode === this.o.minViewMode ? this._setDate(n(o, a, 1)) : (this.setViewMode(this.viewMode - 1), this.fill())), this.picker.is(":visible") && this._focused_from && this._focused_from.focus(), delete this._focused_from
},
dayCellClick: function(t) {
var n = e(t.currentTarget).data("date"),
i = new Date(n);
this.o.updateViewDate && (i.getUTCFullYear() !== this.viewDate.getUTCFullYear() && this._trigger("changeYear", this.viewDate), i.getUTCMonth() !== this.viewDate.getUTCMonth() && this._trigger("changeMonth", this.viewDate)), this._setDate(i)
},
navArrowsClick: function(t) {
var n = e(t.currentTarget).hasClass("prev") ? -1 : 1;
0 !== this.viewMode && (n *= 12 * m.viewModes[this.viewMode].navStep), this.viewDate = this.moveMonth(this.viewDate, n), this._trigger(m.viewModes[this.viewMode].e, this.viewDate), this.fill()
},
_toggle_multidate: function(e) {
var t = this.dates.contains(e);
if (e || this.dates.clear(), -1 !== t ? (!0 === this.o.multidate || this.o.multidate > 1 || this.o.toggleActive) && this.dates.remove(t) : !1 === this.o.multidate ? (this.dates.clear(), this.dates.push(e)) : this.dates.push(e), "number" == typeof this.o.multidate)
for (; this.dates.length > this.o.multidate;) this.dates.remove(0)
},
_setDate: function(e, t) {
t && "date" !== t || this._toggle_multidate(e && new Date(e)), (!t && this.o.updateViewDate || "view" === t) && (this.viewDate = e && new Date(e)), this.fill(), this.setValue(), t && "view" === t || this._trigger("changeDate"), this.inputField.trigger("change"), !this.o.autoclose || t && "date" !== t || this.hide()
},
moveDay: function(e, t) {
var n = new Date(e);
return n.setUTCDate(e.getUTCDate() + t), n
},
moveWeek: function(e, t) {
return this.moveDay(e, 7 * t)
},
moveMonth: function(e, t) {
if (! function(e) {
return e && !isNaN(e.getTime())
}(e)) return this.o.defaultViewDate;
if (!t) return e;
var n, i, r = new Date(e.valueOf()),
o = r.getUTCDate(),
a = r.getUTCMonth(),
s = Math.abs(t);
if (t = t > 0 ? 1 : -1, 1 === s) i = -1 === t ? function() {
return r.getUTCMonth() === a
} : function() {
return r.getUTCMonth() !== n
}, n = a + t, r.setUTCMonth(n), n = (n + 12) % 12;
else {
for (var l = 0; l < s; l++) r = this.moveMonth(r, t);
n = r.getUTCMonth(), r.setUTCDate(o), i = function() {
return n !== r.getUTCMonth()
}
}
for (; i();) r.setUTCDate(--o), r.setUTCMonth(n);
return r
},
moveYear: function(e, t) {
return this.moveMonth(e, 12 * t)
},
moveAvailableDate: function(e, t, n) {
do {
if (e = this[n](e, t), !this.dateWithinRange(e)) return !1;
n = "moveDay"
} while (this.dateIsDisabled(e));
return e
},
weekOfDateIsDisabled: function(t) {
return -1 !== e.inArray(t.getUTCDay(), this.o.daysOfWeekDisabled)
},
dateIsDisabled: function(t) {
return this.weekOfDateIsDisabled(t) || e.grep(this.o.datesDisabled, (function(e) {
return r(t, e)
})).length > 0
},
dateWithinRange: function(e) {
return e >= this.o.startDate && e <= this.o.endDate
},
keydown: function(e) {
if (this.picker.is(":visible")) {
var t, n, i = !1,
r = this.focusDate || this.viewDate;
switch (e.keyCode) {
case 27:
this.focusDate ? (this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.fill()) : this.hide(), e.preventDefault(), e.stopPropagation();
break;
case 37:
case 38:
case 39:
case 40:
if (!this.o.keyboardNavigation || 7 === this.o.daysOfWeekDisabled.length) break;
t = 37 === e.keyCode || 38 === e.keyCode ? -1 : 1, 0 === this.viewMode ? e.ctrlKey ? (n = this.moveAvailableDate(r, t, "moveYear")) && this._trigger("changeYear", this.viewDate) : e.shiftKey ? (n = this.moveAvailableDate(r, t, "moveMonth")) && this._trigger("changeMonth", this.viewDate) : 37 === e.keyCode || 39 === e.keyCode ? n = this.moveAvailableDate(r, t, "moveDay") : this.weekOfDateIsDisabled(r) || (n = this.moveAvailableDate(r, t, "moveWeek")) : 1 === this.viewMode ? (38 !== e.keyCode && 40 !== e.keyCode || (t *= 4), n = this.moveAvailableDate(r, t, "moveMonth")) : 2 === this.viewMode && (38 !== e.keyCode && 40 !== e.keyCode || (t *= 4), n = this.moveAvailableDate(r, t, "moveYear")), n && (this.focusDate = this.viewDate = n, this.setValue(), this.fill(), e.preventDefault());
break;
case 13:
if (!this.o.forceParse) break;
r = this.focusDate || this.dates.get(-1) || this.viewDate, this.o.keyboardNavigation && (this._toggle_multidate(r), i = !0), this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.setValue(), this.fill(), this.picker.is(":visible") && (e.preventDefault(), e.stopPropagation(), this.o.autoclose && this.hide());
break;
case 9:
this.focusDate = null, this.viewDate = this.dates.get(-1) || this.viewDate, this.fill(), this.hide()
}
i && (this.dates.length ? this._trigger("changeDate") : this._trigger("clearDate"), this.inputField.trigger("change"))
} else 40 !== e.keyCode && 27 !== e.keyCode || (this.show(), e.stopPropagation())
},
setViewMode: function(e) {
this.viewMode = e, this.picker.children("div").hide().filter(".datepicker-" + m.viewModes[this.viewMode].clsName).show(), this.updateNavArrows(), this._trigger("changeViewMode", new Date(this.viewDate))
}
};
var u = function(t, n) {
e.data(t, "datepicker", this), this.element = e(t), this.inputs = e.map(n.inputs, (function(e) {
return e.jquery ? e[0] : e
})), delete n.inputs, this.keepEmptyValues = n.keepEmptyValues, delete n.keepEmptyValues, h.call(e(this.inputs), n).on("changeDate", e.proxy(this.dateUpdated, this)), this.pickers = e.map(this.inputs, (function(t) {
return e.data(t, "datepicker")
})), this.updateDates()
};
u.prototype = {
updateDates: function() {
this.dates = e.map(this.pickers, (function(e) {
return e.getUTCDate()
})), this.updateRanges()
},
updateRanges: function() {
var t = e.map(this.dates, (function(e) {
return e.valueOf()
}));
e.each(this.pickers, (function(e, n) {
n.setRange(t)
}))
},
clearDates: function() {
e.each(this.pickers, (function(e, t) {
t.clearDates()
}))
},
dateUpdated: function(n) {
if (!this.updating) {
this.updating = !0;
var i = e.data(n.target, "datepicker");
if (i !== t) {
var r = i.getUTCDate(),
o = this.keepEmptyValues,
a = e.inArray(n.target, this.inputs),
s = a - 1,
l = a + 1,
c = this.inputs.length;
if (-1 !== a) {
if (e.each(this.pickers, (function(e, t) {
t.getUTCDate() || t !== i && o || t.setUTCDate(r)
})), r < this.dates[s])
for (; s >= 0 && r < this.dates[s];) this.pickers[s--].setUTCDate(r);
else if (r > this.dates[l])
for (; l < c && r > this.dates[l];) this.pickers[l++].setUTCDate(r);
this.updateDates(), delete this.updating
}
}
}
},
destroy: function() {
e.map(this.pickers, (function(e) {
e.destroy()
})), e(this.inputs).off("changeDate", this.dateUpdated), delete this.element.data().datepicker
},
remove: o("destroy", "Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")
};
var d = e.fn.datepicker,
h = function(n) {
var i, r = Array.apply(null, arguments);
if (r.shift(), this.each((function() {
var t = e(this),
o = t.data("datepicker"),
l = "object" == typeof n && n;
if (!o) {
var d = a(this, "date"),
h = s(e.extend({}, f, d, l).language),
p = e.extend({}, f, h, d, l);
t.hasClass("input-daterange") || p.inputs ? (e.extend(p, {
inputs: p.inputs || t.find("input").toArray()
}), o = new u(this, p)) : o = new c(this, p), t.data("datepicker", o)
}
"string" == typeof n && "function" == typeof o[n] && (i = o[n].apply(o, r))
})), i === t || i instanceof c || i instanceof u) return this;
if (this.length > 1) throw new Error("Using only allowed for the collection of a single element (" + n + " function)");
return i
};
e.fn.datepicker = h;
var f = e.fn.datepicker.defaults = {
assumeNearbyYear: !1,
autoclose: !1,
beforeShowDay: e.noop,
beforeShowMonth: e.noop,
beforeShowYear: e.noop,
beforeShowDecade: e.noop,
beforeShowCentury: e.noop,
calendarWeeks: !1,
clearBtn: !1,
toggleActive: !1,
daysOfWeekDisabled: [],
daysOfWeekHighlighted: [],
datesDisabled: [],
endDate: 1 / 0,
forceParse: !0,
format: "mm/dd/yyyy",
keepEmptyValues: !1,
keyboardNavigation: !0,
language: "en",
minViewMode: 0,
maxViewMode: 4,
multidate: !1,
multidateSeparator: ",",
orientation: "auto",
rtl: !1,
startDate: -1 / 0,
startView: 0,
todayBtn: !1,
todayHighlight: !1,
updateViewDate: !0,
weekStart: 0,
disableTouchKeyboard: !1,
enableOnReadonly: !0,
showOnFocus: !0,
zIndexOffset: 10,
container: "body",
immediateUpdates: !1,
title: "",
templates: {
leftArrow: "«",
rightArrow: "»"
},
showWeekDays: !0
},
p = e.fn.datepicker.locale_opts = ["format", "rtl", "weekStart"];
e.fn.datepicker.Constructor = c;
var g = e.fn.datepicker.dates = {
en: {
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
today: "Today",
clear: "Clear",
titleFormat: "MM yyyy"
}
},
m = {
viewModes: [{
names: ["days", "month"],
clsName: "days",
e: "changeMonth"
}, {
names: ["months", "year"],
clsName: "months",
e: "changeYear",
navStep: 1
}, {
names: ["years", "decade"],
clsName: "years",
e: "changeDecade",
navStep: 10
}, {
names: ["decades", "century"],
clsName: "decades",
e: "changeCentury",
navStep: 100
}, {
names: ["centuries", "millennium"],
clsName: "centuries",
e: "changeMillennium",
navStep: 1e3
}],
validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,
parseFormat: function(e) {
if ("function" == typeof e.toValue && "function" == typeof e.toDisplay) return e;
var t = e.replace(this.validParts, "\0").split("\0"),
n = e.match(this.validParts);
if (!t || !t.length || !n || 0 === n.length) throw new Error("Invalid date format.");
return {
separators: t,
parts: n
}
},
parseDate: function(n, r, o, a) {
function s() {
var e = this.slice(0, l[h].length),
t = l[h].slice(0, e.length);
return e.toLowerCase() === t.toLowerCase()
}
if (!n) return t;
if (n instanceof Date) return n;
if ("string" == typeof r && (r = m.parseFormat(r)), r.toValue) return r.toValue(n, r, o);
var l, u, d, h, f, p = {
d: "moveDay",
m: "moveMonth",
w: "moveWeek",
y: "moveYear"
},
v = {
yesterday: "-1d",
today: "+0d",
tomorrow: "+1d"
};
if (n in v && (n = v[n]), /^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(n)) {
for (l = n.match(/([\-+]\d+)([dmwy])/gi), n = new Date, h = 0; h < l.length; h++) u = l[h].match(/([\-+]\d+)([dmwy])/i), d = Number(u[1]), f = p[u[2].toLowerCase()], n = c.prototype[f](n, d);
return c.prototype._zero_utc_time(n)
}
l = n && n.match(this.nonpunctuation) || [];
var y, b, w = {},
x = ["yyyy", "yy", "M", "MM", "m", "mm", "d", "dd"],
_ = {
yyyy: function(e, t) {
return e.setUTCFullYear(a ? function(e, t) {
return !0 === t && (t = 10), e < 100 && (e += 2e3) > (new Date).getFullYear() + t && (e -= 100), e
}(t, a) : t)
},
m: function(e, t) {
if (isNaN(e)) return e;
for (t -= 1; t < 0;) t += 12;
for (t %= 12, e.setUTCMonth(t); e.getUTCMonth() !== t;) e.setUTCDate(e.getUTCDate() - 1);
return e
},
d: function(e, t) {
return e.setUTCDate(t)
}
};
_.yy = _.yyyy, _.M = _.MM = _.mm = _.m, _.dd = _.d, n = i();
var C = r.parts.slice();
if (l.length !== C.length && (C = e(C).filter((function(t, n) {
return -1 !== e.inArray(n, x)
})).toArray()), l.length === C.length) {
var k, S, T;
for (h = 0, k = C.length; h < k; h++) {
if (y = parseInt(l[h], 10), u = C[h], isNaN(y)) switch (u) {
case "MM":
b = e(g[o].months).filter(s), y = e.inArray(b[0], g[o].months) + 1;
break;
case "M":
b = e(g[o].monthsShort).filter(s), y = e.inArray(b[0], g[o].monthsShort) + 1
}
w[u] = y
}
for (h = 0; h < x.length; h++)(T = x[h]) in w && !isNaN(w[T]) && (S = new Date(n), _[T](S, w[T]), isNaN(S) || (n = S))
}
return n
},
formatDate: function(t, n, i) {
if (!t) return "";
if ("string" == typeof n && (n = m.parseFormat(n)), n.toDisplay) return n.toDisplay(t, n, i);
var r = {
d: t.getUTCDate(),
D: g[i].daysShort[t.getUTCDay()],
DD: g[i].days[t.getUTCDay()],
m: t.getUTCMonth() + 1,
M: g[i].monthsShort[t.getUTCMonth()],
MM: g[i].months[t.getUTCMonth()],
yy: t.getUTCFullYear().toString().substring(2),
yyyy: t.getUTCFullYear()
};
r.dd = (r.d < 10 ? "0" : "") + r.d, r.mm = (r.m < 10 ? "0" : "") + r.m, t = [];
for (var o = e.extend([], n.separators), a = 0, s = n.parts.length; a <= s; a++) o.length && t.push(o.shift()), t.push(r[n.parts[a]]);
return t.join("")
},
headTemplate: '<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">' + f.templates.leftArrow + '</th><th colspan="5" class="datepicker-switch"></th><th class="next">' + f.templates.rightArrow + "</th></tr></thead>",
contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
};
m.template = '<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">' + m.headTemplate + "<tbody></tbody>" + m.footTemplate + '</table></div><div class="datepicker-months"><table class="table-condensed">' + m.headTemplate + m.contTemplate + m.footTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + m.headTemplate + m.contTemplate + m.footTemplate + '</table></div><div class="datepicker-decades"><table class="table-condensed">' + m.headTemplate + m.contTemplate + m.footTemplate + '</table></div><div class="datepicker-centuries"><table class="table-condensed">' + m.headTemplate + m.contTemplate + m.footTemplate + "</table></div></div>", e.fn.datepicker.DPGlobal = m, e.fn.datepicker.noConflict = function() {
return e.fn.datepicker = d, this
}, e.fn.datepicker.version = "1.9.0", e.fn.datepicker.deprecated = function(e) {
var t = window.console;
t && t.warn && t.warn("DEPRECATED: " + e)
}, e(document).on("focus.datepicker.data-api click.datepicker.data-api", '[data-provide="datepicker"]', (function(t) {
var n = e(this);
n.data("datepicker") || (t.preventDefault(), h.call(n, "show"))
})), e((function() {
h.call(e('[data-provide="datepicker-inline"]'))
}))
})), "undefined" != typeof jQuery && function(e, t) {
function n(e, t, n) {
return new Array(n + 1 - e.length).join(t) + e
}
function i() {
if (1 === arguments.length) {
var t = arguments[0];
return "string" == typeof t && (t = e.fn.timepicker.parseTime(t)), new Date(0, 0, 0, t.getHours(), t.getMinutes(), t.getSeconds())
}
return 3 === arguments.length ? new Date(0, 0, 0, arguments[0], arguments[1], arguments[2]) : 2 === arguments.length ? new Date(0, 0, 0, arguments[0], arguments[1], 0) : new Date(0, 0, 0)
}
var r, o;
e.TimePicker = function() {
var t = this;
t.container = e(".ui-timepicker-container"), t.ui = t.container.find(".ui-timepicker"), 0 === t.container.length && (t.container = e("<div></div>").addClass("ui-timepicker-container").addClass("ui-timepicker-hidden ui-helper-hidden").appendTo("body").hide(), t.ui = e("<div></div>").addClass("ui-timepicker").addClass("ui-widget ui-widget-content ui-menu").addClass("ui-corner-all").appendTo(t.container), t.viewport = e("<ul></ul>").addClass("ui-timepicker-viewport").appendTo(t.ui), e.fn.jquery >= "1.4.2" && t.ui.delegate("a", "mouseenter.timepicker", (function() {
t.activate(!1, e(this).parent())
})).delegate("a", "mouseleave.timepicker", (function() {
t.deactivate(!1)
})).delegate("a", "click.timepicker", (function(n) {
n.preventDefault(), t.select(!1, e(this).parent())
})))
}, e.TimePicker.count = 0, e.TimePicker.instance = function() {
return e.TimePicker._instance || (e.TimePicker._instance = new e.TimePicker), e.TimePicker._instance
}, e.TimePicker.prototype = {
keyCode: {
ALT: 18,
BLOQ_MAYUS: 20,
CTRL: 17,
DOWN: 40,
END: 35,
ENTER: 13,
HOME: 36,
LEFT: 37,
NUMPAD_ENTER: 108,
PAGE_DOWN: 34,
PAGE_UP: 33,
RIGHT: 39,
SHIFT: 16,
TAB: 9,
UP: 38
},
_items: function(t, n) {
var r, o, a = e("<ul></ul>"),
s = null;
for (-1 === t.options.timeFormat.indexOf("m") && t.options.interval % 60 != 0 && (t.options.interval = 60 * Math.max(Math.round(t.options.interval / 60), 1)), r = n ? i(n) : t.options.startTime ? i(t.options.startTime) : i(t.options.startHour, t.options.startMinutes), o = new Date(r.getTime() + 864e5); r < o;) this._isValidTime(t, r) && (s = e("<li>").addClass("ui-menu-item").appendTo(a), e("<a>").addClass("ui-corner-all").text(e.fn.timepicker.formatTime(t.options.timeFormat, r)).appendTo(s), s.data("time-value", r)), r = new Date(r.getTime() + 60 * t.options.interval * 1e3);
return a.children()
},
_isValidTime: function(e, t) {
var n = null,
r = null;
return t = i(t), null !== e.options.minTime ? n = i(e.options.minTime) : null === e.options.minHour && null === e.options.minMinutes || (n = i(e.options.minHour, e.options.minMinutes)), null !== e.options.maxTime ? r = i(e.options.maxTime) : null === e.options.maxHour && null === e.options.maxMinutes || (r = i(e.options.maxHour, e.options.maxMinutes)), null !== n && null !== r ? t >= n && t <= r : null !== n ? t >= n : null === r || t <= r
},
_hasScroll: function() {
var e = void 0 !== this.ui.prop ? "prop" : "attr";
return this.ui.height() < this.ui[e]("scrollHeight")
},
_move: function(e, t, n) {
if (this.closed() && this.open(e), this.active) {
var i = this.active[t + "All"](".ui-menu-item").eq(0);
i.length ? this.activate(e, i) : this.activate(e, this.viewport.children(n))
} else this.activate(e, this.viewport.children(n))
},
register: function(t, n) {
var i = this,
r = {};
r.element = e(t), r.element.data("TimePicker") || (r.options = e.metadata ? e.extend({}, n, r.element.metadata()) : e.extend({}, n), r.widget = i, e.extend(r, {
next: function() {
return i.next(r)
},
previous: function() {
return i.previous(r)
},
first: function() {
return i.first(r)
},
last: function() {
return i.last(r)
},
selected: function() {
return i.selected(r)
},
open: function() {
return i.open(r)
},
close: function() {
return i.close(r)
},
closed: function() {
return i.closed(r)
},
destroy: function() {
return i.destroy(r)
},
parse: function(e) {
return i.parse(r, e)
},
format: function(e, t) {
return i.format(r, e, t)
},
getTime: function() {
return i.getTime(r)
},
setTime: function(e, t) {
return i.setTime(r, e, t)
},
option: function(e, t) {
return i.option(r, e, t)
}
}), i._setDefaultTime(r), i._addInputEventsHandlers(r), r.element.data("TimePicker", r))
},
_setDefaultTime: function(t) {
"now" === t.options.defaultTime ? t.setTime(i(new Date)) : t.options.defaultTime && t.options.defaultTime.getFullYear ? t.setTime(i(t.options.defaultTime)) : t.options.defaultTime && t.setTime(e.fn.timepicker.parseTime(t.options.defaultTime))
},
_addInputEventsHandlers: function(t) {
var n = this;
t.element.bind("keydown.timepicker", (function(e) {
switch (e.which || e.keyCode) {
case n.keyCode.ENTER:
case n.keyCode.NUMPAD_ENTER:
e.preventDefault(), n.closed() ? t.element.trigger("change.timepicker") : n.select(t, n.active);
break;
case n.keyCode.UP:
t.previous();
break;
case n.keyCode.DOWN:
t.next();
break;
default:
n.closed() || t.close(!0)
}
})).bind("focus.timepicker", (function() {
t.open()
})).bind("blur.timepicker", (function() {
setTimeout((function() {
t.element.data("timepicker-user-clicked-outside") && t.close()
}))
})).bind("change.timepicker", (function() {
t.closed() && t.setTime(e.fn.timepicker.parseTime(t.element.val()))
}))
},
select: function(t, n) {
var i = !1 === t ? this.instance : t;
this.setTime(i, e.fn.timepicker.parseTime(n.children("a").text())), this.close(i, !0)
},
activate: function(e, t) {
if ((!1 === e ? this.instance : e) === this.instance) {
if (this.deactivate(), this._hasScroll()) {
var n = t.offset().top - this.ui.offset().top,
i = this.ui.scrollTop(),
r = this.ui.height();
n < 0 ? this.ui.scrollTop(i + n) : n >= r && this.ui.scrollTop(i + n - r + t.height())
}
this.active = t.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-item").end()
}
},
deactivate: function() {
this.active && (this.active.children("a").removeClass("ui-state-hover").removeAttr("id"), this.active = null)
},
next: function(e) {
return (this.closed() || this.instance === e) && this._move(e, "next", ".ui-menu-item:first"), e.element
},
previous: function(e) {
return (this.closed() || this.instance === e) && this._move(e, "prev", ".ui-menu-item:last"), e.element
},
first: function(e) {
return this.instance === e && (this.active && 0 === this.active.prevAll(".ui-menu-item").length)
},
last: function(e) {
return this.instance === e && (this.active && 0 === this.active.nextAll(".ui-menu-item").length)
},
selected: function(e) {
return this.instance === e && this.active ? this.active : null
},
open: function(t) {
var n = this,
i = t.getTime(),
r = t.options.dynamic && i;
if (!t.options.dropdown) return t.element;
switch (t.element.data("timepicker-event-namespace", Math.random()), e(document).bind("click.timepicker-" + t.element.data("timepicker-event-namespace"), (function(e) {
t.element.get(0) === e.target ? t.element.data("timepicker-user-clicked-outside", !1) : t.element.data("timepicker-user-clicked-outside", !0).blur()
})), (t.rebuild || !t.items || r) && (t.items = n._items(t, r ? i : null)), (t.rebuild || n.instance !== t || r) && (e.fn.jquery < "1.4.2" ? (n.viewport.children().remove(), n.viewport.append(t.items), n.viewport.find("a").bind("mouseover.timepicker", (function() {
n.activate(t, e(this).parent())
})).bind("mouseout.timepicker", (function() {
n.deactivate(t)
})).bind("click.timepicker", (function(i) {
i.preventDefault(), n.select(t, e(this).parent())
}))) : (n.viewport.children().detach(), n.viewport.append(t.items))), t.rebuild = !1, n.container.removeClass("ui-helper-hidden ui-timepicker-hidden ui-timepicker-standard ui-timepicker-corners").show(), t.options.theme) {
case "standard":
n.container.addClass("ui-timepicker-standard");
break;
case "standard-rounded-corners":
n.container.addClass("ui-timepicker-standard ui-timepicker-corners")
}
n.container.hasClass("ui-timepicker-no-scrollbar") || t.options.scrollbar || (n.container.addClass("ui-timepicker-no-scrollbar"), n.viewport.css({
paddingRight: 40
}));
var o = n.container.outerHeight() - n.container.height(),
a = t.options.zindex ? t.options.zindex : t.element.offsetParent().css("z-index"),
s = t.element.offset();
n.container.css({
top: s.top + t.element.outerHeight(),
left: s.left
}), n.container.show(), n.container.css({
left: t.element.offset().left,
height: n.ui.outerHeight() + o,
width: t.element.outerWidth(),
zIndex: a,
cursor: "default"
});
var l = n.container.width() - (n.ui.outerWidth() - n.ui.width());
return n.ui.css({
width: l
}), n.viewport.css({
width: l
}), t.items.css({
width: l
}), n.instance = t, i ? t.items.each((function() {
var r = e(this);
return (e.fn.jquery < "1.4.2" ? e.fn.timepicker.parseTime(r.find("a").text()) : r.data("time-value")).getTime() !== i.getTime() || (n.activate(t, r), !1)
})) : n.deactivate(t), t.element
},
close: function(t) {
return this.instance === t && (this.container.addClass("ui-helper-hidden ui-timepicker-hidden").hide(), this.ui.scrollTop(0), this.ui.children().removeClass("ui-state-hover")), e(document).unbind("click.timepicker-" + t.element.data("timepicker-event-namespace")), t.element
},
closed: function() {
return this.ui.is(":hidden")
},
destroy: function(e) {
return this.close(e, !0), e.element.unbind(".timepicker").data("TimePicker", null)
},
parse: function(t, n) {
return e.fn.timepicker.parseTime(n)
},
format: function(t, n, i) {
return i = i || t.options.timeFormat, e.fn.timepicker.formatTime(i, n)
},
getTime: function(t) {
var n = e.fn.timepicker.parseTime(t.element.val());
return n instanceof Date && !this._isValidTime(t, n) ? null : n instanceof Date && t.selectedTime ? t.format(n) === t.format(t.selectedTime) ? t.selectedTime : n : n instanceof Date ? n : null
},
setTime: function(t, n, r) {
var o = t.selectedTime;
if ("string" == typeof n && (n = t.parse(n)), n && n.getMinutes && this._isValidTime(t, n)) {
if (n = i(n), t.selectedTime = n, t.element.val(t.format(n, t.options.timeFormat)), r) return t
} else t.selectedTime = null;
return null === o && null === t.selectedTime || (t.element.trigger("time-change", [n]), e.isFunction(t.options.change) && t.options.change.apply(t.element, [n])), t.element
},
option: function(t, n, i) {
if (void 0 === i) return t.options[n];
var r, o, a = t.getTime();
"string" == typeof n ? (r = {})[n] = i : r = n, o = ["minHour", "minMinutes", "minTime", "maxHour", "maxMinutes", "maxTime", "startHour", "startMinutes", "startTime", "timeFormat", "interval", "dropdown"], e.each(r, (function(n) {
t.options[n] = r[n], t.rebuild = t.rebuild || e.inArray(n, o) > -1
})), t.rebuild && t.setTime(a)
}
}, e.TimePicker.defaults = {
timeFormat: "hh:mm p",
minHour: null,
minMinutes: null,
minTime: null,
maxHour: null,
maxMinutes: null,
maxTime: null,
startHour: null,
startMinutes: null,
startTime: null,
interval: 30,
dynamic: !0,
theme: "standard",
zindex: null,
dropdown: !0,
scrollbar: !1,
change: function() {}
}, e.TimePicker.methods = {
chainable: ["next", "previous", "open", "close", "destroy", "setTime"]
}, e.fn.timepicker = function(t) {
if ("string" == typeof t) {
var n, i, r = Array.prototype.slice.call(arguments, 1);
return i = this[n = "option" === t && arguments.length > 2 || -1 !== e.inArray(t, e.TimePicker.methods.chainable) ? "each" : "map"]((function() {
var n = e(this).data("TimePicker");
if ("object" == typeof n) return n[t].apply(n, r)
})), "map" === n && 1 === this.length ? e.makeArray(i).shift() : "map" === n ? e.makeArray(i) : i
}
if (1 === this.length && this.data("TimePicker")) return this.data("TimePicker");
var o = e.extend({}, e.TimePicker.defaults, t);
return this.each((function() {
e.TimePicker.instance().register(this, o)
}))
}, e.fn.timepicker.formatTime = function(e, t) {
var i = t.getHours(),
r = i % 12,
o = t.getMinutes(),
a = t.getSeconds(),
s = {
hh: n((0 === r ? 12 : r).toString(), "0", 2),
HH: n(i.toString(), "0", 2),
mm: n(o.toString(), "0", 2),
ss: n(a.toString(), "0", 2),
h: 0 === r ? 12 : r,
H: i,
m: o,
s: a,
p: i > 11 ? "PM" : "AM"
},
l = e,
c = "";
for (c in s) s.hasOwnProperty(c) && (l = l.replace(new RegExp(c, "g"), s[c]));
return l = l.replace(new RegExp("a", "g"), i > 11 ? "pm" : "am")
}, e.fn.timepicker.parseTime = (o = (r = [
[/^(\d+)$/, "$1"],
[/^:(\d)$/, "$10"],
[/^:(\d+)/, "$1"],
[/^(\d):([7-9])$/, "0$10$2"],
[/^(\d):(\d\d)$/, "$1$2"],
[/^(\d):(\d{1,})$/, "0$1$20"],
[/^(\d\d):([7-9])$/, "$10$2"],
[/^(\d\d):(\d)$/, "$1$20"],
[/^(\d\d):(\d*)$/, "$1$2"],
[/^(\d{3,}):(\d)$/, "$10$2"],
[/^(\d{3,}):(\d{2,})/, "$1$2"],
[/^(\d):(\d):(\d)$/, "0$10$20$3"],
[/^(\d{1,2}):(\d):(\d\d)/, "$10$2$3"]
]).length, function(t) {
var n, a, s = i(new Date),
l = !1,
c = !1,
u = !1;
if (void 0 === t || !t.toLowerCase) return null;
t = t.toLowerCase(), a = !(n = /a/.test(t)) && /p/.test(t), t = t.replace(/[^0-9:]/g, "").replace(/:+/g, ":");
for (var d = 0; d < o; d += 1)
if (r[d][0].test(t)) {
t = t.replace(r[d][0], r[d][1]);
break
}
return 1 === (t = t.replace(/:/g, "")).length || 2 === t.length ? l = t : 3 === t.length || 5 === t.length ? (l = t.substr(0, 1), c = t.substr(1, 2), u = t.substr(3, 2)) : (4 === t.length || t.length > 5) && (l = t.substr(0, 2), c = t.substr(2, 2), u = t.substr(4, 2)), t.length > 0 && t.length < 5 && (t.length < 3 && (c = 0), u = 0), !1 !== l && !1 !== c && !1 !== u && (l = parseInt(l, 10), c = parseInt(c, 10), u = parseInt(u, 10), n && 12 === l ? l = 0 : a && l < 12 && (l += 12), l > 24 ? t.length >= 6 ? e.fn.timepicker.parseTime(t.substr(0, 5)) : e.fn.timepicker.parseTime(t + "0" + (n ? "a" : "") + (a ? "p" : "")) : (s.setHours(l, c, u), s))
})
}(jQuery),
function(e) {
"function" == typeof define && define.amd ? define(["jquery"], e) : e(jQuery)
}((function(e) {
"use strict";
var t = {},
n = Math.max,
i = Math.min;
t.c = {}, t.c.d = e(document), t.c.t = function(e) {
return e.originalEvent.touches.length - 1
}, t.o = function() {
var n = this;
this.o = null, this.$ = null, this.i = null, this.g = null, this.v = null, this.cv = null, this.x = 0, this.y = 0, this.w = 0, this.h = 0, this.$c = null, this.c = null, this.t = 0, this.isInit = !1, this.fgColor = null, this.pColor = null, this.dH = null, this.cH = null, this.eH = null, this.rH = null, this.scale = 1, this.relative = !1, this.relativeWidth = !1, this.relativeHeight = !1, this.$div = null, this.run = function() {
var t = function(e, t) {
var i;
for (i in t) n.o[i] = t[i];
n._carve().init(), n._configure()._draw()
};
if (!this.$.data("kontroled")) {
if (this.$.data("kontroled", !0), this.extend(), this.o = e.extend({
min: void 0 !== this.$.data("min") ? this.$.data("min") : 0,
max: void 0 !== this.$.data("max") ? this.$.data("max") : 100,
stopper: !0,
readOnly: this.$.data("readonly") || "readonly" === this.$.attr("readonly"),
cursor: (!0 === this.$.data("cursor") ? 30 : this.$.data("cursor")) || 0,
thickness: this.$.data("thickness") && Math.max(Math.min(this.$.data("thickness"), 1), .01) || .35,
lineCap: this.$.data("linecap") || "butt",
width: this.$.data("width") || 200,
height: this.$.data("height") || 200,
displayInput: null == this.$.data("displayinput") || this.$.data("displayinput"),
displayPrevious: this.$.data("displayprevious"),
fgColor: this.$.data("fgcolor") || "#87CEEB",
inputColor: this.$.data("inputcolor"),
font: this.$.data("font") || "Arial",
fontWeight: this.$.data("font-weight") || "bold",
inline: !1,
step: this.$.data("step") || 1,
rotation: this.$.data("rotation"),
draw: null,
change: null,
cancel: null,
release: null,
format: function(e) {
return e
},
parse: function(e) {
return parseFloat(e)
}
}, this.o), this.o.flip = "anticlockwise" === this.o.rotation || "acw" === this.o.rotation, this.o.inputColor || (this.o.inputColor = this.o.fgColor), this.$.is("fieldset") ? (this.v = {}, this.i = this.$.find("input"), this.i.each((function(t) {
var i = e(this);
n.i[t] = i, n.v[t] = n.o.parse(i.val()), i.bind("change blur", (function() {
var e = {};
e[t] = i.val(), n.val(n._validate(e))
}))
})), this.$.find("legend").remove()) : (this.i = this.$, this.v = this.o.parse(this.$.val()), "" === this.v && (this.v = this.o.min), this.$.bind("change blur", (function() {
n.val(n._validate(n.o.parse(n.$.val())))
}))), !this.o.displayInput && this.$.hide(), this.$c = e(document.createElement("canvas")).attr({
width: this.o.width,
height: this.o.height
}), this.$div = e('<div style="' + (this.o.inline ? "display:inline;" : "") + "width:" + this.o.width + "px;height:" + this.o.height + 'px;"></div>'), this.$.wrap(this.$div).before(this.$c), this.$div = this.$.parent(), "undefined" != typeof G_vmlCanvasManager && G_vmlCanvasManager.initElement(this.$c[0]), this.c = this.$c[0].getContext ? this.$c[0].getContext("2d") : null, !this.c) throw {
name: "CanvasNotSupportedException",
message: "Canvas not supported. Please use excanvas on IE8.0.",
toString: function() {
return this.name + ": " + this.message
}
};
return this.scale = (window.devicePixelRatio || 1) / (this.c.webkitBackingStorePixelRatio || this.c.mozBackingStorePixelRatio || this.c.msBackingStorePixelRatio || this.c.oBackingStorePixelRatio || this.c.backingStorePixelRatio || 1), this.relativeWidth = this.o.width % 1 != 0 && this.o.width.indexOf("%"), this.relativeHeight = this.o.height % 1 != 0 && this.o.height.indexOf("%"), this.relative = this.relativeWidth || this.relativeHeight, this._carve(), this.v instanceof Object ? (this.cv = {}, this.copy(this.v, this.cv)) : this.cv = this.v, this.$.bind("configure", t).parent().bind("configure", t), this._listen()._configure()._xy().init(), this.isInit = !0, this.$.val(this.o.format(this.v)), this._draw(), this
}
}, this._carve = function() {
if (this.relative) {
var e = this.relativeWidth ? this.$div.parent().width() * parseInt(this.o.width) / 100 : this.$div.parent().width(),
t = this.relativeHeight ? this.$div.parent().height() * parseInt(this.o.height) / 100 : this.$div.parent().height();
this.w = this.h = Math.min(e, t)
} else this.w = this.o.width, this.h = this.o.height;
return this.$div.css({
width: this.w + "px",
height: this.h + "px"
}), this.$c.attr({
width: this.w,
height: this.h
}), 1 !== this.scale && (this.$c[0].width = this.$c[0].width * this.scale, this.$c[0].height = this.$c[0].height * this.scale, this.$c.width(this.w), this.$c.height(this.h)), this
}, this._draw = function() {
var e = !0;
n.g = n.c, n.clear(), n.dH && (e = n.dH()), !1 !== e && n.draw()
}, this._touch = function(e) {
var i = function(e) {
var t = n.xy2val(e.originalEvent.touches[n.t].pageX, e.originalEvent.touches[n.t].pageY);
t != n.cv && (n.cH && !1 === n.cH(t) || (n.change(n._validate(t)), n._draw()))
};
return this.t = t.c.t(e), i(e), t.c.d.bind("touchmove.k", i).bind("touchend.k", (function() {
t.c.d.unbind("touchmove.k touchend.k"), n.val(n.cv)
})), this
}, this._mouse = function(e) {
var i = function(e) {
var t = n.xy2val(e.pageX, e.pageY);
t != n.cv && (n.cH && !1 === n.cH(t) || (n.change(n._validate(t)), n._draw()))
};
return i(e), t.c.d.bind("mousemove.k", i).bind("keyup.k", (function(e) {
if (27 === e.keyCode) {
if (t.c.d.unbind("mouseup.k mousemove.k keyup.k"), n.eH && !1 === n.eH()) return;
n.cancel()
}
})).bind("mouseup.k", (function(e) {
t.c.d.unbind("mousemove.k mouseup.k keyup.k"), n.val(n.cv)
})), this
}, this._xy = function() {
var e = this.$c.offset();
return this.x = e.left, this.y = e.top, this
}, this._listen = function() {
return this.o.readOnly ? this.$.attr("readonly", "readonly") : (this.$c.bind("mousedown", (function(e) {
e.preventDefault(), n._xy()._mouse(e)
})).bind("touchstart", (function(e) {
e.preventDefault(), n._xy()._touch(e)
})), this.listen()), this.relative && e(window).resize((function() {
n._carve().init(), n._draw()
})), this
}, this._configure = function() {
return this.o.draw && (this.dH = this.o.draw), this.o.change && (this.cH = this.o.change), this.o.cancel && (this.eH = this.o.cancel), this.o.release && (this.rH = this.o.release), this.o.displayPrevious ? (this.pColor = this.h2rgba(this.o.fgColor, "0.4"), this.fgColor = this.h2rgba(this.o.fgColor, "0.6")) : this.fgColor = this.o.fgColor, this
}, this._clear = function() {
this.$c[0].width = this.$c[0].width
}, this._validate = function(e) {
var t = ~~((e < 0 ? -.5 : .5) + e / this.o.step) * this.o.step;
return Math.round(100 * t) / 100
}, this.listen = function() {}, this.extend = function() {}, this.init = function() {}, this.change = function(e) {}, this.val = function(e) {}, this.xy2val = function(e, t) {}, this.draw = function() {}, this.clear = function() {
this._clear()
}, this.h2rgba = function(e, t) {
var n;
return e = e.substring(1, 7), "rgba(" + (n = [parseInt(e.substring(0, 2), 16), parseInt(e.substring(2, 4), 16), parseInt(e.substring(4, 6), 16)])[0] + "," + n[1] + "," + n[2] + "," + t + ")"
}, this.copy = function(e, t) {
for (var n in e) t[n] = e[n]
}
}, t.Dial = function() {
t.o.call(this), this.startAngle = null, this.xy = null, this.radius = null, this.lineWidth = null, this.cursorExt = null, this.w2 = null, this.PI2 = 2 * Math.PI, this.extend = function() {
this.o = e.extend({
bgColor: this.$.data("bgcolor") || "#EEEEEE",
angleOffset: this.$.data("angleoffset") || 0,
angleArc: this.$.data("anglearc") || 360,
inline: !0
}, this.o)
}, this.val = function(e, t) {
if (null == e) return this.v;
e = this.o.parse(e), !1 !== t && e != this.v && this.rH && !1 === this.rH(e) || (this.cv = this.o.stopper ? n(i(e, this.o.max), this.o.min) : e, this.v = this.cv, this.$.val(this.o.format(this.v)), this._draw())
}, this.xy2val = function(e, t) {
var r, o;
return r = Math.atan2(e - (this.x + this.w2), -(t - this.y - this.w2)) - this.angleOffset, this.o.flip && (r = this.angleArc - r - this.PI2), this.angleArc != this.PI2 && r < 0 && r > -.5 ? r = 0 : r < 0 && (r += this.PI2), o = r * (this.o.max - this.o.min) / this.angleArc + this.o.min, this.o.stopper && (o = n(i(o, this.o.max), this.o.min)), o
}, this.listen = function() {
var t, r, o, a, s = this,
l = function(e) {
e.preventDefault();
var o = e.originalEvent,
a = o.detail || o.wheelDeltaX,
l = o.detail || o.wheelDeltaY,
c = s._validate(s.o.parse(s.$.val())) + (a > 0 || l > 0 ? s.o.step : a < 0 || l < 0 ? -s.o.step : 0);
c = n(i(c, s.o.max), s.o.min), s.val(c, !1), s.rH && (clearTimeout(t), t = setTimeout((function() {
s.rH(c), t = null
}), 100), r || (r = setTimeout((function() {
t && s.rH(c), r = null
}), 200)))
},
c = 1,
u = {
37: -s.o.step,
38: s.o.step,
39: s.o.step,
40: -s.o.step
};
this.$.bind("keydown", (function(t) {
var r = t.keyCode;
if (r >= 96 && r <= 105 && (r = t.keyCode = r - 48), o = parseInt(String.fromCharCode(r)), isNaN(o) && (13 !== r && 8 !== r && 9 !== r && 189 !== r && (190 !== r || s.$.val().match(/\./)) && t.preventDefault(), e.inArray(r, [37, 38, 39, 40]) > -1)) {
t.preventDefault();
var l = s.o.parse(s.$.val()) + u[r] * c;
s.o.stopper && (l = n(i(l, s.o.max), s.o.min)), s.change(s._validate(l)), s._draw(), a = window.setTimeout((function() {
c *= 2
}), 30)
}
})).bind("keyup", (function(e) {
isNaN(o) ? a && (window.clearTimeout(a), a = null, c = 1, s.val(s.$.val())) : s.$.val() > s.o.max && s.$.val(s.o.max) || s.$.val() < s.o.min && s.$.val(s.o.min)
})), this.$c.bind("mousewheel DOMMouseScroll", l), this.$.bind("mousewheel DOMMouseScroll", l)
}, this.init = function() {
(this.v < this.o.min || this.v > this.o.max) && (this.v = this.o.min), this.$.val(this.v), this.w2 = this.w / 2, this.cursorExt = this.o.cursor / 100, this.xy = this.w2 * this.scale, this.lineWidth = this.xy * this.o.thickness, this.lineCap = this.o.lineCap, this.radius = this.xy - this.lineWidth / 2, this.o.angleOffset && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset), this.o.angleArc && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc), this.angleOffset = this.o.angleOffset * Math.PI / 180, this.angleArc = this.o.angleArc * Math.PI / 180, this.startAngle = 1.5 * Math.PI + this.angleOffset, this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
var e = n(String(Math.abs(this.o.max)).length, String(Math.abs(this.o.min)).length, 2) + 2;
this.o.displayInput && this.i.css({
width: (this.w / 2 + 4 >> 0) + "px",
height: (this.w / 3 >> 0) + "px",
position: "absolute",
"vertical-align": "middle",
"margin-top": (this.w / 3 >> 0) + "px",
"margin-left": "-" + (3 * this.w / 4 + 2 >> 0) + "px",
border: 0,
background: "none",
font: this.o.fontWeight + " " + (this.w / e >> 0) + "px " + this.o.font,
"text-align": "center",
color: this.o.inputColor || this.o.fgColor,
padding: "0px",
"-webkit-appearance": "none"
}) || this.i.css({
width: "0px",
visibility: "hidden"
})
}, this.change = function(e) {
this.cv = e, this.$.val(this.o.format(e))
}, this.angle = function(e) {
return (e - this.o.min) * this.angleArc / (this.o.max - this.o.min)
}, this.arc = function(e) {
var t, n;
return e = this.angle(e), n = this.o.flip ? (t = this.endAngle + 1e-5) - e - 1e-5 : (t = this.startAngle - 1e-5) + e + 1e-5, this.o.cursor && (t = n - this.cursorExt) && (n += this.cursorExt), {
s: t,
e: n,
d: this.o.flip && !this.o.cursor
}
}, this.draw = function() {
var e, t = this.g,
n = this.arc(this.cv),
i = 1;
t.lineWidth = this.lineWidth, t.lineCap = this.lineCap, "none" !== this.o.bgColor && (t.beginPath(), t.strokeStyle = this.o.bgColor, t.arc(this.xy, this.xy, this.radius, this.endAngle - 1e-5, this.startAngle + 1e-5, !0), t.stroke()), this.o.displayPrevious && (e = this.arc(this.v), t.beginPath(), t.strokeStyle = this.pColor, t.arc(this.xy, this.xy, this.radius, e.s, e.e, e.d), t.stroke(), i = this.cv == this.v), t.beginPath(), t.strokeStyle = i ? this.o.fgColor : this.fgColor, t.arc(this.xy, this.xy, this.radius, n.s, n.e, n.d), t.stroke()
}, this.cancel = function() {
this.val(this.v)
}
}, e.fn.dial = e.fn.knob = function(n) {
return this.each((function() {
var i = new t.Dial;
i.o = n, i.$ = e(this), i.run()
})).parent()
}
})),
function(e, t) {
function n(n, i, r) {
var o = n.children(i.headerTag),
a = n.children(i.bodyTag);
o.length > a.length ? O($, "contents") : o.length < a.length && O($, "titles");
var s = i.startIndex;
if (r.stepCount = o.length, i.saveState && e.cookie) {
var l = e.cookie(L + d(n)),
u = parseInt(l, 0);
!isNaN(u) && u < r.stepCount && (s = u)
}
r.currentIndex = s, o.each((function(i) {
var r = e(this),
o = a.eq(i),
s = o.data("mode"),
l = null == s ? z.html : h(z, /^\s*$/.test(s) || isNaN(s) ? s : parseInt(s, 0)),
u = l === z.html || o.data("url") === t ? "" : o.data("url"),
d = l !== z.html && "1" === o.data("loaded"),
f = e.extend({}, q, {
title: r.html(),
content: l === z.html ? o.html() : "",
contentUrl: u,
contentMode: l,
contentLoaded: d
});
! function(e, t) {
c(e).push(t)
}(n, f)
}))
}
function i(e, t) {
var n = e.find(".steps li").eq(t.currentIndex);
e.triggerHandler("finishing", [t.currentIndex]) ? (n.addClass("done").removeClass("error"), e.triggerHandler("finished", [t.currentIndex])) : n.addClass("error")
}
function r(e) {
var t = e.data("eventNamespace");
return null == t && (t = "." + d(e), e.data("eventNamespace", t)), t
}
function o(e, t) {
var n = d(e);
return e.find("#" + n + F + t)
}
function a(e, t) {
var n = d(e);
return e.find("#" + n + N + t)
}
function s(e) {
return e.data("options")
}
function l(e) {
return e.data("state")
}
function c(e) {
return e.data("steps")
}
function u(e, t) {
var n = c(e);
return (0 > t || t >= n.length) && O(j), n[t]
}
function d(e) {
var t = e.data("uid");
return null == t && (null == (t = e._id()) && (t = "steps-uid-".concat(P), e._id(t)), P++, e.data("uid", t)), t
}
function h(e, n) {
if (I("enumType", e), I("keyOrValue", n), "string" == typeof n) {
var i = e[n];
return i === t && O("The enum key '{0}' does not exist.", n), i
}
if ("number" == typeof n) {
for (var r in e)
if (e[r] === n) return n;
O("Invalid enum value '{0}'.", n)
} else O("Invalid key or value type.")
}
function f(e, t, n) {
return b(e, t, n, function(e, t) {
return e.currentIndex + t
}(n, 1))
}
function p(e, t, n) {
return b(e, t, n, function(e, t) {
return e.currentIndex - t
}(n, 1))
}
function g(t) {
var i = e.extend(!0, {}, W, t);
return this.each((function() {
var t = e(this),
a = {
currentIndex: i.startIndex,
currentStep: null,
stepCount: 0,
transitionElement: null
};
t.data("options", i), t.data("state", a), t.data("steps", []), n(t, i, a),
function(t, n, i) {
var r = '<{0} class="{1}">{2}</{0}>',
o = h(H, n.stepsOrientation) === H.vertical ? " vertical" : "",
a = e(r.format(n.contentContainerTag, "content " + n.clearFixCssClass, t.html())),
s = e(r.format(n.stepsContainerTag, "steps " + n.clearFixCssClass, '<ul role="tablist"></ul>')),
l = a.children(n.headerTag),
c = a.children(n.bodyTag);
t.attr("role", "application").empty().append(s).append(a).addClass(n.cssClass + " " + n.clearFixCssClass + o), c.each((function(n) {
S(t, i, e(this), n)
})), l.each((function(r) {
D(t, n, i, e(this), r)
})), _(t, n, i),
function(e, t, n) {
if (t.enablePagination) {
var i = '<li><a href="#{0}" role="menuitem">{1}</a></li>',
r = "";
t.forceMoveForward || (r += i.format("previous", t.labels.previous)), r += i.format("next", t.labels.next), t.enableFinishButton && (r += i.format("finish", t.labels.finish)), t.enableCancelButton && (r += i.format("cancel", t.labels.cancel)), e.append('<{0} class="actions {1}"><ul role="menu" aria-label="{2}">{3}</ul></{0}>'.format(t.actionContainerTag, t.clearFixCssClass, t.labels.pagination, r)), x(e, t, n), y(e, t, n)
}
}(t, n, i)
}(t, i, a),
function(e, t) {
var n = r(e);
e.bind("canceled" + n, t.onCanceled), e.bind("contentLoaded" + n, t.onContentLoaded), e.bind("finishing" + n, t.onFinishing), e.bind("finished" + n, t.onFinished), e.bind("init" + n, t.onInit), e.bind("stepChanging" + n, t.onStepChanging), e.bind("stepChanged" + n, t.onStepChanged), t.enableKeyNavigation && e.bind("keyup" + n, v), e.find(".actions a").bind("click" + n, w)
}(t, i), i.autoFocus && 0 === P && o(t, i.startIndex).focus(), t.triggerHandler("init", [i.startIndex])
}))
}
function m(t, n, i, r, o) {
(0 > r || r > i.stepCount) && O(j),
function(e, t, n) {
c(e).splice(t, 0, n)
}(t, r, o = e.extend({}, q, o)), i.currentIndex !== i.stepCount && i.currentIndex >= r && (i.currentIndex++, E(t, n, i)), i.stepCount++;
var s = t.find(".content"),
l = e("<{0}>{1}</{0}>".format(n.headerTag, o.title)),
u = e("<{0}></{0}>".format(n.bodyTag));
return (null == o.contentMode || o.contentMode === z.html) && u.html(o.content), 0 === r ? s.prepend(u).prepend(l) : a(t, r - 1).after(u).after(l), S(t, i, u, r), D(t, n, i, l, r), C(t, n, i, r), r === i.currentIndex && _(t, n, i), x(t, n, i), t
}
function v(t) {
var n = e(this),
i = s(n),
r = l(n);
if (i.suppressPaginationOnFocus && n.find(":focus").is(":input")) return t.preventDefault(), !1;
var o = 37,
a = 39;
t.keyCode === o ? (t.preventDefault(), p(n, i, r)) : t.keyCode === a && (t.preventDefault(), f(n, i, r))
}
function y(t, n, i) {
if (i.stepCount > 0) {
var r = i.currentIndex,
o = u(t, r);
if (!n.enableContentCache || !o.contentLoaded) switch (h(z, o.contentMode)) {
case z.iframe:
t.find(".content > .body").eq(i.currentIndex).empty().html('<iframe src="' + o.contentUrl + '" frameborder="0" scrolling="no" />').data("loaded", "1");
break;
case z.async:
var s = a(t, r)._aria("busy", "true").empty().append(T(n.loadingTemplate, {
text: n.labels.loading
}));
e.ajax({
url: o.contentUrl,
cache: !1
}).done((function(e) {
s.empty().html(e)._aria("busy", "false").data("loaded", "1"), t.triggerHandler("contentLoaded", [r])
}))
}
}
}
function b(e, t, n, i) {
var r = n.currentIndex;
if (i >= 0 && i < n.stepCount && !(t.forceMoveForward && i < n.currentIndex)) {
var a = o(e, i),
s = a.parent(),
l = s.hasClass("disabled");
return s._enableAria(), a.click(), r !== n.currentIndex || !l || (s._enableAria(!1), !1)
}
return !1
}
function w(t) {
t.preventDefault();
var n = e(this),
r = n.parent().parent().parent().parent(),
o = s(r),
a = l(r),
c = n.attr("href");
switch (c.substring(c.lastIndexOf("#") + 1)) {
case "cancel":
! function(e) {
e.triggerHandler("canceled")
}(r);
break;
case "finish":
i(r, a);
break;
case "next":
f(r, o, a);
break;
case "previous":
p(r, o, a)
}
}
function x(e, t, n) {
if (t.enablePagination) {
var i = e.find(".actions a[href$='#finish']").parent(),
r = e.find(".actions a[href$='#next']").parent();
if (!t.forceMoveForward) e.find(".actions a[href$='#previous']").parent()._enableAria(n.currentIndex > 0);
t.enableFinishButton && t.showFinishButtonAlways ? (i._enableAria(n.stepCount > 0), r._enableAria(n.stepCount > 1 && n.stepCount > n.currentIndex + 1)) : (i._showAria(t.enableFinishButton && n.stepCount === n.currentIndex + 1), r._showAria(0 === n.stepCount || n.stepCount > n.currentIndex + 1)._enableAria(n.stepCount > n.currentIndex + 1 || !t.enableFinishButton))
}
}
function _(t, n, i, r) {
var a = o(t, i.currentIndex),
s = e('<span class="current-info audible">' + n.labels.current + " </span>"),
l = t.find(".content > .title");
if (null != r) {
var c = o(t, r);
c.parent().addClass("done").removeClass("error")._selectAria(!1), l.eq(r).removeClass("current").next(".body").removeClass("current"), s = c.find(".current-info"), a.focus()
}
a.prepend(s).parent()._selectAria().removeClass("done")._enableAria(), l.eq(i.currentIndex).addClass("current").next(".body").addClass("current")
}
function C(e, t, n, i) {
for (var r = d(e), o = i; o < n.stepCount; o++) {
var a = r + F + o,
s = r + N + o,
l = r + R + o,
c = e.find(".title").eq(o)._id(l);
e.find(".steps a").eq(o)._id(a)._aria("controls", s).attr("href", "#" + l).html(T(t.titleTemplate, {
index: o + 1,
title: c.html()
})), e.find(".body").eq(o)._id(s)._aria("labelledby", l)
}
}
function k(e, t, n, i) {
return !(0 > i || i >= n.stepCount || n.currentIndex === i) && (function(e, t) {
c(e).splice(t, 1)
}(e, i), n.currentIndex > i && (n.currentIndex--, E(e, t, n)), n.stepCount--, function(e, t) {
var n = d(e);
return e.find("#" + n + R + t)
}(e, i).remove(), a(e, i).remove(), o(e, i).parent().remove(), 0 === i && e.find(".steps li").first().addClass("first"), i === n.stepCount && e.find(".steps li").eq(i).addClass("last"), C(e, t, n, i), x(e, t, n), !0)
}
function S(e, t, n, i) {
var r = d(e),
o = r + N + i,
a = r + R + i;
n._id(o).attr("role", "tabpanel")._aria("labelledby", a).addClass("body")._showAria(t.currentIndex === i)
}
function T(e, n) {
for (var i = e.match(/#([a-z]*)#/gi), r = 0; r < i.length; r++) {
var o = i[r],
a = o.substring(1, o.length - 1);
n[a] === t && O("The key '{0}' does not exist in the substitute collection!", a), e = e.replace(o, n[a])
}
return e
}
function D(t, n, i, o, a) {
var s = d(t),
l = s + F + a,
c = s + N + a,
u = s + R + a,
h = t.find(".steps > ul"),
f = T(n.titleTemplate, {
index: a + 1,
title: o.html()
}),
p = e('<li role="tab"><a id="' + l + '" href="#' + u + '" aria-controls="' + c + '">' + f + "</a></li>");
p._enableAria(n.enableAllSteps || i.currentIndex > a), i.currentIndex > a && p.addClass("done"), o._id(u).attr("tabindex", "-1").addClass("title"), 0 === a ? h.prepend(p) : h.find("li").eq(a - 1).after(p), 0 === a && h.find("li").removeClass("first").eq(a).addClass("first"), a === i.stepCount - 1 && h.find("li").removeClass("last").eq(a).addClass("last"), p.children("a").bind("click" + r(t), M)
}
function E(t, n, i) {
n.saveState && e.cookie && e.cookie(L + d(t), i.currentIndex)
}
function A(t, n, i, r, o, a) {
var s = t.find(".content > .body"),
c = h(B, n.transitionEffect),
u = n.transitionEffectSpeed,
d = s.eq(r),
f = s.eq(o);
switch (c) {
case B.fade:
case B.slide:
var p = c === B.fade ? "fadeOut" : "slideUp",
g = c === B.fade ? "fadeIn" : "slideDown";
i.transitionElement = d, f[p](u, (function() {
var t = l(e(this)._showAria(!1).parent().parent());
t.transitionElement && (t.transitionElement[g](u, (function() {
e(this)._showAria()
})).promise().done(a), t.transitionElement = null)
}));
break;
case B.slideLeft:
var m = f.outerWidth(!0),
v = r > o ? -m : m,
y = r > o ? m : -m;
e.when(f.animate({
left: v
}, u, (function() {
e(this)._showAria(!1)
})), d.css("left", y + "px")._showAria().animate({
left: 0
}, u)).done(a);
break;
default:
e.when(f._showAria(!1), d._showAria()).done(a)
}
}
function M(t) {
t.preventDefault();
var n = e(this),
i = n.parent().parent().parent().parent(),
r = s(i),
a = l(i),
c = a.currentIndex;
if (n.parent().is(":not(.disabled):not(.current)")) {
var u = n.attr("href");
! function(e, t, n, i) {
if ((0 > i || i >= n.stepCount) && O(j), !(t.forceMoveForward && i < n.currentIndex)) {
var r = n.currentIndex;
e.triggerHandler("stepChanging", [n.currentIndex, i]) ? (n.currentIndex = i, E(e, t, n), _(e, t, n, r), x(e, t, n), y(e, t, n), A(e, t, n, i, r, (function() {
e.triggerHandler("stepChanged", [i, r])
}))) : e.find(".steps li").eq(r).addClass("error")
}
}(i, r, a, parseInt(u.substring(u.lastIndexOf("-") + 1), 0))
}
return c === a.currentIndex ? (o(i, c).focus(), !1) : void 0
}
function O(e) {
throw arguments.length > 1 && (e = e.format(Array.prototype.slice.call(arguments, 1))), new Error(e)
}
function I(e, t) {
null == t && O("The argument '{0}' is null or undefined.", e)
}
e.fn.extend({
_aria: function(e, t) {
return this.attr("aria-" + e, t)
},
_removeAria: function(e) {
return this.removeAttr("aria-" + e)
},
_enableAria: function(e) {
return null == e || e ? this.removeClass("disabled")._aria("disabled", "false") : this.addClass("disabled")._aria("disabled", "true")
},
_showAria: function(e) {
return null == e || e ? this.show()._aria("hidden", "false") : this.hide()._aria("hidden", "true")
},
_selectAria: function(e) {
return null == e || e ? this.addClass("current")._aria("selected", "true") : this.removeClass("current")._aria("selected", "false")
},
_id: function(e) {
return e ? this.attr("id", e) : this.attr("id")
}
}), String.prototype.format || (String.prototype.format = function() {
for (var t = 1 === arguments.length && e.isArray(arguments[0]) ? arguments[0] : arguments, n = this, i = 0; i < t.length; i++) {
var r = new RegExp("\\{" + i + "\\}", "gm");
n = n.replace(r, t[i])
}
return n
});
var P = 0,
L = "jQu3ry_5teps_St@te_",
F = "-t-",
N = "-p-",
R = "-h-",
j = "Index out of range.",
$ = "One or more corresponding step {0} are missing.";
e.fn.steps = function(t) {
return e.fn.steps[t] ? e.fn.steps[t].apply(this, Array.prototype.slice.call(arguments, 1)) : "object" != typeof t && t ? void e.error("Method " + t + " does not exist on jQuery.steps") : g.apply(this, arguments)
}, e.fn.steps.add = function(e) {
var t = l(this);
return m(this, s(this), t, t.stepCount, e)
}, e.fn.steps.destroy = function() {
return function(t, n) {
var i = r(t);
t.unbind(i).removeData("uid").removeData("options").removeData("state").removeData("steps").removeData("eventNamespace").find(".actions a").unbind(i), t.removeClass(n.clearFixCssClass + " vertical");
var o = t.find(".content > *");
o.removeData("loaded").removeData("mode").removeData("url"), o.removeAttr("id").removeAttr("role").removeAttr("tabindex").removeAttr("class").removeAttr("style")._removeAria("labelledby")._removeAria("hidden"), t.find(".content > [data-mode='async'],.content > [data-mode='iframe']").empty();
var a = e('<{0} class="{1}"></{0}>'.format(t.get(0).tagName, t.attr("class"))),
s = t._id();
return null != s && "" !== s && a._id(s), a.html(t.find(".content").html()), t.after(a), t.remove(), a
}(this, s(this))
}, e.fn.steps.finish = function() {
i(this, l(this))
}, e.fn.steps.getCurrentIndex = function() {
return l(this).currentIndex
}, e.fn.steps.getCurrentStep = function() {
return u(this, l(this).currentIndex)
}, e.fn.steps.getStep = function(e) {
return u(this, e)
}, e.fn.steps.insert = function(e, t) {
return m(this, s(this), l(this), e, t)
}, e.fn.steps.next = function() {
return f(this, s(this), l(this))
}, e.fn.steps.previous = function() {
return p(this, s(this), l(this))
}, e.fn.steps.remove = function(e) {
return k(this, s(this), l(this), e)
}, e.fn.steps.setStep = function() {
throw new Error("Not yet implemented!")
}, e.fn.steps.skip = function() {
throw new Error("Not yet implemented!")
};
var z = e.fn.steps.contentMode = {
html: 0,
iframe: 1,
async: 2
},
H = e.fn.steps.stepsOrientation = {
horizontal: 0,
vertical: 1
},
B = e.fn.steps.transitionEffect = {
none: 0,
fade: 1,
slide: 2,
slideLeft: 3
},
q = e.fn.steps.stepModel = {
title: "",
content: "",
contentUrl: "",
contentMode: z.html,
contentLoaded: !1
},
W = e.fn.steps.defaults = {
headerTag: "h1",
bodyTag: "div",
contentContainerTag: "div",
actionContainerTag: "div",
stepsContainerTag: "div",
cssClass: "wizard",
clearFixCssClass: "clearfix",
stepsOrientation: H.horizontal,
titleTemplate: '<span class="number">#index#.</span> #title#',
loadingTemplate: '<span class="spinner"></span> #text#',
autoFocus: !1,
enableAllSteps: !1,
enableKeyNavigation: !0,
enablePagination: !0,
suppressPaginationOnFocus: !0,
enableContentCache: !0,
enableCancelButton: !1,
enableFinishButton: !0,
preloadContent: !1,
showFinishButtonAlways: !1,
forceMoveForward: !1,
saveState: !1,
startIndex: 0,
transitionEffect: B.none,
transitionEffectSpeed: 200,
onStepChanging: function() {
return !0
},
onStepChanged: function() {},
onCanceled: function() {},
onFinishing: function() {
return !0
},
onFinished: function() {},
onContentLoaded: function() {},
onInit: function() {},
labels: {
cancel: "Cancel",
current: "current step:",
pagination: "Pagination",
finish: "Finish",
next: "Next",
previous: "Previous",
loading: "Loading ..."
}
}
}(jQuery);
var q = null;
window.PR_SHOULD_USE_CONTINUATION = !0,
function() {
function e(e, t, n, i) {
t && (n(e = {
a: t,
d: e
}), i.push.apply(i, e.e))
}
function t(t, n) {
var i, r = {};
! function() {
for (var e = t.concat(n), o = [], a = {}, s = 0, l = e.length; s < l; ++s) {
var c = e[s],
u = c[3];
if (u)
for (var d = u.length; --d >= 0;) r[u.charAt(d)] = c;
u = "" + (c = c[1]), a.hasOwnProperty(u) || (o.push(c), a[u] = q)
}
o.push(/[\S\s]/), i = function(e) {
function t(e) {
var t = e.charCodeAt(0);
if (92 !== t) return t;
var n = e.charAt(1);
return (t = d[n]) ? t : "0" <= n && n <= "7" ? parseInt(e.substring(1), 8) : "u" === n || "x" === n ? parseInt(e.substring(2), 16) : e.charCodeAt(1)
}
function n(e) {
return e < 32 ? (e < 16 ? "\\x0" : "\\x") + e.toString(16) : ("\\" !== (e = String.fromCharCode(e)) && "-" !== e && "[" !== e && "]" !== e || (e = "\\" + e), e)
}
function i(e) {
for (var i = e.substring(1, e.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), r = (e = [], []), o = "^" === i[0], a = o ? 1 : 0, s = i.length; a < s; ++a) {
var l = i[a];
if (/\\[bdsw]/i.test(l)) e.push(l);
else {
var c;
l = t(l);
a + 2 < s && "-" === i[a + 1] ? (c = t(i[a + 2]), a += 2) : c = l, r.push([l, c]), c < 65 || l > 122 || (c < 65 || l > 90 || r.push([32 | Math.max(65, l), 32 | Math.min(c, 90)]), c < 97 || l > 122 || r.push([-33 & Math.max(97, l), -33 & Math.min(c, 122)]))
}
}
for (r.sort((function(e, t) {
return e[0] - t[0] || t[1] - e[1]
})), i = [], l = [NaN, NaN], a = 0; a < r.length; ++a)(s = r[a])[0] <= l[1] + 1 ? l[1] = Math.max(l[1], s[1]) : i.push(l = s);
for (r = ["["], o && r.push("^"), r.push.apply(r, e), a = 0; a < i.length; ++a) s = i[a], r.push(n(s[0])), s[1] > s[0] && (s[1] + 1 > s[0] && r.push("-"), r.push(n(s[1])));
return r.push("]"), r.join("")
}
function r(e) {
for (var t = e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), n = t.length, r = [], s = 0, l = 0; s < n; ++s) {
var c = t[s];
"(" === c ? ++l : "\\" === c.charAt(0) && (c = +c.substring(1)) && c <= l && (r[c] = -1)
}
for (s = 1; s < r.length; ++s) - 1 === r[s] && (r[s] = ++o);
for (l = s = 0; s < n; ++s) "(" === (c = t[s]) ? void 0 === r[++l] && (t[s] = "(?:") : "\\" === c.charAt(0) && (c = +c.substring(1)) && c <= l && (t[s] = "\\" + r[l]);
for (l = s = 0; s < n; ++s) "^" === t[s] && "^" !== t[s + 1] && (t[s] = "");
if (e.ignoreCase && a)
for (s = 0; s < n; ++s) e = (c = t[s]).charAt(0), c.length >= 2 && "[" === e ? t[s] = i(c) : "\\" !== e && (t[s] = c.replace(/[A-Za-z]/g, (function(e) {
return e = e.charCodeAt(0), "[" + String.fromCharCode(-33 & e, 32 | e) + "]"
})));
return t.join("")
}
for (var o = 0, a = !1, s = !1, l = 0, c = e.length; l < c; ++l) {
var u = e[l];
if (u.ignoreCase) s = !0;
else if (/[a-z]/i.test(u.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
a = !0, s = !1;
break
}
}
var d = {
b: 8,
t: 9,
n: 10,
v: 11,
f: 12,
r: 13
},
h = [];
for (l = 0, c = e.length; l < c; ++l) {
if ((u = e[l]).global || u.multiline) throw Error("" + u);
h.push("(?:" + r(u) + ")")
}
return RegExp(h.join("|"), s ? "gi" : "g")
}(o)
}();
var a = n.length;
return function t(s) {
for (var l = s.d, c = [l, "pln"], u = 0, d = s.a.match(i) || [], h = {}, f = 0, p = d.length; f < p; ++f) {
var g, m = d[f],
v = h[m],
y = void 0;
if ("string" == typeof v) g = !1;
else {
var b = r[m.charAt(0)];
if (b) y = m.match(b[1]), v = b[0];
else {
for (g = 0; g < a; ++g)
if (b = n[g], y = m.match(b[1])) {
v = b[0];
break
}
y || (v = "pln")
}!(g = v.length >= 5 && "lang-" === v.substring(0, 5)) || y && "string" == typeof y[1] || (g = !1, v = "src"), g || (h[m] = v)
}
if (b = u, u += m.length, g) {
g = y[1];
var w = m.indexOf(g),
x = w + g.length;
y[2] && (w = (x = m.length - y[2].length) - g.length), v = v.substring(5), e(l + b, m.substring(0, w), t, c), e(l + b + w, g, o(v, g), c), e(l + b + x, m.substring(x), t, c)
} else c.push(l + b, v)
}
s.e = c
}
}
function n(e) {
var n = [],
i = [];
e.tripleQuotedStrings ? n.push(["str", /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, "'\""]) : e.multiLineStrings ? n.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, q, "'\"`"]) : n.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, "\"'"]), e.verbatimStrings && i.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, q]);
var r = e.hashComments;
return r && (e.cStyleComments ? (r > 1 ? n.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, "#"]) : n.push(["com", /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/, q, "#"]), i.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, q])) : n.push(["com", /^#[^\n\r]*/, q, "#"])), e.cStyleComments && (i.push(["com", /^\/\/[^\n\r]*/, q]), i.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, q])), e.regexLiterals && i.push(["lang-regex", /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]), (r = e.types) && i.push(["typ", r]), (e = ("" + e.keywords).replace(/^ | $/g, "")).length && i.push(["kwd", RegExp("^(?:" + e.replace(/[\s,]+/g, "|") + ")\\b"), q]), n.push(["pln", /^\s+/, q, " \r\n\t "]), i.push(["lit", /^@[$_a-z][\w$@]*/i, q], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ["pln", /^[$_a-z][\w$@]*/i, q], ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, "0123456789"], ["pln", /^\\[\S\s]?/, q], ["pun", /^.[^\s\w"-$'./@\\`]*/, q]), t(n, i)
}
function i(e, t) {
function n(e) {
switch (e.nodeType) {
case 1:
if (o.test(e.className)) break;
if ("BR" === e.nodeName) i(e), e.parentNode && e.parentNode.removeChild(e);
else
for (e = e.firstChild; e; e = e.nextSibling) n(e);
break;
case 3:
case 4:
if (l) {
var t = e.nodeValue,
r = t.match(a);
if (r) {
var c = t.substring(0, r.index);
e.nodeValue = c, (t = t.substring(r.index + r[0].length)) && e.parentNode.insertBefore(s.createTextNode(t), e.nextSibling), i(e), c || e.parentNode.removeChild(e)
}
}
}
}
function i(e) {
for (; !e.nextSibling;)
if (!(e = e.parentNode)) return;
var t;
for (e = function e(t, n) {
var i = n ? t.cloneNode(!1) : t;
if (r = t.parentNode) {
var r = e(r, 1),
o = t.nextSibling;
r.appendChild(i);
for (var a = o; a; a = o) o = a.nextSibling, r.appendChild(a)
}
return i
}(e.nextSibling, 0);
(t = e.parentNode) && 1 === t.nodeType;) e = t;
c.push(e)
}
var r, o = /(?:^|\s)nocode(?:\s|$)/,
a = /\r\n?|\n/,
s = e.ownerDocument;
e.currentStyle ? r = e.currentStyle.whiteSpace : window.getComputedStyle && (r = s.defaultView.getComputedStyle(e, q).getPropertyValue("white-space"));
var l = r && "pre" === r.substring(0, 3);
for (r = s.createElement("LI"); e.firstChild;) r.appendChild(e.firstChild);
for (var c = [r], u = 0; u < c.length; ++u) n(c[u]);
t === (0 | t) && c[0].setAttribute("value", t);
var d = s.createElement("OL");
d.className = "linenums";
for (var h = Math.max(0, t - 1 | 0) || 0, f = (u = 0, c.length); u < f; ++u)(r = c[u]).className = "L" + (u + h) % 10, r.firstChild || r.appendChild(s.createTextNode(" ")), d.appendChild(r);
e.appendChild(d)
}
function r(e, t) {
for (var n = t.length; --n >= 0;) {
var i = t[n];
v.hasOwnProperty(i) ? window.console && console.warn("cannot override language handler %s", i) : v[i] = e
}
}
function o(e, t) {
return e && v.hasOwnProperty(e) || (e = /^\s*</.test(t) ? "default-markup" : "default-code"), v[e]
}
function a(e) {
var t = e.g;
try {
var n = (c = function(e) {
var t, n = /(?:^|\s)nocode(?:\s|$)/,
i = [],
r = 0,
o = [],
a = 0;
e.currentStyle ? t = e.currentStyle.whiteSpace : window.getComputedStyle && (t = document.defaultView.getComputedStyle(e, q).getPropertyValue("white-space"));
var s = t && "pre" === t.substring(0, 3);
return function e(t) {
switch (t.nodeType) {
case 1:
if (n.test(t.className)) break;
for (var l = t.firstChild; l; l = l.nextSibling) e(l);
"BR" !== (l = t.nodeName) && "LI" !== l || (i[a] = "\n", o[a << 1] = r++, o[a++ << 1 | 1] = t);
break;
case 3:
case 4:
(l = t.nodeValue).length && (l = s ? l.replace(/\r\n?/g, "\n") : l.replace(/[\t\n\r ]+/g, " "), i[a] = l, o[a << 1] = r, r += l.length, o[a++ << 1 | 1] = t)
}
}(e), {
a: i.join("").replace(/\n$/, ""),
c: o
}
}(e.h)).a;
e.a = n, e.c = c.c, e.d = 0, o(t, n)(e);
var i, r, a = /\bMSIE\b/.test(navigator.userAgent),
s = (t = /\n/g, e.a),
l = s.length,
c = 0,
u = e.c,
d = u.length,
h = (n = 0, e.e),
f = h.length;
e = 0;
for (h[f] = l, r = i = 0; r < f;) h[r] !== h[r + 2] ? (h[i++] = h[r++], h[i++] = h[r++]) : r += 2;
for (f = i, r = i = 0; r < f;) {
for (var p = h[r], g = h[r + 1], m = r + 2; m + 2 <= f && h[m + 1] === g;) m += 2;
h[i++] = p, h[i++] = g, r = m
}
for (h.length = i; n < d;) {
var v, y = u[n + 2] || l,
b = h[e + 2] || l,
w = (m = Math.min(y, b), u[n + 1]);
if (1 !== w.nodeType && (v = s.substring(c, m))) {
a && (v = v.replace(t, "\r")), w.nodeValue = v;
var x = w.ownerDocument,
_ = x.createElement("SPAN");
_.className = h[e + 1];
var C = w.parentNode;
C.replaceChild(_, w), _.appendChild(w), c < y && (u[n + 1] = w = x.createTextNode(s.substring(m, y)), C.insertBefore(w, _.nextSibling))
}(c = m) >= y && (n += 2), c >= b && (e += 2)
}
} catch (e) {
"console" in window && console.log(e && e.stack ? e.stack : e)
}
}
var s, l, c = [s = [
[l = ["break,continue,do,else,for,if,return,while"], "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"
], "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
u = [s, "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
d = [u, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],
h = [l, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
f = [l, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
p = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,
g = /\S/,
m = n({
keywords: [c, d, s = [s, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"], "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" + h, f, l = [l, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"]],
hashComments: !0,
cStyleComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}),
v = {};
r(m, ["default-code"]), r(t([], [
["pln", /^[^<?]+/],
["dec", /^<!\w[^>]*(?:>|$)/],
["com", /^<\!--[\S\s]*?(?:--\>|$)/],
["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
["lang-", /^<%([\S\s]+?)(?:%>|$)/],
["pun", /^(?:<[%?]|[%?]>)/],
["lang-", /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],
["lang-js", /^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],
["lang-css", /^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],
["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]
]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]), r(t([
["pln", /^\s+/, q, " \t\r\n"],
["atv", /^(?:"[^"]*"?|'[^']*'?)/, q, "\"'"]
], [
["tag", /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],
["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
["lang-uq.val", /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],
["pun", /^[/<->]+/],
["lang-js", /^on\w+\s*=\s*"([^"]+)"/i],
["lang-js", /^on\w+\s*=\s*'([^']+)'/i],
["lang-js", /^on\w+\s*=\s*([^\s"'>]+)/i],
["lang-css", /^style\s*=\s*"([^"]+)"/i],
["lang-css", /^style\s*=\s*'([^']+)'/i],
["lang-css", /^style\s*=\s*([^\s"'>]+)/i]
]), ["in.tag"]), r(t([], [
["atv", /^[\S\s]+/]
]), ["uq.val"]), r(n({
keywords: c,
hashComments: !0,
cStyleComments: !0,
types: p
}), ["c", "cc", "cpp", "cxx", "cyc", "m"]), r(n({
keywords: "null,true,false"
}), ["json"]), r(n({
keywords: d,
hashComments: !0,
cStyleComments: !0,
verbatimStrings: !0,
types: p
}), ["cs"]), r(n({
keywords: u,
cStyleComments: !0
}), ["java"]), r(n({
keywords: l,
hashComments: !0,
multiLineStrings: !0
}), ["bsh", "csh", "sh"]), r(n({
keywords: h,
hashComments: !0,
multiLineStrings: !0,
tripleQuotedStrings: !0
}), ["cv", "py"]), r(n({
keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["perl", "pl", "pm"]), r(n({
keywords: f,
hashComments: !0,
multiLineStrings: !0,
regexLiterals: !0
}), ["rb"]), r(n({
keywords: s,
cStyleComments: !0,
regexLiterals: !0
}), ["js"]), r(n({
keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
hashComments: 3,
cStyleComments: !0,
multilineStrings: !0,
tripleQuotedStrings: !0,
regexLiterals: !0
}), ["coffee"]), r(t([], [
["str", /^[\S\s]+/]
]), ["regex"]), window.prettyPrintOne = function(e, t, n) {
var r = document.createElement("PRE");
return r.innerHTML = e, n && i(r, n), a({
g: t,
i: n,
h: r
}), r.innerHTML
}, window.prettyPrint = function(e) {
for (var t = [document.getElementsByTagName("pre"), document.getElementsByTagName("code"), document.getElementsByTagName("xmp")], n = [], r = 0; r < t.length; ++r)
for (var o = 0, s = t[r].length; o < s; ++o) n.push(t[r][o]);
t = q;
var l = Date;
l.now || (l = {
now: function() {
return +new Date
}
});
var c = 0,
u = /\blang(?:uage)?-([\w.]+)(?!\S)/;
! function t() {
for (var r = window.PR_SHOULD_USE_CONTINUATION ? l.now() + 250 : 1 / 0; c < n.length && l.now() < r; c++) {
var o = n[c];
if ((s = o.className).indexOf("prettyprint") >= 0) {
var s, d, h;
if (h = !(s = s.match(u))) {
for (var f = void 0, p = (h = o).firstChild; p; p = p.nextSibling) {
var m = p.nodeType;
f = 1 === m ? f ? h : p : 3 === m && g.test(p.nodeValue) ? h : f
}
h = (d = f === h ? void 0 : f) && "CODE" === d.tagName
}
for (h && (s = d.className.match(u)), s && (s = s[1]), h = !1, f = o.parentNode; f; f = f.parentNode)
if (("pre" === f.tagName || "code" === f.tagName || "xmp" === f.tagName) && f.className && f.className.indexOf("prettyprint") >= 0) {
h = !0;
break
}
h || ((h = !!(h = o.className.match(/\blinenums\b(?::(\d+))?/)) && (!h[1] || !h[1].length || +h[1])) && i(o, h), a({
g: s,
h: o,
i: h
}))
}
}
c < n.length ? setTimeout(t, 250) : e && e()
}()
}, window.PR = {
createSimpleLexer: t,
registerLangHandler: r,
sourceDecorator: n,
PR_ATTRIB_NAME: "atn",
PR_ATTRIB_VALUE: "atv",
PR_COMMENT: "com",
PR_DECLARATION: "dec",
PR_KEYWORD: "kwd",
PR_LITERAL: "lit",
PR_NOCODE: "nocode",
PR_PLAIN: "pln",
PR_PUNCTUATION: "pun",
PR_SOURCE: "src",
PR_STRING: "str",
PR_TAG: "tag",
PR_TYPE: "typ"
}
}();