! 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 && "function" != typeof e.item
        },
        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.6.4",
        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,
            S = le(),
            k = le(),
            T = le(),
            A = le(),
            D = function(e, t) {
                return e === t && (d = !0), 0
            },
            E = {}.hasOwnProperty,
            O = [],
            M = O.pop,
            I = O.push,
            P = O.push,
            L = O.slice,
            N = function(e, t) {
                for (var n = 0, i = e.length; n < i; n++)
                    if (e[n] === t) return n;
                return -1
            },
            F = "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("^(?:" + F + ")$", "i"),
                needsContext: new RegExp("^" + R + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + R + "*((?:-\\d)?\\d*)" + R + "*\\)|)(?=[^-]|$)", "i")
            },
            G = /HTML$/i,
            K = /^(?:input|select|textarea|button)$/i,
            Q = /^h\d$/i,
            Z = /^[^{]+\{\s*\[native \w/,
            J = /^(?:#([\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(O = L.call(x.childNodes), x.childNodes), O[x.childNodes.length].nodeType
        } catch (t) {
            P = {
                apply: O.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 = J.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 && !A[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) {
                        A(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 && e.namespaceURI,
                    n = e && (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.cssHas = ue((function() {
                    try {
                        return f.querySelector(":has(*,:jqfake)"), !1
                    } catch (e) {
                        return !0
                    }
                })), 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 = Z.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 = Z.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|" + F + ")"), 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 = Z.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)
                })), n.cssHas || m.push(":has"), m = m.length && new RegExp(m.join("|")), v = v.length && new RegExp(v.join("|")), t = Z.test(p.compareDocumentPosition), b = t || Z.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
                }, D = 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 ? N(u, e) - N(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 ? N(u, e) - N(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 && !A[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) {
                    A(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 && E.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(D), 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 = S[e + " "];
                        return t || (t = new RegExp("(^|" + R + ")" + e + "(" + R + "|$)")) && S(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 = N(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 Q.test(e.nodeName)
                    },
                    input: function(e) {
                        return K.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 ? N(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 Se(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 < N(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 && Se(e.slice(l, r)), r < o && Se(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 = k[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) : k(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 = Se(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),
                        S = _ += null == x ? 1 : Math.random() || .1,
                        k = C.length;
                    for (u && (c = t == f || t || u); y !== k && 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 && (_ = S)
                        }
                        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] = M.call(a));
                            w = _e(w)
                        }
                        P.apply(a, w), u && !e && 0 < w.length && 1 < v + o.length && se.uniqueSort(a)
                    }
                    return u && (_ = S, 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(D).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(F, (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 S = 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
        },
        k = 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 A(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    }
    var D = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

    function E(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(E(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(E(this, e || [], !0))
        },
        is: function(e) {
            return !!E(this, "string" == typeof e && T.test(e) ? x(e) : e || [], !1).length
        }
    });
    var O, M = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (x.fn.init = function(e, t, n) {
        var i, r;
        if (!e) return this;
        if (n = n || O, "string" == typeof e) {
            if (!(i = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : M.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)), D.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, O = 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 S(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return S(e, "parentNode", n)
        },
        next: function(e) {
            return L(e, "nextSibling")
        },
        prev: function(e) {
            return L(e, "previousSibling")
        },
        nextAll: function(e) {
            return S(e, "nextSibling")
        },
        prevAll: function(e) {
            return S(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return S(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return S(e, "previousSibling", n)
        },
        siblings: function(e) {
            return k((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return k(e.firstChild)
        },
        contents: function(e) {
            return null != e.contentDocument && i(e.contentDocument) ? e.contentDocument : (A(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 N = /[^\x20\t\r\n\f]+/g;

    function F(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(N) || [], (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, F, r), a(o, n, R, r)) : (o++, c.call(e, a(o, n, F, r), a(o, n, R, r), a(o, n, F, n.notifyWith))) : (i !== F && (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 : F, e.notifyWith)), n[1][3].add(a(0, e, p(t) ? t : F)), 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(N) || []).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,
        K = new X,
        Q = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
        Z = /[A-Z]/g;

    function J(e, t, n) {
        var i, r;
        if (void 0 === n && 1 === e.nodeType)
            if (i = "data-" + t.replace(Z, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(i))) {
                try {
                    n = "true" === (r = n) || "false" !== r && ("null" === r ? null : r === +r + "" ? +r : Q.test(r) ? JSON.parse(r) : r)
                } catch (e) {}
                K.set(e, t, n)
            } else n = void 0;
        return n
    }
    x.extend({
        hasData: function(e) {
            return K.hasData(e) || G.hasData(e)
        },
        data: function(e, t, n) {
            return K.access(e, t, n)
        },
        removeData: function(e, t) {
            K.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 = K.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)), J(o, i, r[i]));
                    G.set(o, "hasDataAttrs", !0)
                }
                return r
            }
            return "object" == typeof e ? this.each((function() {
                K.set(this, e)
            })) : B(this, (function(t) {
                var n;
                if (o && void 0 === t) return void 0 !== (n = K.get(o, e)) || void 0 !== (n = J(o, e)) ? n : void 0;
                this.each((function() {
                    K.set(this, e, t)
                }))
            }), null, t, 1 < arguments.length, null, !0)
        },
        removeData: function(e) {
            return this.each((function() {
                K.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 && A(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 = /^([^.]*)(?:\.(.+)|)/;

    function xe() {
        return !0
    }

    function _e() {
        return !1
    }

    function Ce(e, t) {
        return e === function() {
            try {
                return m.activeElement
            } catch (e) {}
        }() == ("focus" === t)
    }

    function Se(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) Se(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 = _e;
        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 ke(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 && 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, xe)
    }
    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(N) || [""]).length; c--;) f = g = (s = we.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(N) || [""]).length; c--;)
                    if (f = g = (s = we.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 && A(t, "input") && ke(t, "click", xe), !1
                },
                trigger: function(e) {
                    var t = this || e;
                    return he.test(t.type) && t.click && A(t, "input") && ke(t, "click"), !0
                },
                _default: function(e) {
                    var t = e.target;
                    return he.test(t.type) && t.click && A(t, "input") && G.get(t, "click") || A(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 ? xe : _e, 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: _e,
        isPropagationStopped: _e,
        isImmediatePropagationStopped: _e,
        isSimulated: !1,
        preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = xe, e && !this.isSimulated && e.preventDefault()
        },
        stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = xe, e && !this.isSimulated && e.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = xe, 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: !0
    }, x.event.addProp), x.each({
        focus: "focusin",
        blur: "focusout"
    }, (function(e, t) {
        x.event.special[e] = {
            setup: function() {
                return ke(this, e, Ce), !1
            },
            trigger: function() {
                return ke(this, e), !0
            },
            _default: function(t) {
                return G.get(t.target, e)
            },
            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 Se(this, e, t, n, i)
        },
        one: function(e, t, n, i) {
            return Se(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 = _e), this.each((function() {
                x.event.remove(this, e, n, t)
            }))
        }
    });
    var Te = /<script|<style|<link/i,
        Ae = /checked\s*(?:[^=]|=\s*.checked.)/i,
        De = /^\s*<!\[CDATA\[|\]\]>\s*$/g;

    function Ee(e, t) {
        return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && x(e).children("tbody")[0] || e
    }

    function Oe(e) {
        return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
    }

    function Me(e) {
        return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
    }

    function Ie(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]);
            K.hasData(e) && (o = K.access(e), a = x.extend({}, o), K.set(t, a))
        }
    }

    function Pe(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())), Pe(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"), Oe)).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, Me), 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(De, ""), c, u))
        }
        return e
    }

    function Le(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++) Ie(o[i], a[i]);
                else Ie(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[K.expando] && (n[K.expando] = void 0)
                }
        }
    }), x.fn.extend({
        detach: function(e) {
            return Le(this, e, !0)
        },
        remove: function(e) {
            return Le(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 Pe(this, arguments, (function(e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Ee(this, e).appendChild(e)
            }))
        },
        prepend: function() {
            return Pe(this, arguments, (function(e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var t = Ee(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            }))
        },
        before: function() {
            return Pe(this, arguments, (function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            }))
        },
        after: function() {
            return Pe(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 && !Te.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 Pe(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 Ne = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"),
        Fe = /^--/,
        Re = function(t) {
            var n = t.ownerDocument.defaultView;
            return n && n.opener || (n = e), n.getComputedStyle(t)
        },
        je = 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
        },
        $e = new RegExp(ne.join("|"), "i"),
        ze = "[\\x20\\t\\r\\n\\f]",
        He = new RegExp("^" + ze + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ze + "+$", "g");

    function Be(e, t, n) {
        var i, r, o, a, s = Fe.test(t),
            l = e.style;
        return (n = n || Re(e)) && (a = n.getPropertyValue(t) || n[t], s && a && (a = a.replace(He, "$1") || void 0), "" !== a || re(e) || (a = x.style(e, t)), !f.pixelBoxStyles() && Ne.test(a) && $e.test(t) && (i = l.width, r = l.minWidth, o = l.maxWidth, l.minWidth = l.maxWidth = l.width = a, a = n.width, l.width = i, l.minWidth = r, l.maxWidth = o)), void 0 !== a ? a + "" : a
    }

    function qe(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;border-collapse:separate", n.style.cssText = "border:1px solid", n.style.height = "1px", i.style.height = "9px", i.style.display = "block", ie.appendChild(t).appendChild(n).appendChild(i), r = e.getComputedStyle(n), s = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === n.offsetHeight, ie.removeChild(t)), s
            }
        }))
    }();
    var We = ["Webkit", "Moz", "ms"],
        Ue = m.createElement("div").style,
        Ve = {};

    function Ye(e) {
        return x.cssProps[e] || Ve[e] || (e in Ue ? e : Ve[e] = function(e) {
            for (var t = e[0].toUpperCase() + e.slice(1), n = We.length; n--;)
                if ((e = We[n] + t) in Ue) return e
        }(e) || e)
    }
    var Xe = /^(none|table(?!-c[ea]).+)/,
        Ge = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        },
        Ke = {
            letterSpacing: "0",
            fontWeight: "400"
        };

    function Qe(e, t, n) {
        var i = te.exec(t);
        return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t
    }

    function Ze(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 Je(e, t, n) {
        var i = Re(e),
            r = (!f.boxSizingReliable() || n) && "border-box" === x.css(e, "boxSizing", !1, i),
            o = r,
            a = Be(e, t, i),
            s = "offset" + t[0].toUpperCase() + t.slice(1);
        if (Ne.test(a)) {
            if (!n) return a;
            a = "auto"
        }
        return (!f.boxSizingReliable() && r || !f.reliableTrDimensions() && A(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) + Ze(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 = Be(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 = Fe.test(t),
                    c = e.style;
                if (l || (t = Ye(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 Fe.test(t) || (t = Ye(s)), (a = x.cssHooks[t] || x.cssHooks[s]) && "get" in a && (r = a.get(e, !0, n)), void 0 === r && (r = Be(e, t, i)), "normal" === r && t in Ke && (r = Ke[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 !Xe.test(x.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? Je(e, t, i) : je(e, Ge, (function() {
                    return Je(e, t, i)
                }))
            },
            set: function(e, n, i) {
                var r, o = Re(e),
                    a = !f.scrollboxSize() && "absolute" === o.position,
                    s = (a || i) && "border-box" === x.css(e, "boxSizing", !1, o),
                    l = i ? Ze(e, t, i, s, o) : 0;
                return s && a && (l -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - .5)), l && (r = te.exec(n)) && "px" !== (r[3] || "px") && (e.style[t] = n, n = x.css(e, t)), Qe(0, n, l)
            }
        }
    })), x.cssHooks.marginLeft = qe(f.reliableMarginLeft, (function(e, t) {
        if (t) return (parseFloat(Be(e, "marginLeft")) || e.getBoundingClientRect().left - je(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 = Qe)
    })), 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 = Re(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[Ye(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(N);
            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 && A(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(N);
            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(N) || []).join(" ")
    }

    function vt(e) {
        return e.getAttribute && e.getAttribute("class") || ""
    }

    function yt(e) {
        return Array.isArray(e) ? e : "string" == typeof e && e.match(N) || []
    }
    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;
            return p(e) ? this.each((function(t) {
                x(this).addClass(e.call(this, t, vt(this)))
            })) : (t = yt(e)).length ? this.each((function() {
                if (i = vt(this), n = 1 === this.nodeType && " " + mt(i) + " ") {
                    for (o = 0; o < t.length; o++) r = t[o], n.indexOf(" " + r + " ") < 0 && (n += r + " ");
                    a = mt(n), i !== a && this.setAttribute("class", a)
                }
            })) : this
        },
        removeClass: function(e) {
            var t, n, i, r, o, a;
            return p(e) ? this.each((function(t) {
                x(this).removeClass(e.call(this, t, vt(this)))
            })) : arguments.length ? (t = yt(e)).length ? this.each((function() {
                if (i = vt(this), n = 1 === this.nodeType && " " + mt(i) + " ") {
                    for (o = 0; o < t.length; o++)
                        for (r = t[o]; - 1 < n.indexOf(" " + r + " ");) n = n.replace(" " + r + " ", " ");
                    a = mt(n), i !== a && this.setAttribute("class", a)
                }
            })) : this : this.attr("class", "")
        },
        toggleClass: function(e, t) {
            var n, i, r, o, a = typeof e,
                s = "string" === a || Array.isArray(e);
            return p(e) ? this.each((function(n) {
                x(this).toggleClass(e.call(this, n, vt(this), t), t)
            })) : "boolean" == typeof t && s ? t ? this.addClass(e) : this.removeClass(e) : (n = yt(e), this.each((function() {
                if (s)
                    for (o = x(this), r = 0; r < n.length; r++) i = n[r], o.hasClass(i) ? o.removeClass(i) : o.addClass(i);
                else void 0 !== e && "boolean" !== a || ((i = vt(this)) && G.set(this, "__className__", i), this.setAttribute && this.setAttribute("class", i || !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 || !A(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()
        },
        St = /\?/;
    x.parseXML = function(t) {
        var n, i;
        if (!t || "string" != typeof t) return null;
        try {
            n = (new e.DOMParser).parseFromString(t, "text/xml")
        } catch (t) {}
        return i = n && n.getElementsByTagName("parsererror")[0], n && !i || x.error("Invalid XML: " + (i ? x.map(i.childNodes, (function(e) {
            return e.textContent
        })).join("\n") : t)), n
    };
    var kt = /\[\]$/,
        Tt = /\r?\n/g,
        At = /^(?:submit|button|image|reset|file)$/i,
        Dt = /^(?:input|select|textarea|keygen)/i;

    function Et(e, t, n, i) {
        var r;
        if (Array.isArray(t)) x.each(t, (function(t, r) {
            n || kt.test(e) ? i(e, r) : Et(e + "[" + ("object" == typeof r && null != r ? t : "") + "]", r, n, i)
        }));
        else if (n || "object" !== b(t)) i(e, t);
        else
            for (r in t) Et(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) Et(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") && Dt.test(this.nodeName) && !At.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 Ot = /%20/g,
        Mt = /#.*$/,
        It = /([?&])_=[^&]*/,
        Pt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
        Lt = /^(?:GET|HEAD)$/,
        Nt = /^\/\//,
        Ft = {},
        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(N) || [];
            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(Ft),
        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",
                S = {
                    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) S.always(e[S.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), k(0, t), this
                    }
                };
            if (v.promise(S), f.url = ((t || f.url || _t.href) + "").replace(Nt, _t.protocol + "//"), f.type = n.method || n.type || f.method || f.type, f.dataTypes = (f.dataType || "*").toLowerCase().match(N) || [""], 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(Ft, f, n, S), c) return S;
            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(Mt, ""), f.hasContent ? f.data && f.processData && 0 === (f.contentType || "").indexOf("application/x-www-form-urlencoded") && (f.data = f.data.replace(Ot, "+")) : (h = f.url.slice(r.length), f.data && (f.processData || "string" == typeof f.data) && (r += (St.test(r) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (r = r.replace(It, "$1"), h = (St.test(r) ? "&" : "?") + "_=" + Ct.guid++ + h), f.url = r + h), f.ifModified && (x.lastModified[r] && S.setRequestHeader("If-Modified-Since", x.lastModified[r]), x.etag[r] && S.setRequestHeader("If-None-Match", x.etag[r])), (f.data && f.hasContent && !1 !== f.contentType || n.contentType) && S.setRequestHeader("Content-Type", f.contentType), S.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) S.setRequestHeader(d, f.headers[d]);
            if (f.beforeSend && (!1 === f.beforeSend.call(p, S, f) || c)) return S.abort();
            if (C = "abort", y.add(f.complete), S.done(f.success), S.fail(f.error), i = Ht(Rt, f, n, S)) {
                if (S.readyState = 1, u && g.trigger("ajaxSend", [S, f]), c) return S;
                f.async && 0 < f.timeout && (s = e.setTimeout((function() {
                    S.abort("timeout")
                }), f.timeout));
                try {
                    c = !1, i.send(w, k)
                } catch (t) {
                    if (c) throw t;
                    k(-1, t)
                }
            } else k(-1, "No Transport");

            function k(t, n, a, l) {
                var d, h, m, w, _, C = n;
                c || (c = !0, s && e.clearTimeout(s), i = void 0, o = l || "", S.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, S, a)), !d && -1 < x.inArray("script", f.dataTypes) && x.inArray("json", f.dataTypes) < 0 && (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, S, d), d ? (f.ifModified && ((_ = S.getResponseHeader("Last-Modified")) && (x.lastModified[r] = _), (_ = S.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))), S.status = t, S.statusText = (n || C) + "", d ? v.resolveWith(p, [h, C, S]) : v.rejectWith(p, [S, C, m]), S.statusCode(b), b = void 0, u && g.trigger(d ? "ajaxSuccess" : "ajaxError", [S, f, d ? h : m]), y.fireWith(p, [S, C]), u && (g.trigger("ajaxComplete", [S, f]), --x.active || x.event.trigger("ajaxStop")))
            }
            return S
        },
        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 += (St.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 = D.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) : 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] = qe(f.pixelPosition, (function(e, n) {
            if (n) return n = Be(e, t), Ne.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])[\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 = A, 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, "$1")
    }, "function" == typeof define && define.amd && define("jquery", [], (function() {
        return x
    }));
    var Gt = e.jQuery,
        Kt = e.$;
    return x.noConflict = function(t) {
        return e.$ === x && (e.$ = Kt), 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 ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).bootstrap = t()
}(this, (function() {
    "use strict";
    const e = "transitionend",
        t = e => {
            let t = e.getAttribute("data-bs-target");
            if (!t || "#" === t) {
                let n = e.getAttribute("href");
                if (!n || !n.includes("#") && !n.startsWith(".")) return null;
                n.includes("#") && !n.startsWith("#") && (n = "#" + n.split("#")[1]), t = n && "#" !== n ? n.trim() : null
            }
            return t
        },
        n = e => {
            const n = t(e);
            return n && document.querySelector(n) ? n : null
        },
        i = e => {
            const n = t(e);
            return n ? document.querySelector(n) : null
        },
        r = t => {
            t.dispatchEvent(new Event(e))
        },
        o = e => !(!e || "object" != typeof e) && (void 0 !== e.jquery && (e = e[0]), void 0 !== e.nodeType),
        a = e => o(e) ? e.jquery ? e[0] : e : "string" == typeof e && e.length > 0 ? document.querySelector(e) : null,
        s = e => {
            if (!o(e) || 0 === e.getClientRects().length) return !1;
            const t = "visible" === getComputedStyle(e).getPropertyValue("visibility"),
                n = e.closest("details:not([open])");
            if (!n) return t;
            if (n !== e) {
                const t = e.closest("summary");
                if (t && t.parentNode !== n) return !1;
                if (null === t) return !1
            }
            return t
        },
        l = e => !e || e.nodeType !== Node.ELEMENT_NODE || !!e.classList.contains("disabled") || (void 0 !== e.disabled ? e.disabled : e.hasAttribute("disabled") && "false" !== e.getAttribute("disabled")),
        c = e => {
            if (!document.documentElement.attachShadow) return null;
            if ("function" == typeof e.getRootNode) {
                const t = e.getRootNode();
                return t instanceof ShadowRoot ? t : null
            }
            return e instanceof ShadowRoot ? e : e.parentNode ? c(e.parentNode) : null
        },
        u = () => {},
        d = e => {
            e.offsetHeight
        },
        h = () => window.jQuery && !document.body.hasAttribute("data-bs-no-jquery") ? window.jQuery : null,
        f = [],
        p = () => "rtl" === document.documentElement.dir,
        g = e => {
            var t;
            t = () => {
                const t = h();
                if (t) {
                    const n = e.NAME,
                        i = t.fn[n];
                    t.fn[n] = e.jQueryInterface, t.fn[n].Constructor = e, t.fn[n].noConflict = () => (t.fn[n] = i, e.jQueryInterface)
                }
            }, "loading" === document.readyState ? (f.length || document.addEventListener("DOMContentLoaded", () => {
                for (const e of f) e()
            }), f.push(t)) : t()
        },
        m = e => {
            "function" == typeof e && e()
        },
        v = (t, n, i = !0) => {
            if (!i) return void m(t);
            const o = (e => {
                if (!e) return 0;
                let {
                    transitionDuration: t,
                    transitionDelay: n
                } = window.getComputedStyle(e);
                const i = Number.parseFloat(t),
                    r = Number.parseFloat(n);
                return i || r ? (t = t.split(",")[0], n = n.split(",")[0], 1e3 * (Number.parseFloat(t) + Number.parseFloat(n))) : 0
            })(n) + 5;
            let a = !1;
            const s = ({
                target: i
            }) => {
                i === n && (a = !0, n.removeEventListener(e, s), m(t))
            };
            n.addEventListener(e, s), setTimeout(() => {
                a || r(n)
            }, o)
        },
        y = (e, t, n, i) => {
            const r = e.length;
            let o = e.indexOf(t);
            return -1 === o ? !n && i ? e[r - 1] : e[0] : (o += n ? 1 : -1, i && (o = (o + r) % r), e[Math.max(0, Math.min(o, r - 1))])
        },
        b = /[^.]*(?=\..*)\.|.*/,
        w = /\..*/,
        x = /::\d+$/,
        _ = {};
    let C = 1;
    const S = {
            mouseenter: "mouseover",
            mouseleave: "mouseout"
        },
        k = new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);

    function T(e, t) {
        return t && `${t}::${C++}` || e.uidEvent || C++
    }

    function A(e) {
        const t = T(e);
        return e.uidEvent = t, _[t] = _[t] || {}, _[t]
    }

    function D(e, t, n = null) {
        return Object.values(e).find(e => e.callable === t && e.delegationSelector === n)
    }

    function E(e, t, n) {
        const i = "string" == typeof t,
            r = i ? n : t || n;
        let o = P(e);
        return k.has(o) || (o = e), [i, r, o]
    }

    function O(e, t, n, i, r) {
        if ("string" != typeof t || !e) return;
        let [o, a, s] = E(t, n, i);
        if (t in S) {
            a = (e => function(t) {
                if (!t.relatedTarget || t.relatedTarget !== t.delegateTarget && !t.delegateTarget.contains(t.relatedTarget)) return e.call(this, t)
            })(a)
        }
        const l = A(e),
            c = l[s] || (l[s] = {}),
            u = D(c, a, o ? n : null);
        if (u) return void(u.oneOff = u.oneOff && r);
        const d = T(a, t.replace(b, "")),
            h = o ? function(e, t, n) {
                return function i(r) {
                    const o = e.querySelectorAll(t);
                    for (let {
                            target: a
                        } = r; a && a !== this; a = a.parentNode)
                        for (const s of o)
                            if (s === a) return N(r, {
                                delegateTarget: a
                            }), i.oneOff && L.off(e, r.type, t, n), n.apply(a, [r])
                }
            }(e, n, a) : function(e, t) {
                return function n(i) {
                    return N(i, {
                        delegateTarget: e
                    }), n.oneOff && L.off(e, i.type, t), t.apply(e, [i])
                }
            }(e, a);
        h.delegationSelector = o ? n : null, h.callable = a, h.oneOff = r, h.uidEvent = d, c[d] = h, e.addEventListener(s, h, o)
    }

    function M(e, t, n, i, r) {
        const o = D(t[n], i, r);
        o && (e.removeEventListener(n, o, Boolean(r)), delete t[n][o.uidEvent])
    }

    function I(e, t, n, i) {
        const r = t[n] || {};
        for (const o of Object.keys(r))
            if (o.includes(i)) {
                const i = r[o];
                M(e, t, n, i.callable, i.delegationSelector)
            }
    }

    function P(e) {
        return e = e.replace(w, ""), S[e] || e
    }
    const L = {
        on(e, t, n, i) {
            O(e, t, n, i, !1)
        },
        one(e, t, n, i) {
            O(e, t, n, i, !0)
        },
        off(e, t, n, i) {
            if ("string" != typeof t || !e) return;
            const [r, o, a] = E(t, n, i), s = a !== t, l = A(e), c = l[a] || {}, u = t.startsWith(".");
            if (void 0 === o) {
                if (u)
                    for (const n of Object.keys(l)) I(e, l, n, t.slice(1));
                for (const n of Object.keys(c)) {
                    const i = n.replace(x, "");
                    if (!s || t.includes(i)) {
                        const t = c[n];
                        M(e, l, a, t.callable, t.delegationSelector)
                    }
                }
            } else {
                if (!Object.keys(c).length) return;
                M(e, l, a, o, r ? n : null)
            }
        },
        trigger(e, t, n) {
            if ("string" != typeof t || !e) return null;
            const i = h();
            let r = null,
                o = !0,
                a = !0,
                s = !1;
            t !== P(t) && i && (r = i.Event(t, n), i(e).trigger(r), o = !r.isPropagationStopped(), a = !r.isImmediatePropagationStopped(), s = r.isDefaultPrevented());
            let l = new Event(t, {
                bubbles: o,
                cancelable: !0
            });
            return l = N(l, n), s && l.preventDefault(), a && e.dispatchEvent(l), l.defaultPrevented && r && r.preventDefault(), l
        }
    };

    function N(e, t) {
        for (const [n, i] of Object.entries(t || {})) try {
            e[n] = i
        } catch (t) {
            Object.defineProperty(e, n, {
                configurable: !0,
                get: () => i
            })
        }
        return e
    }
    const F = new Map,
        R = {
            set(e, t, n) {
                F.has(e) || F.set(e, new Map);
                const i = F.get(e);
                i.has(t) || 0 === i.size ? i.set(t, n) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)
            },
            get: (e, t) => F.has(e) && F.get(e).get(t) || null,
            remove(e, t) {
                if (!F.has(e)) return;
                const n = F.get(e);
                n.delete(t), 0 === n.size && F.delete(e)
            }
        };

    function j(e) {
        if ("true" === e) return !0;
        if ("false" === e) return !1;
        if (e === Number(e).toString()) return Number(e);
        if ("" === e || "null" === e) return null;
        if ("string" != typeof e) return e;
        try {
            return JSON.parse(decodeURIComponent(e))
        } catch (t) {
            return e
        }
    }

    function $(e) {
        return e.replace(/[A-Z]/g, e => "-" + e.toLowerCase())
    }
    const z = {
        setDataAttribute(e, t, n) {
            e.setAttribute("data-bs-" + $(t), n)
        },
        removeDataAttribute(e, t) {
            e.removeAttribute("data-bs-" + $(t))
        },
        getDataAttributes(e) {
            if (!e) return {};
            const t = {},
                n = Object.keys(e.dataset).filter(e => e.startsWith("bs") && !e.startsWith("bsConfig"));
            for (const i of n) {
                let n = i.replace(/^bs/, "");
                n = n.charAt(0).toLowerCase() + n.slice(1, n.length), t[n] = j(e.dataset[i])
            }
            return t
        },
        getDataAttribute: (e, t) => j(e.getAttribute("data-bs-" + $(t)))
    };
    class H {
        static get Default() {
            return {}
        }
        static get DefaultType() {
            return {}
        }
        static get NAME() {
            throw new Error('You have to implement the static method "NAME", for each component!')
        }
        _getConfig(e) {
            return e = this._mergeConfigObj(e), e = this._configAfterMerge(e), this._typeCheckConfig(e), e
        }
        _configAfterMerge(e) {
            return e
        }
        _mergeConfigObj(e, t) {
            const n = o(t) ? z.getDataAttribute(t, "config") : {};
            return { ...this.constructor.Default,
                ..."object" == typeof n ? n : {},
                ...o(t) ? z.getDataAttributes(t) : {},
                ..."object" == typeof e ? e : {}
            }
        }
        _typeCheckConfig(e, t = this.constructor.DefaultType) {
            for (const i of Object.keys(t)) {
                const r = t[i],
                    a = e[i],
                    s = o(a) ? "element" : null == (n = a) ? "" + n : Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();
                if (!new RegExp(r).test(s)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${s}" but expected type "${r}".`)
            }
            var n
        }
    }
    class B extends H {
        constructor(e, t) {
            super(), (e = a(e)) && (this._element = e, this._config = this._getConfig(t), R.set(this._element, this.constructor.DATA_KEY, this))
        }
        dispose() {
            R.remove(this._element, this.constructor.DATA_KEY), L.off(this._element, this.constructor.EVENT_KEY);
            for (const e of Object.getOwnPropertyNames(this)) this[e] = null
        }
        _queueCallback(e, t, n = !0) {
            v(e, t, n)
        }
        _getConfig(e) {
            return e = this._mergeConfigObj(e, this._element), e = this._configAfterMerge(e), this._typeCheckConfig(e), e
        }
        static getInstance(e) {
            return R.get(a(e), this.DATA_KEY)
        }
        static getOrCreateInstance(e, t = {}) {
            return this.getInstance(e) || new this(e, "object" == typeof t ? t : null)
        }
        static get VERSION() {
            return "5.2.3"
        }
        static get DATA_KEY() {
            return "bs." + this.NAME
        }
        static get EVENT_KEY() {
            return "." + this.DATA_KEY
        }
        static eventName(e) {
            return `${e}${this.EVENT_KEY}`
        }
    }
    const q = (e, t = "hide") => {
        const n = "click.dismiss" + e.EVENT_KEY,
            r = e.NAME;
        L.on(document, n, `[data-bs-dismiss="${r}"]`, (function(n) {
            if (["A", "AREA"].includes(this.tagName) && n.preventDefault(), l(this)) return;
            const o = i(this) || this.closest("." + r);
            e.getOrCreateInstance(o)[t]()
        }))
    };
    class W extends B {
        static get NAME() {
            return "alert"
        }
        close() {
            if (L.trigger(this._element, "close.bs.alert").defaultPrevented) return;
            this._element.classList.remove("show");
            const e = this._element.classList.contains("fade");
            this._queueCallback(() => this._destroyElement(), this._element, e)
        }
        _destroyElement() {
            this._element.remove(), L.trigger(this._element, "closed.bs.alert"), this.dispose()
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = W.getOrCreateInstance(this);
                if ("string" == typeof e) {
                    if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
                    t[e](this)
                }
            }))
        }
    }
    q(W, "close"), g(W);
    const U = '[data-bs-toggle="button"]';
    class V extends B {
        static get NAME() {
            return "button"
        }
        toggle() {
            this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"))
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = V.getOrCreateInstance(this);
                "toggle" === e && t[e]()
            }))
        }
    }
    L.on(document, "click.bs.button.data-api", U, e => {
        e.preventDefault();
        const t = e.target.closest(U);
        V.getOrCreateInstance(t).toggle()
    }), g(V);
    const Y = {
            find: (e, t = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(t, e)),
            findOne: (e, t = document.documentElement) => Element.prototype.querySelector.call(t, e),
            children: (e, t) => [].concat(...e.children).filter(e => e.matches(t)),
            parents(e, t) {
                const n = [];
                let i = e.parentNode.closest(t);
                for (; i;) n.push(i), i = i.parentNode.closest(t);
                return n
            },
            prev(e, t) {
                let n = e.previousElementSibling;
                for (; n;) {
                    if (n.matches(t)) return [n];
                    n = n.previousElementSibling
                }
                return []
            },
            next(e, t) {
                let n = e.nextElementSibling;
                for (; n;) {
                    if (n.matches(t)) return [n];
                    n = n.nextElementSibling
                }
                return []
            },
            focusableChildren(e) {
                const t = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map(e => e + ':not([tabindex^="-"])').join(",");
                return this.find(t, e).filter(e => !l(e) && s(e))
            }
        },
        X = {
            endCallback: null,
            leftCallback: null,
            rightCallback: null
        },
        G = {
            endCallback: "(function|null)",
            leftCallback: "(function|null)",
            rightCallback: "(function|null)"
        };
    class K extends H {
        constructor(e, t) {
            super(), this._element = e, e && K.isSupported() && (this._config = this._getConfig(t), this._deltaX = 0, this._supportPointerEvents = Boolean(window.PointerEvent), this._initEvents())
        }
        static get Default() {
            return X
        }
        static get DefaultType() {
            return G
        }
        static get NAME() {
            return "swipe"
        }
        dispose() {
            L.off(this._element, ".bs.swipe")
        }
        _start(e) {
            this._supportPointerEvents ? this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX) : this._deltaX = e.touches[0].clientX
        }
        _end(e) {
            this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX - this._deltaX), this._handleSwipe(), m(this._config.endCallback)
        }
        _move(e) {
            this._deltaX = e.touches && e.touches.length > 1 ? 0 : e.touches[0].clientX - this._deltaX
        }
        _handleSwipe() {
            const e = Math.abs(this._deltaX);
            if (e <= 40) return;
            const t = e / this._deltaX;
            this._deltaX = 0, t && m(t > 0 ? this._config.rightCallback : this._config.leftCallback)
        }
        _initEvents() {
            this._supportPointerEvents ? (L.on(this._element, "pointerdown.bs.swipe", e => this._start(e)), L.on(this._element, "pointerup.bs.swipe", e => this._end(e)), this._element.classList.add("pointer-event")) : (L.on(this._element, "touchstart.bs.swipe", e => this._start(e)), L.on(this._element, "touchmove.bs.swipe", e => this._move(e)), L.on(this._element, "touchend.bs.swipe", e => this._end(e)))
        }
        _eventIsPointerPenTouch(e) {
            return this._supportPointerEvents && ("pen" === e.pointerType || "touch" === e.pointerType)
        }
        static isSupported() {
            return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0
        }
    }
    const Q = "next",
        Z = "prev",
        J = "left",
        ee = "right",
        te = "slid.bs.carousel",
        ne = "carousel",
        ie = "active",
        re = {
            ArrowLeft: ee,
            ArrowRight: J
        },
        oe = {
            interval: 5e3,
            keyboard: !0,
            pause: "hover",
            ride: !1,
            touch: !0,
            wrap: !0
        },
        ae = {
            interval: "(number|boolean)",
            keyboard: "boolean",
            pause: "(string|boolean)",
            ride: "(boolean|string)",
            touch: "boolean",
            wrap: "boolean"
        };
    class se extends B {
        constructor(e, t) {
            super(e, t), this._interval = null, this._activeElement = null, this._isSliding = !1, this.touchTimeout = null, this._swipeHelper = null, this._indicatorsElement = Y.findOne(".carousel-indicators", this._element), this._addEventListeners(), this._config.ride === ne && this.cycle()
        }
        static get Default() {
            return oe
        }
        static get DefaultType() {
            return ae
        }
        static get NAME() {
            return "carousel"
        }
        next() {
            this._slide(Q)
        }
        nextWhenVisible() {
            !document.hidden && s(this._element) && this.next()
        }
        prev() {
            this._slide(Z)
        }
        pause() {
            this._isSliding && r(this._element), this._clearInterval()
        }
        cycle() {
            this._clearInterval(), this._updateInterval(), this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)
        }
        _maybeEnableCycle() {
            this._config.ride && (this._isSliding ? L.one(this._element, te, () => this.cycle()) : this.cycle())
        }
        to(e) {
            const t = this._getItems();
            if (e > t.length - 1 || e < 0) return;
            if (this._isSliding) return void L.one(this._element, te, () => this.to(e));
            const n = this._getItemIndex(this._getActive());
            if (n === e) return;
            const i = e > n ? Q : Z;
            this._slide(i, t[e])
        }
        dispose() {
            this._swipeHelper && this._swipeHelper.dispose(), super.dispose()
        }
        _configAfterMerge(e) {
            return e.defaultInterval = e.interval, e
        }
        _addEventListeners() {
            this._config.keyboard && L.on(this._element, "keydown.bs.carousel", e => this._keydown(e)), "hover" === this._config.pause && (L.on(this._element, "mouseenter.bs.carousel", () => this.pause()), L.on(this._element, "mouseleave.bs.carousel", () => this._maybeEnableCycle())), this._config.touch && K.isSupported() && this._addTouchEventListeners()
        }
        _addTouchEventListeners() {
            for (const e of Y.find(".carousel-item img", this._element)) L.on(e, "dragstart.bs.carousel", e => e.preventDefault());
            const e = {
                leftCallback: () => this._slide(this._directionToOrder(J)),
                rightCallback: () => this._slide(this._directionToOrder(ee)),
                endCallback: () => {
                    "hover" === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), 500 + this._config.interval))
                }
            };
            this._swipeHelper = new K(this._element, e)
        }
        _keydown(e) {
            if (/input|textarea/i.test(e.target.tagName)) return;
            const t = re[e.key];
            t && (e.preventDefault(), this._slide(this._directionToOrder(t)))
        }
        _getItemIndex(e) {
            return this._getItems().indexOf(e)
        }
        _setActiveIndicatorElement(e) {
            if (!this._indicatorsElement) return;
            const t = Y.findOne(".active", this._indicatorsElement);
            t.classList.remove(ie), t.removeAttribute("aria-current");
            const n = Y.findOne(`[data-bs-slide-to="${e}"]`, this._indicatorsElement);
            n && (n.classList.add(ie), n.setAttribute("aria-current", "true"))
        }
        _updateInterval() {
            const e = this._activeElement || this._getActive();
            if (!e) return;
            const t = Number.parseInt(e.getAttribute("data-bs-interval"), 10);
            this._config.interval = t || this._config.defaultInterval
        }
        _slide(e, t = null) {
            if (this._isSliding) return;
            const n = this._getActive(),
                i = e === Q,
                r = t || y(this._getItems(), n, i, this._config.wrap);
            if (r === n) return;
            const o = this._getItemIndex(r),
                a = t => L.trigger(this._element, t, {
                    relatedTarget: r,
                    direction: this._orderToDirection(e),
                    from: this._getItemIndex(n),
                    to: o
                });
            if (a("slide.bs.carousel").defaultPrevented) return;
            if (!n || !r) return;
            const s = Boolean(this._interval);
            this.pause(), this._isSliding = !0, this._setActiveIndicatorElement(o), this._activeElement = r;
            const l = i ? "carousel-item-start" : "carousel-item-end",
                c = i ? "carousel-item-next" : "carousel-item-prev";
            r.classList.add(c), d(r), n.classList.add(l), r.classList.add(l), this._queueCallback(() => {
                r.classList.remove(l, c), r.classList.add(ie), n.classList.remove(ie, c, l), this._isSliding = !1, a(te)
            }, n, this._isAnimated()), s && this.cycle()
        }
        _isAnimated() {
            return this._element.classList.contains("slide")
        }
        _getActive() {
            return Y.findOne(".active.carousel-item", this._element)
        }
        _getItems() {
            return Y.find(".carousel-item", this._element)
        }
        _clearInterval() {
            this._interval && (clearInterval(this._interval), this._interval = null)
        }
        _directionToOrder(e) {
            return p() ? e === J ? Z : Q : e === J ? Q : Z
        }
        _orderToDirection(e) {
            return p() ? e === Z ? J : ee : e === Z ? ee : J
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = se.getOrCreateInstance(this, e);
                if ("number" != typeof e) {
                    if ("string" == typeof e) {
                        if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
                        t[e]()
                    }
                } else t.to(e)
            }))
        }
    }
    L.on(document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", (function(e) {
        const t = i(this);
        if (!t || !t.classList.contains(ne)) return;
        e.preventDefault();
        const n = se.getOrCreateInstance(t),
            r = this.getAttribute("data-bs-slide-to");
        return r ? (n.to(r), void n._maybeEnableCycle()) : "next" === z.getDataAttribute(this, "slide") ? (n.next(), void n._maybeEnableCycle()) : (n.prev(), void n._maybeEnableCycle())
    })), L.on(window, "load.bs.carousel.data-api", () => {
        const e = Y.find('[data-bs-ride="carousel"]');
        for (const t of e) se.getOrCreateInstance(t)
    }), g(se);
    const le = "show",
        ce = "collapse",
        ue = "collapsing",
        de = '[data-bs-toggle="collapse"]',
        he = {
            parent: null,
            toggle: !0
        },
        fe = {
            parent: "(null|element)",
            toggle: "boolean"
        };
    class pe extends B {
        constructor(e, t) {
            super(e, t), this._isTransitioning = !1, this._triggerArray = [];
            const i = Y.find(de);
            for (const e of i) {
                const t = n(e),
                    i = Y.find(t).filter(e => e === this._element);
                null !== t && i.length && this._triggerArray.push(e)
            }
            this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle()
        }
        static get Default() {
            return he
        }
        static get DefaultType() {
            return fe
        }
        static get NAME() {
            return "collapse"
        }
        toggle() {
            this._isShown() ? this.hide() : this.show()
        }
        show() {
            if (this._isTransitioning || this._isShown()) return;
            let e = [];
            if (this._config.parent && (e = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(e => e !== this._element).map(e => pe.getOrCreateInstance(e, {
                    toggle: !1
                }))), e.length && e[0]._isTransitioning) return;
            if (L.trigger(this._element, "show.bs.collapse").defaultPrevented) return;
            for (const t of e) t.hide();
            const t = this._getDimension();
            this._element.classList.remove(ce), this._element.classList.add(ue), this._element.style[t] = 0, this._addAriaAndCollapsedClass(this._triggerArray, !0), this._isTransitioning = !0;
            const n = "scroll" + (t[0].toUpperCase() + t.slice(1));
            this._queueCallback(() => {
                this._isTransitioning = !1, this._element.classList.remove(ue), this._element.classList.add(ce, le), this._element.style[t] = "", L.trigger(this._element, "shown.bs.collapse")
            }, this._element, !0), this._element.style[t] = this._element[n] + "px"
        }
        hide() {
            if (this._isTransitioning || !this._isShown()) return;
            if (L.trigger(this._element, "hide.bs.collapse").defaultPrevented) return;
            const e = this._getDimension();
            this._element.style[e] = this._element.getBoundingClientRect()[e] + "px", d(this._element), this._element.classList.add(ue), this._element.classList.remove(ce, le);
            for (const e of this._triggerArray) {
                const t = i(e);
                t && !this._isShown(t) && this._addAriaAndCollapsedClass([e], !1)
            }
            this._isTransitioning = !0, this._element.style[e] = "", this._queueCallback(() => {
                this._isTransitioning = !1, this._element.classList.remove(ue), this._element.classList.add(ce), L.trigger(this._element, "hidden.bs.collapse")
            }, this._element, !0)
        }
        _isShown(e = this._element) {
            return e.classList.contains(le)
        }
        _configAfterMerge(e) {
            return e.toggle = Boolean(e.toggle), e.parent = a(e.parent), e
        }
        _getDimension() {
            return this._element.classList.contains("collapse-horizontal") ? "width" : "height"
        }
        _initializeChildren() {
            if (!this._config.parent) return;
            const e = this._getFirstLevelChildren(de);
            for (const t of e) {
                const e = i(t);
                e && this._addAriaAndCollapsedClass([t], this._isShown(e))
            }
        }
        _getFirstLevelChildren(e) {
            const t = Y.find(":scope .collapse .collapse", this._config.parent);
            return Y.find(e, this._config.parent).filter(e => !t.includes(e))
        }
        _addAriaAndCollapsedClass(e, t) {
            if (e.length)
                for (const n of e) n.classList.toggle("collapsed", !t), n.setAttribute("aria-expanded", t)
        }
        static jQueryInterface(e) {
            const t = {};
            return "string" == typeof e && /show|hide/.test(e) && (t.toggle = !1), this.each((function() {
                const n = pe.getOrCreateInstance(this, t);
                if ("string" == typeof e) {
                    if (void 0 === n[e]) throw new TypeError(`No method named "${e}"`);
                    n[e]()
                }
            }))
        }
    }
    L.on(document, "click.bs.collapse.data-api", de, (function(e) {
        ("A" === e.target.tagName || e.delegateTarget && "A" === e.delegateTarget.tagName) && e.preventDefault();
        const t = n(this),
            i = Y.find(t);
        for (const e of i) pe.getOrCreateInstance(e, {
            toggle: !1
        }).toggle()
    })), g(pe);
    var ge = "top",
        me = "bottom",
        ve = "right",
        ye = "left",
        be = "auto",
        we = [ge, me, ve, ye],
        xe = "start",
        _e = "end",
        Ce = "clippingParents",
        Se = "viewport",
        ke = "popper",
        Te = "reference",
        Ae = we.reduce((function(e, t) {
            return e.concat([t + "-" + xe, t + "-" + _e])
        }), []),
        De = [].concat(we, [be]).reduce((function(e, t) {
            return e.concat([t, t + "-" + xe, t + "-" + _e])
        }), []),
        Ee = "beforeRead",
        Oe = "afterRead",
        Me = "beforeMain",
        Ie = "afterMain",
        Pe = "beforeWrite",
        Le = "afterWrite",
        Ne = [Ee, "read", Oe, Me, "main", Ie, Pe, "write", Le];

    function Fe(e) {
        return e ? (e.nodeName || "").toLowerCase() : null
    }

    function Re(e) {
        if (null == e) return window;
        if ("[object Window]" !== e.toString()) {
            var t = e.ownerDocument;
            return t && t.defaultView || window
        }
        return e
    }

    function je(e) {
        return e instanceof Re(e).Element || e instanceof Element
    }

    function $e(e) {
        return e instanceof Re(e).HTMLElement || e instanceof HTMLElement
    }

    function ze(e) {
        return "undefined" != typeof ShadowRoot && (e instanceof Re(e).ShadowRoot || e instanceof ShadowRoot)
    }
    const He = {
        name: "applyStyles",
        enabled: !0,
        phase: "write",
        fn: function(e) {
            var t = e.state;
            Object.keys(t.elements).forEach((function(e) {
                var n = t.styles[e] || {},
                    i = t.attributes[e] || {},
                    r = t.elements[e];
                $e(r) && Fe(r) && (Object.assign(r.style, n), Object.keys(i).forEach((function(e) {
                    var t = i[e];
                    !1 === t ? r.removeAttribute(e) : r.setAttribute(e, !0 === t ? "" : t)
                })))
            }))
        },
        effect: function(e) {
            var t = e.state,
                n = {
                    popper: {
                        position: t.options.strategy,
                        left: "0",
                        top: "0",
                        margin: "0"
                    },
                    arrow: {
                        position: "absolute"
                    },
                    reference: {}
                };
            return Object.assign(t.elements.popper.style, n.popper), t.styles = n, t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow),
                function() {
                    Object.keys(t.elements).forEach((function(e) {
                        var i = t.elements[e],
                            r = t.attributes[e] || {},
                            o = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce((function(e, t) {
                                return e[t] = "", e
                            }), {});
                        $e(i) && Fe(i) && (Object.assign(i.style, o), Object.keys(r).forEach((function(e) {
                            i.removeAttribute(e)
                        })))
                    }))
                }
        },
        requires: ["computeStyles"]
    };

    function Be(e) {
        return e.split("-")[0]
    }
    var qe = Math.max,
        We = Math.min,
        Ue = Math.round;

    function Ve() {
        var e = navigator.userAgentData;
        return null != e && e.brands ? e.brands.map((function(e) {
            return e.brand + "/" + e.version
        })).join(" ") : navigator.userAgent
    }

    function Ye() {
        return !/^((?!chrome|android).)*safari/i.test(Ve())
    }

    function Xe(e, t, n) {
        void 0 === t && (t = !1), void 0 === n && (n = !1);
        var i = e.getBoundingClientRect(),
            r = 1,
            o = 1;
        t && $e(e) && (r = e.offsetWidth > 0 && Ue(i.width) / e.offsetWidth || 1, o = e.offsetHeight > 0 && Ue(i.height) / e.offsetHeight || 1);
        var a = (je(e) ? Re(e) : window).visualViewport,
            s = !Ye() && n,
            l = (i.left + (s && a ? a.offsetLeft : 0)) / r,
            c = (i.top + (s && a ? a.offsetTop : 0)) / o,
            u = i.width / r,
            d = i.height / o;
        return {
            width: u,
            height: d,
            top: c,
            right: l + u,
            bottom: c + d,
            left: l,
            x: l,
            y: c
        }
    }

    function Ge(e) {
        var t = Xe(e),
            n = e.offsetWidth,
            i = e.offsetHeight;
        return Math.abs(t.width - n) <= 1 && (n = t.width), Math.abs(t.height - i) <= 1 && (i = t.height), {
            x: e.offsetLeft,
            y: e.offsetTop,
            width: n,
            height: i
        }
    }

    function Ke(e, t) {
        var n = t.getRootNode && t.getRootNode();
        if (e.contains(t)) return !0;
        if (n && ze(n)) {
            var i = t;
            do {
                if (i && e.isSameNode(i)) return !0;
                i = i.parentNode || i.host
            } while (i)
        }
        return !1
    }

    function Qe(e) {
        return Re(e).getComputedStyle(e)
    }

    function Ze(e) {
        return ["table", "td", "th"].indexOf(Fe(e)) >= 0
    }

    function Je(e) {
        return ((je(e) ? e.ownerDocument : e.document) || window.document).documentElement
    }

    function et(e) {
        return "html" === Fe(e) ? e : e.assignedSlot || e.parentNode || (ze(e) ? e.host : null) || Je(e)
    }

    function tt(e) {
        return $e(e) && "fixed" !== Qe(e).position ? e.offsetParent : null
    }

    function nt(e) {
        for (var t = Re(e), n = tt(e); n && Ze(n) && "static" === Qe(n).position;) n = tt(n);
        return n && ("html" === Fe(n) || "body" === Fe(n) && "static" === Qe(n).position) ? t : n || function(e) {
            var t = /firefox/i.test(Ve());
            if (/Trident/i.test(Ve()) && $e(e) && "fixed" === Qe(e).position) return null;
            var n = et(e);
            for (ze(n) && (n = n.host); $e(n) && ["html", "body"].indexOf(Fe(n)) < 0;) {
                var i = Qe(n);
                if ("none" !== i.transform || "none" !== i.perspective || "paint" === i.contain || -1 !== ["transform", "perspective"].indexOf(i.willChange) || t && "filter" === i.willChange || t && i.filter && "none" !== i.filter) return n;
                n = n.parentNode
            }
            return null
        }(e) || t
    }

    function it(e) {
        return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y"
    }

    function rt(e, t, n) {
        return qe(e, We(t, n))
    }

    function ot(e) {
        return Object.assign({}, {
            top: 0,
            right: 0,
            bottom: 0,
            left: 0
        }, e)
    }

    function at(e, t) {
        return t.reduce((function(t, n) {
            return t[n] = e, t
        }), {})
    }
    const st = {
        name: "arrow",
        enabled: !0,
        phase: "main",
        fn: function(e) {
            var t, n = e.state,
                i = e.name,
                r = e.options,
                o = n.elements.arrow,
                a = n.modifiersData.popperOffsets,
                s = Be(n.placement),
                l = it(s),
                c = [ye, ve].indexOf(s) >= 0 ? "height" : "width";
            if (o && a) {
                var u = function(e, t) {
                        return ot("number" != typeof(e = "function" == typeof e ? e(Object.assign({}, t.rects, {
                            placement: t.placement
                        })) : e) ? e : at(e, we))
                    }(r.padding, n),
                    d = Ge(o),
                    h = "y" === l ? ge : ye,
                    f = "y" === l ? me : ve,
                    p = n.rects.reference[c] + n.rects.reference[l] - a[l] - n.rects.popper[c],
                    g = a[l] - n.rects.reference[l],
                    m = nt(o),
                    v = m ? "y" === l ? m.clientHeight || 0 : m.clientWidth || 0 : 0,
                    y = p / 2 - g / 2,
                    b = u[h],
                    w = v - d[c] - u[f],
                    x = v / 2 - d[c] / 2 + y,
                    _ = rt(b, x, w),
                    C = l;
                n.modifiersData[i] = ((t = {})[C] = _, t.centerOffset = _ - x, t)
            }
        },
        effect: function(e) {
            var t = e.state,
                n = e.options.element,
                i = void 0 === n ? "[data-popper-arrow]" : n;
            null != i && ("string" != typeof i || (i = t.elements.popper.querySelector(i))) && Ke(t.elements.popper, i) && (t.elements.arrow = i)
        },
        requires: ["popperOffsets"],
        requiresIfExists: ["preventOverflow"]
    };

    function lt(e) {
        return e.split("-")[1]
    }
    var ct = {
        top: "auto",
        right: "auto",
        bottom: "auto",
        left: "auto"
    };

    function ut(e) {
        var t, n = e.popper,
            i = e.popperRect,
            r = e.placement,
            o = e.variation,
            a = e.offsets,
            s = e.position,
            l = e.gpuAcceleration,
            c = e.adaptive,
            u = e.roundOffsets,
            d = e.isFixed,
            h = a.x,
            f = void 0 === h ? 0 : h,
            p = a.y,
            g = void 0 === p ? 0 : p,
            m = "function" == typeof u ? u({
                x: f,
                y: g
            }) : {
                x: f,
                y: g
            };
        f = m.x, g = m.y;
        var v = a.hasOwnProperty("x"),
            y = a.hasOwnProperty("y"),
            b = ye,
            w = ge,
            x = window;
        if (c) {
            var _ = nt(n),
                C = "clientHeight",
                S = "clientWidth";
            _ === Re(n) && "static" !== Qe(_ = Je(n)).position && "absolute" === s && (C = "scrollHeight", S = "scrollWidth"), (r === ge || (r === ye || r === ve) && o === _e) && (w = me, g -= (d && _ === x && x.visualViewport ? x.visualViewport.height : _[C]) - i.height, g *= l ? 1 : -1), r !== ye && (r !== ge && r !== me || o !== _e) || (b = ve, f -= (d && _ === x && x.visualViewport ? x.visualViewport.width : _[S]) - i.width, f *= l ? 1 : -1)
        }
        var k, T = Object.assign({
                position: s
            }, c && ct),
            A = !0 === u ? function(e) {
                var t = e.x,
                    n = e.y,
                    i = window.devicePixelRatio || 1;
                return {
                    x: Ue(t * i) / i || 0,
                    y: Ue(n * i) / i || 0
                }
            }({
                x: f,
                y: g
            }) : {
                x: f,
                y: g
            };
        return f = A.x, g = A.y, l ? Object.assign({}, T, ((k = {})[w] = y ? "0" : "", k[b] = v ? "0" : "", k.transform = (x.devicePixelRatio || 1) <= 1 ? "translate(" + f + "px, " + g + "px)" : "translate3d(" + f + "px, " + g + "px, 0)", k)) : Object.assign({}, T, ((t = {})[w] = y ? g + "px" : "", t[b] = v ? f + "px" : "", t.transform = "", t))
    }
    const dt = {
        name: "computeStyles",
        enabled: !0,
        phase: "beforeWrite",
        fn: function(e) {
            var t = e.state,
                n = e.options,
                i = n.gpuAcceleration,
                r = void 0 === i || i,
                o = n.adaptive,
                a = void 0 === o || o,
                s = n.roundOffsets,
                l = void 0 === s || s,
                c = {
                    placement: Be(t.placement),
                    variation: lt(t.placement),
                    popper: t.elements.popper,
                    popperRect: t.rects.popper,
                    gpuAcceleration: r,
                    isFixed: "fixed" === t.options.strategy
                };
            null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign({}, t.styles.popper, ut(Object.assign({}, c, {
                offsets: t.modifiersData.popperOffsets,
                position: t.options.strategy,
                adaptive: a,
                roundOffsets: l
            })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, ut(Object.assign({}, c, {
                offsets: t.modifiersData.arrow,
                position: "absolute",
                adaptive: !1,
                roundOffsets: l
            })))), t.attributes.popper = Object.assign({}, t.attributes.popper, {
                "data-popper-placement": t.placement
            })
        },
        data: {}
    };
    var ht = {
        passive: !0
    };
    const ft = {
        name: "eventListeners",
        enabled: !0,
        phase: "write",
        fn: function() {},
        effect: function(e) {
            var t = e.state,
                n = e.instance,
                i = e.options,
                r = i.scroll,
                o = void 0 === r || r,
                a = i.resize,
                s = void 0 === a || a,
                l = Re(t.elements.popper),
                c = [].concat(t.scrollParents.reference, t.scrollParents.popper);
            return o && c.forEach((function(e) {
                    e.addEventListener("scroll", n.update, ht)
                })), s && l.addEventListener("resize", n.update, ht),
                function() {
                    o && c.forEach((function(e) {
                        e.removeEventListener("scroll", n.update, ht)
                    })), s && l.removeEventListener("resize", n.update, ht)
                }
        },
        data: {}
    };
    var pt = {
        left: "right",
        right: "left",
        bottom: "top",
        top: "bottom"
    };

    function gt(e) {
        return e.replace(/left|right|bottom|top/g, (function(e) {
            return pt[e]
        }))
    }
    var mt = {
        start: "end",
        end: "start"
    };

    function vt(e) {
        return e.replace(/start|end/g, (function(e) {
            return mt[e]
        }))
    }

    function yt(e) {
        var t = Re(e);
        return {
            scrollLeft: t.pageXOffset,
            scrollTop: t.pageYOffset
        }
    }

    function bt(e) {
        return Xe(Je(e)).left + yt(e).scrollLeft
    }

    function wt(e) {
        var t = Qe(e),
            n = t.overflow,
            i = t.overflowX,
            r = t.overflowY;
        return /auto|scroll|overlay|hidden/.test(n + r + i)
    }

    function xt(e, t) {
        var n;
        void 0 === t && (t = []);
        var i = function e(t) {
                return ["html", "body", "#document"].indexOf(Fe(t)) >= 0 ? t.ownerDocument.body : $e(t) && wt(t) ? t : e(et(t))
            }(e),
            r = i === (null == (n = e.ownerDocument) ? void 0 : n.body),
            o = Re(i),
            a = r ? [o].concat(o.visualViewport || [], wt(i) ? i : []) : i,
            s = t.concat(a);
        return r ? s : s.concat(xt(et(a)))
    }

    function _t(e) {
        return Object.assign({}, e, {
            left: e.x,
            top: e.y,
            right: e.x + e.width,
            bottom: e.y + e.height
        })
    }

    function Ct(e, t, n) {
        return t === Se ? _t(function(e, t) {
            var n = Re(e),
                i = Je(e),
                r = n.visualViewport,
                o = i.clientWidth,
                a = i.clientHeight,
                s = 0,
                l = 0;
            if (r) {
                o = r.width, a = r.height;
                var c = Ye();
                (c || !c && "fixed" === t) && (s = r.offsetLeft, l = r.offsetTop)
            }
            return {
                width: o,
                height: a,
                x: s + bt(e),
                y: l
            }
        }(e, n)) : je(t) ? function(e, t) {
            var n = Xe(e, !1, "fixed" === t);
            return n.top = n.top + e.clientTop, n.left = n.left + e.clientLeft, n.bottom = n.top + e.clientHeight, n.right = n.left + e.clientWidth, n.width = e.clientWidth, n.height = e.clientHeight, n.x = n.left, n.y = n.top, n
        }(t, n) : _t(function(e) {
            var t, n = Je(e),
                i = yt(e),
                r = null == (t = e.ownerDocument) ? void 0 : t.body,
                o = qe(n.scrollWidth, n.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0),
                a = qe(n.scrollHeight, n.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0),
                s = -i.scrollLeft + bt(e),
                l = -i.scrollTop;
            return "rtl" === Qe(r || n).direction && (s += qe(n.clientWidth, r ? r.clientWidth : 0) - o), {
                width: o,
                height: a,
                x: s,
                y: l
            }
        }(Je(e)))
    }

    function St(e) {
        var t, n = e.reference,
            i = e.element,
            r = e.placement,
            o = r ? Be(r) : null,
            a = r ? lt(r) : null,
            s = n.x + n.width / 2 - i.width / 2,
            l = n.y + n.height / 2 - i.height / 2;
        switch (o) {
            case ge:
                t = {
                    x: s,
                    y: n.y - i.height
                };
                break;
            case me:
                t = {
                    x: s,
                    y: n.y + n.height
                };
                break;
            case ve:
                t = {
                    x: n.x + n.width,
                    y: l
                };
                break;
            case ye:
                t = {
                    x: n.x - i.width,
                    y: l
                };
                break;
            default:
                t = {
                    x: n.x,
                    y: n.y
                }
        }
        var c = o ? it(o) : null;
        if (null != c) {
            var u = "y" === c ? "height" : "width";
            switch (a) {
                case xe:
                    t[c] = t[c] - (n[u] / 2 - i[u] / 2);
                    break;
                case _e:
                    t[c] = t[c] + (n[u] / 2 - i[u] / 2)
            }
        }
        return t
    }

    function kt(e, t) {
        void 0 === t && (t = {});
        var n = t,
            i = n.placement,
            r = void 0 === i ? e.placement : i,
            o = n.strategy,
            a = void 0 === o ? e.strategy : o,
            s = n.boundary,
            l = void 0 === s ? Ce : s,
            c = n.rootBoundary,
            u = void 0 === c ? Se : c,
            d = n.elementContext,
            h = void 0 === d ? ke : d,
            f = n.altBoundary,
            p = void 0 !== f && f,
            g = n.padding,
            m = void 0 === g ? 0 : g,
            v = ot("number" != typeof m ? m : at(m, we)),
            y = h === ke ? Te : ke,
            b = e.rects.popper,
            w = e.elements[p ? y : h],
            x = function(e, t, n, i) {
                var r = "clippingParents" === t ? function(e) {
                        var t = xt(et(e)),
                            n = ["absolute", "fixed"].indexOf(Qe(e).position) >= 0 && $e(e) ? nt(e) : e;
                        return je(n) ? t.filter((function(e) {
                            return je(e) && Ke(e, n) && "body" !== Fe(e)
                        })) : []
                    }(e) : [].concat(t),
                    o = [].concat(r, [n]),
                    a = o[0],
                    s = o.reduce((function(t, n) {
                        var r = Ct(e, n, i);
                        return t.top = qe(r.top, t.top), t.right = We(r.right, t.right), t.bottom = We(r.bottom, t.bottom), t.left = qe(r.left, t.left), t
                    }), Ct(e, a, i));
                return s.width = s.right - s.left, s.height = s.bottom - s.top, s.x = s.left, s.y = s.top, s
            }(je(w) ? w : w.contextElement || Je(e.elements.popper), l, u, a),
            _ = Xe(e.elements.reference),
            C = St({
                reference: _,
                element: b,
                strategy: "absolute",
                placement: r
            }),
            S = _t(Object.assign({}, b, C)),
            k = h === ke ? S : _,
            T = {
                top: x.top - k.top + v.top,
                bottom: k.bottom - x.bottom + v.bottom,
                left: x.left - k.left + v.left,
                right: k.right - x.right + v.right
            },
            A = e.modifiersData.offset;
        if (h === ke && A) {
            var D = A[r];
            Object.keys(T).forEach((function(e) {
                var t = [ve, me].indexOf(e) >= 0 ? 1 : -1,
                    n = [ge, me].indexOf(e) >= 0 ? "y" : "x";
                T[e] += D[n] * t
            }))
        }
        return T
    }
    const Tt = {
        name: "flip",
        enabled: !0,
        phase: "main",
        fn: function(e) {
            var t = e.state,
                n = e.options,
                i = e.name;
            if (!t.modifiersData[i]._skip) {
                for (var r = n.mainAxis, o = void 0 === r || r, a = n.altAxis, s = void 0 === a || a, l = n.fallbackPlacements, c = n.padding, u = n.boundary, d = n.rootBoundary, h = n.altBoundary, f = n.flipVariations, p = void 0 === f || f, g = n.allowedAutoPlacements, m = t.options.placement, v = Be(m), y = l || (v !== m && p ? function(e) {
                        if (Be(e) === be) return [];
                        var t = gt(e);
                        return [vt(e), t, vt(t)]
                    }(m) : [gt(m)]), b = [m].concat(y).reduce((function(e, n) {
                        return e.concat(Be(n) === be ? function(e, t) {
                            void 0 === t && (t = {});
                            var n = t,
                                i = n.placement,
                                r = n.boundary,
                                o = n.rootBoundary,
                                a = n.padding,
                                s = n.flipVariations,
                                l = n.allowedAutoPlacements,
                                c = void 0 === l ? De : l,
                                u = lt(i),
                                d = u ? s ? Ae : Ae.filter((function(e) {
                                    return lt(e) === u
                                })) : we,
                                h = d.filter((function(e) {
                                    return c.indexOf(e) >= 0
                                }));
                            0 === h.length && (h = d);
                            var f = h.reduce((function(t, n) {
                                return t[n] = kt(e, {
                                    placement: n,
                                    boundary: r,
                                    rootBoundary: o,
                                    padding: a
                                })[Be(n)], t
                            }), {});
                            return Object.keys(f).sort((function(e, t) {
                                return f[e] - f[t]
                            }))
                        }(t, {
                            placement: n,
                            boundary: u,
                            rootBoundary: d,
                            padding: c,
                            flipVariations: p,
                            allowedAutoPlacements: g
                        }) : n)
                    }), []), w = t.rects.reference, x = t.rects.popper, _ = new Map, C = !0, S = b[0], k = 0; k < b.length; k++) {
                    var T = b[k],
                        A = Be(T),
                        D = lt(T) === xe,
                        E = [ge, me].indexOf(A) >= 0,
                        O = E ? "width" : "height",
                        M = kt(t, {
                            placement: T,
                            boundary: u,
                            rootBoundary: d,
                            altBoundary: h,
                            padding: c
                        }),
                        I = E ? D ? ve : ye : D ? me : ge;
                    w[O] > x[O] && (I = gt(I));
                    var P = gt(I),
                        L = [];
                    if (o && L.push(M[A] <= 0), s && L.push(M[I] <= 0, M[P] <= 0), L.every((function(e) {
                            return e
                        }))) {
                        S = T, C = !1;
                        break
                    }
                    _.set(T, L)
                }
                if (C)
                    for (var N = function(e) {
                            var t = b.find((function(t) {
                                var n = _.get(t);
                                if (n) return n.slice(0, e).every((function(e) {
                                    return e
                                }))
                            }));
                            if (t) return S = t, "break"
                        }, F = p ? 3 : 1; F > 0 && "break" !== N(F); F--);
                t.placement !== S && (t.modifiersData[i]._skip = !0, t.placement = S, t.reset = !0)
            }
        },
        requiresIfExists: ["offset"],
        data: {
            _skip: !1
        }
    };

    function At(e, t, n) {
        return void 0 === n && (n = {
            x: 0,
            y: 0
        }), {
            top: e.top - t.height - n.y,
            right: e.right - t.width + n.x,
            bottom: e.bottom - t.height + n.y,
            left: e.left - t.width - n.x
        }
    }

    function Dt(e) {
        return [ge, ve, me, ye].some((function(t) {
            return e[t] >= 0
        }))
    }
    const Et = {
            name: "hide",
            enabled: !0,
            phase: "main",
            requiresIfExists: ["preventOverflow"],
            fn: function(e) {
                var t = e.state,
                    n = e.name,
                    i = t.rects.reference,
                    r = t.rects.popper,
                    o = t.modifiersData.preventOverflow,
                    a = kt(t, {
                        elementContext: "reference"
                    }),
                    s = kt(t, {
                        altBoundary: !0
                    }),
                    l = At(a, i),
                    c = At(s, r, o),
                    u = Dt(l),
                    d = Dt(c);
                t.modifiersData[n] = {
                    referenceClippingOffsets: l,
                    popperEscapeOffsets: c,
                    isReferenceHidden: u,
                    hasPopperEscaped: d
                }, t.attributes.popper = Object.assign({}, t.attributes.popper, {
                    "data-popper-reference-hidden": u,
                    "data-popper-escaped": d
                })
            }
        },
        Ot = {
            name: "offset",
            enabled: !0,
            phase: "main",
            requires: ["popperOffsets"],
            fn: function(e) {
                var t = e.state,
                    n = e.options,
                    i = e.name,
                    r = n.offset,
                    o = void 0 === r ? [0, 0] : r,
                    a = De.reduce((function(e, n) {
                        return e[n] = function(e, t, n) {
                            var i = Be(e),
                                r = [ye, ge].indexOf(i) >= 0 ? -1 : 1,
                                o = "function" == typeof n ? n(Object.assign({}, t, {
                                    placement: e
                                })) : n,
                                a = o[0],
                                s = o[1];
                            return a = a || 0, s = (s || 0) * r, [ye, ve].indexOf(i) >= 0 ? {
                                x: s,
                                y: a
                            } : {
                                x: a,
                                y: s
                            }
                        }(n, t.rects, o), e
                    }), {}),
                    s = a[t.placement],
                    l = s.x,
                    c = s.y;
                null != t.modifiersData.popperOffsets && (t.modifiersData.popperOffsets.x += l, t.modifiersData.popperOffsets.y += c), t.modifiersData[i] = a
            }
        },
        Mt = {
            name: "popperOffsets",
            enabled: !0,
            phase: "read",
            fn: function(e) {
                var t = e.state,
                    n = e.name;
                t.modifiersData[n] = St({
                    reference: t.rects.reference,
                    element: t.rects.popper,
                    strategy: "absolute",
                    placement: t.placement
                })
            },
            data: {}
        },
        It = {
            name: "preventOverflow",
            enabled: !0,
            phase: "main",
            fn: function(e) {
                var t = e.state,
                    n = e.options,
                    i = e.name,
                    r = n.mainAxis,
                    o = void 0 === r || r,
                    a = n.altAxis,
                    s = void 0 !== a && a,
                    l = n.boundary,
                    c = n.rootBoundary,
                    u = n.altBoundary,
                    d = n.padding,
                    h = n.tether,
                    f = void 0 === h || h,
                    p = n.tetherOffset,
                    g = void 0 === p ? 0 : p,
                    m = kt(t, {
                        boundary: l,
                        rootBoundary: c,
                        padding: d,
                        altBoundary: u
                    }),
                    v = Be(t.placement),
                    y = lt(t.placement),
                    b = !y,
                    w = it(v),
                    x = "x" === w ? "y" : "x",
                    _ = t.modifiersData.popperOffsets,
                    C = t.rects.reference,
                    S = t.rects.popper,
                    k = "function" == typeof g ? g(Object.assign({}, t.rects, {
                        placement: t.placement
                    })) : g,
                    T = "number" == typeof k ? {
                        mainAxis: k,
                        altAxis: k
                    } : Object.assign({
                        mainAxis: 0,
                        altAxis: 0
                    }, k),
                    A = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null,
                    D = {
                        x: 0,
                        y: 0
                    };
                if (_) {
                    if (o) {
                        var E, O = "y" === w ? ge : ye,
                            M = "y" === w ? me : ve,
                            I = "y" === w ? "height" : "width",
                            P = _[w],
                            L = P + m[O],
                            N = P - m[M],
                            F = f ? -S[I] / 2 : 0,
                            R = y === xe ? C[I] : S[I],
                            j = y === xe ? -S[I] : -C[I],
                            $ = t.elements.arrow,
                            z = f && $ ? Ge($) : {
                                width: 0,
                                height: 0
                            },
                            H = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : {
                                top: 0,
                                right: 0,
                                bottom: 0,
                                left: 0
                            },
                            B = H[O],
                            q = H[M],
                            W = rt(0, C[I], z[I]),
                            U = b ? C[I] / 2 - F - W - B - T.mainAxis : R - W - B - T.mainAxis,
                            V = b ? -C[I] / 2 + F + W + q + T.mainAxis : j + W + q + T.mainAxis,
                            Y = t.elements.arrow && nt(t.elements.arrow),
                            X = Y ? "y" === w ? Y.clientTop || 0 : Y.clientLeft || 0 : 0,
                            G = null != (E = null == A ? void 0 : A[w]) ? E : 0,
                            K = P + V - G,
                            Q = rt(f ? We(L, P + U - G - X) : L, P, f ? qe(N, K) : N);
                        _[w] = Q, D[w] = Q - P
                    }
                    if (s) {
                        var Z, J = "x" === w ? ge : ye,
                            ee = "x" === w ? me : ve,
                            te = _[x],
                            ne = "y" === x ? "height" : "width",
                            ie = te + m[J],
                            re = te - m[ee],
                            oe = -1 !== [ge, ye].indexOf(v),
                            ae = null != (Z = null == A ? void 0 : A[x]) ? Z : 0,
                            se = oe ? ie : te - C[ne] - S[ne] - ae + T.altAxis,
                            le = oe ? te + C[ne] + S[ne] - ae - T.altAxis : re,
                            ce = f && oe ? function(e, t, n) {
                                var i = rt(e, t, n);
                                return i > n ? n : i
                            }(se, te, le) : rt(f ? se : ie, te, f ? le : re);
                        _[x] = ce, D[x] = ce - te
                    }
                    t.modifiersData[i] = D
                }
            },
            requiresIfExists: ["offset"]
        };

    function Pt(e, t, n) {
        void 0 === n && (n = !1);
        var i, r, o = $e(t),
            a = $e(t) && function(e) {
                var t = e.getBoundingClientRect(),
                    n = Ue(t.width) / e.offsetWidth || 1,
                    i = Ue(t.height) / e.offsetHeight || 1;
                return 1 !== n || 1 !== i
            }(t),
            s = Je(t),
            l = Xe(e, a, n),
            c = {
                scrollLeft: 0,
                scrollTop: 0
            },
            u = {
                x: 0,
                y: 0
            };
        return (o || !o && !n) && (("body" !== Fe(t) || wt(s)) && (c = (i = t) !== Re(i) && $e(i) ? {
            scrollLeft: (r = i).scrollLeft,
            scrollTop: r.scrollTop
        } : yt(i)), $e(t) ? ((u = Xe(t, !0)).x += t.clientLeft, u.y += t.clientTop) : s && (u.x = bt(s))), {
            x: l.left + c.scrollLeft - u.x,
            y: l.top + c.scrollTop - u.y,
            width: l.width,
            height: l.height
        }
    }

    function Lt(e) {
        var t = new Map,
            n = new Set,
            i = [];
        return e.forEach((function(e) {
            t.set(e.name, e)
        })), e.forEach((function(e) {
            n.has(e.name) || function e(r) {
                n.add(r.name), [].concat(r.requires || [], r.requiresIfExists || []).forEach((function(i) {
                    if (!n.has(i)) {
                        var r = t.get(i);
                        r && e(r)
                    }
                })), i.push(r)
            }(e)
        })), i
    }
    var Nt = {
        placement: "bottom",
        modifiers: [],
        strategy: "absolute"
    };

    function Ft() {
        for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n];
        return !t.some((function(e) {
            return !(e && "function" == typeof e.getBoundingClientRect)
        }))
    }

    function Rt(e) {
        void 0 === e && (e = {});
        var t = e,
            n = t.defaultModifiers,
            i = void 0 === n ? [] : n,
            r = t.defaultOptions,
            o = void 0 === r ? Nt : r;
        return function(e, t, n) {
            void 0 === n && (n = o);
            var r, a, s = {
                    placement: "bottom",
                    orderedModifiers: [],
                    options: Object.assign({}, Nt, o),
                    modifiersData: {},
                    elements: {
                        reference: e,
                        popper: t
                    },
                    attributes: {},
                    styles: {}
                },
                l = [],
                c = !1,
                u = {
                    state: s,
                    setOptions: function(n) {
                        var r = "function" == typeof n ? n(s.options) : n;
                        d(), s.options = Object.assign({}, o, s.options, r), s.scrollParents = {
                            reference: je(e) ? xt(e) : e.contextElement ? xt(e.contextElement) : [],
                            popper: xt(t)
                        };
                        var a, c, h = function(e) {
                            var t = Lt(e);
                            return Ne.reduce((function(e, n) {
                                return e.concat(t.filter((function(e) {
                                    return e.phase === n
                                })))
                            }), [])
                        }((a = [].concat(i, s.options.modifiers), c = a.reduce((function(e, t) {
                            var n = e[t.name];
                            return e[t.name] = n ? Object.assign({}, n, t, {
                                options: Object.assign({}, n.options, t.options),
                                data: Object.assign({}, n.data, t.data)
                            }) : t, e
                        }), {}), Object.keys(c).map((function(e) {
                            return c[e]
                        }))));
                        return s.orderedModifiers = h.filter((function(e) {
                            return e.enabled
                        })), s.orderedModifiers.forEach((function(e) {
                            var t = e.name,
                                n = e.options,
                                i = void 0 === n ? {} : n,
                                r = e.effect;
                            if ("function" == typeof r) {
                                var o = r({
                                    state: s,
                                    name: t,
                                    instance: u,
                                    options: i
                                });
                                l.push(o || function() {})
                            }
                        })), u.update()
                    },
                    forceUpdate: function() {
                        if (!c) {
                            var e = s.elements,
                                t = e.reference,
                                n = e.popper;
                            if (Ft(t, n)) {
                                s.rects = {
                                    reference: Pt(t, nt(n), "fixed" === s.options.strategy),
                                    popper: Ge(n)
                                }, s.reset = !1, s.placement = s.options.placement, s.orderedModifiers.forEach((function(e) {
                                    return s.modifiersData[e.name] = Object.assign({}, e.data)
                                }));
                                for (var i = 0; i < s.orderedModifiers.length; i++)
                                    if (!0 !== s.reset) {
                                        var r = s.orderedModifiers[i],
                                            o = r.fn,
                                            a = r.options,
                                            l = void 0 === a ? {} : a,
                                            d = r.name;
                                        "function" == typeof o && (s = o({
                                            state: s,
                                            options: l,
                                            name: d,
                                            instance: u
                                        }) || s)
                                    } else s.reset = !1, i = -1
                            }
                        }
                    },
                    update: (r = function() {
                        return new Promise((function(e) {
                            u.forceUpdate(), e(s)
                        }))
                    }, function() {
                        return a || (a = new Promise((function(e) {
                            Promise.resolve().then((function() {
                                a = void 0, e(r())
                            }))
                        }))), a
                    }),
                    destroy: function() {
                        d(), c = !0
                    }
                };
            if (!Ft(e, t)) return u;

            function d() {
                l.forEach((function(e) {
                    return e()
                })), l = []
            }
            return u.setOptions(n).then((function(e) {
                !c && n.onFirstUpdate && n.onFirstUpdate(e)
            })), u
        }
    }
    var jt = Rt(),
        $t = Rt({
            defaultModifiers: [ft, Mt, dt, He]
        }),
        zt = Rt({
            defaultModifiers: [ft, Mt, dt, He, Ot, Tt, It, st, Et]
        });
    const Ht = Object.freeze(Object.defineProperty({
            __proto__: null,
            popperGenerator: Rt,
            detectOverflow: kt,
            createPopperBase: jt,
            createPopper: zt,
            createPopperLite: $t,
            top: ge,
            bottom: me,
            right: ve,
            left: ye,
            auto: be,
            basePlacements: we,
            start: xe,
            end: _e,
            clippingParents: Ce,
            viewport: Se,
            popper: ke,
            reference: Te,
            variationPlacements: Ae,
            placements: De,
            beforeRead: Ee,
            read: "read",
            afterRead: Oe,
            beforeMain: Me,
            main: "main",
            afterMain: Ie,
            beforeWrite: Pe,
            write: "write",
            afterWrite: Le,
            modifierPhases: Ne,
            applyStyles: He,
            arrow: st,
            computeStyles: dt,
            eventListeners: ft,
            flip: Tt,
            hide: Et,
            offset: Ot,
            popperOffsets: Mt,
            preventOverflow: It
        }, Symbol.toStringTag, {
            value: "Module"
        })),
        Bt = "dropdown",
        qt = "ArrowUp",
        Wt = "ArrowDown",
        Ut = "click.bs.dropdown.data-api",
        Vt = "keydown.bs.dropdown.data-api",
        Yt = "show",
        Xt = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
        Gt = ".dropdown-menu",
        Kt = p() ? "top-end" : "top-start",
        Qt = p() ? "top-start" : "top-end",
        Zt = p() ? "bottom-end" : "bottom-start",
        Jt = p() ? "bottom-start" : "bottom-end",
        en = p() ? "left-start" : "right-start",
        tn = p() ? "right-start" : "left-start",
        nn = {
            autoClose: !0,
            boundary: "clippingParents",
            display: "dynamic",
            offset: [0, 2],
            popperConfig: null,
            reference: "toggle"
        },
        rn = {
            autoClose: "(boolean|string)",
            boundary: "(string|element)",
            display: "string",
            offset: "(array|string|function)",
            popperConfig: "(null|object|function)",
            reference: "(string|element|object)"
        };
    class on extends B {
        constructor(e, t) {
            super(e, t), this._popper = null, this._parent = this._element.parentNode, this._menu = Y.next(this._element, Gt)[0] || Y.prev(this._element, Gt)[0] || Y.findOne(Gt, this._parent), this._inNavbar = this._detectNavbar()
        }
        static get Default() {
            return nn
        }
        static get DefaultType() {
            return rn
        }
        static get NAME() {
            return Bt
        }
        toggle() {
            return this._isShown() ? this.hide() : this.show()
        }
        show() {
            if (l(this._element) || this._isShown()) return;
            const e = {
                relatedTarget: this._element
            };
            if (!L.trigger(this._element, "show.bs.dropdown", e).defaultPrevented) {
                if (this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".navbar-nav"))
                    for (const e of [].concat(...document.body.children)) L.on(e, "mouseover", u);
                this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(Yt), this._element.classList.add(Yt), L.trigger(this._element, "shown.bs.dropdown", e)
            }
        }
        hide() {
            if (l(this._element) || !this._isShown()) return;
            const e = {
                relatedTarget: this._element
            };
            this._completeHide(e)
        }
        dispose() {
            this._popper && this._popper.destroy(), super.dispose()
        }
        update() {
            this._inNavbar = this._detectNavbar(), this._popper && this._popper.update()
        }
        _completeHide(e) {
            if (!L.trigger(this._element, "hide.bs.dropdown", e).defaultPrevented) {
                if ("ontouchstart" in document.documentElement)
                    for (const e of [].concat(...document.body.children)) L.off(e, "mouseover", u);
                this._popper && this._popper.destroy(), this._menu.classList.remove(Yt), this._element.classList.remove(Yt), this._element.setAttribute("aria-expanded", "false"), z.removeDataAttribute(this._menu, "popper"), L.trigger(this._element, "hidden.bs.dropdown", e)
            }
        }
        _getConfig(e) {
            if ("object" == typeof(e = super._getConfig(e)).reference && !o(e.reference) && "function" != typeof e.reference.getBoundingClientRect) throw new TypeError(Bt.toUpperCase() + ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');
            return e
        }
        _createPopper() {
            if (void 0 === Ht) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");
            let e = this._element;
            "parent" === this._config.reference ? e = this._parent : o(this._config.reference) ? e = a(this._config.reference) : "object" == typeof this._config.reference && (e = this._config.reference);
            const t = this._getPopperConfig();
            this._popper = zt(e, this._menu, t)
        }
        _isShown() {
            return this._menu.classList.contains(Yt)
        }
        _getPlacement() {
            const e = this._parent;
            if (e.classList.contains("dropend")) return en;
            if (e.classList.contains("dropstart")) return tn;
            if (e.classList.contains("dropup-center")) return "top";
            if (e.classList.contains("dropdown-center")) return "bottom";
            const t = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();
            return e.classList.contains("dropup") ? t ? Qt : Kt : t ? Jt : Zt
        }
        _detectNavbar() {
            return null !== this._element.closest(".navbar")
        }
        _getOffset() {
            const {
                offset: e
            } = this._config;
            return "string" == typeof e ? e.split(",").map(e => Number.parseInt(e, 10)) : "function" == typeof e ? t => e(t, this._element) : e
        }
        _getPopperConfig() {
            const e = {
                placement: this._getPlacement(),
                modifiers: [{
                    name: "preventOverflow",
                    options: {
                        boundary: this._config.boundary
                    }
                }, {
                    name: "offset",
                    options: {
                        offset: this._getOffset()
                    }
                }]
            };
            return (this._inNavbar || "static" === this._config.display) && (z.setDataAttribute(this._menu, "popper", "static"), e.modifiers = [{
                name: "applyStyles",
                enabled: !1
            }]), { ...e,
                ..."function" == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig
            }
        }
        _selectMenuItem({
            key: e,
            target: t
        }) {
            const n = Y.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter(e => s(e));
            n.length && y(n, t, e === Wt, !n.includes(t)).focus()
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = on.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            }))
        }
        static clearMenus(e) {
            if (2 === e.button || "keyup" === e.type && "Tab" !== e.key) return;
            const t = Y.find('[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled).show');
            for (const n of t) {
                const t = on.getInstance(n);
                if (!t || !1 === t._config.autoClose) continue;
                const i = e.composedPath(),
                    r = i.includes(t._menu);
                if (i.includes(t._element) || "inside" === t._config.autoClose && !r || "outside" === t._config.autoClose && r) continue;
                if (t._menu.contains(e.target) && ("keyup" === e.type && "Tab" === e.key || /input|select|option|textarea|form/i.test(e.target.tagName))) continue;
                const o = {
                    relatedTarget: t._element
                };
                "click" === e.type && (o.clickEvent = e), t._completeHide(o)
            }
        }
        static dataApiKeydownHandler(e) {
            const t = /input|textarea/i.test(e.target.tagName),
                n = "Escape" === e.key,
                i = [qt, Wt].includes(e.key);
            if (!i && !n) return;
            if (t && !n) return;
            e.preventDefault();
            const r = this.matches(Xt) ? this : Y.prev(this, Xt)[0] || Y.next(this, Xt)[0] || Y.findOne(Xt, e.delegateTarget.parentNode),
                o = on.getOrCreateInstance(r);
            if (i) return e.stopPropagation(), o.show(), void o._selectMenuItem(e);
            o._isShown() && (e.stopPropagation(), o.hide(), r.focus())
        }
    }
    L.on(document, Vt, Xt, on.dataApiKeydownHandler), L.on(document, Vt, Gt, on.dataApiKeydownHandler), L.on(document, Ut, on.clearMenus), L.on(document, "keyup.bs.dropdown.data-api", on.clearMenus), L.on(document, Ut, Xt, (function(e) {
        e.preventDefault(), on.getOrCreateInstance(this).toggle()
    })), g(on);
    const an = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
        sn = ".sticky-top",
        ln = "padding-right",
        cn = "margin-right";
    class un {
        constructor() {
            this._element = document.body
        }
        getWidth() {
            const e = document.documentElement.clientWidth;
            return Math.abs(window.innerWidth - e)
        }
        hide() {
            const e = this.getWidth();
            this._disableOverFlow(), this._setElementAttributes(this._element, ln, t => t + e), this._setElementAttributes(an, ln, t => t + e), this._setElementAttributes(sn, cn, t => t - e)
        }
        reset() {
            this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, ln), this._resetElementAttributes(an, ln), this._resetElementAttributes(sn, cn)
        }
        isOverflowing() {
            return this.getWidth() > 0
        }
        _disableOverFlow() {
            this._saveInitialAttribute(this._element, "overflow"), this._element.style.overflow = "hidden"
        }
        _setElementAttributes(e, t, n) {
            const i = this.getWidth();
            this._applyManipulationCallback(e, e => {
                if (e !== this._element && window.innerWidth > e.clientWidth + i) return;
                this._saveInitialAttribute(e, t);
                const r = window.getComputedStyle(e).getPropertyValue(t);
                e.style.setProperty(t, n(Number.parseFloat(r)) + "px")
            })
        }
        _saveInitialAttribute(e, t) {
            const n = e.style.getPropertyValue(t);
            n && z.setDataAttribute(e, t, n)
        }
        _resetElementAttributes(e, t) {
            this._applyManipulationCallback(e, e => {
                const n = z.getDataAttribute(e, t);
                null !== n ? (z.removeDataAttribute(e, t), e.style.setProperty(t, n)) : e.style.removeProperty(t)
            })
        }
        _applyManipulationCallback(e, t) {
            if (o(e)) t(e);
            else
                for (const n of Y.find(e, this._element)) t(n)
        }
    }
    const dn = "mousedown.bs.backdrop",
        hn = {
            className: "modal-backdrop",
            clickCallback: null,
            isAnimated: !1,
            isVisible: !0,
            rootElement: "body"
        },
        fn = {
            className: "string",
            clickCallback: "(function|null)",
            isAnimated: "boolean",
            isVisible: "boolean",
            rootElement: "(element|string)"
        };
    class pn extends H {
        constructor(e) {
            super(), this._config = this._getConfig(e), this._isAppended = !1, this._element = null
        }
        static get Default() {
            return hn
        }
        static get DefaultType() {
            return fn
        }
        static get NAME() {
            return "backdrop"
        }
        show(e) {
            if (!this._config.isVisible) return void m(e);
            this._append();
            const t = this._getElement();
            this._config.isAnimated && d(t), t.classList.add("show"), this._emulateAnimation(() => {
                m(e)
            })
        }
        hide(e) {
            this._config.isVisible ? (this._getElement().classList.remove("show"), this._emulateAnimation(() => {
                this.dispose(), m(e)
            })) : m(e)
        }
        dispose() {
            this._isAppended && (L.off(this._element, dn), this._element.remove(), this._isAppended = !1)
        }
        _getElement() {
            if (!this._element) {
                const e = document.createElement("div");
                e.className = this._config.className, this._config.isAnimated && e.classList.add("fade"), this._element = e
            }
            return this._element
        }
        _configAfterMerge(e) {
            return e.rootElement = a(e.rootElement), e
        }
        _append() {
            if (this._isAppended) return;
            const e = this._getElement();
            this._config.rootElement.append(e), L.on(e, dn, () => {
                m(this._config.clickCallback)
            }), this._isAppended = !0
        }
        _emulateAnimation(e) {
            v(e, this._getElement(), this._config.isAnimated)
        }
    }
    const gn = ".bs.focustrap",
        mn = "backward",
        vn = {
            autofocus: !0,
            trapElement: null
        },
        yn = {
            autofocus: "boolean",
            trapElement: "element"
        };
    class bn extends H {
        constructor(e) {
            super(), this._config = this._getConfig(e), this._isActive = !1, this._lastTabNavDirection = null
        }
        static get Default() {
            return vn
        }
        static get DefaultType() {
            return yn
        }
        static get NAME() {
            return "focustrap"
        }
        activate() {
            this._isActive || (this._config.autofocus && this._config.trapElement.focus(), L.off(document, gn), L.on(document, "focusin.bs.focustrap", e => this._handleFocusin(e)), L.on(document, "keydown.tab.bs.focustrap", e => this._handleKeydown(e)), this._isActive = !0)
        }
        deactivate() {
            this._isActive && (this._isActive = !1, L.off(document, gn))
        }
        _handleFocusin(e) {
            const {
                trapElement: t
            } = this._config;
            if (e.target === document || e.target === t || t.contains(e.target)) return;
            const n = Y.focusableChildren(t);
            0 === n.length ? t.focus() : this._lastTabNavDirection === mn ? n[n.length - 1].focus() : n[0].focus()
        }
        _handleKeydown(e) {
            "Tab" === e.key && (this._lastTabNavDirection = e.shiftKey ? mn : "forward")
        }
    }
    const wn = "hidden.bs.modal",
        xn = "show.bs.modal",
        _n = "modal-open",
        Cn = "modal-static",
        Sn = {
            backdrop: !0,
            focus: !0,
            keyboard: !0
        },
        kn = {
            backdrop: "(boolean|string)",
            focus: "boolean",
            keyboard: "boolean"
        };
    class Tn extends B {
        constructor(e, t) {
            super(e, t), this._dialog = Y.findOne(".modal-dialog", this._element), this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._isShown = !1, this._isTransitioning = !1, this._scrollBar = new un, this._addEventListeners()
        }
        static get Default() {
            return Sn
        }
        static get DefaultType() {
            return kn
        }
        static get NAME() {
            return "modal"
        }
        toggle(e) {
            return this._isShown ? this.hide() : this.show(e)
        }
        show(e) {
            this._isShown || this._isTransitioning || L.trigger(this._element, xn, {
                relatedTarget: e
            }).defaultPrevented || (this._isShown = !0, this._isTransitioning = !0, this._scrollBar.hide(), document.body.classList.add(_n), this._adjustDialog(), this._backdrop.show(() => this._showElement(e)))
        }
        hide() {
            this._isShown && !this._isTransitioning && (L.trigger(this._element, "hide.bs.modal").defaultPrevented || (this._isShown = !1, this._isTransitioning = !0, this._focustrap.deactivate(), this._element.classList.remove("show"), this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())))
        }
        dispose() {
            for (const e of [window, this._dialog]) L.off(e, ".bs.modal");
            this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose()
        }
        handleUpdate() {
            this._adjustDialog()
        }
        _initializeBackDrop() {
            return new pn({
                isVisible: Boolean(this._config.backdrop),
                isAnimated: this._isAnimated()
            })
        }
        _initializeFocusTrap() {
            return new bn({
                trapElement: this._element
            })
        }
        _showElement(e) {
            document.body.contains(this._element) || document.body.append(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0;
            const t = Y.findOne(".modal-body", this._dialog);
            t && (t.scrollTop = 0), d(this._element), this._element.classList.add("show"), this._queueCallback(() => {
                this._config.focus && this._focustrap.activate(), this._isTransitioning = !1, L.trigger(this._element, "shown.bs.modal", {
                    relatedTarget: e
                })
            }, this._dialog, this._isAnimated())
        }
        _addEventListeners() {
            L.on(this._element, "keydown.dismiss.bs.modal", e => {
                if ("Escape" === e.key) return this._config.keyboard ? (e.preventDefault(), void this.hide()) : void this._triggerBackdropTransition()
            }), L.on(window, "resize.bs.modal", () => {
                this._isShown && !this._isTransitioning && this._adjustDialog()
            }), L.on(this._element, "mousedown.dismiss.bs.modal", e => {
                L.one(this._element, "click.dismiss.bs.modal", t => {
                    this._element === e.target && this._element === t.target && ("static" !== this._config.backdrop ? this._config.backdrop && this.hide() : this._triggerBackdropTransition())
                })
            })
        }
        _hideModal() {
            this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._backdrop.hide(() => {
                document.body.classList.remove(_n), this._resetAdjustments(), this._scrollBar.reset(), L.trigger(this._element, wn)
            })
        }
        _isAnimated() {
            return this._element.classList.contains("fade")
        }
        _triggerBackdropTransition() {
            if (L.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) return;
            const e = this._element.scrollHeight > document.documentElement.clientHeight,
                t = this._element.style.overflowY;
            "hidden" === t || this._element.classList.contains(Cn) || (e || (this._element.style.overflowY = "hidden"), this._element.classList.add(Cn), this._queueCallback(() => {
                this._element.classList.remove(Cn), this._queueCallback(() => {
                    this._element.style.overflowY = t
                }, this._dialog)
            }, this._dialog), this._element.focus())
        }
        _adjustDialog() {
            const e = this._element.scrollHeight > document.documentElement.clientHeight,
                t = this._scrollBar.getWidth(),
                n = t > 0;
            if (n && !e) {
                const e = p() ? "paddingLeft" : "paddingRight";
                this._element.style[e] = t + "px"
            }
            if (!n && e) {
                const e = p() ? "paddingRight" : "paddingLeft";
                this._element.style[e] = t + "px"
            }
        }
        _resetAdjustments() {
            this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
        }
        static jQueryInterface(e, t) {
            return this.each((function() {
                const n = Tn.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === n[e]) throw new TypeError(`No method named "${e}"`);
                    n[e](t)
                }
            }))
        }
    }
    L.on(document, "click.bs.modal.data-api", '[data-bs-toggle="modal"]', (function(e) {
        const t = i(this);
        ["A", "AREA"].includes(this.tagName) && e.preventDefault(), L.one(t, xn, e => {
            e.defaultPrevented || L.one(t, wn, () => {
                s(this) && this.focus()
            })
        });
        const n = Y.findOne(".modal.show");
        n && Tn.getInstance(n).hide(), Tn.getOrCreateInstance(t).toggle(this)
    })), q(Tn), g(Tn);
    const An = "showing",
        Dn = ".offcanvas.show",
        En = "hidePrevented.bs.offcanvas",
        On = "hidden.bs.offcanvas",
        Mn = {
            backdrop: !0,
            keyboard: !0,
            scroll: !1
        },
        In = {
            backdrop: "(boolean|string)",
            keyboard: "boolean",
            scroll: "boolean"
        };
    class Pn extends B {
        constructor(e, t) {
            super(e, t), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._addEventListeners()
        }
        static get Default() {
            return Mn
        }
        static get DefaultType() {
            return In
        }
        static get NAME() {
            return "offcanvas"
        }
        toggle(e) {
            return this._isShown ? this.hide() : this.show(e)
        }
        show(e) {
            this._isShown || L.trigger(this._element, "show.bs.offcanvas", {
                relatedTarget: e
            }).defaultPrevented || (this._isShown = !0, this._backdrop.show(), this._config.scroll || (new un).hide(), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add(An), this._queueCallback(() => {
                this._config.scroll && !this._config.backdrop || this._focustrap.activate(), this._element.classList.add("show"), this._element.classList.remove(An), L.trigger(this._element, "shown.bs.offcanvas", {
                    relatedTarget: e
                })
            }, this._element, !0))
        }
        hide() {
            this._isShown && (L.trigger(this._element, "hide.bs.offcanvas").defaultPrevented || (this._focustrap.deactivate(), this._element.blur(), this._isShown = !1, this._element.classList.add("hiding"), this._backdrop.hide(), this._queueCallback(() => {
                this._element.classList.remove("show", "hiding"), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || (new un).reset(), L.trigger(this._element, On)
            }, this._element, !0)))
        }
        dispose() {
            this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose()
        }
        _initializeBackDrop() {
            const e = Boolean(this._config.backdrop);
            return new pn({
                className: "offcanvas-backdrop",
                isVisible: e,
                isAnimated: !0,
                rootElement: this._element.parentNode,
                clickCallback: e ? () => {
                    "static" !== this._config.backdrop ? this.hide() : L.trigger(this._element, En)
                } : null
            })
        }
        _initializeFocusTrap() {
            return new bn({
                trapElement: this._element
            })
        }
        _addEventListeners() {
            L.on(this._element, "keydown.dismiss.bs.offcanvas", e => {
                "Escape" === e.key && (this._config.keyboard ? this.hide() : L.trigger(this._element, En))
            })
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = Pn.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
                    t[e](this)
                }
            }))
        }
    }
    L.on(document, "click.bs.offcanvas.data-api", '[data-bs-toggle="offcanvas"]', (function(e) {
        const t = i(this);
        if (["A", "AREA"].includes(this.tagName) && e.preventDefault(), l(this)) return;
        L.one(t, On, () => {
            s(this) && this.focus()
        });
        const n = Y.findOne(Dn);
        n && n !== t && Pn.getInstance(n).hide(), Pn.getOrCreateInstance(t).toggle(this)
    })), L.on(window, "load.bs.offcanvas.data-api", () => {
        for (const e of Y.find(Dn)) Pn.getOrCreateInstance(e).show()
    }), L.on(window, "resize.bs.offcanvas", () => {
        for (const e of Y.find("[aria-modal][class*=show][class*=offcanvas-]")) "fixed" !== getComputedStyle(e).position && Pn.getOrCreateInstance(e).hide()
    }), q(Pn), g(Pn);
    const Ln = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
        Nn = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,
        Fn = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,
        Rn = (e, t) => {
            const n = e.nodeName.toLowerCase();
            return t.includes(n) ? !Ln.has(n) || Boolean(Nn.test(e.nodeValue) || Fn.test(e.nodeValue)) : t.filter(e => e instanceof RegExp).some(e => e.test(n))
        },
        jn = {
            "*": ["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: []
        },
        $n = {
            allowList: jn,
            content: {},
            extraClass: "",
            html: !1,
            sanitize: !0,
            sanitizeFn: null,
            template: "<div></div>"
        },
        zn = {
            allowList: "object",
            content: "object",
            extraClass: "(string|function)",
            html: "boolean",
            sanitize: "boolean",
            sanitizeFn: "(null|function)",
            template: "string"
        },
        Hn = {
            entry: "(string|element|function|null)",
            selector: "(string|element)"
        };
    class Bn extends H {
        constructor(e) {
            super(), this._config = this._getConfig(e)
        }
        static get Default() {
            return $n
        }
        static get DefaultType() {
            return zn
        }
        static get NAME() {
            return "TemplateFactory"
        }
        getContent() {
            return Object.values(this._config.content).map(e => this._resolvePossibleFunction(e)).filter(Boolean)
        }
        hasContent() {
            return this.getContent().length > 0
        }
        changeContent(e) {
            return this._checkContent(e), this._config.content = { ...this._config.content,
                ...e
            }, this
        }
        toHtml() {
            const e = document.createElement("div");
            e.innerHTML = this._maybeSanitize(this._config.template);
            for (const [t, n] of Object.entries(this._config.content)) this._setContent(e, n, t);
            const t = e.children[0],
                n = this._resolvePossibleFunction(this._config.extraClass);
            return n && t.classList.add(...n.split(" ")), t
        }
        _typeCheckConfig(e) {
            super._typeCheckConfig(e), this._checkContent(e.content)
        }
        _checkContent(e) {
            for (const [t, n] of Object.entries(e)) super._typeCheckConfig({
                selector: t,
                entry: n
            }, Hn)
        }
        _setContent(e, t, n) {
            const i = Y.findOne(n, e);
            i && ((t = this._resolvePossibleFunction(t)) ? o(t) ? this._putElementInTemplate(a(t), i) : this._config.html ? i.innerHTML = this._maybeSanitize(t) : i.textContent = t : i.remove())
        }
        _maybeSanitize(e) {
            return this._config.sanitize ? function(e, t, n) {
                if (!e.length) return e;
                if (n && "function" == typeof n) return n(e);
                const i = (new window.DOMParser).parseFromString(e, "text/html"),
                    r = [].concat(...i.body.querySelectorAll("*"));
                for (const e of r) {
                    const n = e.nodeName.toLowerCase();
                    if (!Object.keys(t).includes(n)) {
                        e.remove();
                        continue
                    }
                    const i = [].concat(...e.attributes),
                        r = [].concat(t["*"] || [], t[n] || []);
                    for (const t of i) Rn(t, r) || e.removeAttribute(t.nodeName)
                }
                return i.body.innerHTML
            }(e, this._config.allowList, this._config.sanitizeFn) : e
        }
        _resolvePossibleFunction(e) {
            return "function" == typeof e ? e(this) : e
        }
        _putElementInTemplate(e, t) {
            if (this._config.html) return t.innerHTML = "", void t.append(e);
            t.textContent = e.textContent
        }
    }
    const qn = new Set(["sanitize", "allowList", "sanitizeFn"]),
        Wn = "fade",
        Un = "show",
        Vn = "hide.bs.modal",
        Yn = "hover",
        Xn = {
            AUTO: "auto",
            TOP: "top",
            RIGHT: p() ? "left" : "right",
            BOTTOM: "bottom",
            LEFT: p() ? "right" : "left"
        },
        Gn = {
            allowList: jn,
            animation: !0,
            boundary: "clippingParents",
            container: !1,
            customClass: "",
            delay: 0,
            fallbackPlacements: ["top", "right", "bottom", "left"],
            html: !1,
            offset: [0, 0],
            placement: "top",
            popperConfig: null,
            sanitize: !0,
            sanitizeFn: null,
            selector: !1,
            template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
            title: "",
            trigger: "hover focus"
        },
        Kn = {
            allowList: "object",
            animation: "boolean",
            boundary: "(string|element)",
            container: "(string|element|boolean)",
            customClass: "(string|function)",
            delay: "(number|object)",
            fallbackPlacements: "array",
            html: "boolean",
            offset: "(array|string|function)",
            placement: "(string|function)",
            popperConfig: "(null|object|function)",
            sanitize: "boolean",
            sanitizeFn: "(null|function)",
            selector: "(string|boolean)",
            template: "string",
            title: "(string|element|function)",
            trigger: "string"
        };
    class Qn extends B {
        constructor(e, t) {
            if (void 0 === Ht) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");
            super(e, t), this._isEnabled = !0, this._timeout = 0, this._isHovered = null, this._activeTrigger = {}, this._popper = null, this._templateFactory = null, this._newContent = null, this.tip = null, this._setListeners(), this._config.selector || this._fixTitle()
        }
        static get Default() {
            return Gn
        }
        static get DefaultType() {
            return Kn
        }
        static get NAME() {
            return "tooltip"
        }
        enable() {
            this._isEnabled = !0
        }
        disable() {
            this._isEnabled = !1
        }
        toggleEnabled() {
            this._isEnabled = !this._isEnabled
        }
        toggle() {
            this._isEnabled && (this._activeTrigger.click = !this._activeTrigger.click, this._isShown() ? this._leave() : this._enter())
        }
        dispose() {
            clearTimeout(this._timeout), L.off(this._element.closest(".modal"), Vn, this._hideModalHandler), this._element.getAttribute("data-bs-original-title") && this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")), this._disposePopper(), super.dispose()
        }
        show() {
            if ("none" === this._element.style.display) throw new Error("Please use show on visible elements");
            if (!this._isWithContent() || !this._isEnabled) return;
            const e = L.trigger(this._element, this.constructor.eventName("show")),
                t = (c(this._element) || this._element.ownerDocument.documentElement).contains(this._element);
            if (e.defaultPrevented || !t) return;
            this._disposePopper();
            const n = this._getTipElement();
            this._element.setAttribute("aria-describedby", n.getAttribute("id"));
            const {
                container: i
            } = this._config;
            if (this._element.ownerDocument.documentElement.contains(this.tip) || (i.append(n), L.trigger(this._element, this.constructor.eventName("inserted"))), this._popper = this._createPopper(n), n.classList.add(Un), "ontouchstart" in document.documentElement)
                for (const e of [].concat(...document.body.children)) L.on(e, "mouseover", u);
            this._queueCallback(() => {
                L.trigger(this._element, this.constructor.eventName("shown")), !1 === this._isHovered && this._leave(), this._isHovered = !1
            }, this.tip, this._isAnimated())
        }
        hide() {
            if (this._isShown() && !L.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) {
                if (this._getTipElement().classList.remove(Un), "ontouchstart" in document.documentElement)
                    for (const e of [].concat(...document.body.children)) L.off(e, "mouseover", u);
                this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, this._isHovered = null, this._queueCallback(() => {
                    this._isWithActiveTrigger() || (this._isHovered || this._disposePopper(), this._element.removeAttribute("aria-describedby"), L.trigger(this._element, this.constructor.eventName("hidden")))
                }, this.tip, this._isAnimated())
            }
        }
        update() {
            this._popper && this._popper.update()
        }
        _isWithContent() {
            return Boolean(this._getTitle())
        }
        _getTipElement() {
            return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip
        }
        _createTipElement(e) {
            const t = this._getTemplateFactory(e).toHtml();
            if (!t) return null;
            t.classList.remove(Wn, Un), t.classList.add(`bs-${this.constructor.NAME}-auto`);
            const n = (e => {
                do {
                    e += Math.floor(1e6 * Math.random())
                } while (document.getElementById(e));
                return e
            })(this.constructor.NAME).toString();
            return t.setAttribute("id", n), this._isAnimated() && t.classList.add(Wn), t
        }
        setContent(e) {
            this._newContent = e, this._isShown() && (this._disposePopper(), this.show())
        }
        _getTemplateFactory(e) {
            return this._templateFactory ? this._templateFactory.changeContent(e) : this._templateFactory = new Bn({ ...this._config,
                content: e,
                extraClass: this._resolvePossibleFunction(this._config.customClass)
            }), this._templateFactory
        }
        _getContentForTemplate() {
            return {
                ".tooltip-inner": this._getTitle()
            }
        }
        _getTitle() {
            return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title")
        }
        _initializeOnDelegatedTarget(e) {
            return this.constructor.getOrCreateInstance(e.delegateTarget, this._getDelegateConfig())
        }
        _isAnimated() {
            return this._config.animation || this.tip && this.tip.classList.contains(Wn)
        }
        _isShown() {
            return this.tip && this.tip.classList.contains(Un)
        }
        _createPopper(e) {
            const t = "function" == typeof this._config.placement ? this._config.placement.call(this, e, this._element) : this._config.placement,
                n = Xn[t.toUpperCase()];
            return zt(this._element, e, this._getPopperConfig(n))
        }
        _getOffset() {
            const {
                offset: e
            } = this._config;
            return "string" == typeof e ? e.split(",").map(e => Number.parseInt(e, 10)) : "function" == typeof e ? t => e(t, this._element) : e
        }
        _resolvePossibleFunction(e) {
            return "function" == typeof e ? e.call(this._element) : e
        }
        _getPopperConfig(e) {
            const t = {
                placement: e,
                modifiers: [{
                    name: "flip",
                    options: {
                        fallbackPlacements: this._config.fallbackPlacements
                    }
                }, {
                    name: "offset",
                    options: {
                        offset: this._getOffset()
                    }
                }, {
                    name: "preventOverflow",
                    options: {
                        boundary: this._config.boundary
                    }
                }, {
                    name: "arrow",
                    options: {
                        element: `.${this.constructor.NAME}-arrow`
                    }
                }, {
                    name: "preSetPlacement",
                    enabled: !0,
                    phase: "beforeMain",
                    fn: e => {
                        this._getTipElement().setAttribute("data-popper-placement", e.state.placement)
                    }
                }]
            };
            return { ...t,
                ..."function" == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig
            }
        }
        _setListeners() {
            const e = this._config.trigger.split(" ");
            for (const t of e)
                if ("click" === t) L.on(this._element, this.constructor.eventName("click"), this._config.selector, e => {
                    this._initializeOnDelegatedTarget(e).toggle()
                });
                else if ("manual" !== t) {
                const e = t === Yn ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"),
                    n = t === Yn ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout");
                L.on(this._element, e, this._config.selector, e => {
                    const t = this._initializeOnDelegatedTarget(e);
                    t._activeTrigger["focusin" === e.type ? "focus" : Yn] = !0, t._enter()
                }), L.on(this._element, n, this._config.selector, e => {
                    const t = this._initializeOnDelegatedTarget(e);
                    t._activeTrigger["focusout" === e.type ? "focus" : Yn] = t._element.contains(e.relatedTarget), t._leave()
                })
            }
            this._hideModalHandler = () => {
                this._element && this.hide()
            }, L.on(this._element.closest(".modal"), Vn, this._hideModalHandler)
        }
        _fixTitle() {
            const e = this._element.getAttribute("title");
            e && (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", e), this._element.setAttribute("data-bs-original-title", e), this._element.removeAttribute("title"))
        }
        _enter() {
            this._isShown() || this._isHovered ? this._isHovered = !0 : (this._isHovered = !0, this._setTimeout(() => {
                this._isHovered && this.show()
            }, this._config.delay.show))
        }
        _leave() {
            this._isWithActiveTrigger() || (this._isHovered = !1, this._setTimeout(() => {
                this._isHovered || this.hide()
            }, this._config.delay.hide))
        }
        _setTimeout(e, t) {
            clearTimeout(this._timeout), this._timeout = setTimeout(e, t)
        }
        _isWithActiveTrigger() {
            return Object.values(this._activeTrigger).includes(!0)
        }
        _getConfig(e) {
            const t = z.getDataAttributes(this._element);
            for (const e of Object.keys(t)) qn.has(e) && delete t[e];
            return e = { ...t,
                ..."object" == typeof e && e ? e : {}
            }, e = this._mergeConfigObj(e), e = this._configAfterMerge(e), this._typeCheckConfig(e), e
        }
        _configAfterMerge(e) {
            return e.container = !1 === e.container ? document.body : a(e.container), "number" == typeof 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()), e
        }
        _getDelegateConfig() {
            const e = {};
            for (const t in this._config) this.constructor.Default[t] !== this._config[t] && (e[t] = this._config[t]);
            return e.selector = !1, e.trigger = "manual", e
        }
        _disposePopper() {
            this._popper && (this._popper.destroy(), this._popper = null), this.tip && (this.tip.remove(), this.tip = null)
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = Qn.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            }))
        }
    }
    g(Qn);
    const Zn = { ...Qn.Default,
            content: "",
            offset: [0, 8],
            placement: "right",
            template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
            trigger: "click"
        },
        Jn = { ...Qn.DefaultType,
            content: "(null|string|element|function)"
        };
    class ei extends Qn {
        static get Default() {
            return Zn
        }
        static get DefaultType() {
            return Jn
        }
        static get NAME() {
            return "popover"
        }
        _isWithContent() {
            return this._getTitle() || this._getContent()
        }
        _getContentForTemplate() {
            return {
                ".popover-header": this._getTitle(),
                ".popover-body": this._getContent()
            }
        }
        _getContent() {
            return this._resolvePossibleFunction(this._config.content)
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = ei.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            }))
        }
    }
    g(ei);
    const ti = "click.bs.scrollspy",
        ni = "active",
        ii = {
            offset: null,
            rootMargin: "0px 0px -25%",
            smoothScroll: !1,
            target: null,
            threshold: [.1, .5, 1]
        },
        ri = {
            offset: "(number|null)",
            rootMargin: "string",
            smoothScroll: "boolean",
            target: "element",
            threshold: "array"
        };
    class oi extends B {
        constructor(e, t) {
            super(e, t), this._targetLinks = new Map, this._observableSections = new Map, this._rootElement = "visible" === getComputedStyle(this._element).overflowY ? null : this._element, this._activeTarget = null, this._observer = null, this._previousScrollData = {
                visibleEntryTop: 0,
                parentScrollTop: 0
            }, this.refresh()
        }
        static get Default() {
            return ii
        }
        static get DefaultType() {
            return ri
        }
        static get NAME() {
            return "scrollspy"
        }
        refresh() {
            this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : this._observer = this._getNewObserver();
            for (const e of this._observableSections.values()) this._observer.observe(e)
        }
        dispose() {
            this._observer.disconnect(), super.dispose()
        }
        _configAfterMerge(e) {
            return e.target = a(e.target) || document.body, e.rootMargin = e.offset ? e.offset + "px 0px -30%" : e.rootMargin, "string" == typeof e.threshold && (e.threshold = e.threshold.split(",").map(e => Number.parseFloat(e))), e
        }
        _maybeEnableSmoothScroll() {
            this._config.smoothScroll && (L.off(this._config.target, ti), L.on(this._config.target, ti, "[href]", e => {
                const t = this._observableSections.get(e.target.hash);
                if (t) {
                    e.preventDefault();
                    const n = this._rootElement || window,
                        i = t.offsetTop - this._element.offsetTop;
                    if (n.scrollTo) return void n.scrollTo({
                        top: i,
                        behavior: "smooth"
                    });
                    n.scrollTop = i
                }
            }))
        }
        _getNewObserver() {
            const e = {
                root: this._rootElement,
                threshold: this._config.threshold,
                rootMargin: this._config.rootMargin
            };
            return new IntersectionObserver(e => this._observerCallback(e), e)
        }
        _observerCallback(e) {
            const t = e => this._targetLinks.get("#" + e.target.id),
                n = e => {
                    this._previousScrollData.visibleEntryTop = e.target.offsetTop, this._process(t(e))
                },
                i = (this._rootElement || document.documentElement).scrollTop,
                r = i >= this._previousScrollData.parentScrollTop;
            this._previousScrollData.parentScrollTop = i;
            for (const o of e) {
                if (!o.isIntersecting) {
                    this._activeTarget = null, this._clearActiveClass(t(o));
                    continue
                }
                const e = o.target.offsetTop >= this._previousScrollData.visibleEntryTop;
                if (r && e) {
                    if (n(o), !i) return
                } else r || e || n(o)
            }
        }
        _initializeTargetsAndObservables() {
            this._targetLinks = new Map, this._observableSections = new Map;
            const e = Y.find("[href]", this._config.target);
            for (const t of e) {
                if (!t.hash || l(t)) continue;
                const e = Y.findOne(t.hash, this._element);
                s(e) && (this._targetLinks.set(t.hash, t), this._observableSections.set(t.hash, e))
            }
        }
        _process(e) {
            this._activeTarget !== e && (this._clearActiveClass(this._config.target), this._activeTarget = e, e.classList.add(ni), this._activateParents(e), L.trigger(this._element, "activate.bs.scrollspy", {
                relatedTarget: e
            }))
        }
        _activateParents(e) {
            if (e.classList.contains("dropdown-item")) Y.findOne(".dropdown-toggle", e.closest(".dropdown")).classList.add(ni);
            else
                for (const t of Y.parents(e, ".nav, .list-group"))
                    for (const e of Y.prev(t, ".nav-link, .nav-item > .nav-link, .list-group-item")) e.classList.add(ni)
        }
        _clearActiveClass(e) {
            e.classList.remove(ni);
            const t = Y.find("[href].active", e);
            for (const e of t) e.classList.remove(ni)
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = oi.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            }))
        }
    }
    L.on(window, "load.bs.scrollspy.data-api", () => {
        for (const e of Y.find('[data-bs-spy="scroll"]')) oi.getOrCreateInstance(e)
    }), g(oi);
    const ai = "ArrowLeft",
        si = "ArrowRight",
        li = "ArrowUp",
        ci = "ArrowDown",
        ui = "active",
        di = "show",
        hi = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
        fi = '.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ' + hi;
    class pi extends B {
        constructor(e) {
            super(e), this._parent = this._element.closest('.list-group, .nav, [role="tablist"]'), this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), L.on(this._element, "keydown.bs.tab", e => this._keydown(e)))
        }
        static get NAME() {
            return "tab"
        }
        show() {
            const e = this._element;
            if (this._elemIsActive(e)) return;
            const t = this._getActiveElem(),
                n = t ? L.trigger(t, "hide.bs.tab", {
                    relatedTarget: e
                }) : null;
            L.trigger(e, "show.bs.tab", {
                relatedTarget: t
            }).defaultPrevented || n && n.defaultPrevented || (this._deactivate(t, e), this._activate(e, t))
        }
        _activate(e, t) {
            e && (e.classList.add(ui), this._activate(i(e)), this._queueCallback(() => {
                "tab" === e.getAttribute("role") ? (e.removeAttribute("tabindex"), e.setAttribute("aria-selected", !0), this._toggleDropDown(e, !0), L.trigger(e, "shown.bs.tab", {
                    relatedTarget: t
                })) : e.classList.add(di)
            }, e, e.classList.contains("fade")))
        }
        _deactivate(e, t) {
            e && (e.classList.remove(ui), e.blur(), this._deactivate(i(e)), this._queueCallback(() => {
                "tab" === e.getAttribute("role") ? (e.setAttribute("aria-selected", !1), e.setAttribute("tabindex", "-1"), this._toggleDropDown(e, !1), L.trigger(e, "hidden.bs.tab", {
                    relatedTarget: t
                })) : e.classList.remove(di)
            }, e, e.classList.contains("fade")))
        }
        _keydown(e) {
            if (![ai, si, li, ci].includes(e.key)) return;
            e.stopPropagation(), e.preventDefault();
            const t = [si, ci].includes(e.key),
                n = y(this._getChildren().filter(e => !l(e)), e.target, t, !0);
            n && (n.focus({
                preventScroll: !0
            }), pi.getOrCreateInstance(n).show())
        }
        _getChildren() {
            return Y.find(fi, this._parent)
        }
        _getActiveElem() {
            return this._getChildren().find(e => this._elemIsActive(e)) || null
        }
        _setInitialAttributes(e, t) {
            this._setAttributeIfNotExists(e, "role", "tablist");
            for (const e of t) this._setInitialAttributesOnChild(e)
        }
        _setInitialAttributesOnChild(e) {
            e = this._getInnerElement(e);
            const t = this._elemIsActive(e),
                n = this._getOuterElement(e);
            e.setAttribute("aria-selected", t), n !== e && this._setAttributeIfNotExists(n, "role", "presentation"), t || e.setAttribute("tabindex", "-1"), this._setAttributeIfNotExists(e, "role", "tab"), this._setInitialAttributesOnTargetPanel(e)
        }
        _setInitialAttributesOnTargetPanel(e) {
            const t = i(e);
            t && (this._setAttributeIfNotExists(t, "role", "tabpanel"), e.id && this._setAttributeIfNotExists(t, "aria-labelledby", "#" + e.id))
        }
        _toggleDropDown(e, t) {
            const n = this._getOuterElement(e);
            if (!n.classList.contains("dropdown")) return;
            const i = (e, i) => {
                const r = Y.findOne(e, n);
                r && r.classList.toggle(i, t)
            };
            i(".dropdown-toggle", ui), i(".dropdown-menu", di), n.setAttribute("aria-expanded", t)
        }
        _setAttributeIfNotExists(e, t, n) {
            e.hasAttribute(t) || e.setAttribute(t, n)
        }
        _elemIsActive(e) {
            return e.classList.contains(ui)
        }
        _getInnerElement(e) {
            return e.matches(fi) ? e : Y.findOne(fi, e)
        }
        _getOuterElement(e) {
            return e.closest(".nav-item, .list-group-item") || e
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = pi.getOrCreateInstance(this);
                if ("string" == typeof e) {
                    if (void 0 === t[e] || e.startsWith("_") || "constructor" === e) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            }))
        }
    }
    L.on(document, "click.bs.tab", hi, (function(e) {
        ["A", "AREA"].includes(this.tagName) && e.preventDefault(), l(this) || pi.getOrCreateInstance(this).show()
    })), L.on(window, "load.bs.tab", () => {
        for (const e of Y.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]')) pi.getOrCreateInstance(e)
    }), g(pi);
    const gi = "show",
        mi = "showing",
        vi = {
            animation: "boolean",
            autohide: "boolean",
            delay: "number"
        },
        yi = {
            animation: !0,
            autohide: !0,
            delay: 5e3
        };
    class bi extends B {
        constructor(e, t) {
            super(e, t), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners()
        }
        static get Default() {
            return yi
        }
        static get DefaultType() {
            return vi
        }
        static get NAME() {
            return "toast"
        }
        show() {
            L.trigger(this._element, "show.bs.toast").defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), this._element.classList.remove("hide"), d(this._element), this._element.classList.add(gi, mi), this._queueCallback(() => {
                this._element.classList.remove(mi), L.trigger(this._element, "shown.bs.toast"), this._maybeScheduleHide()
            }, this._element, this._config.animation))
        }
        hide() {
            this.isShown() && (L.trigger(this._element, "hide.bs.toast").defaultPrevented || (this._element.classList.add(mi), this._queueCallback(() => {
                this._element.classList.add("hide"), this._element.classList.remove(mi, gi), L.trigger(this._element, "hidden.bs.toast")
            }, this._element, this._config.animation)))
        }
        dispose() {
            this._clearTimeout(), this.isShown() && this._element.classList.remove(gi), super.dispose()
        }
        isShown() {
            return this._element.classList.contains(gi)
        }
        _maybeScheduleHide() {
            this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout(() => {
                this.hide()
            }, this._config.delay)))
        }
        _onInteraction(e, t) {
            switch (e.type) {
                case "mouseover":
                case "mouseout":
                    this._hasMouseInteraction = t;
                    break;
                case "focusin":
                case "focusout":
                    this._hasKeyboardInteraction = t
            }
            if (t) return void this._clearTimeout();
            const n = e.relatedTarget;
            this._element === n || this._element.contains(n) || this._maybeScheduleHide()
        }
        _setListeners() {
            L.on(this._element, "mouseover.bs.toast", e => this._onInteraction(e, !0)), L.on(this._element, "mouseout.bs.toast", e => this._onInteraction(e, !1)), L.on(this._element, "focusin.bs.toast", e => this._onInteraction(e, !0)), L.on(this._element, "focusout.bs.toast", e => this._onInteraction(e, !1))
        }
        _clearTimeout() {
            clearTimeout(this._timeout), this._timeout = null
        }
        static jQueryInterface(e) {
            return this.each((function() {
                const t = bi.getOrCreateInstance(this, e);
                if ("string" == typeof e) {
                    if (void 0 === t[e]) throw new TypeError(`No method named "${e}"`);
                    t[e](this)
                }
            }))
        }
    }
    return q(bi), g(bi), {
        Alert: W,
        Button: V,
        Carousel: se,
        Collapse: pe,
        Dropdown: on,
        Modal: Tn,
        Offcanvas: Pn,
        Popover: ei,
        ScrollSpy: oi,
        Tab: pi,
        Toast: bi,
        Tooltip: Qn
    }
}));
var NioApp = function(e, t) {
    "use strict";
    var n = t(window),
        i = t("body"),
        r = "lite-dash";

    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.Custom = {}, 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(-4) + r.slice(0, 4)
    }, 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) {
        if (t = t || 1, /^#([A-Fa-f0-9]{3}){1,2}$/.test(e)) return e = [(e = "0x" + (e = 3 === (e = e.substring(1).split("")).length ? [e[0], e[0], e[1], e[1], e[2], e[2]] : e).join("")) >> 16 & 255, e >> 8 & 255, 255 & e].join(","), 1 <= t ? "rgba(" + e + ")" : "rgba(" + e + "," + t + ")";
        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-nio-theme"), n.on("resize", t)
    }, e.ColorBG = function() {
        function e(e, n) {
            n = n || "bg";
            var i = (e = t(e)).data(n);
            "" !== i && ("bg-color" === n ? e.css("background-color", i) : "bg-image" === n ? e.css("background-image", 'url("' + i + '")') : e.css("background", i))
        }
        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 = "color", "" !== (n = (e = t(e = this)).data(n || "color")) && e.css("color", n)
        }))
    }, e.BreakClass = function(n, i, r) {
        var a = n || ".header-menu",
            s = i || e.Break.md,
            l = (n = {
                timeOut: 1e3,
                classAdd: "mobile-menu"
            }, r ? o(n, r) : n);
        if ((i = l.ignore || !1) && t(a).hasClass(i)) return !1;
        e.Win.width < s ? setTimeout((function() {
            e.Win.width < s && t(a).addClass(l.classAdd)
        }), l.timeOut) : t(a).removeClass(l.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");
            i = t("#" + i);
            e.preventDefault(), i.hasClass(r.showClass) ? (n.add(i).addClass(r.hideClass).removeClass(r.showClass), i.attr("type", "password")) : (n.add(i).addClass(r.showClass).removeClass(r.hideClass), i.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", t(e = e || "[data-" + n + "]").exists() && t(e).each((function() {
            t(this).css(n, t(this).data(n))
        }))
    }, e.AddInBody = function(e, n) {
        var r = {
            prefix: "nk-",
            class: "",
            has: "has"
        };
        n = n ? o(r, n) : r, e = r = e.replace(".", "").replace(n.prefix, "");
        n.prefix = !1 !== n.prefix ? n.prefix : "", n.has = "" !== n.has ? n.has + "-" : "", e = "" !== n.class ? n.class : n.has + e, t("." + n.prefix + r).exists() && !i.hasClass(e) && i.addClass(e)
    }, e.Toggle = {
        trigger: function(e, n) {
            var r = {
                    self: e,
                    active: "active",
                    content: "expanded",
                    data: "content",
                    olay: "toggle-overlay",
                    speed: 400
                },
                a = (n = n ? o(r, n) : r, r = t("[data-target=" + e + "]"), (e = t("[data-" + n.data + "=" + e + "]")).data("toggle-body"));
            e.data("toggle-overlay") && (n.overlay = n.olay), a && (n.body = "toggle-shown"), e.hasClass(n.content) ? (r.removeClass(n.active), (1 == n.toggle ? e.slideUp(n.speed) : e).removeClass(n.content)) : (r.addClass(n.active), (1 == n.toggle ? e.slideDown(n.speed) : e).addClass(n.content)), n.body && i.toggleClass(n.body), n.overlay && this.overlay(e, n.overlay, n)
        },
        removed: function(e, n) {
            var r = {
                    self: e,
                    active: "active",
                    content: "expanded",
                    body: "",
                    data: "content",
                    olay: "toggle-overlay"
                },
                a = (n = n ? o(r, n) : r, r = t("[data-target=" + e + "]"), (e = t("[data-" + n.data + "=" + e + "]")).data("toggle-body"));
            e.data("toggle-overlay") && (n.overlay = n.olay), a && (n.body = "toggle-shown"), (r.hasClass(n.active) || e.hasClass(n.content)) && (r.removeClass(n.active), e.removeClass(n.content), !0 === n.toggle && e.slideUp(n.speed)), n.body && i.hasClass(n.body) && i.removeClass(n.body), n.close && (!0 === n.close.profile && this.closeProfile(e), !0 === n.close.menu && this.closeMenu(e)), n.overlay && this.overlayRemove(n.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
            };
            n = n ? o(i, n) : i, e = (i = t(e).parent()).children("." + n.child);
            n.speed = 5 < e.children().length ? n.speed + 20 * e.children().length : n.speed, e.slideToggle(n.speed).find("." + n.child).slideUp(n.speed), i.toggleClass(n.active).siblings().removeClass(n.active).find("." + n.child).slideUp(n.speed)
        },
        closeProfile: function(e) {
            var n = t(e).find(".nk-profile-toggle.active");
            e = t(e).find(".nk-profile-content.expanded");
            n.exists() && (n.removeClass("active"), e.slideUp().removeClass("expanded"))
        },
        closeMenu: function(e) {
            (e = t(e).find(".nk-menu-item.active")).exists() && e.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() && [].slice.call(document.querySelectorAll(e || '[data-bs-toggle="tooltip"]')).map((function(e) {
            return new bootstrap.Tooltip(e, r)
        }))
    }, e.BS.menutip = function(t) {
        e.BS.tooltip(t, {
            boundary: "window",
            placement: "right"
        })
    }, e.BS.popover = function(e) {
        [].slice.call(document.querySelectorAll(e || '[data-bs-toggle="popover"]')).map((function(e) {
            return new bootstrap.Popover(e)
        }))
    }, 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) {
        t(e = e || ".modal").exists() && "function" == typeof t.fn.modal && t(e).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 = {
                format: "" !== (n = t(this).data("date-format")) ? n : "mm/dd/yyyy",
                maxViewMode: 2,
                clearBtn: !0,
                autoclose: !0,
                todayHighlight: !0,
                rtl: e.State.isRTL
            };
            n = i ? o(n, i) : n;
            t(this).datepicker(n).on("changeDate", (function(e) {
                0 !== e.dates.length ? t(this).parent().addClass("focused") : t(this).parent().removeClass("focused")
            }))
        }))
    }, e.Picker.dob = function(t, n) {
        var i = {
            startView: 2,
            todayHighlight: !1
        };
        n = n ? o(i, n) : i;
        e.Picker.date(t, n)
    }, 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 = {
                    timeFormat: "" !== (e = t(this).data("time-format")) ? e : "HH:mm",
                    interval: "" !== (i = t(this).data("time-interval")) ? i : 15,
                    change: function(e) {
                        !1 !== e ? t(this).parent().addClass("focused") : t(this).parent().removeClass("focused")
                    }
                },
                i = n ? o(e, n) : e;
            t(this).timepicker(i)
        }))
    }, e.Select2 = function(n, i) {
        t(n).exists() && "function" == typeof t.fn.select2 && t(n).each((function() {
            var n = ((r = {
                    placeholder: (n = t(this)).data("placeholder"),
                    clear: n.data("clear"),
                    search: n.data("search"),
                    width: n.data("width"),
                    theme: n.data("theme"),
                    ui: n.data("ui")
                }).ui = r.ui ? " " + n.csskey(r.ui, "select2") : "", {
                    theme: r.theme ? r.theme + " " + r.ui : "default" + r.ui,
                    allowClear: r.clear || !1,
                    placeholder: r.placeholder || "",
                    dropdownAutoWidth: !(!r.width || "auto" !== r.width),
                    minimumResultsForSearch: r.search && "on" === r.search ? 1 : -1,
                    dir: e.State.isRTL ? "rtl" : "ltr"
                }),
                r = i ? o(n, i) : n;
            t(this).select2(r)
        }))
    }, e.Custom.Stepper = function(e, n) {
        var i = !(!e.dataset.stepInit || isNaN(e.dataset.stepInit)) && parseInt(e.dataset.stepInit);
        i = {
            selectors: {
                nav: n.selectors.nav || "stepper-nav",
                progress: n.selectors.progress || "stepper-progress",
                content: n.selectors.content || "stepper-steps",
                prev: n.selectors.prev || "step-prev",
                next: n.selectors.next || "step-next",
                submit: n.selectors.submit || "step-submit"
            },
            classes: {
                nav_current: n.classes.nav_current || "current",
                nav_done: n.classes.nav_done || "done",
                step_active: n.classes.step_active || "active",
                step_done: n.classes.step_done || "done"
            },
            current_step: i || parseInt(n.current_step)
        };
        let r = e.querySelectorAll(`.${i.selectors.nav} > *`),
            o = e.querySelectorAll(`.${i.selectors.content} > *`),
            a = (e.querySelector("." + i.selectors.progress), e.querySelector(`.${i.selectors.progress}-count`)),
            s = e.querySelector(`.${i.selectors.progress}-bar`),
            l = e.querySelector("." + i.selectors.prev),
            c = e.querySelector("." + i.selectors.next),
            u = e.querySelector("." + i.selectors.submit),
            d = i.classes.nav_current,
            h = i.classes.nav_done,
            f = i.classes.step_active,
            p = i.classes.step_done,
            g = i.current_step || 1,
            m = g,
            v = r.length,
            y = o.length,
            b = 0 < e.querySelectorAll("." + i.selectors.nav).length,
            w = 0 < e.querySelectorAll("." + i.selectors.progress).length;

        function x(t) {
            var n = t - 1;
            1 === (n = (e.style.display = "block", b && (r.forEach((function(e, t) {
                e.classList.remove(d)
            })), r[n].classList.add(d)), o.forEach((function(e, t) {
                e.classList.remove(f)
            })), o[n].classList.add(f), t)) && (c.style.display = "block", l.style.display = "none", u.style.display = "none", e.setAttribute("data-step-current", "first")), y !== n & 1 !== n && (l.style.display = "block", c.style.display = "block", u.style.display = "none", e.setAttribute("data-step-current", n)), y === n && (l.style.display = "block", u.style.display = "block", c.style.display = "none", e.setAttribute("data-step-current", "last")), w && (a.innerHTML = t + " of " + y, s.style.width = 100 / y * t + "%")
        }
        v !== y && b ? console.error("Stepper nav should have same amount of child element as Stepper steps") : x(g);
        let _ = t("#" + e.id).validate({
            errorElement: "span",
            errorClass: "invalid",
            onfocusout: !1,
            errorPlacement: function(e, t) {
                t.parents().hasClass("input-group") ? e.appendTo(t.parent().parent()) : e.appendTo(t.parent())
            }
        });
        l.querySelector("button").addEventListener("click", (function(e) {
            e.preventDefault();
            e = _.form();
            var t = m - 1;
            e ? y !== m && (b && r[t].classList.add(h), o[t].classList.add(p)) : (b && r[t].classList.remove(h), o[t].classList.remove(p)), x(--m)
        })), c.querySelector("button").addEventListener("click", (function(e) {
            e.preventDefault(), _.form() && (e = m - 1, b && r[e].classList.add(h), o[e].classList.add(p), x(++m))
        })), u.querySelector("button").addEventListener("click", (function(e) {
            e.preventDefault(), _.form()
        }))
    }, 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.8",
                author: "Softnio"
            },
            Package: {
                name: "DashLite",
                version: "2.3"
            }
        },
        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(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 = function(e) {
            return e && e.Math == Math && e
        },
        o = r("object" == typeof globalThis && globalThis) || r("object" == typeof window && window) || r("object" == typeof self && self) || r("object" == typeof e && e) || function() {
            return this
        }() || Function("return this")(),
        a = Object.defineProperty,
        s = function(e, t) {
            try {
                a(o, e, {
                    value: t,
                    configurable: !0,
                    writable: !0
                })
            } catch (n) {
                o[e] = t
            }
            return t
        },
        l = o["__core-js_shared__"] || s("__core-js_shared__", {}),
        c = t((function(e) {
            (e.exports = function(e, t) {
                return l[e] || (l[e] = void 0 !== t ? t : {})
            })("versions", []).push({
                version: "3.22.6",
                mode: "global",
                copyright: "© 2014-2022 Denis Pushkarev (zloirock.ru)",
                license: "https://github.com/zloirock/core-js/blob/v3.22.6/LICENSE",
                source: "https://github.com/zloirock/core-js"
            })
        })),
        u = function(e) {
            try {
                return !!e()
            } catch (e) {
                return !0
            }
        },
        d = !u((function() {
            var e = function() {}.bind();
            return "function" != typeof e || e.hasOwnProperty("prototype")
        })),
        h = Function.prototype,
        f = h.bind,
        p = h.call,
        g = d && f.bind(p, p),
        m = d ? function(e) {
            return e && g(e)
        } : function(e) {
            return e && function() {
                return p.apply(e, arguments)
            }
        },
        v = o.TypeError,
        y = function(e) {
            if (null == e) throw v("Can't call method on " + e);
            return e
        },
        b = o.Object,
        w = function(e) {
            return b(y(e))
        },
        x = m({}.hasOwnProperty),
        _ = Object.hasOwn || function(e, t) {
            return x(w(e), t)
        },
        C = 0,
        S = Math.random(),
        k = m(1..toString),
        T = function(e) {
            return "Symbol(" + (void 0 === e ? "" : e) + ")_" + k(++C + S, 36)
        },
        A = function(e) {
            return "function" == typeof e
        },
        D = function(e) {
            return A(e) ? e : void 0
        },
        E = function(e, t) {
            return arguments.length < 2 ? D(o[e]) : o[e] && o[e][t]
        },
        O = E("navigator", "userAgent") || "",
        M = o.process,
        I = o.Deno,
        P = M && M.versions || I && I.version,
        L = P && P.v8;
    L && (i = (n = L.split("."))[0] > 0 && n[0] < 4 ? 1 : +(n[0] + n[1])), !i && O && (!(n = O.match(/Edge\/(\d+)/)) || n[1] >= 74) && (n = O.match(/Chrome\/(\d+)/)) && (i = +n[1]);
    var N = i,
        F = !!Object.getOwnPropertySymbols && !u((function() {
            var e = Symbol();
            return !String(e) || !(Object(e) instanceof Symbol) || !Symbol.sham && N && N < 41
        })),
        R = F && !Symbol.sham && "symbol" == typeof Symbol.iterator,
        j = c("wks"),
        $ = o.Symbol,
        z = $ && $.for,
        H = R ? $ : $ && $.withoutSetter || T,
        B = function(e) {
            if (!_(j, e) || !F && "string" != typeof j[e]) {
                var t = "Symbol." + e;
                F && _($, e) ? j[e] = $[e] : j[e] = R && z ? z(t) : H(t)
            }
            return j[e]
        },
        q = {};
    q[B("toStringTag")] = "z";
    var W = "[object z]" === String(q),
        U = !u((function() {
            return 7 != Object.defineProperty({}, 1, {
                get: function() {
                    return 7
                }
            })[1]
        })),
        V = function(e) {
            return "object" == typeof e ? null !== e : A(e)
        },
        Y = o.document,
        X = V(Y) && V(Y.createElement),
        G = function(e) {
            return X ? Y.createElement(e) : {}
        },
        K = !U && !u((function() {
            return 7 != Object.defineProperty(G("div"), "a", {
                get: function() {
                    return 7
                }
            }).a
        })),
        Q = U && u((function() {
            return 42 != Object.defineProperty((function() {}), "prototype", {
                value: 42,
                writable: !1
            }).prototype
        })),
        Z = o.String,
        J = o.TypeError,
        ee = function(e) {
            if (V(e)) return e;
            throw J(Z(e) + " is not an object")
        },
        te = Function.prototype.call,
        ne = d ? te.bind(te) : function() {
            return te.apply(te, arguments)
        },
        ie = m({}.isPrototypeOf),
        re = o.Object,
        oe = R ? function(e) {
            return "symbol" == typeof e
        } : function(e) {
            var t = E("Symbol");
            return A(t) && ie(t.prototype, re(e))
        },
        ae = o.String,
        se = function(e) {
            try {
                return ae(e)
            } catch (e) {
                return "Object"
            }
        },
        le = o.TypeError,
        ce = function(e) {
            if (A(e)) return e;
            throw le(se(e) + " is not a function")
        },
        ue = function(e, t) {
            var n = e[t];
            return null == n ? void 0 : ce(n)
        },
        de = o.TypeError,
        he = o.TypeError,
        fe = B("toPrimitive"),
        pe = function(e) {
            var t = function(e, t) {
                if (!V(e) || oe(e)) return e;
                var n, i = ue(e, fe);
                if (i) {
                    if (void 0 === t && (t = "default"), n = ne(i, e, t), !V(n) || oe(n)) return n;
                    throw he("Can't convert object to primitive value")
                }
                return void 0 === t && (t = "number"),
                    function(e, t) {
                        var n, i;
                        if ("string" === t && A(n = e.toString) && !V(i = ne(n, e))) return i;
                        if (A(n = e.valueOf) && !V(i = ne(n, e))) return i;
                        if ("string" !== t && A(n = e.toString) && !V(i = ne(n, e))) return i;
                        throw de("Can't convert object to primitive value")
                    }(e, t)
            }(e, "string");
            return oe(t) ? t : t + ""
        },
        ge = o.TypeError,
        me = Object.defineProperty,
        ve = Object.getOwnPropertyDescriptor,
        ye = {
            f: U ? Q ? function(e, t, n) {
                if (ee(e), t = pe(t), ee(n), "function" == typeof e && "prototype" === t && "value" in n && "writable" in n && !n.writable) {
                    var i = ve(e, t);
                    i && i.writable && (e[t] = n.value, n = {
                        configurable: "configurable" in n ? n.configurable : i.configurable,
                        enumerable: "enumerable" in n ? n.enumerable : i.enumerable,
                        writable: !1
                    })
                }
                return me(e, t, n)
            } : me : function(e, t, n) {
                if (ee(e), t = pe(t), ee(n), K) try {
                    return me(e, t, n)
                } catch (e) {}
                if ("get" in n || "set" in n) throw ge("Accessors not supported");
                return "value" in n && (e[t] = n.value), e
            }
        },
        be = function(e, t) {
            return {
                enumerable: !(1 & e),
                configurable: !(2 & e),
                writable: !(4 & e),
                value: t
            }
        },
        we = U ? function(e, t, n) {
            return ye.f(e, t, be(1, n))
        } : function(e, t, n) {
            return e[t] = n, e
        },
        xe = Function.prototype,
        _e = U && Object.getOwnPropertyDescriptor,
        Ce = _(xe, "name"),
        Se = {
            EXISTS: Ce,
            PROPER: Ce && "something" === function() {}.name,
            CONFIGURABLE: Ce && (!U || U && _e(xe, "name").configurable)
        },
        ke = m(Function.toString);
    A(l.inspectSource) || (l.inspectSource = function(e) {
        return ke(e)
    });
    var Te, Ae, De, Ee = l.inspectSource,
        Oe = o.WeakMap,
        Me = A(Oe) && /native code/.test(Ee(Oe)),
        Ie = c("keys"),
        Pe = function(e) {
            return Ie[e] || (Ie[e] = T(e))
        },
        Le = {},
        Ne = o.TypeError,
        Fe = o.WeakMap;
    if (Me || l.state) {
        var Re = l.state || (l.state = new Fe),
            je = m(Re.get),
            $e = m(Re.has),
            ze = m(Re.set);
        Te = function(e, t) {
            if ($e(Re, e)) throw new Ne("Object already initialized");
            return t.facade = e, ze(Re, e, t), t
        }, Ae = function(e) {
            return je(Re, e) || {}
        }, De = function(e) {
            return $e(Re, e)
        }
    } else {
        var He = Pe("state");
        Le[He] = !0, Te = function(e, t) {
            if (_(e, He)) throw new Ne("Object already initialized");
            return t.facade = e, we(e, He, t), t
        }, Ae = function(e) {
            return _(e, He) ? e[He] : {}
        }, De = function(e) {
            return _(e, He)
        }
    }
    var Be = {
            set: Te,
            get: Ae,
            has: De,
            enforce: function(e) {
                return De(e) ? Ae(e) : Te(e, {})
            },
            getterFor: function(e) {
                return function(t) {
                    var n;
                    if (!V(t) || (n = Ae(t)).type !== e) throw Ne("Incompatible receiver, " + e + " required");
                    return n
                }
            }
        },
        qe = t((function(e) {
            var t = Se.CONFIGURABLE,
                n = Be.enforce,
                i = Be.get,
                r = Object.defineProperty,
                o = U && !u((function() {
                    return 8 !== r((function() {}), "length", {
                        value: 8
                    }).length
                })),
                a = String(String).split("String"),
                s = e.exports = function(e, i, s) {
                    if ("Symbol(" === String(i).slice(0, 7) && (i = "[" + String(i).replace(/^Symbol\(([^)]*)\)/, "$1") + "]"), s && s.getter && (i = "get " + i), s && s.setter && (i = "set " + i), (!_(e, "name") || t && e.name !== i) && r(e, "name", {
                            value: i,
                            configurable: !0
                        }), o && s && _(s, "arity") && e.length !== s.arity && r(e, "length", {
                            value: s.arity
                        }), s && _(s, "constructor") && s.constructor) {
                        if (U) try {
                            r(e, "prototype", {
                                writable: !1
                            })
                        } catch (e) {}
                    } else e.prototype = void 0;
                    var l = n(e);
                    return _(l, "source") || (l.source = a.join("string" == typeof i ? i : "")), e
                };
            Function.prototype.toString = s((function() {
                return A(this) && i(this).source || Ee(this)
            }), "toString")
        })),
        We = function(e, t, n, i) {
            i || (i = {});
            var r = i.enumerable,
                o = void 0 !== i.name ? i.name : t;
            return A(n) && qe(n, o, i), i.global ? r ? e[t] = n : s(t, n) : (i.unsafe ? e[t] && (r = !0) : delete e[t], r ? e[t] = n : we(e, t, n)), e
        },
        Ue = m({}.toString),
        Ve = m("".slice),
        Ye = function(e) {
            return Ve(Ue(e), 8, -1)
        },
        Xe = B("toStringTag"),
        Ge = o.Object,
        Ke = "Arguments" == Ye(function() {
            return arguments
        }()),
        Qe = W ? Ye : 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 = Ge(e), Xe)) ? n : Ke ? Ye(t) : "Object" == (i = Ye(t)) && A(t.callee) ? "Arguments" : i
        },
        Ze = W ? {}.toString : function() {
            return "[object " + Qe(this) + "]"
        };
    W || We(Object.prototype, "toString", Ze, {
        unsafe: !0
    });
    var Je = {
            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
        },
        et = G("span").classList,
        tt = et && et.constructor && et.constructor.prototype,
        nt = tt === Object.prototype ? void 0 : tt,
        it = m(m.bind),
        rt = function(e, t) {
            return ce(e), void 0 === t ? e : d ? it(e, t) : function() {
                return e.apply(t, arguments)
            }
        },
        ot = o.Object,
        at = m("".split),
        st = u((function() {
            return !ot("z").propertyIsEnumerable(0)
        })) ? function(e) {
            return "String" == Ye(e) ? at(e, "") : ot(e)
        } : ot,
        lt = Math.ceil,
        ct = Math.floor,
        ut = Math.trunc || function(e) {
            var t = +e;
            return (t > 0 ? ct : lt)(t)
        },
        dt = function(e) {
            var t = +e;
            return t != t || 0 === t ? 0 : ut(t)
        },
        ht = Math.min,
        ft = function(e) {
            return e > 0 ? ht(dt(e), 9007199254740991) : 0
        },
        pt = function(e) {
            return ft(e.length)
        },
        gt = Array.isArray || function(e) {
            return "Array" == Ye(e)
        },
        mt = function() {},
        vt = [],
        yt = E("Reflect", "construct"),
        bt = /^\s*(?:class|function)\b/,
        wt = m(bt.exec),
        xt = !bt.exec(mt),
        _t = function(e) {
            if (!A(e)) return !1;
            try {
                return yt(mt, vt, e), !0
            } catch (e) {
                return !1
            }
        },
        Ct = function(e) {
            if (!A(e)) return !1;
            switch (Qe(e)) {
                case "AsyncFunction":
                case "GeneratorFunction":
                case "AsyncGeneratorFunction":
                    return !1
            }
            try {
                return xt || !!wt(bt, Ee(e))
            } catch (e) {
                return !0
            }
        };
    Ct.sham = !0;
    var St = !yt || u((function() {
            var e;
            return _t(_t.call) || !_t(Object) || !_t((function() {
                e = !0
            })) || e
        })) ? Ct : _t,
        kt = B("species"),
        Tt = o.Array,
        At = function(e, t) {
            return new(function(e) {
                var t;
                return gt(e) && (t = e.constructor, (St(t) && (t === Tt || gt(t.prototype)) || V(t) && null === (t = t[kt])) && (t = void 0)), void 0 === t ? Tt : t
            }(e))(0 === t ? 0 : t)
        },
        Dt = m([].push),
        Et = function(e) {
            var t = 1 == e,
                n = 2 == e,
                i = 3 == e,
                r = 4 == e,
                o = 6 == e,
                a = 7 == e,
                s = 5 == e || o;
            return function(l, c, u, d) {
                for (var h, f, p = w(l), g = st(p), m = rt(c, u), v = pt(g), y = 0, b = d || At, x = t ? b(l, v) : n || a ? b(l, 0) : void 0; v > y; y++)
                    if ((s || y in g) && (f = m(h = g[y], y, p), e))
                        if (t) x[y] = f;
                        else if (f) switch (e) {
                    case 3:
                        return !0;
                    case 5:
                        return h;
                    case 6:
                        return y;
                    case 2:
                        Dt(x, h)
                } else switch (e) {
                    case 4:
                        return !1;
                    case 7:
                        Dt(x, h)
                }
                return o ? -1 : i || r ? r : x
            }
        },
        Ot = {
            forEach: Et(0),
            map: Et(1),
            filter: Et(2),
            some: Et(3),
            every: Et(4),
            find: Et(5),
            findIndex: Et(6),
            filterReject: Et(7)
        },
        Mt = function(e, t) {
            var n = [][e];
            return !!n && u((function() {
                n.call(null, t || function() {
                    return 1
                }, 1)
            }))
        },
        It = Ot.forEach,
        Pt = Mt("forEach") ? [].forEach : function(e) {
            return It(this, e, arguments.length > 1 ? arguments[1] : void 0)
        },
        Lt = function(e) {
            if (e && e.forEach !== Pt) try {
                we(e, "forEach", Pt)
            } catch (t) {
                e.forEach = Pt
            }
        };
    for (var Nt in Je) Je[Nt] && Lt(o[Nt] && o[Nt].prototype);
    Lt(nt);
    var Ft = !("undefined" == typeof window || !window.document || !window.document.createElement),
        Rt = {}.propertyIsEnumerable,
        jt = Object.getOwnPropertyDescriptor,
        $t = {
            f: jt && !Rt.call({
                1: 2
            }, 1) ? function(e) {
                var t = jt(this, e);
                return !!t && t.enumerable
            } : Rt
        },
        zt = function(e) {
            return st(y(e))
        },
        Ht = Object.getOwnPropertyDescriptor,
        Bt = {
            f: U ? Ht : function(e, t) {
                if (e = zt(e), t = pe(t), K) try {
                    return Ht(e, t)
                } catch (e) {}
                if (_(e, t)) return be(!ne($t.f, e, t), e[t])
            }
        },
        qt = Math.max,
        Wt = Math.min,
        Ut = function(e, t) {
            var n = dt(e);
            return n < 0 ? qt(n + t, 0) : Wt(n, t)
        },
        Vt = function(e) {
            return function(t, n, i) {
                var r, o = zt(t),
                    a = pt(o),
                    s = Ut(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
            }
        },
        Yt = (Vt(!0), Vt(!1)),
        Xt = m([].push),
        Gt = function(e, t) {
            var n, i = zt(e),
                r = 0,
                o = [];
            for (n in i) !_(Le, n) && _(i, n) && Xt(o, n);
            for (; t.length > r;) _(i, n = t[r++]) && (~Yt(o, n) || Xt(o, n));
            return o
        },
        Kt = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"],
        Qt = Kt.concat("length", "prototype"),
        Zt = {
            f: Object.getOwnPropertyNames || function(e) {
                return Gt(e, Qt)
            }
        },
        Jt = {
            f: Object.getOwnPropertySymbols
        },
        en = m([].concat),
        tn = E("Reflect", "ownKeys") || function(e) {
            var t = Zt.f(ee(e)),
                n = Jt.f;
            return n ? en(t, n(e)) : t
        },
        nn = function(e, t, n) {
            for (var i = tn(t), r = ye.f, o = Bt.f, a = 0; a < i.length; a++) {
                var s = i[a];
                _(e, s) || n && _(n, s) || r(e, s, o(t, s))
            }
        },
        rn = /#|\.prototype\./,
        on = function(e, t) {
            var n = sn[an(e)];
            return n == cn || n != ln && (A(t) ? u(t) : !!t)
        },
        an = on.normalize = function(e) {
            return String(e).replace(rn, ".").toLowerCase()
        },
        sn = on.data = {},
        ln = on.NATIVE = "N",
        cn = on.POLYFILL = "P",
        un = on,
        dn = Bt.f,
        hn = function(e, t) {
            var n, i, r, a, l, c = e.target,
                u = e.global,
                d = e.stat;
            if (n = u ? o : d ? o[c] || s(c, {}) : (o[c] || {}).prototype)
                for (i in t) {
                    if (a = t[i], r = e.dontCallGetSet ? (l = dn(n, i)) && l.value : n[i], !un(u ? i : c + (d ? "." : "#") + i, e.forced) && void 0 !== r) {
                        if (typeof a == typeof r) continue;
                        nn(a, r)
                    }(e.sham || r && r.sham) && we(a, "sham", !0), We(n, i, a, e)
                }
        },
        fn = o.String,
        pn = function(e) {
            if ("Symbol" === Qe(e)) throw TypeError("Cannot convert a Symbol value to a string");
            return fn(e)
        },
        gn = "\t\n\v\f\r                　\u2028\u2029\ufeff",
        mn = m("".replace),
        vn = "[" + gn + "]",
        yn = RegExp("^" + vn + vn + "*"),
        bn = RegExp(vn + vn + "*$"),
        wn = function(e) {
            return function(t) {
                var n = pn(y(t));
                return 1 & e && (n = mn(n, yn, "")), 2 & e && (n = mn(n, bn, "")), n
            }
        },
        xn = (wn(1), wn(2), wn(3)),
        _n = o.parseInt,
        Cn = o.Symbol,
        Sn = Cn && Cn.iterator,
        kn = /^[+-]?0x/i,
        Tn = m(kn.exec),
        An = 8 !== _n(gn + "08") || 22 !== _n(gn + "0x16") || Sn && !u((function() {
            _n(Object(Sn))
        })) ? function(e, t) {
            var n = xn(pn(e));
            return _n(n, t >>> 0 || (Tn(kn, n) ? 16 : 10))
        } : _n;
    hn({
        global: !0,
        forced: parseInt != An
    }, {
        parseInt: An
    });
    var Dn = Object.keys || function(e) {
            return Gt(e, Kt)
        },
        En = Object.assign,
        On = Object.defineProperty,
        Mn = m([].concat),
        In = !En || u((function() {
            if (U && 1 !== En({
                    b: 1
                }, En(On({}, "a", {
                    enumerable: !0,
                    get: function() {
                        On(this, "b", {
                            value: 3,
                            enumerable: !1
                        })
                    }
                }), {
                    b: 2
                })).b) return !0;
            var e = {},
                t = {},
                n = Symbol();
            return e[n] = 7, "abcdefghijklmnopqrst".split("").forEach((function(e) {
                t[e] = e
            })), 7 != En({}, e)[n] || "abcdefghijklmnopqrst" != Dn(En({}, t)).join("")
        })) ? function(e, t) {
            for (var n = w(e), i = arguments.length, r = 1, o = Jt.f, a = $t.f; i > r;)
                for (var s, l = st(arguments[r++]), c = o ? Mn(Dn(l), o(l)) : Dn(l), u = c.length, d = 0; u > d;) s = c[d++], U && !ne(a, l, s) || (n[s] = l[s]);
            return n
        } : En;
    hn({
        target: "Object",
        stat: !0,
        arity: 2,
        forced: Object.assign !== In
    }, {
        assign: In
    });
    var Pn = B("species"),
        Ln = Ot.filter,
        Nn = ("filter", N >= 51 || !u((function() {
            var e = [];
            return (e.constructor = {})[Pn] = function() {
                return {
                    foo: 1
                }
            }, 1 !== e.filter(Boolean).foo
        })));
    hn({
        target: "Array",
        proto: !0,
        forced: !Nn
    }, {
        filter: function(e) {
            return Ln(this, e, arguments.length > 1 ? arguments[1] : void 0)
        }
    });
    var Fn, Rn = {
            f: U && !Q ? Object.defineProperties : function(e, t) {
                ee(e);
                for (var n, i = zt(t), r = Dn(t), o = r.length, a = 0; o > a;) ye.f(e, n = r[a++], i[n]);
                return e
            }
        },
        jn = E("document", "documentElement"),
        $n = Pe("IE_PROTO"),
        zn = function() {},
        Hn = function(e) {
            return "<script>" + e + "<\/script>"
        },
        Bn = function(e) {
            e.write(Hn("")), e.close();
            var t = e.parentWindow.Object;
            return e = null, t
        },
        qn = function() {
            try {
                Fn = new ActiveXObject("htmlfile")
            } catch (e) {}
            var e, t;
            qn = "undefined" != typeof document ? document.domain && Fn ? Bn(Fn) : ((t = G("iframe")).style.display = "none", jn.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(Hn("document.F=Object")), e.close(), e.F) : Bn(Fn);
            for (var n = Kt.length; n--;) delete qn.prototype[Kt[n]];
            return qn()
        };
    Le[$n] = !0;
    var Wn = Object.create || function(e, t) {
            var n;
            return null !== e ? (zn.prototype = ee(e), n = new zn, zn.prototype = null, n[$n] = e) : n = qn(), void 0 === t ? n : Rn.f(n, t)
        },
        Un = ye.f,
        Vn = B("unscopables"),
        Yn = Array.prototype;
    null == Yn[Vn] && Un(Yn, Vn, {
        configurable: !0,
        value: Wn(null)
    });
    var Xn, Gn, Kn, Qn = function(e) {
            Yn[Vn][e] = !0
        },
        Zn = {},
        Jn = !u((function() {
            function e() {}
            return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype
        })),
        ei = Pe("IE_PROTO"),
        ti = o.Object,
        ni = ti.prototype,
        ii = Jn ? ti.getPrototypeOf : function(e) {
            var t = w(e);
            if (_(t, ei)) return t[ei];
            var n = t.constructor;
            return A(n) && t instanceof n ? n.prototype : t instanceof ti ? ni : null
        },
        ri = B("iterator"),
        oi = !1;
    [].keys && ("next" in (Kn = [].keys()) ? (Gn = ii(ii(Kn))) !== Object.prototype && (Xn = Gn) : oi = !0), (null == Xn || u((function() {
        var e = {};
        return Xn[ri].call(e) !== e
    }))) && (Xn = {}), A(Xn[ri]) || We(Xn, ri, (function() {
        return this
    }));
    var ai = {
            IteratorPrototype: Xn,
            BUGGY_SAFARI_ITERATORS: oi
        },
        si = ye.f,
        li = B("toStringTag"),
        ci = function(e, t, n) {
            e && !n && (e = e.prototype), e && !_(e, li) && si(e, li, {
                configurable: !0,
                value: t
            })
        },
        ui = ai.IteratorPrototype,
        di = function() {
            return this
        },
        hi = o.String,
        fi = o.TypeError,
        pi = Object.setPrototypeOf || ("__proto__" in {} ? function() {
            var e, t = !1,
                n = {};
            try {
                (e = m(Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set))(n, []), t = n instanceof Array
            } catch (e) {}
            return function(n, i) {
                return ee(n),
                    function(e) {
                        if ("object" == typeof e || A(e)) return e;
                        throw fi("Can't set " + hi(e) + " as a prototype")
                    }(i), t ? e(n, i) : n.__proto__ = i, n
            }
        }() : void 0),
        gi = Se.PROPER,
        mi = Se.CONFIGURABLE,
        vi = ai.IteratorPrototype,
        yi = ai.BUGGY_SAFARI_ITERATORS,
        bi = B("iterator"),
        wi = function() {
            return this
        },
        xi = function(e, t, n, i, r, o, a) {
            ! function(e, t, n, i) {
                var r = t + " Iterator";
                e.prototype = Wn(ui, {
                    next: be(1, n)
                }), ci(e, r, !1), Zn[r] = di
            }(n, t, i);
            var s, l, c, u = function(e) {
                    if (e === r && g) return g;
                    if (!yi && e in f) return f[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,
                f = e.prototype,
                p = f[bi] || f["@@iterator"] || r && f[r],
                g = !yi && p || u(r),
                m = "Array" == t && f.entries || p;
            if (m && (s = ii(m.call(new e))) !== Object.prototype && s.next && (ii(s) !== vi && (pi ? pi(s, vi) : A(s[bi]) || We(s, bi, wi)), ci(s, d, !0)), gi && "values" == r && p && "values" !== p.name && (mi ? we(f, "name", "values") : (h = !0, g = function() {
                    return ne(p, this)
                })), r)
                if (l = {
                        values: u("values"),
                        keys: o ? g : u("keys"),
                        entries: u("entries")
                    }, a)
                    for (c in l)(yi || h || !(c in f)) && We(f, c, l[c]);
                else hn({
                    target: t,
                    proto: !0,
                    forced: yi || h
                }, l);
            return f[bi] !== g && We(f, bi, g, {
                name: r
            }), Zn[t] = g, l
        },
        _i = ye.f,
        Ci = Be.set,
        Si = Be.getterFor("Array Iterator"),
        ki = xi(Array, "Array", (function(e, t) {
            Ci(this, {
                type: "Array Iterator",
                target: zt(e),
                index: 0,
                kind: t
            })
        }), (function() {
            var e = Si(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"),
        Ti = Zn.Arguments = Zn.Array;
    if (Qn("keys"), Qn("values"), Qn("entries"), U && "values" !== Ti.name) try {
        _i(Ti, "name", {
            value: "values"
        })
    } catch (e) {}
    var Ai = m("".charAt),
        Di = m("".charCodeAt),
        Ei = m("".slice),
        Oi = function(e) {
            return function(t, n) {
                var i, r, o = pn(y(t)),
                    a = dt(n),
                    s = o.length;
                return a < 0 || a >= s ? e ? "" : void 0 : (i = Di(o, a)) < 55296 || i > 56319 || a + 1 === s || (r = Di(o, a + 1)) < 56320 || r > 57343 ? e ? Ai(o, a) : i : e ? Ei(o, a, a + 2) : r - 56320 + (i - 55296 << 10) + 65536
            }
        },
        Mi = {
            codeAt: Oi(!1),
            charAt: Oi(!0)
        },
        Ii = Mi.charAt,
        Pi = Be.set,
        Li = Be.getterFor("String Iterator");
    xi(String, "String", (function(e) {
        Pi(this, {
            type: "String Iterator",
            string: pn(e),
            index: 0
        })
    }), (function() {
        var e, t = Li(this),
            n = t.string,
            i = t.index;
        return i >= n.length ? {
            value: void 0,
            done: !0
        } : (e = Ii(n, i), t.index += e.length, {
            value: e,
            done: !1
        })
    }));
    var Ni = function(e, t, n) {
            for (var i in t) We(e, i, t[i], n);
            return e
        },
        Fi = o.Array,
        Ri = Math.max,
        ji = Zt.f,
        $i = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [],
        zi = {
            f: function(e) {
                return $i && "Window" == Ye(e) ? function(e) {
                    try {
                        return ji(e)
                    } catch (e) {
                        return function(e, t, n) {
                            for (var i, r, o, a, s = pt(e), l = Ut(void 0, s), c = Ut(s, s), u = Fi(Ri(c - l, 0)), d = 0; l < c; l++, d++) i = u, r = d, o = e[l], void 0, (a = pe(r)) in i ? ye.f(i, a, be(0, o)) : i[a] = o;
                            return u.length = d, u
                        }($i)
                    }
                }(e) : ji(zt(e))
            }
        },
        Hi = u((function() {
            if ("function" == typeof ArrayBuffer) {
                var e = new ArrayBuffer(8);
                Object.isExtensible(e) && Object.defineProperty(e, "a", {
                    value: 8
                })
            }
        })),
        Bi = Object.isExtensible,
        qi = u((function() {
            Bi(1)
        })) || Hi ? function(e) {
            return !!V(e) && (!Hi || "ArrayBuffer" != Ye(e)) && (!Bi || Bi(e))
        } : Bi,
        Wi = !u((function() {
            return Object.isExtensible(Object.preventExtensions({}))
        })),
        Ui = t((function(e) {
            var t = ye.f,
                n = !1,
                i = T("meta"),
                r = 0,
                o = function(e) {
                    t(e, i, {
                        value: {
                            objectID: "O" + r++,
                            weakData: {}
                        }
                    })
                },
                a = e.exports = {
                    enable: function() {
                        a.enable = function() {}, n = !0;
                        var e = Zt.f,
                            t = m([].splice),
                            r = {};
                        r[i] = 1, e(r).length && (Zt.f = function(n) {
                            for (var r = e(n), o = 0, a = r.length; o < a; o++)
                                if (r[o] === i) {
                                    t(r, o, 1);
                                    break
                                }
                            return r
                        }, hn({
                            target: "Object",
                            stat: !0,
                            forced: !0
                        }, {
                            getOwnPropertyNames: zi.f
                        }))
                    },
                    fastKey: function(e, t) {
                        if (!V(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e;
                        if (!_(e, i)) {
                            if (!qi(e)) return "F";
                            if (!t) return "E";
                            o(e)
                        }
                        return e[i].objectID
                    },
                    getWeakData: function(e, t) {
                        if (!_(e, i)) {
                            if (!qi(e)) return !0;
                            if (!t) return !1;
                            o(e)
                        }
                        return e[i].weakData
                    },
                    onFreeze: function(e) {
                        return Wi && n && qi(e) && !_(e, i) && o(e), e
                    }
                };
            Le[i] = !0
        })),
        Vi = (Ui.enable, Ui.fastKey, Ui.getWeakData, Ui.onFreeze, B("iterator")),
        Yi = Array.prototype,
        Xi = B("iterator"),
        Gi = function(e) {
            if (null != e) return ue(e, Xi) || ue(e, "@@iterator") || Zn[Qe(e)]
        },
        Ki = o.TypeError,
        Qi = function(e, t, n) {
            var i, r;
            ee(e);
            try {
                if (!(i = ue(e, "return"))) {
                    if ("throw" === t) throw n;
                    return n
                }
                i = ne(i, e)
            } catch (e) {
                r = !0, i = e
            }
            if ("throw" === t) throw n;
            if (r) throw i;
            return ee(i), n
        },
        Zi = o.TypeError,
        Ji = function(e, t) {
            this.stopped = e, this.result = t
        },
        er = Ji.prototype,
        tr = function(e, t, n) {
            var i, r, o, a, s, l, c, u, d = n && n.that,
                h = !(!n || !n.AS_ENTRIES),
                f = !(!n || !n.IS_ITERATOR),
                p = !(!n || !n.INTERRUPTED),
                g = rt(t, d),
                m = function(e) {
                    return i && Qi(i, "normal", e), new Ji(!0, e)
                },
                v = function(e) {
                    return h ? (ee(e), p ? g(e[0], e[1], m) : g(e[0], e[1])) : p ? g(e, m) : g(e)
                };
            if (f) i = e;
            else {
                if (!(r = Gi(e))) throw Zi(se(e) + " is not iterable");
                if (void 0 !== (u = r) && (Zn.Array === u || Yi[Vi] === u)) {
                    for (o = 0, a = pt(e); a > o; o++)
                        if ((s = v(e[o])) && ie(er, s)) return s;
                    return new Ji(!1)
                }
                i = function(e, t) {
                    var n = arguments.length < 2 ? Gi(e) : t;
                    if (ce(n)) return ee(ne(n, e));
                    throw Ki(se(e) + " is not iterable")
                }(e, r)
            }
            for (l = i.next; !(c = ne(l, i)).done;) {
                try {
                    s = v(c.value)
                } catch (e) {
                    Qi(i, "throw", e)
                }
                if ("object" == typeof s && s && ie(er, s)) return s
            }
            return new Ji(!1)
        },
        nr = o.TypeError,
        ir = function(e, t) {
            if (ie(t, e)) return e;
            throw nr("Incorrect invocation")
        },
        rr = B("iterator"),
        or = !1;
    try {
        var ar = 0,
            sr = {
                next: function() {
                    return {
                        done: !!ar++
                    }
                },
                return: function() {
                    or = !0
                }
            };
        sr[rr] = function() {
            return this
        }, Array.from(sr, (function() {
            throw 2
        }))
    } catch (e) {}
    var lr = Ui.getWeakData,
        cr = Be.set,
        ur = Be.getterFor,
        dr = Ot.find,
        hr = Ot.findIndex,
        fr = m([].splice),
        pr = 0,
        gr = function(e) {
            return e.frozen || (e.frozen = new mr)
        },
        mr = function() {
            this.entries = []
        },
        vr = function(e, t) {
            return dr(e.entries, (function(e) {
                return e[0] === t
            }))
        };
    mr.prototype = {
        get: function(e) {
            var t = vr(this, e);
            if (t) return t[1]
        },
        has: function(e) {
            return !!vr(this, e)
        },
        set: function(e, t) {
            var n = vr(this, e);
            n ? n[1] = t : this.entries.push([e, t])
        },
        delete: function(e) {
            var t = hr(this.entries, (function(t) {
                return t[0] === e
            }));
            return ~t && fr(this.entries, t, 1), !!~t
        }
    };
    var yr, br = {
            getConstructor: function(e, t, n, i) {
                var r = e((function(e, r) {
                        ir(e, o), cr(e, {
                            type: t,
                            id: pr++,
                            frozen: void 0
                        }), null != r && tr(r, e[i], {
                            that: e,
                            AS_ENTRIES: n
                        })
                    })),
                    o = r.prototype,
                    a = ur(t),
                    s = function(e, t, n) {
                        var i = a(e),
                            r = lr(ee(t), !0);
                        return !0 === r ? gr(i).set(t, n) : r[i.id] = n, e
                    };
                return Ni(o, {
                    delete: function(e) {
                        var t = a(this);
                        if (!V(e)) return !1;
                        var n = lr(e);
                        return !0 === n ? gr(t).delete(e) : n && _(n, t.id) && delete n[t.id]
                    },
                    has: function(e) {
                        var t = a(this);
                        if (!V(e)) return !1;
                        var n = lr(e);
                        return !0 === n ? gr(t).has(e) : n && _(n, t.id)
                    }
                }), Ni(o, n ? {
                    get: function(e) {
                        var t = a(this);
                        if (V(e)) {
                            var n = lr(e);
                            return !0 === n ? gr(t).get(e) : n ? n[t.id] : void 0
                        }
                    },
                    set: function(e, t) {
                        return s(this, e, t)
                    }
                } : {
                    add: function(e) {
                        return s(this, e, !0)
                    }
                }), r
            }
        },
        wr = Be.enforce,
        xr = !o.ActiveXObject && "ActiveXObject" in o,
        _r = function(e) {
            return function() {
                return e(this, arguments.length ? arguments[0] : void 0)
            }
        },
        Cr = function(e, t, n) {
            var i = -1 !== e.indexOf("Map"),
                r = -1 !== e.indexOf("Weak"),
                a = i ? "set" : "add",
                s = o[e],
                l = s && s.prototype,
                c = s,
                d = {},
                h = function(e) {
                    var t = m(l[e]);
                    We(l, e, "add" == e ? function(e) {
                        return t(this, 0 === e ? 0 : e), this
                    } : "delete" == e ? function(e) {
                        return !(r && !V(e)) && t(this, 0 === e ? 0 : e)
                    } : "get" == e ? function(e) {
                        return r && !V(e) ? void 0 : t(this, 0 === e ? 0 : e)
                    } : "has" == e ? function(e) {
                        return !(r && !V(e)) && t(this, 0 === e ? 0 : e)
                    } : function(e, n) {
                        return t(this, 0 === e ? 0 : e, n), this
                    })
                };
            if (un(e, !A(s) || !(r || l.forEach && !u((function() {
                    (new s).entries().next()
                }))))) c = n.getConstructor(t, e, i, a), Ui.enable();
            else if (un(e, !0)) {
                var f = new c,
                    p = f[a](r ? {} : -0, 1) != f,
                    g = u((function() {
                        f.has(1)
                    })),
                    v = function(e, t) {
                        if (!or) return !1;
                        var n = !1;
                        try {
                            var i = {};
                            i[rr] = function() {
                                    return {
                                        next: function() {
                                            return {
                                                done: n = !0
                                            }
                                        }
                                    }
                                },
                                function(e) {
                                    new s(e)
                                }(i)
                        } catch (e) {}
                        return n
                    }(),
                    y = !r && u((function() {
                        for (var e = new s, t = 5; t--;) e[a](t, t);
                        return !e.has(-0)
                    }));
                v || ((c = t((function(e, t) {
                    ir(e, l);
                    var n = function(e, t, n) {
                        var i, r;
                        return pi && A(i = t.constructor) && i !== n && V(r = i.prototype) && r !== n.prototype && pi(e, r), e
                    }(new s, e, c);
                    return null != t && tr(t, n[a], {
                        that: n,
                        AS_ENTRIES: i
                    }), n
                }))).prototype = l, l.constructor = c), (g || y) && (h("delete"), h("has"), i && h("get")), (y || p) && h(a), r && l.clear && delete l.clear
            }
            return d[e] = c, hn({
                global: !0,
                constructor: !0,
                forced: c != s
            }, d), ci(c, e), r || n.setStrong(c, e, i), c
        }("WeakMap", _r, br);
    if (Me && xr) {
        yr = br.getConstructor(_r, "WeakMap", !0), Ui.enable();
        var Sr = Cr.prototype,
            kr = m(Sr.delete),
            Tr = m(Sr.has),
            Ar = m(Sr.get),
            Dr = m(Sr.set);
        Ni(Sr, {
            delete: function(e) {
                if (V(e) && !qi(e)) {
                    var t = wr(this);
                    return t.frozen || (t.frozen = new yr), kr(this, e) || t.frozen.delete(e)
                }
                return kr(this, e)
            },
            has: function(e) {
                if (V(e) && !qi(e)) {
                    var t = wr(this);
                    return t.frozen || (t.frozen = new yr), Tr(this, e) || t.frozen.has(e)
                }
                return Tr(this, e)
            },
            get: function(e) {
                if (V(e) && !qi(e)) {
                    var t = wr(this);
                    return t.frozen || (t.frozen = new yr), Tr(this, e) ? Ar(this, e) : t.frozen.get(e)
                }
                return Ar(this, e)
            },
            set: function(e, t) {
                if (V(e) && !qi(e)) {
                    var n = wr(this);
                    n.frozen || (n.frozen = new yr), Tr(this, e) ? Dr(this, e, t) : n.frozen.set(e, t)
                } else Dr(this, e, t);
                return this
            }
        })
    }
    var Er = B("iterator"),
        Or = B("toStringTag"),
        Mr = ki.values,
        Ir = function(e, t) {
            if (e) {
                if (e[Er] !== Mr) try {
                    we(e, Er, Mr)
                } catch (t) {
                    e[Er] = Mr
                }
                if (e[Or] || we(e, Or, t), Je[t])
                    for (var n in ki)
                        if (e[n] !== ki[n]) try {
                            we(e, n, ki[n])
                        } catch (t) {
                            e[n] = ki[n]
                        }
            }
        };
    for (var Pr in Je) Ir(o[Pr] && o[Pr].prototype, Pr);
    Ir(nt, "DOMTokenList");
    var Lr = /^\s+|\s+$/g,
        Nr = /^[-+]0x[0-9a-f]+$/i,
        Fr = /^0b[01]+$/i,
        Rr = /^0o[0-7]+$/i,
        jr = parseInt,
        $r = "object" == typeof e && e && e.Object === Object && e,
        zr = "object" == typeof self && self && self.Object === Object && self,
        Hr = $r || zr || Function("return this")(),
        Br = Object.prototype.toString,
        qr = Math.max,
        Wr = Math.min,
        Ur = function() {
            return Hr.Date.now()
        };

    function Vr(e) {
        var t = typeof e;
        return !!e && ("object" == t || "function" == t)
    }

    function Yr(e) {
        if ("number" == typeof e) return e;
        if (function(e) {
                return "symbol" == typeof e || function(e) {
                    return !!e && "object" == typeof e
                }(e) && "[object Symbol]" == Br.call(e)
            }(e)) return NaN;
        if (Vr(e)) {
            var t = "function" == typeof e.valueOf ? e.valueOf() : e;
            e = Vr(t) ? t + "" : t
        }
        if ("string" != typeof e) return 0 === e ? e : +e;
        e = e.replace(Lr, "");
        var n = Fr.test(e);
        return n || Rr.test(e) ? jr(e.slice(2), n ? 2 : 8) : Nr.test(e) ? NaN : +e
    }
    var Xr = function(e, t, n) {
            var i = !0,
                r = !0;
            if ("function" != typeof e) throw new TypeError("Expected a function");
            return Vr(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("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) {
                        return c = e, s = setTimeout(m, t), u ? f(e) : a
                    }

                    function g(e) {
                        var n = e - l;
                        return void 0 === l || n >= t || n < 0 || d && e - c >= o
                    }

                    function m() {
                        var e = Ur();
                        if (g(e)) return v(e);
                        s = setTimeout(m, function(e) {
                            var n = t - (e - l);
                            return d ? Wr(n, o - (e - c)) : n
                        }(e))
                    }

                    function v(e) {
                        return s = void 0, h && i ? f(e) : (i = r = void 0, a)
                    }

                    function y() {
                        var e = Ur(),
                            n = g(e);
                        if (i = arguments, r = this, l = e, n) {
                            if (void 0 === s) return p(l);
                            if (d) return s = setTimeout(m, t), f(l)
                        }
                        return void 0 === s && (s = setTimeout(m, t)), a
                    }
                    return t = Yr(t) || 0, Vr(n) && (u = !!n.leading, o = (d = "maxWait" in n) ? qr(Yr(n.maxWait) || 0, t) : o, h = "trailing" in n ? !!n.trailing : h), y.cancel = function() {
                        void 0 !== s && clearTimeout(s), c = 0, i = l = r = s = void 0
                    }, y.flush = function() {
                        return void 0 === s ? a : v(Ur())
                    }, y
                }(e, t, {
                    leading: i,
                    maxWait: t,
                    trailing: r
                })
        },
        Gr = /^\s+|\s+$/g,
        Kr = /^[-+]0x[0-9a-f]+$/i,
        Qr = /^0b[01]+$/i,
        Zr = /^0o[0-7]+$/i,
        Jr = parseInt,
        eo = "object" == typeof e && e && e.Object === Object && e,
        to = "object" == typeof self && self && self.Object === Object && self,
        no = eo || to || Function("return this")(),
        io = Object.prototype.toString,
        ro = Math.max,
        oo = Math.min,
        ao = function() {
            return no.Date.now()
        };

    function so(e) {
        var t = typeof e;
        return !!e && ("object" == t || "function" == t)
    }

    function lo(e) {
        if ("number" == typeof e) return e;
        if (function(e) {
                return "symbol" == typeof e || function(e) {
                    return !!e && "object" == typeof e
                }(e) && "[object Symbol]" == io.call(e)
            }(e)) return NaN;
        if (so(e)) {
            var t = "function" == typeof e.valueOf ? e.valueOf() : e;
            e = so(t) ? t + "" : t
        }
        if ("string" != typeof e) return 0 === e ? e : +e;
        e = e.replace(Gr, "");
        var n = Qr.test(e);
        return n || Zr.test(e) ? Jr(e.slice(2), n ? 2 : 8) : Kr.test(e) ? NaN : +e
    }
    var co = 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) {
                return c = e, s = setTimeout(m, t), u ? f(e) : a
            }

            function g(e) {
                var n = e - l;
                return void 0 === l || n >= t || n < 0 || d && e - c >= o
            }

            function m() {
                var e = ao();
                if (g(e)) return v(e);
                s = setTimeout(m, function(e) {
                    var n = t - (e - l);
                    return d ? oo(n, o - (e - c)) : n
                }(e))
            }

            function v(e) {
                return s = void 0, h && i ? f(e) : (i = r = void 0, a)
            }

            function y() {
                var e = ao(),
                    n = g(e);
                if (i = arguments, r = this, l = e, n) {
                    if (void 0 === s) return p(l);
                    if (d) return s = setTimeout(m, t), f(l)
                }
                return void 0 === s && (s = setTimeout(m, t)), a
            }
            return t = lo(t) || 0, so(n) && (u = !!n.leading, o = (d = "maxWait" in n) ? ro(lo(n.maxWait) || 0, t) : o, h = "trailing" in n ? !!n.trailing : h), y.cancel = function() {
                void 0 !== s && clearTimeout(s), c = 0, i = l = r = s = void 0
            }, y.flush = function() {
                return void 0 === s ? a : v(ao())
            }, y
        },
        uo = /^\[object .+?Constructor\]$/,
        ho = "object" == typeof e && e && e.Object === Object && e,
        fo = "object" == typeof self && self && self.Object === Object && self,
        po = ho || fo || Function("return this")(),
        go = Array.prototype,
        mo = Function.prototype,
        vo = Object.prototype,
        yo = po["__core-js_shared__"],
        bo = function() {
            var e = /[^.]+$/.exec(yo && yo.keys && yo.keys.IE_PROTO || "");
            return e ? "Symbol(src)_1." + e : ""
        }(),
        wo = mo.toString,
        xo = vo.hasOwnProperty,
        _o = vo.toString,
        Co = RegExp("^" + wo.call(xo).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
        So = go.splice,
        ko = Io(po, "Map"),
        To = Io(Object, "create");

    function Ao(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 Do(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 Eo(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 Oo(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 Mo(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 Io(e, t) {
        var n = function(e, t) {
            return null == e ? void 0 : e[t]
        }(e, t);
        return function(e) {
            return !(!Lo(e) || (t = e, bo && bo in t)) && (function(e) {
                var t = Lo(e) ? _o.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) ? Co : uo).test(function(e) {
                if (null != e) {
                    try {
                        return wo.call(e)
                    } catch (e) {}
                    try {
                        return e + ""
                    } catch (e) {}
                }
                return ""
            }(e));
            var t
        }(n) ? n : void 0
    }

    function Po(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(Po.Cache || Eo), n
    }

    function Lo(e) {
        var t = typeof e;
        return !!e && ("object" == t || "function" == t)
    }
    Ao.prototype.clear = function() {
        this.__data__ = To ? To(null) : {}
    }, Ao.prototype.delete = function(e) {
        return this.has(e) && delete this.__data__[e]
    }, Ao.prototype.get = function(e) {
        var t = this.__data__;
        if (To) {
            var n = t[e];
            return "__lodash_hash_undefined__" === n ? void 0 : n
        }
        return xo.call(t, e) ? t[e] : void 0
    }, Ao.prototype.has = function(e) {
        var t = this.__data__;
        return To ? void 0 !== t[e] : xo.call(t, e)
    }, Ao.prototype.set = function(e, t) {
        return this.__data__[e] = To && void 0 === t ? "__lodash_hash_undefined__" : t, this
    }, Do.prototype.clear = function() {
        this.__data__ = []
    }, Do.prototype.delete = function(e) {
        var t = this.__data__,
            n = Oo(t, e);
        return !(n < 0 || (n == t.length - 1 ? t.pop() : So.call(t, n, 1), 0))
    }, Do.prototype.get = function(e) {
        var t = this.__data__,
            n = Oo(t, e);
        return n < 0 ? void 0 : t[n][1]
    }, Do.prototype.has = function(e) {
        return Oo(this.__data__, e) > -1
    }, Do.prototype.set = function(e, t) {
        var n = this.__data__,
            i = Oo(n, e);
        return i < 0 ? n.push([e, t]) : n[i][1] = t, this
    }, Eo.prototype.clear = function() {
        this.__data__ = {
            hash: new Ao,
            map: new(ko || Do),
            string: new Ao
        }
    }, Eo.prototype.delete = function(e) {
        return Mo(this, e).delete(e)
    }, Eo.prototype.get = function(e) {
        return Mo(this, e).get(e)
    }, Eo.prototype.has = function(e) {
        return Mo(this, e).has(e)
    }, Eo.prototype.set = function(e, t) {
        return Mo(this, e).set(e, t), this
    }, Po.Cache = Eo;
    var No, Fo = Po,
        Ro = [],
        jo = "ResizeObserver loop completed with undelivered notifications.";
    ! function(e) {
        e.BORDER_BOX = "border-box", e.CONTENT_BOX = "content-box", e.DEVICE_PIXEL_CONTENT_BOX = "device-pixel-content-box"
    }(No || (No = {}));
    var $o, zo = function(e) {
            return Object.freeze(e)
        },
        Ho = function(e, t) {
            this.inlineSize = e, this.blockSize = t, zo(this)
        },
        Bo = function() {
            function e(e, t, n, i) {
                return this.x = e, this.y = t, this.width = n, this.height = i, this.top = this.y, this.left = this.x, this.bottom = this.top + this.height, this.right = this.left + this.width, zo(this)
            }
            return e.prototype.toJSON = function() {
                var e = this;
                return {
                    x: e.x,
                    y: e.y,
                    top: e.top,
                    right: e.right,
                    bottom: e.bottom,
                    left: e.left,
                    width: e.width,
                    height: e.height
                }
            }, e.fromRect = function(t) {
                return new e(t.x, t.y, t.width, t.height)
            }, e
        }(),
        qo = function(e) {
            return e instanceof SVGElement && "getBBox" in e
        },
        Wo = function(e) {
            if (qo(e)) {
                var t = e.getBBox(),
                    n = t.width,
                    i = t.height;
                return !n && !i
            }
            var r = e,
                o = r.offsetWidth,
                a = r.offsetHeight;
            return !(o || a || e.getClientRects().length)
        },
        Uo = function(e) {
            var t, n;
            if (e instanceof Element) return !0;
            var i = null === (n = null === (t = e) || void 0 === t ? void 0 : t.ownerDocument) || void 0 === n ? void 0 : n.defaultView;
            return !!(i && e instanceof i.Element)
        },
        Vo = "undefined" != typeof window ? window : {},
        Yo = new WeakMap,
        Xo = /auto|scroll/,
        Go = /^tb|vertical/,
        Ko = /msie|trident/i.test(Vo.navigator && Vo.navigator.userAgent),
        Qo = function(e) {
            return parseFloat(e || "0")
        },
        Zo = function(e, t, n) {
            return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = !1), new Ho((n ? t : e) || 0, (n ? e : t) || 0)
        },
        Jo = zo({
            devicePixelContentBoxSize: Zo(),
            borderBoxSize: Zo(),
            contentBoxSize: Zo(),
            contentRect: new Bo(0, 0, 0, 0)
        }),
        ea = function(e, t) {
            if (void 0 === t && (t = !1), Yo.has(e) && !t) return Yo.get(e);
            if (Wo(e)) return Yo.set(e, Jo), Jo;
            var n = getComputedStyle(e),
                i = qo(e) && e.ownerSVGElement && e.getBBox(),
                r = !Ko && "border-box" === n.boxSizing,
                o = Go.test(n.writingMode || ""),
                a = !i && Xo.test(n.overflowY || ""),
                s = !i && Xo.test(n.overflowX || ""),
                l = i ? 0 : Qo(n.paddingTop),
                c = i ? 0 : Qo(n.paddingRight),
                u = i ? 0 : Qo(n.paddingBottom),
                d = i ? 0 : Qo(n.paddingLeft),
                h = i ? 0 : Qo(n.borderTopWidth),
                f = i ? 0 : Qo(n.borderRightWidth),
                p = i ? 0 : Qo(n.borderBottomWidth),
                g = d + c,
                m = l + u,
                v = (i ? 0 : Qo(n.borderLeftWidth)) + f,
                y = h + p,
                b = s ? e.offsetHeight - y - e.clientHeight : 0,
                w = a ? e.offsetWidth - v - e.clientWidth : 0,
                x = r ? g + v : 0,
                _ = r ? m + y : 0,
                C = i ? i.width : Qo(n.width) - x - w,
                S = i ? i.height : Qo(n.height) - _ - b,
                k = C + g + w + v,
                T = S + m + b + y,
                A = zo({
                    devicePixelContentBoxSize: Zo(Math.round(C * devicePixelRatio), Math.round(S * devicePixelRatio), o),
                    borderBoxSize: Zo(k, T, o),
                    contentBoxSize: Zo(C, S, o),
                    contentRect: new Bo(d, l, C, S)
                });
            return Yo.set(e, A), A
        },
        ta = function(e, t, n) {
            var i = ea(e, n),
                r = i.borderBoxSize,
                o = i.contentBoxSize,
                a = i.devicePixelContentBoxSize;
            switch (t) {
                case No.DEVICE_PIXEL_CONTENT_BOX:
                    return a;
                case No.BORDER_BOX:
                    return r;
                default:
                    return o
            }
        },
        na = function(e) {
            var t = ea(e);
            this.target = e, this.contentRect = t.contentRect, this.borderBoxSize = zo([t.borderBoxSize]), this.contentBoxSize = zo([t.contentBoxSize]), this.devicePixelContentBoxSize = zo([t.devicePixelContentBoxSize])
        },
        ia = function(e) {
            if (Wo(e)) return 1 / 0;
            for (var t = 0, n = e.parentNode; n;) t += 1, n = n.parentNode;
            return t
        },
        ra = function() {
            var e = 1 / 0,
                t = [];
            Ro.forEach((function(n) {
                if (0 !== n.activeTargets.length) {
                    var i = [];
                    n.activeTargets.forEach((function(t) {
                        var n = new na(t.target),
                            r = ia(t.target);
                        i.push(n), t.lastReportedSize = ta(t.target, t.observedBox), r < e && (e = r)
                    })), t.push((function() {
                        n.callback.call(n.observer, i, n.observer)
                    })), n.activeTargets.splice(0, n.activeTargets.length)
                }
            }));
            for (var n = 0, i = t; n < i.length; n++)(0, i[n])();
            return e
        },
        oa = function(e) {
            Ro.forEach((function(t) {
                t.activeTargets.splice(0, t.activeTargets.length), t.skippedTargets.splice(0, t.skippedTargets.length), t.observationTargets.forEach((function(n) {
                    n.isActive() && (ia(n.target) > e ? t.activeTargets.push(n) : t.skippedTargets.push(n))
                }))
            }))
        },
        aa = [],
        sa = 0,
        la = {
            attributes: !0,
            characterData: !0,
            childList: !0,
            subtree: !0
        },
        ca = ["resize", "load", "transitionend", "animationend", "animationstart", "animationiteration", "keyup", "keydown", "mouseup", "mousedown", "mouseover", "mouseout", "blur", "focus"],
        ua = function(e) {
            return void 0 === e && (e = 0), Date.now() + e
        },
        da = !1,
        ha = new(function() {
            function e() {
                var e = this;
                this.stopped = !0, this.listener = function() {
                    return e.schedule()
                }
            }
            return e.prototype.run = function(e) {
                var t = this;
                if (void 0 === e && (e = 250), !da) {
                    da = !0;
                    var n, i = ua(e);
                    n = function() {
                            var n = !1;
                            try {
                                n = function() {
                                    var e, t = 0;
                                    for (oa(t); Ro.some((function(e) {
                                            return e.activeTargets.length > 0
                                        }));) t = ra(), oa(t);
                                    return Ro.some((function(e) {
                                        return e.skippedTargets.length > 0
                                    })) && ("function" == typeof ErrorEvent ? e = new ErrorEvent("error", {
                                        message: jo
                                    }) : ((e = document.createEvent("Event")).initEvent("error", !1, !1), e.message = jo), window.dispatchEvent(e)), t > 0
                                }()
                            } finally {
                                if (da = !1, e = i - ua(), !sa) return;
                                n ? t.run(1e3) : e > 0 ? t.run(e) : t.start()
                            }
                        },
                        function(e) {
                            if (!$o) {
                                var t = 0,
                                    n = document.createTextNode("");
                                new MutationObserver((function() {
                                    return aa.splice(0).forEach((function(e) {
                                        return e()
                                    }))
                                })).observe(n, {
                                    characterData: !0
                                }), $o = function() {
                                    n.textContent = "" + (t ? t-- : t++)
                                }
                            }
                            aa.push(e), $o()
                        }((function() {
                            requestAnimationFrame(n)
                        }))
                }
            }, e.prototype.schedule = function() {
                this.stop(), this.run()
            }, e.prototype.observe = function() {
                var e = this,
                    t = function() {
                        return e.observer && e.observer.observe(document.body, la)
                    };
                document.body ? t() : Vo.addEventListener("DOMContentLoaded", t)
            }, e.prototype.start = function() {
                var e = this;
                this.stopped && (this.stopped = !1, this.observer = new MutationObserver(this.listener), this.observe(), ca.forEach((function(t) {
                    return Vo.addEventListener(t, e.listener, !0)
                })))
            }, e.prototype.stop = function() {
                var e = this;
                this.stopped || (this.observer && this.observer.disconnect(), ca.forEach((function(t) {
                    return Vo.removeEventListener(t, e.listener, !0)
                })), this.stopped = !0)
            }, e
        }()),
        fa = function(e) {
            !sa && e > 0 && ha.start(), !(sa += e) && ha.stop()
        },
        pa = function() {
            function e(e, t) {
                this.target = e, this.observedBox = t || No.CONTENT_BOX, this.lastReportedSize = {
                    inlineSize: 0,
                    blockSize: 0
                }
            }
            return e.prototype.isActive = function() {
                var e, t = ta(this.target, this.observedBox, !0);
                return e = this.target, qo(e) || function(e) {
                    switch (e.tagName) {
                        case "INPUT":
                            if ("image" !== e.type) break;
                        case "VIDEO":
                        case "AUDIO":
                        case "EMBED":
                        case "OBJECT":
                        case "CANVAS":
                        case "IFRAME":
                        case "IMG":
                            return !0
                    }
                    return !1
                }(e) || "inline" !== getComputedStyle(e).display || (this.lastReportedSize = t), this.lastReportedSize.inlineSize !== t.inlineSize || this.lastReportedSize.blockSize !== t.blockSize
            }, e
        }(),
        ga = function(e, t) {
            this.activeTargets = [], this.skippedTargets = [], this.observationTargets = [], this.observer = e, this.callback = t
        },
        ma = new WeakMap,
        va = function(e, t) {
            for (var n = 0; n < e.length; n += 1)
                if (e[n].target === t) return n;
            return -1
        },
        ya = function() {
            function e() {}
            return e.connect = function(e, t) {
                var n = new ga(e, t);
                ma.set(e, n)
            }, e.observe = function(e, t, n) {
                var i = ma.get(e),
                    r = 0 === i.observationTargets.length;
                va(i.observationTargets, t) < 0 && (r && Ro.push(i), i.observationTargets.push(new pa(t, n && n.box)), fa(1), ha.schedule())
            }, e.unobserve = function(e, t) {
                var n = ma.get(e),
                    i = va(n.observationTargets, t),
                    r = 1 === n.observationTargets.length;
                i >= 0 && (r && Ro.splice(Ro.indexOf(n), 1), n.observationTargets.splice(i, 1), fa(-1))
            }, e.disconnect = function(e) {
                var t = this,
                    n = ma.get(e);
                n.observationTargets.slice().forEach((function(n) {
                    return t.unobserve(e, n.target)
                })), n.activeTargets.splice(0, n.activeTargets.length)
            }, e
        }(),
        ba = function() {
            function e(e) {
                if (0 === arguments.length) throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");
                if ("function" != typeof e) throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");
                ya.connect(this, e)
            }
            return e.prototype.observe = function(e, t) {
                if (0 === arguments.length) throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");
                if (!Uo(e)) throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");
                ya.observe(this, e, t)
            }, e.prototype.unobserve = function(e) {
                if (0 === arguments.length) throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");
                if (!Uo(e)) throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");
                ya.unobserve(this, e)
            }, e.prototype.disconnect = function() {
                ya.disconnect(this)
            }, e.toString = function() {
                return "function ResizeObserver () { [polyfill code] }"
            }, e
        }(),
        wa = o.TypeError,
        xa = function(e) {
            return function(t, n, i, r) {
                ce(n);
                var o = w(t),
                    a = st(o),
                    s = pt(o),
                    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 wa("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
            }
        },
        _a = {
            left: xa(!1),
            right: xa(!0)
        },
        Ca = "process" == Ye(o.process),
        Sa = _a.left,
        ka = Mt("reduce");
    hn({
        target: "Array",
        proto: !0,
        forced: !ka || !Ca && N > 79 && N < 83
    }, {
        reduce: function(e) {
            var t = arguments.length;
            return Sa(this, e, t, t > 1 ? arguments[1] : void 0)
        }
    });
    var Ta, Aa, Da = function() {
            var e = ee(this),
                t = "";
            return e.hasIndices && (t += "d"), 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
        },
        Ea = o.RegExp,
        Oa = u((function() {
            var e = Ea("a", "y");
            return e.lastIndex = 2, null != e.exec("abcd")
        })),
        Ma = Oa || u((function() {
            return !Ea("a", "y").sticky
        })),
        Ia = {
            BROKEN_CARET: Oa || u((function() {
                var e = Ea("^r", "gy");
                return e.lastIndex = 2, null != e.exec("str")
            })),
            MISSED_STICKY: Ma,
            UNSUPPORTED_Y: Oa
        },
        Pa = o.RegExp,
        La = u((function() {
            var e = Pa(".", "s");
            return !(e.dotAll && e.exec("\n") && "s" === e.flags)
        })),
        Na = o.RegExp,
        Fa = u((function() {
            var e = Na("(?<a>b)", "g");
            return "b" !== e.exec("b").groups.a || "bc" !== "b".replace(e, "$<a>c")
        })),
        Ra = Be.get,
        ja = c("native-string-replace", String.prototype.replace),
        $a = RegExp.prototype.exec,
        za = $a,
        Ha = m("".charAt),
        Ba = m("".indexOf),
        qa = m("".replace),
        Wa = m("".slice),
        Ua = (Aa = /b*/g, ne($a, Ta = /a/, "a"), ne($a, Aa, "a"), 0 !== Ta.lastIndex || 0 !== Aa.lastIndex),
        Va = Ia.BROKEN_CARET,
        Ya = void 0 !== /()??/.exec("")[1];
    (Ua || Ya || Va || La || Fa) && (za = function(e) {
        var t, n, i, r, o, a, s, l = this,
            c = Ra(l),
            u = pn(e),
            d = c.raw;
        if (d) return d.lastIndex = l.lastIndex, t = ne(za, d, u), l.lastIndex = d.lastIndex, t;
        var h = c.groups,
            f = Va && l.sticky,
            p = ne(Da, l),
            g = l.source,
            m = 0,
            v = u;
        if (f && (p = qa(p, "y", ""), -1 === Ba(p, "g") && (p += "g"), v = Wa(u, l.lastIndex), l.lastIndex > 0 && (!l.multiline || l.multiline && "\n" !== Ha(u, l.lastIndex - 1)) && (g = "(?: " + g + ")", v = " " + v, m++), n = new RegExp("^(?:" + g + ")", p)), Ya && (n = new RegExp("^" + g + "$(?!\\s)", p)), Ua && (i = l.lastIndex), r = ne($a, f ? n : l, v), f ? r ? (r.input = Wa(r.input, m), r[0] = Wa(r[0], m), r.index = l.lastIndex, l.lastIndex += r[0].length) : l.lastIndex = 0 : Ua && r && (l.lastIndex = l.global ? r.index + r[0].length : i), Ya && r && r.length > 1 && ne(ja, r[0], n, (function() {
                for (o = 1; o < arguments.length - 2; o++) void 0 === arguments[o] && (r[o] = void 0)
            })), r && h)
            for (r.groups = a = Wn(null), o = 0; o < h.length; o++) a[(s = h[o])[0]] = r[s[1]];
        return r
    });
    var Xa = za;
    hn({
        target: "RegExp",
        proto: !0,
        forced: /./.exec !== Xa
    }, {
        exec: Xa
    });
    var Ga = B("species"),
        Ka = RegExp.prototype,
        Qa = function(e, t, n, i) {
            var r = B(e),
                o = !u((function() {
                    var t = {};
                    return t[r] = function() {
                        return 7
                    }, 7 != "" [e](t)
                })),
                a = o && !u((function() {
                    var t = !1,
                        n = /a/;
                    return "split" === e && ((n = {}).constructor = {}, n.constructor[Ga] = function() {
                        return n
                    }, n.flags = "", n[r] = /./ [r]), n.exec = function() {
                        return t = !0, null
                    }, n[r](""), !t
                }));
            if (!o || !a || n) {
                var s = m(/./ [r]),
                    l = t(r, "" [e], (function(e, t, n, i, r) {
                        var a = m(e),
                            l = t.exec;
                        return l === Xa || l === Ka.exec ? o && !r ? {
                            done: !0,
                            value: s(t, n, i)
                        } : {
                            done: !0,
                            value: a(n, t, i)
                        } : {
                            done: !1
                        }
                    }));
                We(String.prototype, e, l[0]), We(Ka, r, l[1])
            }
            i && we(Ka[r], "sham", !0)
        },
        Za = Mi.charAt,
        Ja = function(e, t, n) {
            return t + (n ? Za(e, t).length : 1)
        },
        es = o.TypeError,
        ts = function(e, t) {
            var n = e.exec;
            if (A(n)) {
                var i = ne(n, e, t);
                return null !== i && ee(i), i
            }
            if ("RegExp" === Ye(e)) return ne(Xa, e, t);
            throw es("RegExp#exec called on incompatible receiver")
        };
    Qa("match", (function(e, t, n) {
        return [function(t) {
            var n = y(this),
                i = null == t ? void 0 : ue(t, e);
            return i ? ne(i, t, n) : new RegExp(t)[e](pn(n))
        }, function(e) {
            var i = ee(this),
                r = pn(e),
                o = n(t, i, r);
            if (o.done) return o.value;
            if (!i.global) return ts(i, r);
            var a = i.unicode;
            i.lastIndex = 0;
            for (var s, l = [], c = 0; null !== (s = ts(i, r));) {
                var u = pn(s[0]);
                l[c] = u, "" === u && (i.lastIndex = Ja(r, ft(i.lastIndex), a)), c++
            }
            return 0 === c ? null : l
        }]
    }));
    var ns = Se.EXISTS,
        is = ye.f,
        rs = Function.prototype,
        os = m(rs.toString),
        as = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,
        ss = m(as.exec);
    U && !ns && is(rs, "name", {
        configurable: !0,
        get: function() {
            try {
                return ss(as, os(this))[1]
            } catch (e) {
                return ""
            }
        }
    });
    var ls = Function.prototype,
        cs = ls.apply,
        us = ls.call,
        ds = "object" == typeof Reflect && Reflect.apply || (d ? us.bind(cs) : function() {
            return us.apply(cs, arguments)
        }),
        hs = Math.floor,
        fs = m("".charAt),
        ps = m("".replace),
        gs = m("".slice),
        ms = /\$([$&'`]|\d{1,2}|<[^>]*>)/g,
        vs = /\$([$&'`]|\d{1,2})/g,
        ys = function(e, t, n, i, r, o) {
            var a = n + e.length,
                s = i.length,
                l = vs;
            return void 0 !== r && (r = w(r), l = ms), ps(o, l, (function(o, l) {
                var c;
                switch (fs(l, 0)) {
                    case "$":
                        return "$";
                    case "&":
                        return e;
                    case "`":
                        return gs(t, 0, n);
                    case "'":
                        return gs(t, a);
                    case "<":
                        c = r[gs(l, 1, -1)];
                        break;
                    default:
                        var u = +l;
                        if (0 === u) return o;
                        if (u > s) {
                            var d = hs(u / 10);
                            return 0 === d ? o : d <= s ? void 0 === i[d - 1] ? fs(l, 1) : i[d - 1] + fs(l, 1) : o
                        }
                        c = i[u - 1]
                }
                return void 0 === c ? "" : c
            }))
        },
        bs = B("replace"),
        ws = Math.max,
        xs = Math.min,
        _s = m([].concat),
        Cs = m([].push),
        Ss = m("".indexOf),
        ks = m("".slice),
        Ts = "$0" === "a".replace(/./, "$0"),
        As = !!/./ [bs] && "" === /./ [bs]("a", "$0");
    Qa("replace", (function(e, t, n) {
        var i = As ? "$" : "$0";
        return [function(e, n) {
            var i = y(this),
                r = null == e ? void 0 : ue(e, bs);
            return r ? ne(r, e, i, n) : ne(t, pn(i), e, n)
        }, function(e, r) {
            var o = ee(this),
                a = pn(e);
            if ("string" == typeof r && -1 === Ss(r, i) && -1 === Ss(r, "$<")) {
                var s = n(t, o, a, r);
                if (s.done) return s.value
            }
            var l = A(r);
            l || (r = pn(r));
            var c = o.global;
            if (c) {
                var u = o.unicode;
                o.lastIndex = 0
            }
            for (var d = [];;) {
                var h = ts(o, a);
                if (null === h) break;
                if (Cs(d, h), !c) break;
                "" === pn(h[0]) && (o.lastIndex = Ja(a, ft(o.lastIndex), u))
            }
            for (var f, p = "", g = 0, m = 0; m < d.length; m++) {
                for (var v = pn((h = d[m])[0]), y = ws(xs(dt(h.index), a.length), 0), b = [], w = 1; w < h.length; w++) Cs(b, void 0 === (f = h[w]) ? f : String(f));
                var x = h.groups;
                if (l) {
                    var _ = _s([v], b, y, a);
                    void 0 !== x && Cs(_, x);
                    var C = pn(ds(r, void 0, _))
                } else C = ys(v, a, y, b, x, r);
                y >= g && (p += ks(a, g, y) + C, g = y + v.length)
            }
            return p + ks(a, g)
        }]
    }), !!u((function() {
        var e = /./;
        return e.exec = function() {
            var e = [];
            return e.groups = {
                a: "7"
            }, e
        }, "7" !== "".replace(e, "$<a>")
    })) || !Ts || As);
    var Ds = 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 Es(e) {
        return e && e.ownerDocument && e.ownerDocument.defaultView ? e.ownerDocument.defaultView : window
    }

    function Os(e) {
        return e && e.ownerDocument ? e.ownerDocument : document
    }
    var Ms = null,
        Is = null;

    function Ps(e) {
        if (null === Ms) {
            var t = Os(e);
            if (void 0 === t) return Ms = 0;
            var n = t.body,
                i = t.createElement("div");
            i.classList.add("simplebar-hide-scrollbar"), n.appendChild(i);
            var r = i.getBoundingClientRect().right;
            n.removeChild(i), Ms = r
        }
        return Ms
    }
    Ft && window.addEventListener("resize", (function() {
        Is !== window.devicePixelRatio && (Is = window.devicePixelRatio, Ms = null)
    }));
    var Ls = function() {
        function e(t, n) {
            var i = this;
            this.onScroll = function() {
                var e = Es(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 = Os(i.el),
                    n = Es(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 = Xr(this.recalculate.bind(this), 64), this.onMouseMove = Xr(this.onMouseMove.bind(this), 64), this.hideScrollbars = co(this.hideScrollbars.bind(this), this.options.timeout), this.onWindowResize = co(this.onWindowResize.bind(this), 64, {
                leading: !0
            }), e.getRtlHelpers = Fo(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 = Os(e),
                i = Es(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), Ft && (this.initDOM(), this.setAccessibilityAttributes(), 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.setAccessibilityAttributes = function() {
            var e = this.options.ariaLabel || "scrollable content";
            this.contentWrapperEl.setAttribute("tabindex", "0"), this.contentWrapperEl.setAttribute("role", "region"), this.contentWrapperEl.setAttribute("aria-label", e)
        }, t.initListeners = function() {
            var e = this,
                t = Es(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 = null,
                r = t.ResizeObserver || ba;
            this.resizeObserver = new r((function() {
                n && null === i && (i = t.requestAnimationFrame((function() {
                    e.recalculate(), i = null
                })))
            })), 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 = Es(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 = Os(this.el),
                i = Es(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 = Es(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 : Ps(this.el)
            } catch (e) {
                return Ps(this.el)
            }
        }, t.removeListeners = function() {
            var e = this,
                t = Es(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 Ls.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
    }, Ls.instances = new WeakMap, Ls.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") || Ls.instances.has(e) || new Ls(e, Ds(e.attributes))
        }))
    }, Ls.removeObserver = function() {
        this.globalObserver.disconnect()
    }, Ls.initHtmlApi = function() {
        this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this), "undefined" != typeof MutationObserver && (this.globalObserver = new MutationObserver(Ls.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))
    }, Ls.handleMutations = function(e) {
        e.forEach((function(e) {
            Array.prototype.forEach.call(e.addedNodes, (function(e) {
                1 === e.nodeType && (e.hasAttribute("data-simplebar") ? !Ls.instances.has(e) && document.documentElement.contains(e) && new Ls(e, Ds(e.attributes)) : Array.prototype.forEach.call(e.querySelectorAll("[data-simplebar]"), (function(e) {
                    "init" !== e.getAttribute("data-simplebar") && !Ls.instances.has(e) && document.documentElement.contains(e) && new Ls(e, Ds(e.attributes))
                })))
            })), Array.prototype.forEach.call(e.removedNodes, (function(e) {
                1 === e.nodeType && ("init" === e.getAttribute("data-simplebar") ? Ls.instances.has(e) && !document.documentElement.contains(e) && Ls.instances.get(e).unMount() : Array.prototype.forEach.call(e.querySelectorAll('[data-simplebar="init"]'), (function(e) {
                    Ls.instances.has(e) && !document.documentElement.contains(e) && Ls.instances.get(e).unMount()
                })))
            }))
        }))
    }, Ls.getOptions = Ds, Ft && Ls.initHtmlApi(), Ls
})),
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 S(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 = S(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, S(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 = {
                        "\\": "&#92;",
                        "&": "&amp;",
                        "<": "&lt;",
                        ">": "&gt;",
                        '"': "&quot;",
                        "'": "&#39;",
                        "/": "&#47;"
                    };
                    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">&times;</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() + '">&times;</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",
                    "Ꜳ": "AA",
                    "Æ": "AE",
                    "Ǽ": "AE",
                    "Ǣ": "AE",
                    "Ꜵ": "AO",
                    "Ꜷ": "AU",
                    "Ꜹ": "AV",
                    "Ꜻ": "AV",
                    "Ꜽ": "AY",
                    "Ⓑ": "B",
                    "Ｂ": "B",
                    "Ḃ": "B",
                    "Ḅ": "B",
                    "Ḇ": "B",
                    "Ƀ": "B",
                    "Ƃ": "B",
                    "Ɓ": "B",
                    "Ⓒ": "C",
                    "Ｃ": "C",
                    "Ć": "C",
                    "Ĉ": "C",
                    "Ċ": "C",
                    "Č": "C",
                    "Ç": "C",
                    "Ḉ": "C",
                    "Ƈ": "C",
                    "Ȼ": "C",
                    "Ꜿ": "C",
                    "Ⓓ": "D",
                    "Ｄ": "D",
                    "Ḋ": "D",
                    "Ď": "D",
                    "Ḍ": "D",
                    "Ḑ": "D",
                    "Ḓ": "D",
                    "Ḏ": "D",
                    "Đ": "D",
                    "Ƌ": "D",
                    "Ɗ": "D",
                    "Ɖ": "D",
                    "Ꝺ": "D",
                    "Ǳ": "DZ",
                    "Ǆ": "DZ",
                    "ǲ": "Dz",
                    "ǅ": "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",
                    "Ⓕ": "F",
                    "Ｆ": "F",
                    "Ḟ": "F",
                    "Ƒ": "F",
                    "Ꝼ": "F",
                    "Ⓖ": "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",
                    "Ⓘ": "I",
                    "Ｉ": "I",
                    "Ì": "I",
                    "Í": "I",
                    "Î": "I",
                    "Ĩ": "I",
                    "Ī": "I",
                    "Ĭ": "I",
                    "İ": "I",
                    "Ï": "I",
                    "Ḯ": "I",
                    "Ỉ": "I",
                    "Ǐ": "I",
                    "Ȉ": "I",
                    "Ȋ": "I",
                    "Ị": "I",
                    "Į": "I",
                    "Ḭ": "I",
                    "Ɨ": "I",
                    "Ⓙ": "J",
                    "Ｊ": "J",
                    "Ĵ": "J",
                    "Ɉ": "J",
                    "Ⓚ": "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",
                    "Ǉ": "LJ",
                    "ǈ": "Lj",
                    "Ⓜ": "M",
                    "Ｍ": "M",
                    "Ḿ": "M",
                    "Ṁ": "M",
                    "Ṃ": "M",
                    "Ɱ": "M",
                    "Ɯ": "M",
                    "Ⓝ": "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",
                    "Œ": "OE",
                    "Ƣ": "OI",
                    "Ꝏ": "OO",
                    "Ȣ": "OU",
                    "Ⓟ": "P",
                    "Ｐ": "P",
                    "Ṕ": "P",
                    "Ṗ": "P",
                    "Ƥ": "P",
                    "Ᵽ": "P",
                    "Ꝑ": "P",
                    "Ꝓ": "P",
                    "Ꝕ": "P",
                    "Ⓠ": "Q",
                    "Ｑ": "Q",
                    "Ꝗ": "Q",
                    "Ꝙ": "Q",
                    "Ɋ": "Q",
                    "Ⓡ": "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",
                    "Ⓣ": "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",
                    "Ⓥ": "V",
                    "Ｖ": "V",
                    "Ṽ": "V",
                    "Ṿ": "V",
                    "Ʋ": "V",
                    "Ꝟ": "V",
                    "Ʌ": "V",
                    "Ꝡ": "VY",
                    "Ⓦ": "W",
                    "Ｗ": "W",
                    "Ẁ": "W",
                    "Ẃ": "W",
                    "Ŵ": "W",
                    "Ẇ": "W",
                    "Ẅ": "W",
                    "Ẉ": "W",
                    "Ⱳ": "W",
                    "Ⓧ": "X",
                    "Ｘ": "X",
                    "Ẋ": "X",
                    "Ẍ": "X",
                    "Ⓨ": "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",
                    "ⓐ": "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",
                    "ⓒ": "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",
                    "ǳ": "dz",
                    "ǆ": "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",
                    "ⓖ": "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",
                    "ƕ": "hv",
                    "ⓘ": "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",
                    "ⓛ": "l",
                    "ｌ": "l",
                    "ŀ": "l",
                    "ĺ": "l",
                    "ľ": "l",
                    "ḷ": "l",
                    "ḹ": "l",
                    "ļ": "l",
                    "ḽ": "l",
                    "ḻ": "l",
                    "ſ": "l",
                    "ł": "l",
                    "ƚ": "l",
                    "ɫ": "l",
                    "ⱡ": "l",
                    "ꝉ": "l",
                    "ꞁ": "l",
                    "ꝇ": "l",
                    "ǉ": "lj",
                    "ⓜ": "m",
                    "ｍ": "m",
                    "ḿ": "m",
                    "ṁ": "m",
                    "ṃ": "m",
                    "ɱ": "m",
                    "ɯ": "m",
                    "ⓝ": "n",
                    "ｎ": "n",
                    "ǹ": "n",
                    "ń": "n",
                    "ñ": "n",
                    "ṅ": "n",
                    "ň": "n",
                    "ṇ": "n",
                    "ņ": "n",
                    "ṋ": "n",
                    "ṉ": "n",
                    "ƞ": "n",
                    "ɲ": "n",
                    "ŉ": "n",
                    "ꞑ": "n",
                    "ꞥ": "n",
                    "ǌ": "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",
                    "œ": "oe",
                    "ƣ": "oi",
                    "ȣ": "ou",
                    "ꝏ": "oo",
                    "ⓟ": "p",
                    "ｐ": "p",
                    "ṕ": "p",
                    "ṗ": "p",
                    "ƥ": "p",
                    "ᵽ": "p",
                    "ꝑ": "p",
                    "ꝓ": "p",
                    "ꝕ": "p",
                    "ⓠ": "q",
                    "ｑ": "q",
                    "ɋ": "q",
                    "ꝗ": "q",
                    "ꝙ": "q",
                    "ⓡ": "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",
                    "ⓥ": "v",
                    "ｖ": "v",
                    "ṽ": "v",
                    "ṿ": "v",
                    "ʋ": "v",
                    "ꝟ": "v",
                    "ʌ": "v",
                    "ꝡ": "vy",
                    "ⓦ": "w",
                    "ｗ": "w",
                    "ẁ": "w",
                    "ẃ": "w",
                    "ŵ": "w",
                    "ẇ": "w",
                    "ẅ": "w",
                    "ẘ": "w",
                    "ẉ": "w",
                    "ⱳ": "w",
                    "ⓧ": "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",
                    "Ά": "Α",
                    "Έ": "Ε",
                    "Ή": "Η",
                    "Ί": "Ι",
                    "Ϊ": "Ι",
                    "Ό": "Ο",
                    "Ύ": "Υ",
                    "Ϋ": "Υ",
                    "Ώ": "Ω",
                    "ά": "α",
                    "έ": "ε",
                    "ή": "η",
                    "ί": "ι",
                    "ϊ": "ι",
                    "ΐ": "ι",
                    "ό": "ο",
                    "ύ": "υ",
                    "ϋ": "υ",
                    "ΰ": "υ",
                    "ώ": "ω",
                    "ς": "σ",
                    "’": "'"
                }
            })), 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, S, k, T, A, D) {
                function E() {
                    this.reset()
                }
                return E.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 D = t(u.amdBase + "compat/initSelection");
                            u.dataAdapter = c.Decorate(u.dataAdapter, D)
                        }
                    }
                    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 E = c.Decorate(w, x);
                            u.dropdownAdapter = E
                        }
                        if (0 !== u.minimumResultsForSearch && (u.dropdownAdapter = c.Decorate(u.dropdownAdapter, k)), u.closeOnSelect && (u.dropdownAdapter = c.Decorate(u.dropdownAdapter, A)), null != u.dropdownCssClass || null != u.dropdownCss || null != u.adaptDropdownCssClass) {
                            var O = t(u.amdBase + "compat/dropdownCss");
                            u.dropdownAdapter = c.Decorate(u.dropdownAdapter, O)
                        }
                        u.dropdownAdapter = c.Decorate(u.dropdownAdapter, S)
                    }
                    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 M = t(u.amdBase + "compat/containerCss");
                            u.selectionAdapter = c.Decorate(u.selectionAdapter, M)
                        }
                        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
                }, E.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"
                    }
                }, E.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
                }, E.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
                }, E.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
                }, E.prototype.set = function(t, n) {
                    var i = {};
                    i[e.camelCase(t)] = n;
                    var r = c._convertData(i);
                    e.extend(!0, this.defaults, r)
                }, new E
            })), 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(K().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 S() {
        return w(Y.content)
    }

    function k() {
        return w(Y.image)
    }

    function T() {
        return w(Y["progress-steps"])
    }

    function A() {
        return w(Y["validation-message"])
    }

    function D() {
        return b(".".concat(Y.actions, " .").concat(Y.confirm))
    }

    function E() {
        return b(".".concat(Y.actions, " .").concat(Y.cancel))
    }

    function O() {
        return w(Y.actions)
    }

    function M() {
        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 N() {
        var e = h(K().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(K().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 F() {
        return !Q() && !document.body.classList.contains(Y["no-backdrop"])
    }

    function R() {
        return K().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))
        },
        K = function() {
            return w(Y.popup)
        },
        Q = function() {
            return document.body.classList.contains(Y["toast-shown"])
        },
        Z = {
            previousBodyPadding: null
        };

    function J(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
        },
        Se = ["input", "file", "range", "select", "radio", "checkbox", "textarea"],
        ke = function(e) {
            var t = Y[e] ? Y[e] : Y.input;
            return ge(S(), t)
        },
        Te = {};

    function Ae(e, t) {
        var n, i, r, o, a, s = S().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 = S(), o = Ce.innerParams.get(n), a = !o || i.input !== o.input, Se.forEach((function(e) {
            var t = Y[e],
                n = ge(r, t);
            (function(e, t) {
                var n = J(S(), 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 = ke(e.input),
                n = Te[e.input](t, e);
            ie(n), setTimeout((function() {
                ee(n)
            }))
        }(i), function(e) {
            var t = ke(e.input);
            e.customClass && fe(t, e.customClass.input)
        }(i)), z(S(), t, "content")
    }

    function De() {
        return G() && G().getAttribute("data-queue-step")
    }

    function Ee(e, t) {
        var n, i, r, o, a, s, l, c;
        z(M(), 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 ? De() : 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 = k();
                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 Oe(e, t) {
        var n, i, r, o;
        n = t, ne(i = K(), "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), Ee(e, t), Ae(e, t),
            function(e, t) {
                var n = O(),
                    i = D(),
                    r = E();
                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(K())
    }

    function Me() {
        return D() && D().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 = J(S(), "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(K()).width), i = parseInt(window.getComputedStyle(K()).paddingLeft) + parseInt(window.getComputedStyle(K()).paddingRight), new MutationObserver((function() {
            var t = e.offsetWidth + i;
            K().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 = K(), 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, Ne(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, Ne({
                question: "?",
                warning: "!",
                info: "i"
            }[t.icon]))
        },
        Ne = function(e) {
            return '<div class="'.concat(Y["icon-content"], '">').concat(e, "</div>")
        },
        Fe = [],
        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 = K();
        e || jt.fire(), e = K();
        var t = O(),
            n = D();
        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: "&times;",
            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(K())
            },
            clickConfirm: Me,
            clickCancel: function() {
                return E() && E().click()
            },
            getContainer: G,
            getPopup: K,
            getTitle: C,
            getContent: S,
            getHtmlContainer: function() {
                return w(Y["html-container"])
            },
            getImage: k,
            getIcon: _,
            getIcons: x,
            getCloseButton: L,
            getActions: O,
            getConfirmButton: D,
            getCancelButton: E,
            getHeader: M,
            getFooter: I,
            getTimerProgressBar: P,
            getFocusableElements: N,
            getValidationMessage: A,
            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) {
                    Fe = [], e(t)
                }
                Fe = e;
                var i = [];
                return new Promise((function(e) {
                    ! function r(o, a) {
                        o < Fe.length ? (document.body.setAttribute("data-swal2-queue-step", o), t.fire(Fe[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: De,
            insertQueueStep: function(e, t) {
                return t && t < Fe.length ? Fe.splice(t, 0, e) : Fe.push(e)
            },
            deleteQueueStep: function(e) {
                void 0 !== Fe[e] && Fe.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 Ke() {
        return !!window.MSInputMethodContext && !!document.documentMode
    }

    function Qe() {
        var e = G(),
            t = K();
        e.style.removeProperty("align-items"), t.offsetTop < 0 && (e.style.alignItems = "flex-start")
    }
    var Ze = function(e) {
            var t = G();
            return e === t || !(ae(t) || "INPUT" === e.tagName || ae(S()) && S().contains(e))
        },
        Je = {
            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), F() && (null !== Z.previousBodyPadding && (document.body.style.paddingRight = "".concat(Z.previousBodyPadding, "px"), Z.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 && Ke() && window.removeEventListener("resize", Qe), 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 = K();
        r && (t = Ce.innerParams.get(this)) && !$(r, t.hideClass.popup) && (n = Je.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, Q(), 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, Q(), 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 = K()).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 = S(), 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 = K();
        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 = N();
        if (0 < i.length) return (t += n) === i.length ? t = 0 : -1 === t && (t = i.length - 1), i[t].focus();
        K().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 = Ze(t.target)
                }, t.ontouchmove = function(t) {
                    e && (t.preventDefault(), t.stopPropagation())
                }
            }(), navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i) || K().scrollHeight > window.innerHeight - 44 && (G().style.paddingBottom = "".concat(44, "px"))), "undefined" != typeof window && Ke() && (Qe(), window.addEventListener("resize", Qe)), t && "hidden" !== n && null === Z.previousBodyPadding && document.body.scrollHeight > window.innerHeight && (Z.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")), document.body.style.paddingRight = "".concat(Z.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 = S();
            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(A()) || !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"],
        St = function(e, t, n) {
            var i = Ce.innerParams.get(e);
            i.stopKeydownPropagation && t.stopPropagation(), "Enter" === t.key ? kt(e, t, i) : "Tab" === t.key ? Tt(t, i) : -1 !== _t.indexOf(t.key) ? At() : -1 !== Ct.indexOf(t.key) && Dt(t, i, n)
        },
        kt = 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;
                Me(), t.preventDefault()
            }
        },
        Tt = function(e) {
            for (var t = e.target, n = N(), 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()
        },
        At = function() {
            var e = D(),
                t = E();
            document.activeElement === e && me(t) ? t.focus() : document.activeElement === t && me(e) && e.focus()
        },
        Dt = function(e, t, n) {
            U(t.allowEscapeKey) && (e.preventDefault(), n(V.esc))
        },
        Et = 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)
            }
        },
        Ot = !1,
        Mt = function(e) {
            e.popup.onmousedown = function() {
                e.container.onmouseup = function(t) {
                    e.container.onmouseup = void 0, t.target === e.container && (Ot = !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) || (Ot = !0)
                }
            }
        },
        Pt = function(e, t, n) {
            t.container.onclick = function(i) {
                var r = Ce.innerParams.get(e);
                Ot ? Ot = !1 : i.target === t.container && U(r.allowOutsideClick) && n(V.backdrop)
            }
        },
        Lt = function() {
            document.activeElement && "function" == typeof document.activeElement.blur && document.activeElement.blur()
        },
        Nt = function(e) {
            for (var t in e) e[t] = new WeakMap
        },
        Ft = Object.freeze({
            hideLoading: Ge,
            disableLoading: Ge,
            getInput: function(e) {
                var t = Ce.innerParams.get(e || this),
                    n = Ce.domCache.get(e || this);
                return n ? J(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: K(),
                        container: G(),
                        content: S(),
                        actions: O(),
                        confirmButton: D(),
                        cancelButton: E(),
                        closeButton: L(),
                        validationMessage: A(),
                        progressSteps: T()
                    };
                    return Ce.domCache.set(e, t), t
                }(this);
                return Oe(this, t), Ce.innerParams.set(this, t),
                    function(e, t, n) {
                        return new Promise((function(i) {
                            var r = function(t) {
                                e.closePopup({
                                    dismiss: t
                                })
                            };
                            Je.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 ? Et(e, t, n) : (Mt(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 St(e, t, i)
                                    }, t.keydownTarget = n.keydownListenerCapture ? window : K(), 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 = K();
                                    "function" == typeof e.onBeforeOpen && e.onBeforeOpen(n);
                                    var i = window.getComputedStyle(document.body).overflowY;
                                    gt(t, n, e), ft(t, n), F() && (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"))
                                    }))), Q() || 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 = K(),
                    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);
                Oe(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, Nt(Ce), Nt(Je))
            }
        }),
        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, Ft), r(Rt, Xe), Object.keys(Ft).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, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;")
                    }

                    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">&times;</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 void 0 === e ? "" : 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() && 0 === this.pendingRequest ? (e(this.currentForm).trigger("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["date" === t ? "dateISO" : 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(e, i) {
                    t[e] = "function" == typeof i && "normalizer" !== e ? i(n) : i
                })), e.each(["minlength", "maxlength"], (function() {
                    t[this] && (t[this] = Number(t[this]))
                })), e.each(["rangelength", "range"], (function() {
                    var e;
                    t[this] && (Array.isArray(t[this]) ? t[this] = [Number(t[this][0]), Number(t[this][1])] : "string" == typeof t[this] && (e = t[this].replace(/[\[\]]/g, "").split(/[\s,]+/), t[this] = [Number(e[0]), Number(e[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):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?: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-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[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(e, t, n) {
                    var i = Array.isArray(e) ? e.length : this.getLength(e, t);
                    return this.optional(t) || i >= n
                },
                maxlength: function(e, t, n) {
                    var i = Array.isArray(e) ? e.length : this.getLength(e, t);
                    return this.optional(t) || i <= n
                },
                rangelength: function(e, t, n) {
                    var i = Array.isArray(e) ? e.length : this.getLength(e, t);
                    return this.optional(t) || i >= n[0] && i <= n[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 t = {
            686: function(e, t, n) {
                "use strict";
                n.d(t, {
                    default: function() {
                        return m
                    }
                });
                t = n(279);
                var i = n.n(t),
                    r = (t = n(370), n.n(t)),
                    o = (t = n(817), n.n(t));

                function a(e) {
                    try {
                        return document.execCommand(e)
                    } catch (e) {
                        return
                    }
                }
                var s = function(e) {
                    return e = o()(e), a("cut"), e
                };

                function l(e, t) {
                    var n, i;
                    n = e, i = "rtl" === document.documentElement.getAttribute("dir"), (e = document.createElement("textarea")).style.fontSize = "12pt", e.style.border = "0", e.style.padding = "0", e.style.margin = "0", e.style.position = "absolute", e.style[i ? "right" : "left"] = "-9999px", i = window.pageYOffset || document.documentElement.scrollTop, e.style.top = "".concat(i, "px"), e.setAttribute("readonly", ""), e.value = n, e = e;
                    return t.container.appendChild(e), t = o()(e), a("copy"), e.remove(), t
                }
                var c = function(e) {
                    var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {
                            container: document.body
                        },
                        n = "";
                    return "string" == typeof e ? n = l(e, t) : e instanceof HTMLInputElement && !["text", "search", "url", "tel", "password"].includes(null == e ? void 0 : e.type) ? n = l(e.value, t) : (n = o()(e), a("copy")), n
                };

                function u(e) {
                    return (u = "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 d(e) {
                    return (d = "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 h(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 f(e, t) {
                    return (f = Object.setPrototypeOf || function(e, t) {
                        return e.__proto__ = t, e
                    })(e, t)
                }

                function p(e) {
                    return (p = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
                        return e.__proto__ || Object.getPrototypeOf(e)
                    })(e)
                }

                function g(e, t) {
                    if (e = "data-clipboard-".concat(e), t.hasAttribute(e)) return t.getAttribute(e)
                }
                var m = function() {
                    ! 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 && f(e, t)
                    }(a, i());
                    var e, t, n, o = function(e) {
                        var t = function() {
                            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
                            }
                        }();
                        return function() {
                            var n, i = p(e);
                            return n = t ? (n = p(this).constructor, Reflect.construct(i, arguments, n)) : i.apply(this, arguments), i = this, !(n = n) || "object" !== d(n) && "function" != typeof n ? function(e) {
                                if (void 0 !== e) return e;
                                throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
                            }(i) : n
                        }
                    }(a);

                    function a(e, t) {
                        var n;
                        return function(e) {
                            if (!(e instanceof a)) throw new TypeError("Cannot call a class as a function")
                        }(this), (n = o.call(this)).resolveOptions(t), n.listenClick(e), n
                    }
                    return e = a, n = [{
                        key: "copy",
                        value: function(e) {
                            var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {
                                container: document.body
                            };
                            return c(e, t)
                        }
                    }, {
                        key: "cut",
                        value: function(e) {
                            return s(e)
                        }
                    }, {
                        key: "isSupported",
                        value: function() {
                            var e = "string" == typeof(e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"]) ? [e] : e,
                                t = !!document.queryCommandSupported;
                            return e.forEach((function(e) {
                                t = t && !!document.queryCommandSupported(e)
                            })), t
                        }
                    }], (t = [{
                        key: "resolveOptions",
                        value: function() {
                            var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
                            this.action = "function" == typeof e.action ? e.action : this.defaultAction, this.target = "function" == typeof e.target ? e.target : this.defaultTarget, this.text = "function" == typeof e.text ? e.text : this.defaultText, this.container = "object" === d(e.container) ? e.container : document.body
                        }
                    }, {
                        key: "listenClick",
                        value: function(e) {
                            var t = this;
                            this.listener = r()(e, "click", (function(e) {
                                return t.onClick(e)
                            }))
                        }
                    }, {
                        key: "onClick",
                        value: function(e) {
                            var t = e.delegateTarget || e.currentTarget,
                                n = this.action(t) || "copy";
                            e = function() {
                                var e = void 0 === (n = (i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}).action) ? "copy" : n,
                                    t = i.container,
                                    n = i.target,
                                    i = i.text;
                                if ("copy" !== e && "cut" !== e) throw new Error('Invalid "action" value, use either "copy" or "cut"');
                                if (void 0 !== n) {
                                    if (!n || "object" !== u(n) || 1 !== n.nodeType) throw new Error('Invalid "target" value, use a valid Element');
                                    if ("copy" === e && n.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
                                    if ("cut" === e && (n.hasAttribute("readonly") || n.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')
                                }
                                return i ? c(i, {
                                    container: t
                                }) : n ? "cut" === e ? s(n) : c(n, {
                                    container: t
                                }) : void 0
                            }({
                                action: n,
                                container: this.container,
                                target: this.target(t),
                                text: this.text(t)
                            });
                            this.emit(e ? "success" : "error", {
                                action: n,
                                text: e,
                                trigger: t,
                                clearSelection: function() {
                                    t && t.focus(), window.getSelection().removeAllRanges()
                                }
                            })
                        }
                    }, {
                        key: "defaultAction",
                        value: function(e) {
                            return g("action", e)
                        }
                    }, {
                        key: "defaultTarget",
                        value: function(e) {
                            if (e = g("target", e)) return document.querySelector(e)
                        }
                    }, {
                        key: "defaultText",
                        value: function(e) {
                            return g("text", e)
                        }
                    }, {
                        key: "destroy",
                        value: function() {
                            this.listener.destroy()
                        }
                    }]) && h(e.prototype, t), n && h(e, n), a
                }()
            },
            828: function(e) {
                var t;
                "undefined" == typeof Element || Element.prototype.matches || ((t = Element.prototype).matches = t.matchesSelector || t.mozMatchesSelector || t.msMatchesSelector || t.oMatchesSelector || t.webkitMatchesSelector), e.exports = function(e, t) {
                    for (; e && 9 !== e.nodeType;) {
                        if ("function" == typeof e.matches && e.matches(t)) return e;
                        e = e.parentNode
                    }
                }
            },
            438: function(e, t, n) {
                var i = n(828);

                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)
                    })))
                }
            },
            879: 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)
                }
            },
            370: function(e, t, n) {
                var i = n(879),
                    r = n(438);
                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 c = t, u = n, (l = e).addEventListener(c, u), {
                        destroy: function() {
                            l.removeEventListener(c, u)
                        }
                    };
                    if (i.nodeList(e)) return o = e, a = t, s = n, Array.prototype.forEach.call(o, (function(e) {
                        e.addEventListener(a, s)
                    })), {
                        destroy: function() {
                            Array.prototype.forEach.call(o, (function(e) {
                                e.removeEventListener(a, s)
                            }))
                        }
                    };
                    if (i.string(e)) return e = e, t = t, n = n, r(document.body, e, t, n);
                    throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");
                    var o, a, s, l, c, u
                }
            },
            817: function(e) {
                e.exports = function(e) {
                    var t, n = "SELECT" === e.nodeName ? (e.focus(), e.value) : "INPUT" === e.nodeName || "TEXTAREA" === e.nodeName ? ((t = e.hasAttribute("readonly")) || e.setAttribute("readonly", ""), e.select(), e.setSelectionRange(0, e.value.length), t || e.removeAttribute("readonly"), e.value) : (e.hasAttribute("contenteditable") && e.focus(), n = window.getSelection(), (t = document.createRange()).selectNodeContents(e), n.removeAllRanges(), n.addRange(t), n.toString());
                    return n
                }
            },
            279: function(e) {
                function t() {}
                t.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 = t, e.exports.TinyEmitter = t
            }
        }, n = {}, e.n = function(t) {
            var n = t && t.__esModule ? function() {
                return t.default
            } : function() {
                return t
            };
            return e.d(n, {
                a: n
            }), n
        }, e.d = function(t, n) {
            for (var i in n) e.o(n, i) && !e.o(t, i) && Object.defineProperty(t, i, {
                enumerable: !0,
                get: n[i]
            })
        }, e.o = function(e, t) {
            return Object.prototype.hasOwnProperty.call(e, t)
        }, e(686).default;

        function e(i) {
            if (n[i]) return n[i].exports;
            var r = n[i] = {
                exports: {}
            };
            return t[i](r, r.exports, e), 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;

        function _(e) {
            return -1 === ["__proto__", "prototype", "constructor"].indexOf(e)
        }
        var C, S = {
                noop: function() {},
                uid: (C = 0, function() {
                    return C++
                }),
                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 S.valueOrDefault(S.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 (S.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 (S.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 (!S.arrayEquals(r, o)) return !1
                        } else if (r !== o) return !1;
                    return !0
                },
                clone: function(e) {
                    if (S.isArray(e)) return e.map(S.clone);
                    if (S.isObject(e)) {
                        for (var t = Object.create(e), n = Object.keys(e), i = n.length, r = 0; r < i; ++r) t[n[r]] = S.clone(e[n[r]]);
                        return t
                    }
                    return e
                },
                _merger: function(e, t, n, i) {
                    if (_(e)) {
                        var r = t[e],
                            o = n[e];
                        S.isObject(r) && S.isObject(o) ? S.merge(r, o, i) : t[e] = S.clone(o)
                    }
                },
                _mergerIf: function(e, t, n) {
                    if (_(e)) {
                        var i = t[e],
                            r = n[e];
                        S.isObject(i) && S.isObject(r) ? S.mergeIf(i, r) : t.hasOwnProperty(e) || (t[e] = S.clone(r))
                    }
                },
                merge: function(e, t, n) {
                    var i, r, o, a, s, l = S.isArray(t) ? t : [t],
                        c = l.length;
                    if (!S.isObject(e)) return e;
                    for (i = (n = n || {}).merger || S._merger, r = 0; r < c; ++r)
                        if (t = l[r], S.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 S.merge(e, t, {
                        merger: S._mergerIf
                    })
                },
                extend: Object.assign || function(e) {
                    return S.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 = S.inherits, e && S.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 = S;
        S.callCallback = S.callback, S.indexOf = function(e, t, n) {
            return Array.prototype.indexOf.call(e, t, n)
        }, S.getValueOrDefault = S.valueOrDefault, S.getValueAtIndexOrDefault = S.valueAtIndexOrDefault;
        var T = {
                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 - T.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 * T.easeInBounce(2 * e) : .5 * T.easeOutBounce(2 * e - 1) + .5
                }
            },
            A = {
                effects: T
            };
        k.easingEffects = T;
        var D = Math.PI,
            E = D / 180,
            O = 2 * D,
            M = D / 2,
            I = D / 4,
            P = 2 * D / 3,
            L = {
                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, O),
                            e.closePath();
                            break;
                            case "triangle":
                                    e.moveTo(i + Math.sin(d) * n, r - Math.cos(d) * n),
                                d += P,
                                e.lineTo(i + Math.sin(d) * n, r - Math.cos(d) * n),
                                d += P,
                                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 + I) * c,
                                l = Math.sin(d + I) * 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 += I;
                            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 += I;
                            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 += I,
                                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)
                }
            },
            N = L;
        k.clear = L.clear, k.drawRoundedRectangle = function(e) {
            e.beginPath(), L.roundedRect.apply(L, 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 R = F,
            j = k.valueOrDefault,
            $ = {
                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 = R.global,
                        n = j(e.fontSize, t.defaultFontSize),
                        i = {
                            family: j(e.fontFamily, t.defaultFontFamily),
                            lineHeight: k.options.toLineHeight(j(e.lineHeight, t.defaultLineHeight), n),
                            size: n,
                            style: j(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
                }
            },
            z = {
                _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
                }
            },
            H = z;
        k.log10 = z.log10;
        var B = k,
            q = A,
            W = N,
            U = $,
            V = H;
        B.easing = q, B.canvas = W, B.options = U, B.math = V, B.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 Y = function(e) {
            B.extend(this, e), this.initialize.apply(this, arguments)
        };
        B.extend(Y.prototype, {
            _type: void 0,
            initialize: function() {
                this.hidden = !1
            },
            pivot: function() {
                var e = this;
                return e._view || (e._view = B.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 = x(l)).valid && (h = x(c)).valid) {
                                        t[a] = h.mix(d, i).rgbString();
                                        continue
                                    }
                                } else if (B.isFinite(l) && B.isFinite(c)) {
                                t[a] = l + (c - l) * i;
                                continue
                            }
                            t[a] = c
                        }
                }(i, r, n, e), t) : (t._view = B.extend({}, n), t._start = null, t)
            },
            tooltipPosition: function() {
                return {
                    x: this._model.x,
                    y: this._model.y
                }
            },
            hasValue: function() {
                return B.isNumber(this._model.x) && B.isNumber(this._model.y)
            }
        }), Y.extend = B.inherits;
        var X = Y,
            G = X.extend({
                chart: null,
                currentStep: 0,
                numSteps: 60,
                easing: "",
                render: null,
                onAnimationProgress: null,
                onAnimationComplete: null
            }),
            K = G;
        Object.defineProperty(G.prototype, "animationObject", {
            get: function() {
                return this
            }
        }), Object.defineProperty(G.prototype, "chartInstance", {
            get: function() {
                return this.chart
            },
            set: function(e) {
                this.chart = e
            }
        }), R._set("global", {
            animation: {
                duration: 1e3,
                easing: "easeOutQuart",
                onProgress: B.noop,
                onComplete: B.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 = B.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 = B.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), B.callback(e.render, [t, e], t), B.callback(e.onAnimationProgress, [e], t), e.currentStep >= n ? (B.callback(e.onAnimationComplete, [e], t), t.animating = !1, r.splice(o, 1)) : ++o
                }
            },
            Z = B.options.resolve,
            J = ["push", "pop", "shift", "splice", "unshift"];

        function ee(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 te = function(e, t) {
            this.initialize(e, t)
        };
        B.extend(te.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 && ee(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 && ee(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 B.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 = B.merge(Object.create(null), [this.chart.options.datasets[this._type], this.getDataset()], {
                    merger: function(e, t, n) {
                        "_meta" !== e && "data" !== e && B._merger(e, t, n)
                    }
                })
            },
            _update: function(e) {
                this._configure(), this._cachedDataOpts = null, this.update(e)
            },
            update: B.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] = Z([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 || {}, B.isArray(h))
                    for (a = 0, s = h.length; a < s; ++a) f[l = h[a]] = Z([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]] = Z([i[l], u[h[l]], u[l], d[l]], p, t, g);
                return g.cacheable && (n._cachedDataOpts = Object.freeze(f)), f
            },
            removeHoverStyle: function(e) {
                B.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 = B.getHoverColor;
                e.$previousStyle = {
                    backgroundColor: r.backgroundColor,
                    borderColor: r.borderColor,
                    borderWidth: r.borderWidth
                }, r.backgroundColor = Z([i.hoverBackgroundColor, t.hoverBackgroundColor, o(r.backgroundColor)], void 0, n), r.borderColor = Z([i.hoverBorderColor, t.hoverBorderColor, o(r.borderColor)], void 0, n), r.borderWidth = Z([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)
            }
        }), te.extend = B.inherits;
        var ne = te,
            ie = 2 * Math.PI;

        function re(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()
        }
        R._set("global", {
            elements: {
                arc: {
                    backgroundColor: R.global.defaultColor,
                    borderColor: "#fff",
                    borderWidth: 2,
                    borderAlign: "center"
                }
            }
        });
        var oe = X.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 = B.getAngleFromPoint(n, {
                                x: e,
                                y: t
                            }), r = i.angle, o = i.distance, a = n.startAngle, s = n.endAngle; s < a;) s += ie;
                        for (; r > s;) r -= ie;
                        for (; r < a;) r += ie;
                        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 / ie)
                        };
                    if (t.save(), t.fillStyle = n.backgroundColor, t.strokeStyle = n.borderColor, r.fullCircles) {
                        for (r.endAngle = r.startAngle + ie, 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 % ie
                    }
                    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 + ie, re(e, n), n.endAngle = o, n.endAngle === n.startAngle && n.fullCircles && (n.endAngle += ie, n.fullCircles--)), e.beginPath(), e.arc(n.x, n.y, n.innerRadius, n.startAngle + ie, 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 + ie), r = 0; r < n.fullCircles; ++r) e.stroke()
                        }(e, t, n, i), i && re(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()
                }
            }),
            ae = B.valueOrDefault,
            se = R.global.defaultColor;
        R._set("global", {
            elements: {
                line: {
                    tension: .4,
                    backgroundColor: se,
                    borderWidth: 3,
                    borderColor: se,
                    borderCapStyle: "butt",
                    borderDash: [],
                    borderDashOffset: 0,
                    borderJoinStyle: "miter",
                    capBezierPoints: !0,
                    fill: !0
                }
            }
        });
        var le = X.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 = R.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 = B.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 = ae(r.borderDashOffset, c.borderDashOffset), o.lineJoin = r.borderJoinStyle || c.borderJoinStyle, o.lineWidth = ae(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 ? B.previousItem(s, e) : s[u], n.skip || (u !== e - 1 && !a || -1 === u ? o.moveTo(n.x, n.y) : B.canvas.lineTo(o, t._view, n), u = e);
                        d && o.closePath(), o.stroke(), o.restore()
                    }
                }
            }),
            ce = B.valueOrDefault,
            ue = R.global.defaultColor;

        function de(e) {
            var t = this._view;
            return !!t && Math.abs(e - t.x) < t.radius + t.hitRadius
        }
        R._set("global", {
            elements: {
                point: {
                    radius: 3,
                    pointStyle: "circle",
                    backgroundColor: ue,
                    borderColor: ue,
                    borderWidth: 1,
                    hitRadius: 1,
                    hoverRadius: 4,
                    hoverBorderWidth: 1
                }
            }
        });
        var he = X.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: de,
                inXRange: de,
                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 = R.global,
                        c = l.defaultColor;
                    t.skip || (void 0 === e || B.canvas._isPointInArea(t, e)) && (n.strokeStyle = t.borderColor || c, n.lineWidth = ce(t.borderWidth, l.elements.point.borderWidth), n.fillStyle = t.backgroundColor || c, B.canvas.drawPoint(n, i, o, a, s, r))
                }
            }),
            fe = R.global.defaultColor;

        function pe(e) {
            return e && void 0 !== e.width
        }

        function ge(e) {
            var t, n, i, r, o;
            return pe(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 me(e, t, n) {
            return e === t ? n : e === n ? t : e
        }

        function ve(e, t, n) {
            var i = null === t,
                r = null === n,
                o = !(!e || i && r) && ge(e);
            return o && (i || t >= o.left && t <= o.right) && (r || n >= o.top && n <= o.bottom)
        }
        R._set("global", {
            elements: {
                rectangle: {
                    backgroundColor: fe,
                    borderColor: fe,
                    borderSkipped: "bottom",
                    borderWidth: 0
                }
            }
        });
        var ye = X.extend({
                _type: "rectangle",
                draw: function() {
                    var e = this._chart.ctx,
                        t = this._view,
                        n = function(e) {
                            var t = ge(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 = me(t, "left", "right")) : e.base < e.y && (t = me(t, "bottom", "top")), n[t] = !0, n) : n
                                        }(e);
                                    return B.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 ve(this._view, e, t)
                },
                inLabelRange: function(e, t) {
                    var n = this._view;
                    return pe(n) ? ve(n, e, null) : ve(n, null, t)
                },
                inXRange: function(e) {
                    return ve(this._view, e, null)
                },
                inYRange: function(e) {
                    return ve(this._view, null, e)
                },
                getCenterPoint: function() {
                    var e, t, n = this._view;
                    return pe(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 pe(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
                    }
                }
            }),
            be = {},
            we = oe,
            xe = le,
            _e = he,
            Ce = ye;
        be.Arc = we, be.Line = xe, be.Point = _e, be.Rectangle = Ce;
        var Se = B._deprecated,
            ke = B.valueOrDefault;
        R._set("bar", {
            hover: {
                mode: "label"
            },
            scales: {
                xAxes: [{
                    type: "category",
                    offset: !0,
                    gridLines: {
                        offsetGridLines: !0
                    }
                }],
                yAxes: [{
                    type: "linear"
                }]
            }
        }), R._set("global", {
            datasets: {
                bar: {
                    categoryPercentage: .8,
                    barPercentage: .9
                }
            }
        });
        var Te = ne.extend({
                dataElementType: be.Rectangle,
                _dataElementOptions: ["backgroundColor", "borderColor", "borderSkipped", "borderWidth", "barPercentage", "barThickness", "categoryPercentage", "maxBarThickness", "minBarLength"],
                initialize: function() {
                    var e, t, n = this;
                    ne.prototype.initialize.apply(n, arguments), (e = n.getMeta()).stack = n.getDataset().stack, e.bar = !0, t = n._getIndexScale().options, Se("bar chart", t.barPercentage, "scales.[x/y]Axes.barPercentage", "dataset.barPercentage"), Se("bar chart", t.barThickness, "scales.[x/y]Axes.barThickness", "dataset.barThickness"), Se("bar chart", t.categoryPercentage, "scales.[x/y]Axes.categoryPercentage", "dataset.categoryPercentage"), Se("bar chart", n._getValueScale().options.minBarLength, "scales.[x/y]Axes.minBarLength", "dataset.minBarLength"), Se("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]
                    }, B.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 = B.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 B.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 (B.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()
                    }
                    B.canvas.unclipArea(e.ctx)
                },
                _resolveDataElementOptions: function() {
                    var e = this,
                        t = B.extend({}, ne.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
                }
            }),
            Ae = B.valueOrDefault,
            De = B.options.resolve;
        R._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 = ne.extend({
                dataElementType: be.Point,
                _dataElementOptions: ["backgroundColor", "borderColor", "borderWidth", "hoverBackgroundColor", "hoverBorderColor", "hoverBorderWidth", "hoverRadius", "hitRadius", "pointStyle", "rotation"],
                update: function(e) {
                    var t = this,
                        n = t.getMeta().data;
                    B.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 = B.getHoverColor;
                    e.$previousStyle = {
                        backgroundColor: t.backgroundColor,
                        borderColor: t.borderColor,
                        borderWidth: t.borderWidth,
                        radius: t.radius
                    }, t.backgroundColor = Ae(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Ae(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Ae(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 = ne.prototype._resolveDataElementOptions.apply(n, arguments),
                        l = {
                            chart: i,
                            dataIndex: t,
                            dataset: r,
                            datasetIndex: n.index
                        };
                    return n._cachedDataOpts === s && (s = B.extend({}, s)), s.radius = De([o.radius, a.r, n._config.radius, i.options.elements.point.radius], l, t), s
                }
            }),
            Oe = B.valueOrDefault,
            Me = Math.PI,
            Ie = 2 * Me,
            Pe = Me / 2;
        R._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: -Pe,
            circumference: Ie,
            tooltips: {
                callbacks: {
                    title: function() {
                        return ""
                    },
                    label: function(e, t) {
                        var n = t.labels[e.index],
                            i = ": " + t.datasets[e.datasetIndex].data[e.index];
                        return B.isArray(n) ? (n = n.slice())[0] += i : n += i, n
                    }
                }
            }
        });
        var Le = ne.extend({
            dataElementType: be.Arc,
            linkScales: B.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 < Ie) {
                    var y = l.rotation % Ie,
                        b = (y += y >= Me ? -Ie : y < -Me ? Ie : 0) + m,
                        w = Math.cos(y),
                        x = Math.sin(y),
                        _ = Math.cos(b),
                        C = Math.sin(b),
                        S = y <= 0 && b >= 0 || b >= Ie,
                        k = y <= Pe && b >= Pe || b >= Ie + Pe,
                        T = y <= -Pe && b >= -Pe || b >= Me + Pe,
                        A = y === -Me || b >= Me ? -1 : Math.min(w, w * g, _, _ * g),
                        D = T ? -1 : Math.min(x, x * g, C, C * g),
                        E = S ? 1 : Math.max(w, w * g, _, _ * g),
                        O = k ? 1 : Math.max(x, x * g, C, C * g);
                    c = (E - A) / 2, u = (O - D) / 2, d = -(E + A) / 2, h = -(O + D) / 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 / Ie),
                    p = n && s.animateScale ? 0 : i.innerRadius,
                    g = n && s.animateScale ? 0 : i.outerRadius,
                    m = e._options || {};
                B.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: B.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 B.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) ? Ie * (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 = B.getHoverColor;
                e.$previousStyle = {
                    backgroundColor: t.backgroundColor,
                    borderColor: t.borderColor,
                    borderWidth: t.borderWidth
                }, t.backgroundColor = Oe(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Oe(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Oe(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(Oe(this.chart.data.datasets[e].weight, 1), 0)
            },
            _getVisibleDatasetWeightTotal: function() {
                return this._getRingWeightOffset(this.chart.data.datasets.length)
            }
        });
        R._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"
            }
        }), R._set("global", {
            datasets: {
                horizontalBar: {
                    categoryPercentage: .8,
                    barPercentage: .9
                }
            }
        });
        var Ne = Te.extend({
                _getValueScaleId: function() {
                    return this.getMeta().xAxisID
                },
                _getIndexScaleId: function() {
                    return this.getMeta().yAxisID
                }
            }),
            Fe = B.valueOrDefault,
            Re = B.options.resolve,
            je = B.canvas._isPointInArea;

        function $e(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 ze(e, t, n) {
            var i = n / 2,
                r = $e(e, i),
                o = $e(t, i);
            return {
                top: o.end,
                right: r.end,
                bottom: o.start,
                left: r.start
            }
        }

        function He(e) {
            var t, n, i, r;
            return B.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
            }
        }
        R._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 Be = ne.extend({
                datasetElementType: be.Line,
                dataElementType: be.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 = ne.prototype._resolveDatasetElementOptions.apply(t, arguments);
                    return a.spanGaps = Fe(n.spanGaps, r.spanGaps), a.tension = Fe(n.lineTension, o.tension), a.steppedLine = Re([i.steppedLine, n.steppedLine, o.stepped]), a.clip = He(Fe(n.clip, ze(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) B.splineCurveMonotone(l);
                    else
                        for (e = 0, t = l.length; e < t; ++e) n = l[e]._model, i = B.splineCurve(B.previousItem(l, e)._model, n, B.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, je(n, s) && (e > 0 && je(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 && je(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, B.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(), B.canvas.unclipArea(t.ctx)); a < s; ++a) i[a].draw(r)
                },
                setHoverStyle: function(e) {
                    var t = e._model,
                        n = e._options,
                        i = B.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)
                }
            }),
            qe = B.options.resolve;
        R._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 We = ne.extend({
            dataElementType: be.Arc,
            linkScales: B.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 || {};
                B.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: B.valueAtIndexOrDefault(c, t, c[t])
                    }
                }), e.pivot()
            },
            countVisibleElements: function() {
                var e = this.getDataset(),
                    t = this.getMeta(),
                    n = 0;
                return B.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 = B.getHoverColor,
                    r = B.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 qe([t.chart.options.elements.arc.angle, 2 * Math.PI / n], o, e)
            }
        });
        R._set("pie", B.clone(R.doughnut)), R._set("pie", {
            cutoutPercentage: 0
        });
        var Ue = Le,
            Ve = B.valueOrDefault;
        R._set("radar", {
            spanGaps: !1,
            scale: {
                type: "radialLinear"
            },
            elements: {
                line: {
                    fill: "start",
                    tension: 0
                }
            }
        });
        var Ye = ne.extend({
            datasetElementType: be.Line,
            dataElementType: be.Point,
            linkScales: B.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: Ve(r.tension, c ? c.tension : 0),
                    hitRadius: l.hitRadius
                }
            },
            _resolveDatasetElementOptions: function() {
                var e = this,
                    t = e._config,
                    n = e.chart.options,
                    i = ne.prototype._resolveDatasetElementOptions.apply(e, arguments);
                return i.spanGaps = Ve(t.spanGaps, n.spanGaps), i.tension = Ve(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 = B.splineCurve(B.previousItem(a, e, !0)._model, n, B.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 = B.getHoverColor;
                e.$previousStyle = {
                    backgroundColor: t.backgroundColor,
                    borderColor: t.borderColor,
                    borderWidth: t.borderWidth,
                    radius: t.radius
                }, t.backgroundColor = Ve(n.hoverBackgroundColor, i(n.backgroundColor)), t.borderColor = Ve(n.hoverBorderColor, i(n.borderColor)), t.borderWidth = Ve(n.hoverBorderWidth, n.borderWidth), t.radius = Ve(n.hoverRadius, n.radius)
            }
        });
        R._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 + ")"
                    }
                }
            }
        }), R._set("global", {
            datasets: {
                scatter: {
                    showLine: !1
                }
            }
        });
        var Xe = {
            bar: Te,
            bubble: Ee,
            doughnut: Le,
            horizontalBar: Ne,
            line: Be,
            polarArea: We,
            pie: Ue,
            radar: Ye,
            scatter: Be
        };

        function Ge(e, t) {
            return e.native ? {
                x: e.x,
                y: e.y
            } : B.getRelativePosition(e, t)
        }

        function Ke(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 Ke(e, (function(e) {
                e.inRange(t.x, t.y) && n.push(e)
            })), n
        }

        function Ze(e, t, n, i) {
            var r = Number.POSITIVE_INFINITY,
                o = [];
            return Ke(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 et(e, t, n) {
            var i = Ge(t, e);
            n.axis = n.axis || "x";
            var r = Je(n.axis),
                o = n.intersect ? Qe(e, i) : Ze(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 tt = {
                modes: {
                    single: function(e, t) {
                        var n = Ge(t, e),
                            i = [];
                        return Ke(e, (function(e) {
                            if (e.inRange(n.x, n.y)) return i.push(e), i
                        })), i.slice(0, 1)
                    },
                    label: et,
                    index: et,
                    dataset: function(e, t, n) {
                        var i = Ge(t, e);
                        n.axis = n.axis || "xy";
                        var r = Je(n.axis),
                            o = n.intersect ? Qe(e, i) : Ze(e, i, !1, r);
                        return o.length > 0 && (o = e.getDatasetMeta(o[0]._datasetIndex).data), o
                    },
                    "x-axis": function(e, t) {
                        return et(e, t, {
                            intersect: !1
                        })
                    },
                    point: function(e, t) {
                        return Qe(e, Ge(t, e))
                    },
                    nearest: function(e, t, n) {
                        var i = Ge(t, e);
                        n.axis = n.axis || "xy";
                        var r = Je(n.axis);
                        return Ze(e, i, n.intersect, r)
                    },
                    x: function(e, t, n) {
                        var i = Ge(t, e),
                            r = [],
                            o = !1;
                        return Ke(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 = Ge(t, e),
                            r = [],
                            o = !1;
                        return Ke(e, (function(e) {
                            e.inYRange(i.y) && r.push(e), e.inRange(i.x, i.y) && (o = !0)
                        })), n.intersect && !o && (r = []), r
                    }
                }
            },
            nt = B.extend;

        function it(e, t) {
            return B.where(e, (function(e) {
                return e.pos === t
            }))
        }

        function rt(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 ot(e, t, n, i) {
            return Math.max(e[n], t[n]) + Math.max(e[i], t[i])
        }

        function at(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 - ot(a, e, "left", "right"), r = t.outerHeight - ot(a, e, "top", "bottom"), i !== e.w || r !== e.h) {
                e.w = i, e.h = r;
                var l = n.horizontal ? [i, e.w] : [r, e.h];
                return !(l[0] === l[1] || isNaN(l[0]) && isNaN(l[1]))
            }
        }

        function st(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 lt(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, st(o.horizontal, t)), at(t, n, o) && (l = !0, c.length && (s = !0)), a.fullWidth || c.push(o);
            return s && lt(c, t, n) || l
        }

        function ct(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
        }
        R._set("global", {
            layout: {
                padding: {
                    top: 0,
                    right: 0,
                    bottom: 0,
                    left: 0
                }
            }
        });
        var ut, dt = {
                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 = B.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 = rt(it(t, "left"), !0),
                                    i = rt(it(t, "right")),
                                    r = rt(it(t, "top"), !0),
                                    o = rt(it(t, "bottom"));
                                return {
                                    leftAndTop: n.concat(r),
                                    rightAndBottom: i.concat(o),
                                    chartArea: it(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 = nt({
                                maxPadding: nt({}, 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), lt(l, d, u), lt(c, d, u) && lt(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), ct(s.leftAndTop, d, u), d.x += d.w, d.y += d.h, ct(s.rightAndBottom, d, u), e.chartArea = {
                                left: d.left,
                                top: d.top,
                                right: d.left + d.w,
                                bottom: d.top + d.h
                            }, B.each(s.chartArea, (function(t) {
                                var n = t.box;
                                nt(n, e.chartArea), n.update(d.w, d.h)
                            }))
                    }
                }
            },
            ht = (ut = 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}"
            })) && ut.default || ut,
            ft = "$chartjs",
            pt = "chartjs-size-monitor",
            gt = "chartjs-render-monitor",
            mt = ["animationstart", "webkitAnimationStart"],
            vt = {
                touchstart: "mousedown",
                touchmove: "mousemove",
                touchend: "mouseup",
                pointerenter: "mouseenter",
                pointerdown: "mousedown",
                pointermove: "mousemove",
                pointerup: "mouseup",
                pointerleave: "mouseout",
                pointerout: "mouseout"
            };

        function yt(e, t) {
            var n = B.getStyle(e, t),
                i = n && n.match(/^(\d+)(\.\d+)?px$/);
            return i ? Number(i[1]) : void 0
        }
        var bt = !! 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 wt(e, t, n) {
            e.addEventListener(t, n, bt)
        }

        function xt(e, t, n) {
            e.removeEventListener(t, n, bt)
        }

        function _t(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 Ct(e) {
            var t = document.createElement("div");
            return t.className = e || "", t
        }
        var St = {
            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[ft] || (e[ft] = {});
                        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, ht)
                }
            },
            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[ft] = {
                            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 = yt(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 = yt(e, "height");
                            void 0 !== o && (e.height = a)
                        }
                }(e, t), n) : null
            },
            releaseContext: function(e) {
                var t = e.canvas;
                if (t[ft]) {
                    var n = t[ft].initial;
                    ["height", "width"].forEach((function(e) {
                        var i = n[e];
                        B.isNullOrUndef(i) ? t.removeAttribute(e) : t.setAttribute(e, i)
                    })), B.each(n.style || {}, (function(e, n) {
                        t.style[n] = e
                    })), t.width = t.width, delete t[ft]
                }
            },
            addEventListener: function(e, t, n) {
                var i = e.canvas;
                if ("resize" !== t) {
                    var r = n[ft] || (n[ft] = {});
                    wt(i, t, (r.proxies || (r.proxies = {}))[e.id + "_" + t] = function(t) {
                        n(function(e, t) {
                            var n = vt[e.type] || e.type,
                                i = B.getRelativePosition(e, t);
                            return _t(n, t, i.x, i.y, e)
                        }(t, e))
                    })
                } else ! function(e, t, n) {
                    var i, r, o, a, s = e[ft] || (e[ft] = {}),
                        l = s.resizer = function(e) {
                            var t = Ct(pt),
                                n = Ct(pt + "-expand"),
                                i = Ct(pt + "-shrink");
                            n.appendChild(Ct()), i.appendChild(Ct()), 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 wt(n, "scroll", r.bind(n, "expand")), wt(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(_t("resize", n)), i && i.clientWidth < r && n.canvas && t(_t("resize", n))
                            }
                        }, o = !1, a = [], function() {
                            a = Array.prototype.slice.call(arguments), r = r || this, o || (o = !0, B.requestAnimFrame.call(window, (function() {
                                o = !1, i.apply(r, a)
                            })))
                        }));
                    ! function(e, t) {
                        var n = e[ft] || (e[ft] = {}),
                            i = n.renderProxy = function(e) {
                                "chartjs-render-animation" === e.animationName && t()
                            };
                        B.each(mt, (function(t) {
                            wt(e, t, i)
                        })), n.reflow = !!e.offsetParent, e.classList.add(gt)
                    }(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[ft] || {}).proxies || {})[e.id + "_" + t];
                    r && xt(i, t, r)
                } else ! function(e) {
                    var t = e[ft] || {},
                        n = t.resizer;
                    delete t.resizer,
                        function(e) {
                            var t = e[ft] || {},
                                n = t.renderProxy;
                            n && (B.each(mt, (function(t) {
                                xt(e, t, n)
                            })), delete t.renderProxy), e.classList.remove(gt)
                        }(e), n && n.parentNode && n.parentNode.removeChild(n)
                }(i)
            }
        };
        B.addEvent = wt, B.removeEvent = xt;
        var kt = St._enabled ? St : {
                acquireContext: function(e) {
                    return e && e.canvas && (e = e.canvas), e && e.getContext("2d") || null
                }
            },
            Tt = B.extend({
                initialize: function() {},
                acquireContext: function() {},
                releaseContext: function() {},
                addEventListener: function() {},
                removeEventListener: function() {}
            }, kt);
        R._set("global", {
            plugins: {}
        });
        var At = {
                _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 = B.clone(R.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] = B.clone(n)
                },
                getScaleConstructor: function(e) {
                    return this.constructors.hasOwnProperty(e) ? this.constructors[e] : void 0
                },
                getScaleDefaults: function(e) {
                    return this.defaults.hasOwnProperty(e) ? B.merge(Object.create(null), [R.scale, this.defaults[e]]) : {}
                },
                updateScaleDefaults: function(e, t) {
                    this.defaults.hasOwnProperty(e) && (this.defaults[e] = B.extend(this.defaults[e], t))
                },
                addScalesToLayout: function(e) {
                    B.each(e.scales, (function(t) {
                        t.fullWidth = t.options.fullWidth, t.position = t.options.position, t.weight = t.options.weight, dt.addBox(e, t)
                    }))
                }
            },
            Et = B.valueOrDefault,
            Ot = B.rtl.getRtlAdapter;
        R._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: B.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: B.noop,
                    beforeBody: B.noop,
                    beforeLabel: B.noop,
                    label: function(e, t) {
                        var n = t.datasets[e.datasetIndex].label || "";
                        return n && (n += ": "), B.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: B.noop,
                    afterBody: B.noop,
                    beforeFooter: B.noop,
                    footer: B.noop,
                    afterFooter: B.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 = B.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 It(e, t) {
            return t && (B.isArray(t) ? Array.prototype.push.apply(e, t) : e.push(t)), e
        }

        function Pt(e) {
            return ("string" == typeof e || e instanceof String) && e.indexOf("\n") > -1 ? e.split("\n") : e
        }

        function Lt(e) {
            var t = R.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 Nt(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 It([], Pt(e))
        }
        var Rt = X.extend({
                initialize: function() {
                    this._model = Lt(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 = It(a, Pt(i)), a = It(a, Pt(r)), It(a, Pt(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 B.each(e, (function(e) {
                        var o = {
                            before: [],
                            lines: [],
                            after: []
                        };
                        It(o.before, Pt(i.beforeLabel.call(n, e, t))), It(o.lines, i.label.call(n, e, t)), It(o.after, Pt(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 = It(o, Pt(n)), o = It(o, Pt(i)), It(o, Pt(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 = Lt(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)
                        }))), B.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 = B.fontString(c, t._titleFontStyle, t._titleFontFamily), B.each(t.title, f), n.font = B.fontString(u, t._bodyFontStyle, t._bodyFontFamily), B.each(t.beforeBody.concat(t.afterBody), f), h = t.displayColors ? u + 2 : 0, B.each(o, (function(e) {
                                B.each(e.before, f), B.each(e.lines, f), B.each(e.after, f)
                            })), h = 0, n.font = B.fontString(d, t._footerFontStyle, t._footerFontFamily), B.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 = Ot(t.rtl, t.x, t.width);
                        for (e.x = Nt(t, t._titleAlign), n.textAlign = l.textAlign(t._titleAlign), n.textBaseline = "middle", i = t.titleFontSize, r = t.titleSpacing, n.fillStyle = t.titleFontColor, n.font = B.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 ? Nt(t, "left") : 0,
                        y = Ot(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 = B.fontString(d, t._bodyFontStyle, t._bodyFontFamily), e.x = Nt(t, w), n.fillStyle = t.bodyFontColor, B.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, B.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])
                        }
                        B.each(i.after, b)
                    }
                    m = 0, B.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 = Ot(t.rtl, t.x, t.width);
                        for (e.x = Nt(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 = B.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, B.rtl.overrideTextDirection(e, t.textDirection), this.drawTitle(i, t, e), this.drawBody(i, t, e), this.drawFooter(i, t, e), B.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 = !B.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
                }
            }),
            jt = Mt,
            $t = Rt;
        $t.positioners = jt;
        var zt = B.valueOrDefault;

        function Ht() {
            return B.merge(Object.create(null), [].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 = zt(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 ? B.merge(t[e][r], [Dt.getScaleDefaults(o), a]) : B.merge(t[e][r], a)
                    } else B._merger(e, t, n, i)
                }
            })
        }

        function Bt() {
            return B.merge(Object.create(null), [].slice.call(arguments), {
                merger: function(e, t, n, i) {
                    var r = t[e] || Object.create(null),
                        o = n[e];
                    "scales" === e ? t[e] = Ht(r, o) : "scale" === e ? t[e] = B.merge(r, [Dt.getScaleDefaults(o.type), o]) : B._merger(e, t, n, i)
                }
            })
        }

        function qt(e) {
            var t = e.options;
            B.each(e.scales, (function(t) {
                dt.removeBox(e, t)
            })), t = Bt(R.global, R[e.config.type], t), e.options = e.config.options = t, e.ensureScalesHaveIDs(), e.buildOrUpdateScales(), e.tooltip._options = t.tooltips, e.tooltip.initialize()
        }

        function Wt(e, t, n) {
            var i, r = function(e) {
                return e.id === i
            };
            do {
                i = t + n++
            } while (B.findIndex(e, r) >= 0);
            return i
        }

        function Ut(e) {
            return "top" === e || "bottom" === e
        }

        function Vt(e, t) {
            return function(n, i) {
                return n[e] === i[e] ? n[t] - i[t] : n[e] - i[e]
            }
        }
        R._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 Yt = function(e, t) {
            return this.construct(e, t), this
        };
        B.extend(Yt.prototype, {
            construct: function(e, t) {
                var n = this;
                t = function(e) {
                    var t = (e = e || Object.create(null)).data = e.data || {};
                    return t.datasets = t.datasets || [], t.labels = t.labels || [], e.options = Bt(R.global, R[e.type], e.options || {}), e
                }(t);
                var i = Tt.acquireContext(e, t),
                    r = i && i.canvas,
                    o = r && r.height,
                    a = r && r.width;
                n.id = B.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, Yt.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 At.notify(e, "beforeInit"), B.retinaScale(e, e.options.devicePixelRatio), e.bindEvents(), e.options.responsive && e.resize(!0), e.initToolTip(), At.notify(e, "afterInit"), e
            },
            clear: function() {
                return B.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(B.getMaximumWidth(i))),
                    a = Math.max(0, Math.floor(r ? o / r : B.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", B.retinaScale(t, n.devicePixelRatio), !e)) {
                    var s = {
                        width: o,
                        height: a
                    };
                    At.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;
                B.each(t.xAxes, (function(e, n) {
                    e.id || (e.id = Wt(t.xAxes, "x-axis-", n))
                })), B.each(t.yAxes, (function(e, n) {
                    e.id || (e.id = Wt(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"
                }), B.each(i, (function(t) {
                    var i = t.options,
                        o = i.id,
                        a = zt(i.type, t.dtype);
                    Ut(i.position) !== Ut(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)
                })), B.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 = Xe[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;
                B.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]
                    }), qt(i), At._invalidate(i), !1 !== At.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 && B.each(r, (function(e) {
                        e.reset()
                    })), i.updateDatasets(), i.tooltip.initialize(), i.lastActive = [], At.notify(i, "afterUpdate"), i._layers.sort(Vt("z", "_idx")), i._bufferedRender ? i._bufferedRequest = {
                        duration: e.duration,
                        easing: e.easing,
                        lazy: e.lazy
                    } : i.render(e)
                }
            },
            updateLayout: function() {
                var e = this;
                !1 !== At.notify(e, "beforeLayout") && (dt.update(this, this.width, this.height), e._layers = [], B.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
                })), At.notify(e, "afterScaleUpdate"), At.notify(e, "afterLayout"))
            },
            updateDatasets: function() {
                if (!1 !== At.notify(this, "beforeDatasetsUpdate")) {
                    for (var e = 0, t = this.data.datasets.length; e < t; ++e) this.updateDataset(e);
                    At.notify(this, "afterDatasetsUpdate")
                }
            },
            updateDataset: function(e) {
                var t = this.getDatasetMeta(e),
                    n = {
                        meta: t,
                        index: e
                    };
                !1 !== At.notify(this, "beforeDatasetUpdate", [n]) && (t.controller._update(), At.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 = zt(e.duration, n && n.duration),
                    r = e.lazy;
                if (!1 !== At.notify(t, "beforeRender")) {
                    var o = function(e) {
                        At.notify(t, "afterRender"), B.callback(n && n.onComplete, [e], t)
                    };
                    if (n && i) {
                        var a = new K({
                            numSteps: i / 16.66,
                            easing: e.easing || n.easing,
                            render: function(e, t) {
                                var n = B.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 K({
                        numSteps: 0,
                        chart: t
                    }));
                    return t
                }
            },
            draw: function(e) {
                var t, n, i = this;
                if (i.clear(), B.isNullOrUndef(e) && (e = 1), i.transition(e), !(i.width <= 0 || i.height <= 0) && !1 !== At.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), At.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(Vt("order", "index")), i
            },
            _getSortedVisibleDatasetMetas: function() {
                return this._getSortedDatasetMetas(!0)
            },
            drawDatasets: function(e) {
                var t, n;
                if (!1 !== At.notify(this, "beforeDatasetsDraw", [e])) {
                    for (n = (t = this._getSortedVisibleDatasetMetas()).length - 1; n >= 0; --n) this.drawDataset(t[n], e);
                    At.notify(this, "afterDatasetsDraw", [e])
                }
            },
            drawDataset: function(e, t) {
                var n = {
                    meta: e,
                    index: e.index,
                    easingValue: t
                };
                !1 !== At.notify(this, "beforeDatasetDraw", [n]) && (e.controller.draw(t), At.notify(this, "afterDatasetDraw", [n]))
            },
            _drawTooltip: function(e) {
                var t = this.tooltip,
                    n = {
                        tooltip: t,
                        easingValue: e
                    };
                !1 !== At.notify(this, "beforeTooltipDraw", [n]) && (t.draw(), At.notify(this, "afterTooltipDraw", [n]))
            },
            getElementAtEvent: function(e) {
                return tt.modes.single(this, e)
            },
            getElementsAtEvent: function(e) {
                return tt.modes.label(this, e, {
                    intersect: !0
                })
            },
            getElementsAtXAxis: function(e) {
                return tt.modes["x-axis"](this, e, {
                    intersect: !0
                })
            },
            getElementsAtEventForMode: function(e, t, n) {
                var i = tt.modes[t];
                return "function" == typeof i ? i(this, e, n) : []
            },
            getDatasetAtEvent: function(e) {
                return tt.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(), B.canvas.clear(n), Tt.releaseContext(n.ctx), n.canvas = null, n.ctx = null), At.notify(n, "destroy"), delete Yt.instances[n.id]
            },
            toBase64Image: function() {
                return this.canvas.toDataURL.apply(this.canvas, arguments)
            },
            initToolTip: function() {
                var e = this;
                e.tooltip = new $t({
                    _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)
                    };
                B.each(e.options.events, (function(i) {
                    Tt.addEventListener(e, i, n), t[i] = n
                })), e.options.responsive && (n = function() {
                    e.resize()
                }, Tt.addEventListener(e, "resize", n), t.resize = n)
            },
            unbindEvents: function() {
                var e = this,
                    t = e._listeners;
                t && (delete e._listeners, B.each(t, (function(t, n) {
                    Tt.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 !== At.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)), At.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), B.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 = !B.arrayEquals(n.active, n.lastActive), n.lastActive = n.active, t
            }
        }), Yt.instances = {};
        var Xt = Yt;

        function Gt() {
            throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")
        }

        function Kt(e) {
            this.options = e || {}
        }
        Yt.Controller = Yt, Yt.types = {}, B.configMerge = Bt, B.scaleMerge = Ht, B.extend(Kt.prototype, {
            formats: Gt,
            parse: Gt,
            format: Gt,
            add: Gt,
            diff: Gt,
            startOf: Gt,
            endOf: Gt,
            _create: function(e) {
                return e
            }
        }), Kt.override = function(e) {
            B.extend(Kt.prototype, e)
        };
        var Qt = {
                _date: Kt
            },
            Zt = {
                formatters: {
                    values: function(e) {
                        return B.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 = B.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 = B.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(B.log10(e)));
                        return 0 === e ? "0" : 1 === i || 2 === i || 5 === i || 0 === t || t === n.length - 1 ? e.toExponential() : ""
                    }
                }
            },
            Jt = B.isArray,
            en = B.isNullOrUndef,
            tn = B.valueOrDefault,
            nn = B.valueAtIndexOrDefault;

        function rn(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 on(e) {
            return e.drawTicks ? e.tickMarkLength : 0
        }

        function an(e) {
            var t, n;
            return e.display ? (t = B.options._parseFont(e), n = B.options.toPadding(e.padding), t.lineHeight + n.height) : 0
        }

        function sn(e, t) {
            return B.extend(B.options._parseFont({
                fontFamily: tn(t.fontFamily, e.fontFamily),
                fontSize: tn(t.fontSize, e.fontSize),
                fontStyle: tn(t.fontStyle, e.fontStyle),
                lineHeight: tn(t.lineHeight, e.lineHeight)
            }), {
                color: B.options.resolve([t.fontColor, e.fontColor, R.global.defaultFontColor])
            })
        }

        function ln(e) {
            var t = sn(e, e.minor);
            return {
                minor: t,
                major: e.major.enabled ? sn(e, e.major) : t
            }
        }

        function cn(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 un(e, t, n, i) {
            var r, o, a, s, l = tn(n, 0),
                c = Math.min(tn(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
        }
        R._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: Zt.formatters.values,
                minor: {},
                major: {}
            }
        });
        var dn = X.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() {
                B.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 = B.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() {
                B.callback(this.options.afterUpdate, [this])
            },
            beforeSetDimensions: function() {
                B.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() {
                B.callback(this.options.afterSetDimensions, [this])
            },
            beforeDataLimits: function() {
                B.callback(this.options.beforeDataLimits, [this])
            },
            determineDataLimits: B.noop,
            afterDataLimits: function() {
                B.callback(this.options.afterDataLimits, [this])
            },
            beforeBuildTicks: function() {
                B.callback(this.options.beforeBuildTicks, [this])
            },
            buildTicks: B.noop,
            afterBuildTicks: function(e) {
                var t = this;
                return Jt(e) && e.length ? B.callback(t.options.afterBuildTicks, [t, e]) : (t.ticks = B.callback(t.options.afterBuildTicks, [t, t.ticks]) || t.ticks, e)
            },
            beforeTickToLabelConversion: function() {
                B.callback(this.options.beforeTickToLabelConversion, [this])
            },
            convertTicksToLabels: function() {
                var e = this.options.ticks;
                this.ticks = this.ticks.map(e.userCallback || e.callback, this)
            },
            afterTickToLabelConversion: function() {
                B.callback(this.options.afterTickToLabelConversion, [this])
            },
            beforeCalculateTickRotation: function() {
                B.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 - on(l.gridLines) - c.padding - an(l.scaleLabel), a = Math.sqrt(t * t + n * n), f = B.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() {
                B.callback(this.options.afterCalculateTickRotation, [this])
            },
            beforeFit: function() {
                B.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 = on(a) + an(o)), c ? s && (t.height = on(a) + an(o)) : t.height = e.maxHeight, r.display && s) {
                    var u = ln(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 = B.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, S, k = 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), S = l ? x * (f.height - f.offset) : w * f.width + x * f.offset) : (C = h.width / 2, S = f.width / 2), e.paddingLeft = Math.max((C - k) * e.width / (e.width - k), 0) + 3, e.paddingRight = Math.max((S - T) * e.width / (e.width - T), 0) + 3
                    } else {
                        var A = r.mirror ? 0 : p.width + v + m;
                        t.width = Math.min(e.maxWidth, t.width + A), 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() {
                B.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 (en(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 = [],
                        x = 0,
                        _ = 0;
                    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, en(s) || Jt(s)) {
                            if (Jt(s))
                                for (o = 0, a = s.length; o < a; ++o) p = s[o], en(p) || Jt(p) || (h = B.measureText(e, u.data, u.gc, h, p), f += d)
                        } else h = B.measureText(e, u.data, u.gc, h, s), f = d;
                        y.push(h), b.push(f), w.push(d / 2), x = Math.max(h, x), _ = Math.max(f, _)
                    }

                    function C(e) {
                        return {
                            width: y[e] || 0,
                            height: b[e] || 0,
                            offset: w[e] || 0
                        }
                    }
                    return function(e, t) {
                        B.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(x), m = b.indexOf(_), {
                        first: C(0),
                        last: C(v - 1),
                        widest: C(g),
                        highest: C(m)
                    }
                }(e.ctx, ln(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: B.noop,
            getPixelForValue: B.noop,
            getValueForPixel: B.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), cn(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 = B.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++) un(e, i, l[t], l[t + 1]);
                    return r = c > 1 ? (d - u) / (c - 1) : null, un(e, i, B.isNullOrUndef(r) ? 0 : u - r, u), un(e, i, d, B.isNullOrUndef(r) ? e.length : d + r), cn(e)
                }
                return un(e, i), cn(e)
            },
            _tickSize: function() {
                var e = this.options.ticks,
                    t = B.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,
                    S = y.isHorizontal(),
                    k = y._ticksToDraw,
                    T = k.length + (C ? 1 : 0),
                    A = on(x),
                    D = [],
                    E = x.drawBorder ? nn(x.lineWidth, 0, 0) : 0,
                    O = E / 2,
                    M = B._alignPixel,
                    I = function(e) {
                        return M(b, e, E)
                    };
                for ("top" === _ ? (t = I(y.bottom), s = y.bottom - A, c = t - O, d = I(e.top) + O, f = e.bottom) : "bottom" === _ ? (t = I(y.top), d = e.top, f = I(e.bottom) - O, s = t + O, c = y.top + A) : "left" === _ ? (t = I(y.right), a = y.right - A, l = t - O, u = I(e.left) + O, h = e.right) : (t = I(y.left), u = e.left, h = I(e.right) - O, a = t + O, l = y.left + A), n = 0; n < T; ++n) i = k[n] || {}, en(i.label) && n < k.length || (n === y.zeroLineIndex && w.offset === C ? (p = x.zeroLineWidth, g = x.zeroLineColor, m = x.zeroLineBorderDash || [], v = x.zeroLineBorderDashOffset || 0) : (p = nn(x.lineWidth, n, 1), g = nn(x.color, n, "rgba(0,0,0,0.1)"), m = x.borderDash || [], v = x.borderDashOffset || 0), void 0 !== (r = rn(y, i._index || n, C)) && (o = M(b, r, p), S ? a = l = u = h = o : s = c = d = f = o, D.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 D.ticksLength = T, D.borderValue = t, D
            },
            _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 = ln(p),
                    w = p.padding,
                    x = on(f.gridLines),
                    _ = -B.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, en(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 = B._alignPixel,
                        d = n.drawBorder ? nn(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 = nn(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 = nn(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 = tn(i.fontColor, R.global.defaultFontColor),
                        s = B.options._parseFont(i),
                        l = B.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)
                }))
            }
        });
        dn.prototype._draw = dn.prototype.draw;
        var hn = dn,
            fn = B.isNullOrUndef,
            pn = hn.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;
                    hn.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 fn(t) || fn(n) || (e = a.chart.data.datasets[n].data[t]), fn(e) || (i = a.isHorizontal() ? e.x : e.y), (void 0 !== i || void 0 !== e && isNaN(t)) && (r = a._getLabels(), e = B.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
                }
            });
        pn._defaults = {
            position: "bottom"
        };
        var gn = B.noop,
            mn = B.isNullOrUndef,
            vn = hn.extend({
                getRightValue: function(e) {
                    return "string" == typeof e ? +e : hn.prototype.getRightValue.call(this, e)
                },
                handleTickRangeOptions: function() {
                    var e = this,
                        t = e.options.ticks;
                    if (t.beginAtZero) {
                        var n = B.sign(e.min),
                            i = B.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: gn,
                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: B.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 = B.niceNum((p - f) / c / l) * l;
                            if (g < 1e-14 && mn(u) && mn(d)) return [f, p];
                            (o = Math.ceil(p / g) - Math.floor(f / g)) > c && (g = B.niceNum(o * g / c / l) * l), s || mn(h) ? n = Math.pow(10, B._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 && (!mn(u) && B.almostWhole(u / g, g / 1e3) && (i = u), !mn(d) && B.almostWhole(d / g, g / 1e3) && (r = d)), o = (r - i) / g, o = B.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(mn(u) ? i : u);
                            for (var m = 1; m < o; ++m) a.push(Math.round((i + m * g) * n) / n);
                            return a.push(mn(d) ? r : d), a
                        }(i, e);
                    e.handleDirectionalChanges(), e.max = B.max(r), e.min = B.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), hn.prototype.convertTicksToLabels.call(e)
                },
                _configure: function() {
                    var e, t = this,
                        n = t.getTicks(),
                        i = t.min,
                        r = t.max;
                    hn.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
                }
            }),
            yn = {
                position: "left",
                ticks: {
                    callback: Zt.formatters.linear
                }
            };

        function bn(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 wn(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 xn = vn.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 ? bn(r, c, t, n) : wn(r, t, n);
                    B.each(c, (function(e) {
                        i = e.pos.concat(e.neg), r.min = Math.min(r.min, B.min(i)), r.max = Math.max(r.max, B.max(i))
                    })), r.min = B.isFinite(r.min) && !isNaN(r.min) ? r.min : 0, r.max = B.isFinite(r.max) && !isNaN(r.max) ? r.max : 1, r.handleTickRangeOptions()
                },
                _computeTickLimit: function() {
                    var e;
                    return this.isHorizontal() ? Math.ceil(this.width / 40) : (e = B.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])
                }
            }),
            _n = yn;
        xn._defaults = _n;
        var Cn = B.valueOrDefault,
            Sn = B.math.log10,
            kn = {
                position: "left",
                ticks: {
                    callback: Zt.formatters.logarithmic
                }
            };

        function Tn(e, t) {
            return B.isFinite(e) && e >= 0 ? e : t
        }
        var An = hn.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)
                                }
                        }
                        B.each(f, (function(e) {
                            if (e.length > 0) {
                                var t = B.min(e),
                                    n = B.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 = B.isFinite(a.min) ? a.min : null, a.max = B.isFinite(a.max) ? a.max : null, a.minNotZero = B.isFinite(a.minNotZero) ? a.minNotZero : null, this.handleTickRangeOptions()
                },
                handleTickRangeOptions: function() {
                    var e = this,
                        t = e.options.ticks;
                    e.min = Tn(t.min, e.min), e.max = Tn(t.max, e.max), e.min === e.max && (0 !== e.min && null !== e.min ? (e.min = Math.pow(10, Math.floor(Sn(e.min)) - 1), e.max = Math.pow(10, Math.floor(Sn(e.max)) + 1)) : (e.min = 1, e.max = 10)), null === e.min && (e.min = Math.pow(10, Math.floor(Sn(e.max)) - 1)), null === e.max && (e.max = 0 !== e.min ? Math.pow(10, Math.floor(Sn(e.min)) + 1) : 10), null === e.minNotZero && (e.min > 0 ? e.minNotZero = e.min : e.max < 1 ? e.minNotZero = Math.pow(10, Math.floor(Sn(e.max))) : e.minNotZero = 1)
                },
                buildTicks: function() {
                    var e = this,
                        t = e.options.ticks,
                        n = !e.isHorizontal(),
                        i = {
                            min: Tn(t.min),
                            max: Tn(t.max)
                        },
                        r = e.ticks = function(e, t) {
                            var n, i, r = [],
                                o = Cn(e.min, Math.pow(10, Math.floor(Sn(t.min)))),
                                a = Math.floor(Sn(t.max)),
                                s = Math.ceil(t.max / Math.pow(10, a));
                            0 === o ? (n = Math.floor(Sn(t.minNotZero)), i = Math.floor(t.minNotZero / Math.pow(10, n)), r.push(o), o = i * Math.pow(10, n)) : (n = Math.floor(Sn(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 = Cn(e.max, o);
                            return r.push(c), r
                        }(i, e);
                    e.max = B.max(r), e.min = B.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(), hn.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(Sn(e));
                    return Math.floor(e / Math.pow(10, t)) * Math.pow(10, t)
                },
                _configure: function() {
                    var e = this,
                        t = e.min,
                        n = 0;
                    hn.prototype._configure.call(e), 0 === t && (t = e._getFirstTickValue(e.minNotZero), n = Cn(e.options.ticks.fontSize, R.global.defaultFontSize) / e._length), e._startValue = Sn(t), e._valueOffset = n, e._valueRange = (Sn(e.max) - Sn(t)) / (1 - n)
                },
                getPixelForValue: function(e) {
                    var t = this,
                        n = 0;
                    return (e = +t.getRightValue(e)) > t.min && e > 0 && (n = (Sn(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;
        An._defaults = Dn;
        var En = B.valueOrDefault,
            On = B.valueAtIndexOrDefault,
            Mn = B.options.resolve,
            In = {
                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: Zt.formatters.linear
                },
                pointLabels: {
                    display: !0,
                    fontSize: 10,
                    callback: function(e) {
                        return e
                    }
                }
            };

        function Pn(e) {
            var t = e.ticks;
            return t.display && e.display ? En(t.fontSize, R.global.defaultFontSize) + 2 * t.backdropPaddingY : 0
        }

        function Ln(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 Nn(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 (B.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 Rn(e, t, n) {
            90 === e || 270 === e ? n.y -= t.h / 2 : (e > 270 || e < 90) && (n.y -= t.h)
        }

        function jn(e) {
            return B.isNumber(e) ? e : 0
        }
        var $n = vn.extend({
                setDimensions: function() {
                    var e = this;
                    e.width = e.maxWidth, e.height = e.maxHeight, e.paddingTop = Pn(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;
                    B.each(t.data.datasets, (function(r, o) {
                        if (t.isDatasetVisible(o)) {
                            var a = t.getDatasetMeta(o);
                            B.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 / Pn(this.options))
                },
                convertTicksToLabels: function() {
                    var e = this;
                    vn.prototype.convertTicksToLabels.call(e), e.pointLabels = e.chart.data.labels.map((function() {
                        var t = B.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 = B.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 = B.isArray(c) ? {
                                w: B.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 = B.toDegrees(d) % 360,
                                f = Ln(h, i.x, n.w, 0, 180),
                                p = Ln(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 = jn(r), o = jn(o), a = jn(a), s = jn(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 (B.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 = Pn(n),
                                o = e.getDistanceFromCenterForValue(n.ticks.reverse ? e.min : e.max),
                                a = B.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 = On(i.fontColor, s, R.global.defaultFontColor);
                                t.fillStyle = u;
                                var d = e.getIndexAngle(s),
                                    h = B.toDegrees(d);
                                t.textAlign = Nn(h), Rn(h, e._pointLabelSizes[s], c), Fn(t, e.pointLabels[s], c, a.lineHeight)
                            }
                            t.restore()
                        }(i), a.display && B.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 = On(t.color, i - 1),
                                    c = On(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 = B.options._parseFont(n),
                            s = En(n.fontColor, R.global.defaultFontColor);
                        t.save(), t.font = a.string, t.translate(e.xCenter, e.yCenter), t.rotate(o), t.textAlign = "center", t.textBaseline = "middle", B.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: B.noop
            }),
            zn = In;
        $n._defaults = zn;
        var Hn = B._deprecated,
            Bn = B.options.resolve,
            qn = B.valueOrDefault,
            Wn = Number.MIN_SAFE_INTEGER || -9007199254740991,
            Un = Number.MAX_SAFE_INTEGER || 9007199254740991,
            Vn = {
                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
                }
            },
            Yn = Object.keys(Vn);

        function Xn(e, t) {
            return e - t
        }

        function Gn(e) {
            return B.valueOrDefault(e.time.min, e.ticks.min)
        }

        function Kn(e) {
            return B.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 Zn(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)), B.isFinite(a) || (a = "string" == typeof o ? n.parse(a, o) : n.parse(a)), null !== a ? +a : (r || "function" != typeof o || (a = o(t), B.isFinite(a) || (a = n.parse(a))), a)
        }

        function Jn(e, t) {
            if (B.isNullOrUndef(t)) return null;
            var n = e.options.time,
                i = Zn(e, e.getRightValue(t));
            return null === i || n.round && (i = +e._adapter.startOf(i, n.round)), i
        }

        function ei(e, t, n, i) {
            var r, o, a, s = Yn.length;
            for (r = Yn.indexOf(e); r < s - 1; ++r)
                if (a = (o = Vn[Yn[r]]).steps ? o.steps : Un, o.common && Math.ceil((n - t) / (a * o.size)) <= i) return Yn[r];
            return Yn[s - 1]
        }

        function ti(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 ni = hn.extend({
            initialize: function() {
                this.mergeTicksOptions(), hn.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 Hn("time scale", n.format, "time.format", "time.parser"), Hn("time scale", n.min, "time.min", "ticks.min"), Hn("time scale", n.max, "time.max", "ticks.max"), B.mergeIf(n.displayFormats, i.formats()), hn.prototype.update.apply(e, arguments)
            },
            getRightValue: function(e) {
                return e && void 0 !== e.t && (e = e.t), hn.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 = Un,
                    f = Wn,
                    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, B.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(Xn) : p.sort(Xn), h = Math.min(h, p[0]), f = Math.max(f, p[p.length - 1])), h = Jn(s, Gn(u)) || h, f = Jn(s, Kn(u)) || f, h = h === Un ? +c.startOf(Date.now(), d) : h, f = f === Wn ? +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 || ei(s.minUnit, t, n, i),
                            c = Bn([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, Gn(a)) || r, o = Jn(i, Kn(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 ? ei(l.minUnit, i.min, i.max, d) : function(e, t, n, i, r) {
                    var o, a;
                    for (o = Yn.length - 1; o >= Yn.indexOf(n); o--)
                        if (a = Yn[o], Vn[a].common && e._adapter.diff(r, i, a) >= t - 1) return a;
                    return Yn[n ? Yn.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 = Yn.indexOf(e) + 1, n = Yn.length; t < n; ++t)
                        if (Vn[Yn[t]].common) return Yn[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(), ti(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 B.isObject(s) && (a = n.getRightValue(s)), o.tooltipFormat ? i.format(Zn(n, a), o.tooltipFormat) : "string" == typeof a ? a : i.format(Zn(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 = Bn([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 = B.toRadians(this.isHorizontal() ? t.maxRotation : t.minRotation),
                    r = Math.cos(i),
                    o = Math.sin(i),
                    a = qn(t.fontSize, R.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, ti(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
            }
        });
        ni._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 ii = {
                category: pn,
                linear: xn,
                logarithmic: An,
                radialLinear: $n,
                time: ni
            },
            ri = {
                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 ri
            },
            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)
            }
        } : {}), R._set("global", {
            plugins: {
                filler: {
                    propagate: !0
                }
            }
        });
        var oi = {
            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 B.isArray(t) ? function(e, n) {
                    return t[n]
                } : function(e) {
                    return {
                        x: null === n ? e.x : n,
                        y: null === i ? e.y : i
                    }
                }
            }
        };

        function ai(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 si(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 (B.isFinite(o)) return {
                        x: (t = i.isHorizontal()) ? o : null,
                        y: t ? null : o
                    }
                }
                return null
            }(e)
        }

        function li(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 ci(e) {
            var t = e.fill,
                n = "dataset";
            return !1 === t ? null : (isFinite(t) || (n = "boundary"), oi[n](e))
        }

        function ui(e) {
            return e && !e.skip
        }

        function di(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) B.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) B.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 hi(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 = ui(c), h = ui(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)) : (di(e, m, v, y, b), y = b = 0, m = [], v = []));
            di(e, m, v, y, b), e.closePath(), e.fillStyle = r, e.fill()
        }
        var fi = {
                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 be.Line && (o = {
                        visible: e.isDatasetVisible(i),
                        fill: ai(r, i, a),
                        chart: e,
                        el: r
                    }), n.$filler = o, l.push(o);
                    for (i = 0; i < a; ++i)(o = l[i]) && (o.fill = li(l, i, s), o.boundary = si(o), o.mapper = ci(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 || R.global.defaultColor, a && s && o.length && (B.canvas.clipArea(c, e.chartArea), hi(c, o, a, r, s, i._loop), B.canvas.unclipArea(c)))
                }
            },
            pi = B.rtl.getRtlAdapter,
            gi = B.noop,
            mi = B.valueOrDefault;

        function vi(e, t) {
            return e.usePointStyle && e.boxWidth > t ? t : e.boxWidth
        }
        R._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 yi = X.extend({
            initialize: function(e) {
                B.extend(this, e), this.legendHitBoxes = [], this._hoveredItem = null, this.doughnutMode = !1
            },
            beforeUpdate: gi,
            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: gi,
            beforeSetDimensions: gi,
            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: gi,
            beforeBuildLabels: gi,
            buildLabels: function() {
                var e = this,
                    t = e.options.labels || {},
                    n = B.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: gi,
            beforeFit: gi,
            fit: function() {
                var e = this,
                    t = e.options,
                    n = t.labels,
                    i = t.display,
                    r = e.ctx,
                    o = B.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", B.each(e.legendItems, (function(e, t) {
                            var i = vi(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;
                        B.each(e.legendItems, (function(e, t) {
                            var i = vi(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: gi,
            isHorizontal: function() {
                return "top" === this.options.position || "bottom" === this.options.position
            },
            draw: function() {
                var e = this,
                    t = e.options,
                    n = t.labels,
                    i = R.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 = pi(t.rtl, e.left, e.minSize.width),
                        h = e.ctx,
                        f = mi(n.fontColor, i.defaultFontColor),
                        p = B.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 = vi(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
                    }, B.rtl.overrideTextDirection(e.ctx, t.textDirection);
                    var w = g + n.padding;
                    B.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 = mi(i.lineWidth, o.borderWidth);
                                if (h.fillStyle = mi(i.fillStyle, r), h.lineCap = mi(i.lineCap, o.borderCapStyle), h.lineDashOffset = mi(i.lineDashOffset, o.borderDashOffset), h.lineJoin = mi(i.lineJoin, o.borderJoinStyle), h.lineWidth = a, h.strokeStyle = mi(i.strokeStyle, r), h.setLineDash && h.setLineDash(mi(i.lineDash, o.borderDash)), n && n.usePointStyle) {
                                    var s = m * Math.SQRT2 / 2,
                                        l = d.xPlus(e, m / 2),
                                        c = t + g / 2;
                                    B.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
                    })), B.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 bi(e, t) {
            var n = new yi({
                ctx: e.ctx,
                options: t,
                chart: e
            });
            dt.configure(e, n, t), dt.addBox(e, n), e.legend = n
        }
        var wi = {
                id: "legend",
                _element: yi,
                beforeInit: function(e) {
                    var t = e.options.legend;
                    t && bi(e, t)
                },
                beforeUpdate: function(e) {
                    var t = e.options.legend,
                        n = e.legend;
                    t ? (B.mergeIf(t, R.global.legend), n ? (dt.configure(e, n, t), n.options = t) : bi(e, t)) : n && (dt.removeBox(e, n), delete e.legend)
                },
                afterEvent: function(e, t) {
                    var n = e.legend;
                    n && n.handleEvent(t)
                }
            },
            xi = B.noop;
        R._set("global", {
            title: {
                display: !1,
                fontStyle: "bold",
                fullWidth: !0,
                padding: 10,
                position: "top",
                text: "",
                weight: 2e3
            }
        });
        var _i = X.extend({
            initialize: function(e) {
                B.extend(this, e), this.legendHitBoxes = []
            },
            beforeUpdate: xi,
            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: xi,
            beforeSetDimensions: xi,
            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: xi,
            beforeBuildLabels: xi,
            buildLabels: xi,
            afterBuildLabels: xi,
            beforeFit: xi,
            fit: function() {
                var e, t = this,
                    n = t.options,
                    i = t.minSize = {},
                    r = t.isHorizontal();
                n.display ? (e = (B.isArray(n.text) ? n.text.length : 1) * B.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: xi,
            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 = B.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 = B.valueOrDefault(n.fontColor, R.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 (B.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 Ci(e, t) {
            var n = new _i({
                ctx: e.ctx,
                options: t,
                chart: e
            });
            dt.configure(e, n, t), dt.addBox(e, n), e.titleBlock = n
        }
        var Si = {},
            ki = fi,
            Ti = wi,
            Ai = {
                id: "title",
                _element: _i,
                beforeInit: function(e) {
                    var t = e.options.title;
                    t && Ci(e, t)
                },
                beforeUpdate: function(e) {
                    var t = e.options.title,
                        n = e.titleBlock;
                    t ? (B.mergeIf(t, R.global.title), n ? (dt.configure(e, n, t), n.options = t) : Ci(e, t)) : n && (dt.removeBox(e, n), delete e.titleBlock)
                }
            };
        for (var Di in Si.filler = ki, Si.legend = Ti, Si.title = Ai, Xt.helpers = B,
                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 = B._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"
                    }
                    B.where = function(e, t) {
                        if (B.isArray(e) && Array.prototype.filter) return e.filter(t);
                        var n = [];
                        return B.each(e, (function(e) {
                            t(e) && n.push(e)
                        })), n
                    }, B.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
                    }, B.findNextWhere = function(e, t, n) {
                        B.isNullOrUndef(n) && (n = -1);
                        for (var i = n + 1; i < e.length; i++) {
                            var r = e[i];
                            if (t(r)) return r
                        }
                    }, B.findPreviousWhere = function(e, t, n) {
                        B.isNullOrUndef(n) && (n = e.length);
                        for (var i = n - 1; i >= 0; i--) {
                            var r = e[i];
                            if (t(r)) return r
                        }
                    }, B.isNumber = function(e) {
                        return !isNaN(parseFloat(e)) && isFinite(e)
                    }, B.almostEquals = function(e, t, n) {
                        return Math.abs(e - t) < n
                    }, B.almostWhole = function(e, t) {
                        var n = Math.round(e);
                        return n - t <= e && n + t >= e
                    }, B.max = function(e) {
                        return e.reduce((function(e, t) {
                            return isNaN(t) ? e : Math.max(e, t)
                        }), Number.NEGATIVE_INFINITY)
                    }, B.min = function(e) {
                        return e.reduce((function(e, t) {
                            return isNaN(t) ? e : Math.min(e, t)
                        }), Number.POSITIVE_INFINITY)
                    }, B.sign = Math.sign ? function(e) {
                        return Math.sign(e)
                    } : function(e) {
                        return 0 == (e = +e) || isNaN(e) ? e : e > 0 ? 1 : -1
                    }, B.toRadians = function(e) {
                        return e * (Math.PI / 180)
                    }, B.toDegrees = function(e) {
                        return e * (180 / Math.PI)
                    }, B._decimalPlaces = function(e) {
                        if (B.isFinite(e)) {
                            for (var t = 1, n = 0; Math.round(e * t) / t !== e;) t *= 10, n++;
                            return n
                        }
                    }, B.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
                        }
                    }, B.distanceBetweenPoints = function(e, t) {
                        return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))
                    }, B.aliasPixel = function(e) {
                        return e % 2 == 0 ? 0 : .5
                    }, B._alignPixel = function(e, t, n) {
                        var i = e.currentDevicePixelRatio,
                            r = n / 2;
                        return Math.round((t - r) * i) / i + r
                    }, B.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)
                            }
                        }
                    }, B.EPSILON = Number.EPSILON || 1e-14, B.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 || (B.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))
                    }, B.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]
                    }, B.previousItem = function(e, t, n) {
                        return n ? t <= 0 ? e[e.length - 1] : e[t - 1] : t <= 0 ? e[0] : e[t - 1]
                    }, B.niceNum = function(e, t) {
                        var n = Math.floor(B.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)
                    }, B.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)
                    }, B.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(B.getStyle(o, "padding-left")),
                            c = parseFloat(B.getStyle(o, "padding-top")),
                            u = parseFloat(B.getStyle(o, "padding-right")),
                            d = parseFloat(B.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)
                        }
                    }, B.getConstraintWidth = function(e) {
                        return n(e, "max-width", "clientWidth")
                    }, B.getConstraintHeight = function(e) {
                        return n(e, "max-height", "clientHeight")
                    }, B._calculatePadding = function(e, t, n) {
                        return (t = B.getStyle(e, t)).indexOf("%") > -1 ? n * parseInt(t, 10) / 100 : parseInt(t, 10)
                    }, B._getParentNode = function(e) {
                        var t = e.parentNode;
                        return t && "[object ShadowRoot]" === t.toString() && (t = t.host), t
                    }, B.getMaximumWidth = function(e) {
                        var t = B._getParentNode(e);
                        if (!t) return e.clientWidth;
                        var n = t.clientWidth,
                            i = n - B._calculatePadding(t, "padding-left", n) - B._calculatePadding(t, "padding-right", n),
                            r = B.getConstraintWidth(e);
                        return isNaN(r) ? i : Math.min(i, r)
                    }, B.getMaximumHeight = function(e) {
                        var t = B._getParentNode(e);
                        if (!t) return e.clientHeight;
                        var n = t.clientHeight,
                            i = n - B._calculatePadding(t, "padding-top", n) - B._calculatePadding(t, "padding-bottom", n),
                            r = B.getConstraintHeight(e);
                        return isNaN(r) ? i : Math.min(i, r)
                    }, B.getStyle = function(e, t) {
                        return e.currentStyle ? e.currentStyle[t] : document.defaultView.getComputedStyle(e, null).getPropertyValue(t)
                    }, B.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")
                        }
                    }, B.fontString = function(e, t, n) {
                        return t + " " + e + "px " + n
                    }, B.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 !== B.isArray(c)) d = B.measureText(e, r, o, d, c);
                            else if (B.isArray(c))
                            for (s = 0, l = c.length; s < l; s++) null == (u = c[s]) || B.isArray(u) || (d = B.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
                    }, B.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
                    }, B.numberOfLabelLines = function(e) {
                        var t = 1;
                        return B.each(e, (function(e) {
                            B.isArray(e) && e.length > t && (t = e.length)
                        })), t
                    }, B.color = x ? function(e) {
                        return e instanceof CanvasGradient && (e = R.global.defaultColor), x(e)
                    } : function(e) {
                        return console.error("Color.js not found!"), e
                    }, B.getHoverColor = function(e) {
                        return e instanceof CanvasPattern || e instanceof CanvasGradient ? e : B.color(e).saturate(.5).darken(.1).rgbString()
                    }
                }(), Xt._adapters = Qt, Xt.Animation = K, Xt.animationService = Q, Xt.controllers = Xe, Xt.DatasetController = ne, Xt.defaults = R, Xt.Element = X, Xt.elements = be, Xt.Interaction = tt, Xt.layouts = dt, Xt.platform = Tt, Xt.plugins = At, Xt.Scale = hn, Xt.scaleService = Dt, Xt.Ticks = Zt, Xt.Tooltip = $t, Xt.helpers.each(ii, (function(e, t) {
                    Xt.scaleService.registerScaleType(t, e, e._defaults)
                })), Si) Si.hasOwnProperty(Di) && Xt.plugins.register(Si[Di]);
        Xt.platform.initialize();
        var Ei = Xt;
        return "undefined" != typeof window && (window.Chart = Xt), Xt.Chart = Xt, Xt.Legend = Si.legend._element, Xt.Title = Si.title._element, Xt.pluginService = Xt.plugins, Xt.PluginBase = Xt.Element.extend({}), Xt.canvasHelpers = Xt.helpers.canvas, Xt.layoutService = Xt.layouts, Xt.LinearScaleBase = vn, Xt.helpers.each(["Bar", "Bubble", "Doughnut", "Line", "PolarArea", "Radar", "Scatter"], (function(e) {
            Xt[e] = function(t, n) {
                return new Xt(t, Xt.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.7.0";

        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.7.0): 'range' contains invalid value.");
            if (!r(i = "min" === e ? 0 : "max" === e ? 100 : parseFloat(e)) || !r(t[0])) throw new Error("noUiSlider (14.7.0): '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.7.0): '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"
            },
            w = ".__tooltips",
            x = ".__aria";

        function _(e) {
            if ("object" == typeof(t = e) && "function" == typeof t.to && "function" == typeof t.from) return !0;
            var t;
            throw new Error("noUiSlider (14.7.0): 'format' requires 'to' and 'from' methods.")
        }

        function C(e, t) {
            if (!r(t)) throw new Error("noUiSlider (14.7.0): 'step' is not numeric.");
            e.singleStep = t
        }

        function S(e, t) {
            if (!r(t)) throw new Error("noUiSlider (14.7.0): 'keyboardPageMultiplier' is not numeric.");
            e.keyboardPageMultiplier = t
        }

        function k(e, t) {
            if (!r(t)) throw new Error("noUiSlider (14.7.0): 'keyboardDefaultStep' is not numeric.");
            e.keyboardDefaultStep = t
        }

        function T(e, t) {
            if ("object" != typeof t || Array.isArray(t)) throw new Error("noUiSlider (14.7.0): 'range' is not an object.");
            if (void 0 === t.min || void 0 === t.max) throw new Error("noUiSlider (14.7.0): Missing 'min' or 'max' in 'range'.");
            if (t.min === t.max) throw new Error("noUiSlider (14.7.0): 'range' 'min' and 'max' cannot be equal.");
            e.spectrum = new v(t, e.snap, e.singleStep)
        }

        function A(e, t) {
            if (t = s(t), !Array.isArray(t) || !t.length) throw new Error("noUiSlider (14.7.0): 'start' option is incorrect.");
            e.handles = t.length, e.start = t
        }

        function D(e, t) {
            if ("boolean" != typeof(e.snap = t)) throw new Error("noUiSlider (14.7.0): 'snap' option must be a boolean.")
        }

        function E(e, t) {
            if ("boolean" != typeof(e.animate = t)) throw new Error("noUiSlider (14.7.0): 'animate' option must be a boolean.")
        }

        function O(e, t) {
            if ("number" != typeof(e.animationDuration = t)) throw new Error("noUiSlider (14.7.0): 'animationDuration' option must be a number.")
        }

        function M(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.7.0): 'connect' option doesn't match handle count.");
                i = t
            }
            e.connect = i
        }

        function I(e, t) {
            switch (t) {
                case "horizontal":
                    e.ort = 0;
                    break;
                case "vertical":
                    e.ort = 1;
                    break;
                default:
                    throw new Error("noUiSlider (14.7.0): 'orientation' option is invalid.")
            }
        }

        function P(e, t) {
            if (!r(t)) throw new Error("noUiSlider (14.7.0): 'margin' option must be numeric.");
            0 !== t && (e.margin = e.spectrum.getDistance(t))
        }

        function L(e, t) {
            if (!r(t)) throw new Error("noUiSlider (14.7.0): 'limit' option must be numeric.");
            if (e.limit = e.spectrum.getDistance(t), !e.limit || e.handles < 2) throw new Error("noUiSlider (14.7.0): 'limit' option is only supported on linear sliders with 2 or more handles.")
        }

        function N(e, t) {
            var n;
            if (!r(t) && !Array.isArray(t)) throw new Error("noUiSlider (14.7.0): '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.7.0): '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.7.0): '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.7.0): 'padding' option must not exceed 100% of the range.")
            }
        }

        function F(e, t) {
            switch (t) {
                case "ltr":
                    e.dir = 0;
                    break;
                case "rtl":
                    e.dir = 1;
                    break;
                default:
                    throw new Error("noUiSlider (14.7.0): 'direction' option was not recognized.")
            }
        }

        function R(e, t) {
            if ("string" != typeof t) throw new Error("noUiSlider (14.7.0): '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.7.0): 'fixed' behaviour must be used with 2 handles");
                P(e, e.start[1] - e.start[0])
            }
            if (s && (e.margin || e.limit)) throw new Error("noUiSlider (14.7.0): '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 j(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.7.0): 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.7.0): 'tooltips' must be passed a formatter or 'false'.")
                    }))
                }
        }

        function $(e, t) {
            _(e.ariaFormat = t)
        }

        function z(e, t) {
            _(e.format = t)
        }

        function H(e, t) {
            if ("boolean" != typeof(e.keyboardSupport = t)) throw new Error("noUiSlider (14.7.0): 'keyboardSupport' option must be a boolean.")
        }

        function B(e, t) {
            e.documentElement = t
        }

        function q(e, t) {
            if ("string" != typeof t && !1 !== t) throw new Error("noUiSlider (14.7.0): 'cssPrefix' must be a string or `false`.");
            e.cssPrefix = t
        }

        function W(e, t) {
            if ("object" != typeof t) throw new Error("noUiSlider (14.7.0): '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 U(e) {
            var t = {
                    margin: 0,
                    limit: 0,
                    padding: 0,
                    animate: !0,
                    animationDuration: 300,
                    ariaFormat: y,
                    format: y
                },
                i = {
                    step: {
                        r: !1,
                        t: C
                    },
                    keyboardPageMultiplier: {
                        r: !1,
                        t: S
                    },
                    keyboardDefaultStep: {
                        r: !1,
                        t: k
                    },
                    start: {
                        r: !0,
                        t: A
                    },
                    connect: {
                        r: !0,
                        t: M
                    },
                    direction: {
                        r: !0,
                        t: F
                    },
                    snap: {
                        r: !1,
                        t: D
                    },
                    animate: {
                        r: !1,
                        t: E
                    },
                    animationDuration: {
                        r: !1,
                        t: O
                    },
                    range: {
                        r: !0,
                        t: T
                    },
                    orientation: {
                        r: !1,
                        t: I
                    },
                    margin: {
                        r: !1,
                        t: P
                    },
                    limit: {
                        r: !1,
                        t: L
                    },
                    padding: {
                        r: !1,
                        t: N
                    },
                    behaviour: {
                        r: !0,
                        t: R
                    },
                    ariaFormat: {
                        r: !1,
                        t: $
                    },
                    format: {
                        r: !1,
                        t: z
                    },
                    tooltips: {
                        r: !1,
                        t: j
                    },
                    keyboardSupport: {
                        r: !0,
                        t: H
                    },
                    documentElement: {
                        r: !1,
                        t: B
                    },
                    cssPrefix: {
                        r: !0,
                        t: q
                    },
                    cssClasses: {
                        r: !0,
                        t: W
                    }
                },
                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.7.0): '" + 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, r) {
                if (!e || !e.nodeName) throw new Error("noUiSlider (14.7.0): create requires a single element, got: " + e);
                if (e.noUiSlider) throw new Error("noUiSlider (14.7.0): Slider was already initialized.");
                var l = function(e, r, l) {
                    var 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"
                        },
                        C = 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
                        }(),
                        S = e,
                        k = r.spectrum,
                        T = [],
                        A = [],
                        D = [],
                        E = 0,
                        O = {},
                        M = e.ownerDocument,
                        I = r.documentElement || M.documentElement,
                        P = M.body,
                        L = "rtl" === M.dir || 1 === r.ort ? 0 : 100;

                    function N(e, t) {
                        var n = M.createElement("div");
                        return t && c(n, t), e.appendChild(n), n
                    }

                    function F(e, t) {
                        var n = N(e, r.cssClasses.origin),
                            i = N(n, r.cssClasses.handle);
                        return N(i, r.cssClasses.touchArea), i.setAttribute("data-handle", t), r.keyboardSupport && (i.setAttribute("tabindex", "0"), i.addEventListener("keydown", (function(e) {
                            return function(e, t) {
                                if ($() || z(t)) return !1;
                                var n = ["Left", "Right"],
                                    i = ["Down", "Up"],
                                    o = ["PageDown", "PageUp"],
                                    a = ["Home", "End"];
                                r.dir && !r.ort ? n.reverse() : r.ort && !r.dir && (i.reverse(), o.reverse());
                                var s, l = e.key.replace("Arrow", ""),
                                    c = l === o[0],
                                    u = l === o[1],
                                    d = l === i[0] || l === n[0] || c,
                                    h = l === i[1] || l === n[1] || u,
                                    f = l === a[1];
                                if (!(d || h || l === a[0] || f)) return !0;
                                if (e.preventDefault(), h || d) {
                                    var p = r.keyboardPageMultiplier,
                                        g = d ? 0 : 1,
                                        m = fe(t)[g];
                                    if (null === m) return !1;
                                    !1 === m && (m = k.getDefaultStep(A[t], d, r.keyboardDefaultStep)), (u || c) && (m *= p), m = Math.max(m, 1e-7), m *= d ? -1 : 1, s = T[t] + m
                                } else s = f ? r.spectrum.xVal[r.spectrum.xVal.length - 1] : r.spectrum.xVal[0];
                                return le(t, k.toStepping(s), !0, !0), ne("slide", t), ne("update", t), ne("change", t), ne("set", t), !1
                            }(e, t)
                        }))), i.setAttribute("role", "slider"), i.setAttribute("aria-orientation", r.ort ? "vertical" : "horizontal"), 0 === t ? c(i, r.cssClasses.handleLower) : t === r.handles - 1 && c(i, r.cssClasses.handleUpper), n
                    }

                    function R(e, t) {
                        return !!t && N(e, r.cssClasses.connect)
                    }

                    function j(e, t) {
                        return !!r.tooltips[t] && N(e.firstChild, r.cssClasses.tooltip)
                    }

                    function $() {
                        return S.hasAttribute("disabled")
                    }

                    function z(e) {
                        return f[e].hasAttribute("disabled")
                    }

                    function H() {
                        m && (te("update" + w), m.forEach((function(e) {
                            e && t(e)
                        })), m = null)
                    }

                    function B() {
                        H(), m = f.map(j), ee("update" + w, (function(e, t, n) {
                            if (m[t]) {
                                var i = e[t];
                                !0 !== r.tooltips[t] && (i = r.tooltips[t].to(n[t])), m[t].innerHTML = i
                            }
                        }))
                    }

                    function q(e, t, n) {
                        var i = M.createElement("div"),
                            o = [];
                        o[0] = r.cssClasses.valueNormal, o[1] = r.cssClasses.valueLarge, o[2] = r.cssClasses.valueSub;
                        var a = [];
                        a[0] = r.cssClasses.markerNormal, a[1] = r.cssClasses.markerLarge, a[2] = r.cssClasses.markerSub;
                        var s = [r.cssClasses.valueHorizontal, r.cssClasses.valueVertical],
                            l = [r.cssClasses.markerHorizontal, r.cssClasses.markerVertical];

                        function u(e, t) {
                            var n = t === r.cssClasses.value,
                                i = n ? o : a;
                            return t + " " + (n ? s : l)[r.ort] + " " + i[e]
                        }
                        return c(i, r.cssClasses.pips), c(i, 0 === r.ort ? r.cssClasses.pipsHorizontal : r.cssClasses.pipsVertical), Object.keys(e).forEach((function(o) {
                            ! function(e, o, a) {
                                if (-1 !== (a = t ? t(o, a) : a)) {
                                    var s = N(i, !1);
                                    s.className = u(a, r.cssClasses.marker), s.style[r.style] = e + "%", 0 < a && ((s = N(i, !1)).className = u(a, r.cssClasses.value), s.setAttribute("data-value", o), s.style[r.style] = e + "%", s.innerHTML = n.to(o))
                                }
                            }(o, e[o][0], e[o][1])
                        })), i
                    }

                    function W() {
                        g && (t(g), g = null)
                    }

                    function V(e) {
                        W();
                        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 k.xVal;
                                if ("count" === e) {
                                    if (t < 2) throw new Error("noUiSlider (14.7.0): '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 k.fromStepping(n ? k.getStep(e) : e)
                                })) : "values" === e ? n ? t.map((function(e) {
                                    return k.fromStepping(k.getStep(k.toStepping(e)))
                                })) : t : void 0
                            }(u, e.values || !1, e.stepped || !1),
                            p = (t = d, n = u, i = f, r = {}, o = k.xVal[0], a = k.xVal[k.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 = k.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 = k.toStepping(u)) - c) / t, y = f / (v = Math.round(m)), d = 1; d <= v; d += 1) r[(p = c + d * y).toFixed(5)] = [k.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 g = S.appendChild(q(p, h, m))
                    }

                    function Y() {
                        var e = h.getBoundingClientRect(),
                            t = "offset" + ["Width", "Height"][r.ort];
                        return 0 === r.ort ? e.width || h[t] : e.height || h[t]
                    }

                    function X(e, t, n, i) {
                        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(M), (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, i.pageOffset, i.target || t)) && !($() && !i.doNotReject) && (a = S, s = r.cssClasses.tap, !((a.classList ? a.classList.contains(s) : new RegExp("\\b" + s + "\\b").test(a.className)) && !i.doNotReject) && !(e === _.start && void 0 !== o.buttons && 1 < o.buttons) && (!i.hover || !o.buttons) && (C || o.preventDefault(), o.calcPoint = o.points[r.ort], void n(o, i)));
                                var a, s
                            },
                            a = [];
                        return e.split(" ").forEach((function(e) {
                            t.addEventListener(e, o, !!C && {
                                passive: !0
                            }), a.push([e, o])
                        })), a
                    }

                    function G(e) {
                        var t, n, i, o, s, l, c = 100 * (e - (t = h, n = r.ort, i = t.getBoundingClientRect(), s = (o = t.ownerDocument).documentElement, l = d(o), /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (l.x = 0), n ? i.top + l.y - s.clientTop : i.left + l.x - s.clientLeft)) / Y();
                        return c = a(c), r.dir ? 100 - c : c
                    }

                    function K(e, t) {
                        "mouseout" === e.type && "HTML" === e.target.nodeName && null === e.relatedTarget && Z(e, t)
                    }

                    function Q(e, t) {
                        if (-1 === navigator.appVersion.indexOf("MSIE 9") && 0 === e.buttons && 0 !== t.buttonsProperty) return Z(e, t);
                        var n = (r.dir ? -1 : 1) * (e.calcPoint - t.startCalcPoint);
                        oe(0 < n, 100 * n / t.baseSize, t.locations, t.handleNumbers)
                    }

                    function Z(e, t) {
                        t.handle && (u(t.handle, r.cssClasses.active), E -= 1), t.listeners.forEach((function(e) {
                            I.removeEventListener(e[0], e[1])
                        })), 0 === E && (u(S, r.cssClasses.drag), se(), e.cursor && (P.style.cursor = "", P.removeEventListener("selectstart", i))), t.handleNumbers.forEach((function(e) {
                            ne("change", e), ne("set", e), ne("end", e)
                        }))
                    }

                    function J(e, t) {
                        if (t.handleNumbers.some(z)) return !1;
                        var n;
                        1 === t.handleNumbers.length && (n = f[t.handleNumbers[0]].children[0], E += 1, c(n, r.cssClasses.active)), e.stopPropagation();
                        var o = [],
                            a = X(_.move, I, Q, {
                                target: e.target,
                                handle: n,
                                listeners: o,
                                startCalcPoint: e.calcPoint,
                                baseSize: Y(),
                                pageOffset: e.pageOffset,
                                handleNumbers: t.handleNumbers,
                                buttonsProperty: e.buttons,
                                locations: A.slice()
                            }),
                            s = X(_.end, I, Z, {
                                target: e.target,
                                handle: n,
                                listeners: o,
                                doNotReject: !0,
                                handleNumbers: t.handleNumbers
                            }),
                            l = X("mouseout", I, K, {
                                target: e.target,
                                handle: n,
                                listeners: o,
                                doNotReject: !0,
                                handleNumbers: t.handleNumbers
                            });
                        o.push.apply(o, a.concat(s, l)), e.cursor && (P.style.cursor = getComputedStyle(e.target).cursor, 1 < f.length && c(S, r.cssClasses.drag), P.addEventListener("selectstart", i, !1)), t.handleNumbers.forEach((function(e) {
                            ne("start", e)
                        }))
                    }

                    function ee(e, t) {
                        O[e] = O[e] || [], O[e].push(t), "update" === e.split(".")[0] && f.forEach((function(e, t) {
                            ne("update", t)
                        }))
                    }

                    function te(e) {
                        var t = e && e.split(".")[0],
                            n = t ? e.substring(t.length) : e;
                        Object.keys(O).forEach((function(e) {
                            var i, r = e.split(".")[0],
                                o = e.substring(r.length);
                            t && t !== r || n && n !== o || ((i = o) !== x && i !== w || n === o) && delete O[e]
                        }))
                    }

                    function ne(e, t, n) {
                        Object.keys(O).forEach((function(i) {
                            var o = i.split(".")[0];
                            e === o && O[i].forEach((function(e) {
                                e.call(v, T.map(r.format.to), t, T.slice(), n || !1, A.slice(), v)
                            }))
                        }))
                    }

                    function ie(e, t, n, i, o, s) {
                        var l;
                        return 1 < f.length && !r.events.unconstrained && (i && 0 < t && (l = k.getAbsoluteDistance(e[t - 1], r.margin, 0), n = Math.max(n, l)), o && t < f.length - 1 && (l = k.getAbsoluteDistance(e[t + 1], r.margin, 1), n = Math.min(n, l))), 1 < f.length && r.limit && (i && 0 < t && (l = k.getAbsoluteDistance(e[t - 1], r.limit, 0), n = Math.min(n, l)), o && t < f.length - 1 && (l = k.getAbsoluteDistance(e[t + 1], r.limit, 1), n = Math.max(n, l))), r.padding && (0 === t && (l = k.getAbsoluteDistance(0, r.padding[0], 0), n = Math.max(n, l)), t === f.length - 1 && (l = k.getAbsoluteDistance(100, r.padding[1], 1), n = Math.min(n, l))), !((n = a(n = k.getStep(n))) === e[t] && !s) && n
                    }

                    function re(e, t) {
                        var n = r.ort;
                        return (n ? t : e) + ", " + (n ? e : t)
                    }

                    function oe(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 = ie(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 = le(e, n[e] + t, o[i], a[i]) || s
                        })), s && i.forEach((function(e) {
                            ne("update", e), ne("slide", e)
                        }))
                    }

                    function ae(e, t) {
                        return r.dir ? 100 - e - t : e
                    }

                    function se() {
                        D.forEach((function(e) {
                            var t = 50 < A[e] ? -1 : 1,
                                n = 3 + (f.length + t * e);
                            f[e].style.zIndex = n
                        }))
                    }

                    function le(e, t, n, i, o) {
                        return o || (t = ie(A, e, t, n, i, !1)), !1 !== t && (function(e, t) {
                            A[e] = t, T[e] = k.fromStepping(t);
                            var n = "translate(" + re(10 * (ae(t, 0) - L) + "%", "0") + ")";
                            f[e].style[r.transformRule] = n, ce(e), ce(e + 1)
                        }(e, t), !0)
                    }

                    function ce(e) {
                        if (p[e]) {
                            var t = 0,
                                n = 100;
                            0 !== e && (t = A[e - 1]), e !== p.length - 1 && (n = A[e]);
                            var i = n - t,
                                o = "translate(" + re(ae(t, i) + "%", "0") + ")",
                                a = "scale(" + re(i / 100, "1") + ")";
                            p[e].style[r.transformRule] = o + " " + a
                        }
                    }

                    function ue(e, t) {
                        return null === e || !1 === e || void 0 === e ? A[t] : ("number" == typeof e && (e = String(e)), e = r.format.from(e), !1 === (e = k.toStepping(e)) || isNaN(e) ? A[t] : e)
                    }

                    function de(e, t, n) {
                        var i = s(e),
                            a = void 0 === A[0];
                        t = void 0 === t || !!t, r.animate && !a && o(S, r.cssClasses.tap, r.animationDuration), D.forEach((function(e) {
                            le(e, ue(i[e], e), !0, !1, n)
                        }));
                        for (var l = 1 === D.length ? 0 : 1; l < D.length; ++l) D.forEach((function(e) {
                            le(e, A[e], !0, !0, n)
                        }));
                        se(), D.forEach((function(e) {
                            ne("update", e), null !== i[e] && t && ne("set", e)
                        }))
                    }

                    function he() {
                        var e = T.map(r.format.to);
                        return 1 === e.length ? e[0] : e
                    }

                    function fe(e) {
                        var t = A[e],
                            n = k.getNearbySteps(t),
                            i = T[e],
                            o = n.thisStep.step,
                            a = null;
                        if (r.snap) return [i - n.stepBefore.startValue || null, n.stepAfter.startValue - i || null];
                        !1 !== o && i + o > n.stepAfter.startValue && (o = n.stepAfter.startValue - i), a = i > n.thisStep.startValue ? n.thisStep.step : !1 !== n.stepBefore.step && i - n.stepBefore.highestStep, 100 === t ? o = null : 0 === t && (a = null);
                        var s = k.countStepDecimals();
                        return null !== o && !1 !== o && (o = Number(o.toFixed(s))), null !== a && !1 !== a && (a = Number(a.toFixed(s))), [a, o]
                    }
                    return c(y = S, r.cssClasses.target), 0 === r.dir ? c(y, r.cssClasses.ltr) : c(y, r.cssClasses.rtl), 0 === r.ort ? c(y, r.cssClasses.horizontal) : c(y, r.cssClasses.vertical), c(y, "rtl" === getComputedStyle(y).direction ? r.cssClasses.textDirectionRtl : r.cssClasses.textDirectionLtr), h = N(y, r.cssClasses.base),
                        function(e, t) {
                            var n = N(t, r.cssClasses.connects);
                            f = [], (p = []).push(R(n, e[0]));
                            for (var i = 0; i < r.handles; i++) f.push(F(t, i)), D[i] = i, p.push(R(n, e[i + 1]))
                        }(r.connect, h), (b = r.events).fixed || f.forEach((function(e, t) {
                            X(_.start, e.children[0], J, {
                                handleNumbers: [t]
                            })
                        })), b.tap && X(_.start, h, (function(e) {
                            e.stopPropagation();
                            var t, n, i, a = G(e.calcPoint),
                                s = (t = a, i = !(n = 100), f.forEach((function(e, r) {
                                    if (!z(r)) {
                                        var o = A[r],
                                            a = Math.abs(o - t);
                                        (a < n || a <= n && o < t || 100 === a && 100 === n) && (i = r, n = a)
                                    }
                                })), i);
                            if (!1 === s) return !1;
                            r.events.snap || o(S, r.cssClasses.tap, r.animationDuration), le(s, a, !0, !0), se(), ne("slide", s, !0), ne("update", s, !0), ne("change", s, !0), ne("set", s, !0), r.events.snap && J(e, {
                                handleNumbers: [s]
                            })
                        }), {}), b.hover && X(_.move, h, (function(e) {
                            var t = G(e.calcPoint),
                                n = k.getStep(t),
                                i = k.fromStepping(n);
                            Object.keys(O).forEach((function(e) {
                                "hover" === e.split(".")[0] && O[e].forEach((function(e) {
                                    e.call(v, i)
                                }))
                            }))
                        }), {
                            hover: !0
                        }), b.drag && p.forEach((function(e, t) {
                            if (!1 !== e && 0 !== t && t !== p.length - 1) {
                                var n = f[t - 1],
                                    i = f[t],
                                    o = [e];
                                c(e, r.cssClasses.draggable), b.fixed && (o.push(n.children[0]), o.push(i.children[0])), o.forEach((function(e) {
                                    X(_.start, e, J, {
                                        handles: [n, i],
                                        handleNumbers: [t - 1, t]
                                    })
                                }))
                            }
                        })), de(r.start), r.pips && V(r.pips), r.tooltips && B(), te("update" + x), ee("update" + x, (function(e, t, n, i, o) {
                            D.forEach((function(e) {
                                var t = f[e],
                                    i = ie(A, e, 0, !0, !0, !0),
                                    a = ie(A, e, 100, !0, !0, !0),
                                    s = o[e],
                                    l = r.ariaFormat.to(n[e]);
                                i = k.fromStepping(i).toFixed(1), a = k.fromStepping(a).toFixed(1), s = k.fromStepping(s).toFixed(1), t.children[0].setAttribute("aria-valuemin", i), t.children[0].setAttribute("aria-valuemax", a), t.children[0].setAttribute("aria-valuenow", s), t.children[0].setAttribute("aria-valuetext", l)
                            }))
                        })), v = {
                            destroy: function() {
                                for (var e in te(x), te(w), r.cssClasses) r.cssClasses.hasOwnProperty(e) && u(S, r.cssClasses[e]);
                                for (; S.firstChild;) S.removeChild(S.firstChild);
                                delete S.noUiSlider
                            },
                            steps: function() {
                                return D.map(fe)
                            },
                            on: ee,
                            off: te,
                            get: he,
                            set: de,
                            setHandle: function(e, t, n, i) {
                                if (!(0 <= (e = Number(e)) && e < D.length)) throw new Error("noUiSlider (14.7.0): invalid handle number, got: " + e);
                                le(e, ue(t, e), !0, !0, i), ne("update", e), n && ne("set", e)
                            },
                            reset: function(e) {
                                de(r.start, e)
                            },
                            __moveHandles: function(e, t, n) {
                                oe(e, t, A, n)
                            },
                            options: l,
                            updateOptions: function(e, t) {
                                var i = he(),
                                    o = ["margin", "limit", "padding", "range", "animate", "snap", "step", "format", "pips", "tooltips"];
                                o.forEach((function(t) {
                                    void 0 !== e[t] && (l[t] = e[t])
                                }));
                                var a = U(l);
                                o.forEach((function(t) {
                                    void 0 !== e[t] && (r[t] = a[t])
                                })), k = a.spectrum, r.margin = a.margin, r.limit = a.limit, r.padding = a.padding, r.pips ? V(r.pips) : W(), r.tooltips ? B() : H(), A = [], de(n(e.start) ? e.start : i, t)
                            },
                            target: S,
                            removePips: W,
                            removeTooltips: H,
                            getTooltips: function() {
                                return m
                            },
                            getOrigins: function() {
                                return f
                            },
                            pips: V
                        }
                }(e, U(r), r);
                return e.noUiSlider = l
            }
        }
    })),
    function(e) {
        "use strict";
        var t;
        "function" == typeof define && define.amd ? define(["jquery"], (function(t) {
            return e(t, window, document)
        })) : "object" == typeof exports ? (t = require("jquery"), "undefined" != typeof window ? module.exports = function(n, i) {
            return n = n || window, i = i || t(n), e(i, n, n.document)
        } : e(t, window, window.document)) : window.DataTable = e(jQuery, window, document)
    }((function(e, t, n, i) {
        "use strict";

        function r(e) {
            var t = parseInt(e, 10);
            return !isNaN(t) && isFinite(e) ? t : null
        }

        function o(e, t, n) {
            var i = typeof e,
                r = "string" == i;
            return "number" == i || "bigint" == i || !!x(e) || (t && r && (e = _(e, t)), n && r && (e = e.replace(w, "")), !isNaN(parseFloat(e)) && isFinite(e))
        }

        function a(e, t, n) {
            var i;
            return !!x(e) || (x(i = e) || "string" == typeof i) && !!o(e.replace(v, ""), t, n) || null
        }

        function s(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
        }

        function l(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
        }

        function c(e) {
            for (var t = [], n = 0, i = e.length; n < i; n++) e[n] && t.push(e[n]);
            return t
        }

        function u(e, t) {
            return -1 !== this.indexOf(e, t = t === i ? 0 : t)
        }
        var d, h, f, p = function(t, n) {
                if (p.factory(t, n)) return p;
                if (this instanceof p) return e(t).DataTable(n);
                n = 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 St(e ? at(this[d.iApiIndex]) : this)
                }, this.fnAddData = function(t, n) {
                    var r = this.api(!0);
                    t = (Array.isArray(t) && (Array.isArray(t[0]) || e.isPlainObject(t[0])) ? r.rows : r.row).add(t);
                    return n !== i && !n || r.draw(), t.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 || He(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) {
                    var s = this.api(!0);
                    (null === t || t === i ? s : s.column(t)).search(e, n, r, a), s.draw()
                }, this.fnGetData = function(e, t) {
                    var n, r = this.api(!0);
                    return e !== i ? (n = e.nodeName ? e.nodeName.toLowerCase() : "", t !== i || "td" == n || "th" == n ? r.cell(e, t).data() : r.row(e).data() || null) : r.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 ? [(n = t.cell(e).index()).row, n.columnVisible, n.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) {
                    e = this.api(!0).page(e), t !== i && !t || e.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 at(this[d.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) : a.cell(t, n)).data(e), o !== i && !o || a.columns.adjust(), r !== i && !r || a.draw(), 0
                }, this.fnVersionCheck = d.fnVersionCheck;
                var r, o = this,
                    a = n === i,
                    s = this.length;
                for (r in a && (n = {}), this.oApi = this.internal = d.internal, p.ext.internal) r && (this[r] = Wt(r));
                return this.each((function() {
                    var t = 1 < s ? ct({}, n, !0) : n,
                        r = 0,
                        l = this.getAttribute("id"),
                        c = !1,
                        u = p.defaults,
                        d = e(this);
                    if ("table" != this.nodeName.toLowerCase()) st(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2);
                    else {
                        O(u), M(u.column), A(u, u, !0), A(u.column, u.column, !0), A(u, e.extend(t, d.data()), !0);
                        for (var h = p.settings, f = (r = 0, h.length); r < f; r++) {
                            var g = h[r];
                            if (g.nTable == this || g.nTHead && g.nTHead.parentNode == this || g.nTFoot && g.nTFoot.parentNode == this) {
                                var m = (t.bRetrieve !== i ? t : u).bRetrieve,
                                    v = (t.bDestroy !== i ? t : u).bDestroy;
                                if (a || m) return g.oInstance;
                                if (v) {
                                    g.oInstance.fnDestroy();
                                    break
                                }
                                return void st(g, 0, "Cannot reinitialise DataTable", 3)
                            }
                            if (g.sTableId == this.id) {
                                h.splice(r, 1);
                                break
                            }
                        }
                        null !== l && "" !== l || (l = "DataTables_Table_" + p.ext._unique++, this.id = l);
                        var y, b, w = e.extend(!0, {}, p.models.oSettings, {
                                sDestroyWidth: d[0].style.width,
                                sInstance: l,
                                sTableId: l
                            }),
                            x = (w.nTable = this, w.oApi = o.internal, w.oInit = t, h.push(w), w.oInstance = 1 === o.length ? o : d.dataTable(), O(t), D(t.oLanguage), t.aLengthMenu && !t.iDisplayLength && (t.iDisplayLength = (Array.isArray(t.aLengthMenu[0]) ? t.aLengthMenu[0] : t.aLengthMenu)[0]), t = ct(e.extend(!0, {}, u), t), lt(w.oFeatures, t, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), lt(w, t, ["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"]
                            ]), lt(w.oScroll, t, [
                                ["sScrollX", "sX"],
                                ["sScrollXInner", "sXInner"],
                                ["sScrollY", "sY"],
                                ["bScrollCollapse", "bCollapse"]
                            ]), lt(w.oLanguage, t, "fnInfoCallback"), dt(w, "aoDrawCallback", t.fnDrawCallback, "user"), dt(w, "aoServerParams", t.fnServerParams, "user"), dt(w, "aoStateSaveParams", t.fnStateSaveParams, "user"), dt(w, "aoStateLoadParams", t.fnStateLoadParams, "user"), dt(w, "aoStateLoaded", t.fnStateLoaded, "user"), dt(w, "aoRowCallback", t.fnRowCallback, "user"), dt(w, "aoRowCreatedCallback", t.fnCreatedRow, "user"), dt(w, "aoHeaderCallback", t.fnHeaderCallback, "user"), dt(w, "aoFooterCallback", t.fnFooterCallback, "user"), dt(w, "aoInitComplete", t.fnInitComplete, "user"), dt(w, "aoPreDrawCallback", t.fnPreDrawCallback, "user"), w.rowIdFn = K(t.rowId), I(w), w.oClasses),
                            _ = (e.extend(x, p.ext.classes, t.oClasses), d.addClass(x.sTable), w.iInitDisplayStart === i && (w.iInitDisplayStart = t.iDisplayStart, w._iDisplayStart = t.iDisplayStart), null !== t.iDeferLoading && (w.bDeferLoading = !0, l = Array.isArray(t.iDeferLoading), w._iRecordsDisplay = l ? t.iDeferLoading[0] : t.iDeferLoading, w._iRecordsTotal = l ? t.iDeferLoading[1] : t.iDeferLoading), w.oLanguage),
                            C = (l = (e.extend(!0, _, t.oLanguage), _.sUrl ? (e.ajax({
                                dataType: "json",
                                url: _.sUrl,
                                success: function(t) {
                                    A(u.oLanguage, t), D(t), e.extend(!0, _, t, w.oInit.oLanguage), ht(w, null, "i18n", [w]), Ie(w)
                                },
                                error: function() {
                                    Ie(w)
                                }
                            }), c = !0) : ht(w, null, "i18n", [w]), null === t.asStripeClasses && (w.asStripeClasses = [x.sStripeOdd, x.sStripeEven]), w.asStripeClasses), d.children("tbody").find("tr").eq(0)),
                            S = (-1 !== e.inArray(!0, e.map(l, (function(e, t) {
                                return C.hasClass(e)
                            }))) && (e("tbody tr", this).removeClass(l.join(" ")), w.asDestroyStripes = l.slice()), []);
                        if (0 !== (l = this.getElementsByTagName("thead")).length && (ue(w.aoHeader, l[0]), S = de(w)), null === t.aoColumns)
                            for (y = [], r = 0, f = S.length; r < f; r++) y.push(null);
                        else y = t.aoColumns;
                        for (r = 0, f = y.length; r < f; r++) L(w, S ? S[r] : null);
                        B(w, t.aoColumnDefs, y, (function(e, t) {
                            N(w, e, t)
                        })), C.length && (b = function(e, t) {
                            return null !== e.getAttribute("data-" + t) ? t : null
                        }, e(C[0]).children("th, td").each((function(e, t) {
                            var n, r = w.aoColumns[e];
                            r || st(w, 0, "Incorrect column count", 18), r.mData === e && (n = b(t, "sort") || b(t, "order"), t = b(t, "filter") || b(t, "search"), null === n && null === t || (r.mData = {
                                _: e + ".display",
                                sort: null !== n ? e + ".@data-" + n : i,
                                type: null !== n ? e + ".@data-" + n : i,
                                filter: null !== t ? e + ".@data-" + t : i
                            }, r._isArrayHost = !0, N(w, e)))
                        })));
                        var k = w.oFeatures;
                        l = function() {
                            if (t.aaSorting === i) {
                                var n = w.aaSorting;
                                for (r = 0, f = n.length; r < f; r++) n[r][1] = w.aoColumns[r].asSorting[0]
                            }
                            tt(w), k.bSort && dt(w, "aoDrawCallback", (function() {
                                var t, n;
                                w.bSorted && (t = Ke(w), n = {}, e.each(t, (function(e, t) {
                                    n[t.src] = t.dir
                                })), ht(w, null, "order", [w, t, n]), Ze(w))
                            })), dt(w, "aoDrawCallback", (function() {
                                (w.bSorted || "ssp" === gt(w) || k.bDeferRender) && tt(w)
                            }), "sc");
                            var o, a = d.children("caption").each((function() {
                                    this._captionSide = e(this).css("caption-side")
                                })),
                                s = (0 === (o = d.children("thead")).length && (o = e("<thead/>").appendTo(d)), w.nTHead = o[0], d.children("tbody"));
                            if (0 === (o = 0 === (o = (0 === s.length && (s = e("<tbody/>").insertAfter(o)), w.nTBody = s[0], d.children("tfoot"))).length && 0 < a.length && ("" !== w.oScroll.sX || "" !== w.oScroll.sY) ? e("<tfoot/>").appendTo(d) : o).length || 0 === o.children().length ? d.addClass(x.sNoFooter) : 0 < o.length && (w.nTFoot = o[0], ue(w.aoFooter, w.nTFoot)), t.aaData)
                                for (r = 0; r < t.aaData.length; r++) q(w, t.aaData[r]);
                            else !w.bDeferLoading && "dom" != gt(w) || W(w, e(w.nTBody).children("tr"));
                            w.aiDisplay = w.aiDisplayMaster.slice(), !(w.bInitialised = !0) === c && Ie(w)
                        };
                        dt(w, "aoDrawCallback", it, "state_save"), t.bStateSave ? (k.bStateSave = !0, rt(w, 0, l)) : l()
                    }
                })), o = null, this
            },
            g = {},
            m = /[\r\n\u2028]/g,
            v = /<.*?>/g,
            y = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,
            b = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"),
            w = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,
            x = function(e) {
                return !e || !0 === e || "-" === e
            },
            _ = function(e, t) {
                return g[t] || (g[t] = new RegExp(Ce(t), "g")), "string" == typeof e && "." !== t ? e.replace(/\./g, "").replace(g[t], ".") : e
            },
            C = 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
            },
            S = function(e) {
                if (function(e) {
                        if (!(e.length < 2))
                            for (var t = e.slice().sort(), n = t[0], i = 1, r = t.length; i < r; i++) {
                                if (t[i] === n) return !1;
                                n = t[i]
                            }
                        return !0
                    }(e)) return e.slice();
                var t, n, i, r = [],
                    o = e.length,
                    a = 0;
                e: for (n = 0; n < o; n++) {
                    for (t = e[n], i = 0; i < a; i++)
                        if (r[i] === t) continue e;
                    r.push(t), a++
                }
                return r
            },
            k = function(e, t) {
                if (Array.isArray(t))
                    for (var n = 0; n < t.length; n++) k(e, t[n]);
                else e.push(t);
                return e
            };

        function T(t) {
            var n, i, r = {};
            e.each(t, (function(e, o) {
                (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()), r[i] = e, "o" === n[1] && T(t[e]))
            })), t._hungarianMap = r
        }

        function A(t, n, r) {
            var o;
            t._hungarianMap || T(t), e.each(n, (function(a, s) {
                (o = t._hungarianMap[a]) === i || !r && n[o] !== i || ("o" === o.charAt(0) ? (n[o] || (n[o] = {}), e.extend(!0, n[o], n[a]), A(t[o], n[o], r)) : n[o] = n[a])
            }))
        }

        function D(e) {
            var t, n = p.defaults.oLanguage,
                i = n.sDecimal;
            i && Lt(i), e && (t = e.sZeroRecords, !e.sEmptyTable && t && "No data available in table" === n.sEmptyTable && lt(e, e, "sZeroRecords", "sEmptyTable"), !e.sLoadingRecords && t && "Loading..." === n.sLoadingRecords && lt(e, e, "sZeroRecords", "sLoadingRecords"), e.sInfoThousands && (e.sThousands = e.sInfoThousands), (t = e.sDecimal) && i !== t && Lt(t))
        }
        Array.isArray || (Array.isArray = function(e) {
            return "[object Array]" === Object.prototype.toString.call(e)
        }), Array.prototype.includes || (Array.prototype.includes = u), String.prototype.trim || (String.prototype.trim = function() {
            return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
        }), String.prototype.includes || (String.prototype.includes = u), p.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(b, "\\$1")
            },
            set: function(t) {
                var n;
                return e.isPlainObject(t) ? p.util.set(t._) : null === t ? function() {} : "function" == typeof t ? function(e, n, i) {
                    t(e, "set", n, i)
                } : "string" != typeof t || -1 === t.indexOf(".") && -1 === t.indexOf("[") && -1 === t.indexOf("(") ? function(e, n) {
                    e[t] = n
                } : (n = function(e, t, r) {
                    for (var o, a, s, l, c = G(r), u = (r = c[c.length - 1], 0), d = c.length - 1; u < d; u++) {
                        if ("__proto__" === c[u] || "constructor" === c[u]) throw new Error("Cannot set prototype values");
                        if (o = c[u].match(Y), a = c[u].match(X), o) {
                            if (c[u] = c[u].replace(Y, ""), e[c[u]] = [], (o = c.slice()).splice(0, u + 1), l = o.join("."), Array.isArray(t))
                                for (var h = 0, f = t.length; h < f; h++) n(s = {}, t[h], l), e[c[u]].push(s);
                            else e[c[u]] = t;
                            return
                        }
                        a && (c[u] = c[u].replace(X, ""), e = e[c[u]](t)), null !== e[c[u]] && e[c[u]] !== i || (e[c[u]] = {}), e = e[c[u]]
                    }
                    r.match(X) ? e[r.replace(X, "")](t) : e[r.replace(Y, "")] = t
                }, function(e, i) {
                    return n(e, i, t)
                })
            },
            get: function(t) {
                var n, r;
                return e.isPlainObject(t) ? (n = {}, e.each(t, (function(e, t) {
                    t && (n[e] = p.util.get(t))
                })), function(e, t, r, o) {
                    var a = n[t] || n._;
                    return a !== i ? a(e, t, r, o) : e
                }) : null === t ? function(e) {
                    return e
                } : "function" == typeof t ? function(e, n, i, r) {
                    return t(e, n, i, r)
                } : "string" != typeof t || -1 === t.indexOf(".") && -1 === t.indexOf("[") && -1 === t.indexOf("(") ? function(e, n) {
                    return e[t]
                } : (r = function(e, t, n) {
                    var o, a, s;
                    if ("" !== n)
                        for (var l = G(n), c = 0, u = l.length; c < u; c++) {
                            if (f = l[c].match(Y), o = l[c].match(X), f) {
                                if (l[c] = l[c].replace(Y, ""), "" !== l[c] && (e = e[l[c]]), a = [], l.splice(0, c + 1), s = l.join("."), Array.isArray(e))
                                    for (var d = 0, h = e.length; d < h; d++) a.push(r(e[d], t, s));
                                var f = f[0].substring(1, f[0].length - 1);
                                e = "" === f ? a : a.join(f);
                                break
                            }
                            if (o) l[c] = l[c].replace(X, ""), e = e[l[c]]();
                            else {
                                if (null === e || e[l[c]] === i) return i;
                                e = e[l[c]]
                            }
                        }
                    return e
                }, function(e, n) {
                    return r(e, n, t)
                })
            }
        };
        var E = function(e, t, n) {
            e[t] !== i && (e[n] = e[t])
        };

        function O(e) {
            E(e, "ordering", "bSort"), E(e, "orderMulti", "bSortMulti"), E(e, "orderClasses", "bSortClasses"), E(e, "orderCellsTop", "bSortCellsTop"), E(e, "order", "aaSorting"), E(e, "orderFixed", "aaSortingFixed"), E(e, "paging", "bPaginate"), E(e, "pagingType", "sPaginationType"), E(e, "pageLength", "iDisplayLength"), E(e, "searching", "bFilter"), "boolean" == typeof e.sScrollX && (e.sScrollX = e.sScrollX ? "100%" : ""), "boolean" == typeof e.scrollX && (e.scrollX = e.scrollX ? "100%" : "");
            var t = e.aoSearchCols;
            if (t)
                for (var n = 0, i = t.length; n < i; n++) t[n] && A(p.models.oSearch, t[n])
        }

        function M(e) {
            E(e, "orderable", "bSortable"), E(e, "orderData", "aDataSort"), E(e, "orderSequence", "asSorting"), E(e, "orderDataType", "sortDataType");
            var t = e.aDataSort;
            "number" != typeof t || Array.isArray(t) || (e.aDataSort = [t])
        }

        function I(n) {
            var i, r, o, a;
            p.__browser || (p.__browser = i = {}, a = (o = (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")).children()).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, p.__browser), n.oScroll.iBarWidth = p.__browser.barWidth
        }

        function P(e, t, n, r, o, a) {
            var s, l = r,
                c = !1;
            for (n !== i && (s = n, c = !0); l !== o;) e.hasOwnProperty(l) && (s = c ? t(s, e[l], l, e) : e[l], c = !0, l += a);
            return s
        }

        function L(t, i) {
            var r = p.defaults.column,
                o = t.aoColumns.length;
            r = e.extend({}, p.models.oColumn, r, {
                nTh: i || n.createElement("th"),
                sTitle: r.sTitle || (i ? i.innerHTML : ""),
                aDataSort: r.aDataSort || [o],
                mData: r.mData || o,
                idx: o
            });
            (r = (t.aoColumns.push(r), t.aoPreSearchCols))[o] = e.extend({}, p.models.oSearch, r[o]), N(t, o, e(i).data())
        }

        function N(t, n, r) {
            function o(e) {
                return "string" == typeof e && -1 !== e.indexOf("@")
            }
            n = t.aoColumns[n];
            var a = t.oClasses,
                s = e(n.nTh),
                l = (n.sWidthOrig || (n.sWidthOrig = s.attr("width") || null, (d = (s.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/)) && (n.sWidthOrig = d[1])), r !== i && null !== r && (M(r), A(p.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), d = n.sClass, e.extend(n, r), lt(n, r, "sWidth", "sWidthOrig"), d !== n.sClass && (n.sClass = d + " " + n.sClass), r.iDataSort !== i && (n.aDataSort = [r.iDataSort]), lt(n, r, "aDataSort")), n.mData),
                c = K(l),
                u = n.mRender ? K(n.mRender) : null,
                d = (n._bAttrSrc = e.isPlainObject(l) && (o(l.sort) || o(l.type) || o(l.filter)), n._setter = null, n.fnGetData = function(e, t, n) {
                    var r = c(e, t, i, n);
                    return u && t ? u(r, t, e, n) : r
                }, n.fnSetData = function(e, t, n) {
                    return Q(l)(e, t, n)
                }, "number" == typeof l || n._isArrayHost || (t._rowReadObject = !0), t.oFeatures.bSort || (n.bSortable = !1, s.addClass(a.sSortableNone)), -1 !== e.inArray("asc", n.asSorting));
            r = -1 !== e.inArray("desc", n.asSorting);
            n.bSortable && (d || r) ? d && !r ? (n.sSortingClass = a.sSortableAsc, n.sSortingClassJUI = a.sSortJUIAscAllowed) : !d && 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;
                We(e);
                for (var n = 0, i = t.length; n < i; n++) t[n].nTh.style.width = t[n].sWidth
            }
            var r = e.oScroll;
            "" === r.sY && "" === r.sX || He(e), ht(e, null, "column-sizing", [e])
        }

        function R(e, t) {
            return "number" == typeof(e = z(e, "bVisible"))[t] ? e[t] : null
        }

        function j(t, n) {
            return t = z(t, "bVisible"), -1 !== (n = e.inArray(n, t)) ? n : null
        }

        function $(t) {
            var n = 0;
            return e.each(t.aoColumns, (function(t, i) {
                i.bVisible && "none" !== e(i.nTh).css("display") && n++
            })), n
        }

        function z(t, n) {
            var i = [];
            return e.map(t.aoColumns, (function(e, t) {
                e[n] && i.push(t)
            })), i
        }

        function H(e) {
            for (var t, n, r, o, a, s, l, c = e.aoColumns, u = e.aoData, d = p.ext.type.detect, h = 0, f = c.length; h < f; h++)
                if (l = [], !(a = c[h]).sType && a._sManualType) a.sType = a._sManualType;
                else if (!a.sType) {
                for (t = 0, n = d.length; t < n; t++) {
                    for (r = 0, o = u.length; r < o && (l[r] === i && (l[r] = U(e, r, h, "type")), (s = d[t](l[r], e)) || t === d.length - 1) && ("html" !== s || x(l[r])); r++);
                    if (s) {
                        a.sType = s;
                        break
                    }
                }
                a.sType || (a.sType = "string")
            }
        }

        function B(t, n, r, o) {
            var a, s, l, c, u = t.aoColumns;
            if (n)
                for (a = n.length - 1; 0 <= a; a--)
                    for (var d, h = (d = n[a]).target !== i ? d.target : d.targets !== i ? d.targets : d.aTargets, f = 0, p = (h = Array.isArray(h) ? h : [h]).length; f < p; f++)
                        if ("number" == typeof h[f] && 0 <= h[f]) {
                            for (; u.length <= h[f];) L(t);
                            o(h[f], d)
                        } else if ("number" == typeof h[f] && h[f] < 0) o(u.length + h[f], d);
            else if ("string" == typeof h[f])
                for (l = 0, c = u.length; l < c; l++) "_all" != h[f] && !e(u[l].nTh).hasClass(h[f]) || o(l, d);
            if (r)
                for (a = 0, s = r.length; a < s; a++) o(a, r[a])
        }

        function q(t, n, r, o) {
            for (var a = t.aoData.length, s = e.extend(!0, {}, p.models.oRow, {
                    src: r ? "dom" : "data",
                    idx: a
                }), l = (s._aData = n, t.aoData.push(s), 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 || ie(t, a, r, o), a
        }

        function W(t, n) {
            var i;
            return (n = n instanceof e ? n : e(n)).map((function(e, n) {
                return i = ne(t, n), q(t, i.data, n, i.cells)
            }))
        }

        function U(e, t, n, r) {
            "search" === r ? r = "filter" : "order" === r && (r = "sort");
            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 && (st(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 ? "" : "filter" === r && (t = p.ext.type.search)[a.sType] ? t[a.sType](c) : c
        }

        function V(e, t, n, i) {
            var r = e.aoColumns[n],
                o = e.aoData[t]._aData;
            r.fnSetData(o, i, {
                settings: e,
                row: t,
                col: n
            })
        }
        var Y = /\[.*?\]$/,
            X = /\(\)$/;

        function G(t) {
            return e.map(t.match(/(\\.|[^\.])+/g) || [""], (function(e) {
                return e.replace(/\\\./g, ".")
            }))
        }
        var K = p.util.get,
            Q = p.util.set;

        function Z(e) {
            return C(e.aoData, "_aData")
        }

        function J(e) {
            e.aoData.length = 0, e.aiDisplayMaster.length = 0, e.aiDisplay.length = 0, e.aIds = {}
        }

        function ee(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 te(e, t, n, r) {
            function o(n, i) {
                for (; n.childNodes.length;) n.removeChild(n.firstChild);
                n.innerHTML = U(e, t, i, "display")
            }
            var a, s, l = e.aoData[t];
            if ("dom" !== n && (n && "auto" !== n || "dom" !== l.src)) {
                var c = l.anCells;
                if (c)
                    if (r !== i) o(c[r], r);
                    else
                        for (a = 0, s = c.length; a < s; a++) o(c[a], a)
            } else l._aData = ne(e, l, r, r === i ? i : l._aData).data;
            l._aSortData = null, l._aFilterData = null;
            var u = e.aoColumns;
            if (r !== i) u[r].sType = null;
            else {
                for (a = 0, s = u.length; a < s; a++) u[a].sType = null;
                re(e, l)
            }
        }

        function ne(e, t, n, r) {
            function o(e, t) {
                var n;
                "string" == typeof e && -1 !== (n = e.indexOf("@")) && (n = e.substring(n + 1), Q(e)(r, t.getAttribute(n)))
            }

            function a(e) {
                n !== i && n !== h || (l = f[h], c = e.innerHTML.trim(), l && l._bAttrSrc ? (Q(l.mData._)(r, c), o(l.mData.sort, e), o(l.mData.type, e), o(l.mData.filter, e)) : p ? (l._setter || (l._setter = Q(l.mData)), l._setter(r, c)) : r[h] = c), h++
            }
            var s, l, c, u = [],
                d = t.firstChild,
                h = 0,
                f = e.aoColumns,
                p = e._rowReadObject;
            if (r = r !== i ? r : p ? {} : [], d)
                for (; d;) "TD" != (s = d.nodeName.toUpperCase()) && "TH" != s || (a(d), u.push(d)), d = d.nextSibling;
            else
                for (var g = 0, m = (u = t.anCells).length; g < m; g++) a(u[g]);
            return (t = t.firstChild ? t : t.nTr) && (t = t.getAttribute("id")) && Q(e.rowId)(r, t), {
                data: r,
                cells: u
            }
        }

        function ie(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, re(t, h), c = 0, u = t.aoColumns.length; c < u; c++) l = t.aoColumns[c], (s = (d = !r) ? n.createElement(l.sCellType) : o[c]) || st(t, 0, "Incorrect column count", 18), s._DT_CellIndex = {
                    row: i,
                    column: c
                }, p.push(s), !d && (!l.mRender && l.mData === c || e.isPlainObject(l.mData) && l.mData._ === c + ".display") || (s.innerHTML = U(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, U(t, i, c), f, i, c);
                ht(t, "aoRowCreatedCallback", null, [a, f, i, p])
            }
        }

        function re(t, n) {
            var i = n.nTr,
                r = n._aData;
            i && ((t = t.rowIdFn(r)) && (i.id = t), r.DT_RowClass && (t = r.DT_RowClass.split(" "), n.__rowc = n.__rowc ? S(n.__rowc.concat(t)) : t, 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 oe(t) {
            var n, i, r, o = t.nTHead,
                a = t.nTFoot,
                s = 0 === e("th, td", o).length,
                l = t.oClasses,
                c = t.aoColumns;
            for (s && (i = e("<tr/>").appendTo(o)), d = 0, h = c.length; d < h; d++) r = c[d], n = e(r.nTh).addClass(r.sClass), s && n.appendTo(i), t.oFeatures.bSort && (n.addClass(r.sSortingClass), !1 !== r.bSortable && (n.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), et(t, r.nTh, d))), r.sTitle != n[0].innerHTML && n.html(r.sTitle), pt(t, "header")(t, n, r, l);
            if (s && ue(t.aoHeader, o), e(o).children("tr").children("th, td").addClass(l.sHeaderTH), e(a).children("tr").children("th, td").addClass(l.sFooterTH), null !== a)
                for (var u = t.aoFooter[0], d = 0, h = u.length; d < h; d++)(r = c[d]) ? (r.nTf = u[d].cell, r.sClass && e(r.nTf).addClass(r.sClass)) : st(t, 0, "Incorrect column count", 18)
        }

        function ae(t, n, r) {
            var o, a, s, l, c, u, d, h, f, p = [],
                g = [],
                m = t.aoColumns.length;
            if (n) {
                for (r === i && (r = !1), o = 0, a = n.length; o < a; o++) {
                    for (p[o] = n[o].slice(), p[o].nTr = n[o].nTr, s = m - 1; 0 <= s; s--) t.aoColumns[s].bVisible || r || p[o].splice(s, 1);
                    g.push([])
                }
                for (o = 0, a = p.length; o < a; o++) {
                    if (d = p[o].nTr)
                        for (; u = d.firstChild;) d.removeChild(u);
                    for (s = 0, l = p[o].length; s < l; s++)
                        if (f = h = 1, g[o][s] === i) {
                            for (d.appendChild(p[o][s].cell), g[o][s] = 1; p[o + h] !== i && p[o][s].cell == p[o + h][s].cell;) g[o + h][s] = 1, h++;
                            for (; p[o][s + f] !== i && p[o][s].cell == p[o][s + f].cell;) {
                                for (c = 0; c < h; c++) g[o + c][s + f] = 1;
                                f++
                            }
                            e(p[o][s].cell).attr("rowspan", h).attr("colspan", f)
                        }
                }
            }
        }

        function se(t, n) {
            r = "ssp" == gt(u = t), (c = u.iInitDisplayStart) !== i && -1 !== c && (u._iDisplayStart = !r && c >= u.fnRecordsDisplay() ? 0 : c, u.iInitDisplayStart = -1);
            var r = ht(t, "aoPreDrawCallback", "preDraw", [t]);
            if (-1 !== e.inArray(!1, r)) $e(t, !1);
            else {
                var o = [],
                    a = 0,
                    s = t.asStripeClasses,
                    l = s.length,
                    c = t.oLanguage,
                    u = "ssp" == gt(t),
                    d = t.aiDisplay,
                    h = (r = t._iDisplayStart, t.fnDisplayEnd());
                if (t.bDrawing = !0, t.bDeferLoading) t.bDeferLoading = !1, t.iDraw++, $e(t, !1);
                else if (u) {
                    if (!t.bDestroying && !n) return void fe(t)
                } else t.iDraw++;
                if (0 !== d.length)
                    for (var f = u ? t.aoData.length : h, p = u ? 0 : r; p < f; p++) {
                        var g, m = d[p],
                            v = t.aoData[m],
                            y = (null === v.nTr && ie(t, m), v.nTr);
                        0 !== l && (g = s[a % l], v._sRowStripe != g && (e(y).removeClass(v._sRowStripe).addClass(g), v._sRowStripe = g)), ht(t, "aoRowCallback", null, [y, v._aData, a, p, m]), o.push(y), a++
                    } else n = c.sZeroRecords, 1 == t.iDraw && "ajax" == gt(t) ? n = c.sLoadingRecords : c.sEmptyTable && 0 === t.fnRecordsTotal() && (n = c.sEmptyTable), o[0] = e("<tr/>", {
                        class: l ? s[0] : ""
                    }).append(e("<td />", {
                        valign: "top",
                        colSpan: $(t),
                        class: t.oClasses.sRowEmpty
                    }).html(n))[0];
                ht(t, "aoHeaderCallback", "header", [e(t.nTHead).children("tr")[0], Z(t), r, h, d]), ht(t, "aoFooterCallback", "footer", [e(t.nTFoot).children("tr")[0], Z(t), r, h, d]), (u = e(t.nTBody)).children().detach(), u.append(e(o)), ht(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1
            }
        }

        function le(e, t) {
            var n = (i = e.oFeatures).bSort,
                i = i.bFilter;
            n && Qe(e), i ? ye(e, e.oPreviousSearch) : e.aiDisplay = e.aiDisplayMaster.slice(), !0 !== t && (e._iDisplayStart = 0), e._drawHold = t, se(e), e._drawHold = !1
        }

        function ce(t) {
            for (var n, i, r, o, a, s, l, c = t.oClasses, u = e(t.nTable), d = (u = e("<div/>").insertBefore(u), t.oFeatures), h = e("<div/>", {
                    id: t.sTableId + "_wrapper",
                    class: c.sWrapper + (t.nTFoot ? "" : " " + c.sNoFooter)
                }), f = (t.nHolding = u[0], t.nTableWrapper = h[0], t.nTableReinsertBefore = t.nTable.nextSibling, t.sDom.split("")), g = 0; g < f.length; g++) {
                if (n = null, "<" == (i = f[g])) {
                    if (r = e("<div/>")[0], "'" == (o = f[g + 1]) || '"' == o) {
                        for (a = "", s = 2; f[g + s] != o;) a += f[g + s], s++;
                        "H" == a ? a = c.sJUIHeader : "F" == a && (a = c.sJUIFooter), -1 != a.indexOf(".") ? (l = a.split("."), r.id = l[0].substr(1, l[0].length - 1), r.className = l[1]) : "#" == a.charAt(0) ? r.id = a.substr(1, a.length - 1) : r.className = a, g += s
                    }
                    h.append(r), h = e(r)
                } else if (">" == i) h = h.parent();
                else if ("l" == i && d.bPaginate && d.bLengthChange) n = Ne(t);
                else if ("f" == i && d.bFilter) n = ve(t);
                else if ("r" == i && d.bProcessing) n = je(t);
                else if ("t" == i) n = ze(t);
                else if ("i" == i && d.bInfo) n = Ee(t);
                else if ("p" == i && d.bPaginate) n = Fe(t);
                else if (0 !== p.ext.feature.length)
                    for (var m = p.ext.feature, v = 0, y = m.length; v < y; v++)
                        if (i == m[v].cFeature) {
                            n = m[v].fnInit(t);
                            break
                        }
                n && ((l = t.aanFeatures)[i] || (l[i] = []), l[i].push(n), h.append(n))
            }
            u.replaceWith(h), t.nHolding = null
        }

        function ue(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 = +r.getAttribute("colspan")) && 0 !== u && 1 !== u ? u : 1, d = (d = +r.getAttribute("rowspan")) && 0 !== d && 1 !== d ? d : 1, c = function(e, t, n) {
                                for (var i = e[t]; i[n];) n++;
                                return n
                            }(t, o, 0), 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 de(e, t, n) {
            var i = [];
            n || (n = e.aoHeader, t && ue(n = [], t));
            for (var r = 0, o = n.length; r < o; r++)
                for (var a = 0, s = n[r].length; a < s; a++) !n[r][a].unique || i[a] && e.bSortCellsTop || (i[a] = n[r][a].cell);
            return i
        }

        function he(t, n, i) {
            function r(e) {
                var n = t.jqXHR ? t.jqXHR.status : null;
                (null === e || "number" == typeof n && 204 == n) && me(t, e = {}, []), (n = e.error || e.sError) && st(t, 0, n), t.json = e, ht(t, null, "xhr", [t, e, t.jqXHR]), i(e)
            }
            ht(t, "aoServerParams", "serverParams", [n]), n && Array.isArray(n) && (o = {}, a = /(.*?)\[\]$/, e.each(n, (function(e, t) {
                var n = t.name.match(a);
                n ? (n = n[0], o[n] || (o[n] = []), o[n].push(t.value)) : o[t.name] = t.value
            })), n = o);
            var o, a, s, l = t.ajax,
                c = t.oInstance,
                u = (e.isPlainObject(l) && l.data && (u = "function" == typeof(s = l.data) ? s(n, t) : s, n = "function" == typeof s && u ? u : e.extend(!0, n, u), delete l.data), {
                    data: n,
                    success: r,
                    dataType: "json",
                    cache: !1,
                    type: t.sServerMethod,
                    error: function(n, i, r) {
                        var o = ht(t, null, "xhr", [t, null, t.jqXHR]); - 1 === e.inArray(!0, o) && ("parsererror" == i ? st(t, 0, "Invalid JSON response", 1) : 4 === n.readyState && st(t, 0, "Ajax error", 7)), $e(t, !1)
                    }
                });
            t.oAjaxData = n, ht(t, null, "preXhr", [t, n]), t.fnServerData ? t.fnServerData.call(c, t.sAjaxSource, e.map(n, (function(e, t) {
                return {
                    name: t,
                    value: e
                }
            })), r, t) : t.sAjaxSource || "string" == typeof l ? t.jqXHR = e.ajax(e.extend(u, {
                url: l || t.sAjaxSource
            })) : "function" == typeof l ? t.jqXHR = l.call(c, n, r, t) : (t.jqXHR = e.ajax(e.extend(u, l)), l.data = s)
        }

        function fe(e) {
            e.iDraw++, $e(e, !0), he(e, pe(e), (function(t) {
                ge(e, t)
            }))
        }

        function pe(t) {
            for (var n, i, r, o = t.aoColumns, a = o.length, s = t.oFeatures, l = t.oPreviousSearch, c = t.aoPreSearchCols, u = [], d = Ke(t), h = t._iDisplayStart, f = !1 !== s.bPaginate ? t._iDisplayLength : -1, g = function(e, t) {
                    u.push({
                        name: e,
                        value: t
                    })
                }, m = (g("sEcho", t.iDraw), g("iColumns", a), g("sColumns", C(o, "sName").join(",")), g("iDisplayStart", h), g("iDisplayLength", f), {
                    draw: t.iDraw,
                    columns: [],
                    order: [],
                    start: h,
                    length: f,
                    search: {
                        value: l.sSearch,
                        regex: l.bRegex
                    }
                }), v = 0; v < a; v++) i = o[v], r = c[v], n = "function" == typeof i.mData ? "function" : i.mData, m.columns.push({
                data: n,
                name: i.sName,
                searchable: i.bSearchable,
                orderable: i.bSortable,
                search: {
                    value: r.sSearch,
                    regex: r.bRegex
                }
            }), g("mDataProp_" + v, n), s.bFilter && (g("sSearch_" + v, r.sSearch), g("bRegex_" + v, r.bRegex), g("bSearchable_" + v, i.bSearchable)), s.bSort && g("bSortable_" + v, i.bSortable);
            return s.bFilter && (g("sSearch", l.sSearch), g("bRegex", l.bRegex)), s.bSort && (e.each(d, (function(e, t) {
                m.order.push({
                    column: t.col,
                    dir: t.dir
                }), g("iSortCol_" + e, t.col), g("sSortDir_" + e, t.dir)
            })), g("iSortingCols", d.length)), null === (h = p.ext.legacy.ajax) ? t.sAjaxSource ? u : m : h ? u : m
        }

        function ge(e, t) {
            function n(e, n) {
                return t[e] !== i ? t[e] : t[n]
            }
            var r = me(e, t),
                o = n("sEcho", "draw"),
                a = n("iTotalRecords", "recordsTotal"),
                s = n("iTotalDisplayRecords", "recordsFiltered");
            if (o !== i) {
                if (+o < e.iDraw) return;
                e.iDraw = +o
            }
            r = r || [], J(e), e._iRecordsTotal = parseInt(a, 10), e._iRecordsDisplay = parseInt(s, 10);
            for (var l = 0, c = r.length; l < c; l++) q(e, r[l]);
            e.aiDisplay = e.aiDisplayMaster.slice(), se(e, !0), e._bInitComplete || Pe(e, t), $e(e, !1)
        }

        function me(t, n, r) {
            if (t = e.isPlainObject(t.ajax) && t.ajax.dataSrc !== i ? t.ajax.dataSrc : t.sAjaxDataProp, !r) return "data" === t ? n.aaData || n[t] : "" !== t ? K(t)(n) : n;
            Q(t)(n, r)
        }

        function ve(t) {
            function i(e) {
                l.f;
                var n = this.value || "";
                s.return && "Enter" !== e.key || n != s.sSearch && (ye(t, {
                    sSearch: n,
                    bRegex: s.bRegex,
                    bSmart: s.bSmart,
                    bCaseInsensitive: s.bCaseInsensitive,
                    return: s.return
                }), t._iDisplayStart = 0, se(t))
            }
            var r = t.oClasses,
                o = t.sTableId,
                a = t.oLanguage,
                s = t.oPreviousSearch,
                l = t.aanFeatures,
                c = '<input type="search" class="' + r.sFilterInput + '"/>',
                u = (u = a.sSearch).match(/_INPUT_/) ? u.replace("_INPUT_", c) : u + c,
                d = (c = e("<div/>", {
                    id: l.f ? null : o + "_filter",
                    class: r.sFilter
                }).append(e("<label/>").append(u)), r = null !== t.searchDelay ? t.searchDelay : "ssp" === gt(t) ? 400 : 0, e("input", c).val(s.sSearch).attr("placeholder", a.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", r ? Ue(i, r) : i).on("mouseup", (function(e) {
                    setTimeout((function() {
                        i.call(d[0], e)
                    }), 10)
                })).on("keypress.DT", (function(e) {
                    if (13 == e.keyCode) return !1
                })).attr("aria-controls", o));
            return e(t.nTable).on("search.dt.DT", (function(e, i) {
                if (t === i) try {
                    d[0] !== n.activeElement && d.val(s.sSearch)
                } catch (e) {}
            })), c[0]
        }

        function ye(e, t, n) {
            function r(e) {
                a.sSearch = e.sSearch, a.bRegex = e.bRegex, a.bSmart = e.bSmart, a.bCaseInsensitive = e.bCaseInsensitive, a.return = e.return
            }

            function o(e) {
                return e.bEscapeRegex !== i ? !e.bEscapeRegex : e.bRegex
            }
            var a = e.oPreviousSearch,
                s = e.aoPreSearchCols;
            if (H(e), "ssp" != gt(e)) {
                xe(e, t.sSearch, n, o(t), t.bSmart, t.bCaseInsensitive, t.return), r(t);
                for (var l = 0; l < s.length; l++) we(e, s[l].sSearch, l, o(s[l]), s[l].bSmart, s[l].bCaseInsensitive);
                be(e)
            } else r(t);
            e.bFiltered = !0, ht(e, null, "search", [e])
        }

        function be(t) {
            for (var n, i, r = p.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 we(e, t, n, i, r, o) {
            if ("" !== t) {
                for (var a, s = [], l = e.aiDisplay, c = _e(t, i, r, o), u = 0; u < l.length; u++) a = e.aoData[l[u]]._aFilterData[n], c.test(a) && s.push(l[u]);
                e.aiDisplay = s
            }
        }

        function xe(e, t, n, i, r, o) {
            var a, s, l, c = _e(t, i, r, o),
                u = (r = e.oPreviousSearch.sSearch, o = e.aiDisplayMaster, []);
            if (0 !== p.ext.search.length && (n = !0), s = Te(e), t.length <= 0) e.aiDisplay = o.slice();
            else {
                for ((s || n || i || r.length > t.length || 0 !== t.indexOf(r) || e.bSorted) && (e.aiDisplay = o.slice()), a = e.aiDisplay, l = 0; l < a.length; l++) c.test(e.aoData[a[l]]._sFilterRow) && u.push(a[l]);
                e.aiDisplay = u
            }
        }

        function _e(t, n, i, r) {
            return t = n ? t : Ce(t), i && (t = "^(?=.*?" + e.map(t.match(/"[^"]+"|[^ ]+/g) || [""], (function(e) {
                var t;
                return (e = '"' === e.charAt(0) && (t = e.match(/^"(.*)"$/)) ? t[1] : e).replace('"', "")
            })).join(")(?=.*?") + ").*$"), new RegExp(t, r ? "i" : "")
        }
        var Ce = p.util.escapeRegex,
            Se = e("<div>")[0],
            ke = Se.textContent !== i;

        function Te(e) {
            for (var t, n, i, r, o, a = e.aoColumns, s = !1, l = 0, c = e.aoData.length; l < c; l++)
                if (!(o = e.aoData[l])._aFilterData) {
                    for (i = [], t = 0, n = a.length; t < n; t++) a[t].bSearchable ? "string" != typeof(r = null === (r = U(e, l, t, "filter")) ? "" : r) && r.toString && (r = r.toString()) : r = "", r.indexOf && -1 !== r.indexOf("&") && (Se.innerHTML = r, r = ke ? Se.textContent : Se.innerText), r.replace && (r = r.replace(/[\r\n\u2028]/g, "")), i.push(r);
                    o._aFilterData = i, o._sFilterRow = i.join("  "), s = !0
                }
            return s
        }

        function Ae(e) {
            return {
                search: e.sSearch,
                smart: e.bSmart,
                regex: e.bRegex,
                caseInsensitive: e.bCaseInsensitive
            }
        }

        function De(e) {
            return {
                sSearch: e.search,
                bSmart: e.smart,
                bRegex: e.regex,
                bCaseInsensitive: e.caseInsensitive
            }
        }

        function Ee(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: Oe,
                sName: "information"
            }), r.attr("role", "status").attr("aria-live", "polite"), e(t.nTable).attr("aria-describedby", n + "_info")), r[0]
        }

        function Oe(t) {
            var n, i, r, o, a, s, l = t.aanFeatures.i;
            0 !== l.length && (s = t.oLanguage, n = t._iDisplayStart + 1, i = t.fnDisplayEnd(), r = t.fnRecordsTotal(), a = (o = t.fnRecordsDisplay()) ? s.sInfo : s.sInfoEmpty, o !== r && (a += " " + s.sInfoFiltered), a = Me(t, a += s.sInfoPostFix), null !== (s = s.fnInfoCallback) && (a = s.call(t.oInstance, t, n, i, r, o, a)), e(l).html(a))
        }

        function Me(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 Ie(e) {
            var t, n, i, r = e.iInitDisplayStart,
                o = e.aoColumns,
                a = e.oFeatures,
                s = e.bDeferLoading;
            if (e.bInitialised) {
                for (ce(e), oe(e), ae(e, e.aoHeader), ae(e, e.aoFooter), $e(e, !0), a.bAutoWidth && We(e), t = 0, n = o.length; t < n; t++)(i = o[t]).sWidth && (i.nTh.style.width = Ge(i.sWidth));
                ht(e, null, "preInit", [e]), le(e), "ssp" == (a = gt(e)) && !s || ("ajax" == a ? he(e, [], (function(n) {
                    var i = me(e, n);
                    for (t = 0; t < i.length; t++) q(e, i[t]);
                    e.iInitDisplayStart = r, le(e), $e(e, !1), Pe(e, n)
                })) : ($e(e, !1), Pe(e)))
            } else setTimeout((function() {
                Ie(e)
            }), 200)
        }

        function Pe(e, t) {
            e._bInitComplete = !0, (t || e.oInit.aaData) && F(e), ht(e, null, "plugin-init", [e, t]), ht(e, "aoInitComplete", "init", [e, t])
        }

        function Le(e, t) {
            t = parseInt(t, 10), e._iDisplayLength = t, ft(e), ht(e, null, "length", [e, t])
        }

        function Ne(t) {
            for (var n = t.oClasses, i = t.sTableId, r = t.aLengthMenu, o = Array.isArray(r[0]), a = o ? r[0] : r, s = o ? r[1] : r, l = e("<select/>", {
                    name: i + "_length",
                    "aria-controls": i,
                    class: n.sLengthSelect
                }), c = 0, u = a.length; c < u; c++) l[0][c] = new Option("number" == typeof s[c] ? t.fnFormatNumber(s[c]) : s[c], a[c]);
            var d = e("<div><label/></div>").addClass(n.sLength);
            return t.aanFeatures.l || (d[0].id = i + "_length"), d.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), e("select", d).val(t._iDisplayLength).on("change.DT", (function(n) {
                Le(t, e(this).val()), se(t)
            })), e(t.nTable).on("length.dt.DT", (function(n, i, r) {
                t === i && e("select", d).val(r)
            })), d[0]
        }

        function Fe(t) {
            function n(e) {
                se(e)
            }
            var i = t.sPaginationType,
                r = p.ext.pager[i],
                o = "function" == typeof r,
                a = (i = e("<div/>").addClass(t.oClasses.sPaging + i)[0], t.aanFeatures);
            return o || r.fnInit(t, i, n), a.p || (i.id = t.sTableId + "_paginate", t.aoDrawCallback.push({
                fn: function(e) {
                    if (o)
                        for (var t = e._iDisplayStart, i = e._iDisplayLength, s = e.fnRecordsDisplay(), l = -1 === i, c = l ? 0 : Math.ceil(t / i), u = l ? 1 : Math.ceil(s / i), d = r(c, u), h = 0, f = a.p.length; h < f; h++) pt(e, "pageButton")(e, a.p[h], h, d, c, u);
                    else r.fnUpdate(e, n)
                },
                sName: "pagination"
            })), i
        }

        function Re(e, t, n) {
            var i = e._iDisplayStart,
                r = e._iDisplayLength,
                o = (0 === (o = e.fnRecordsDisplay()) || -1 === r ? i = 0 : "number" == typeof t ? o < (i = t * r) && (i = 0) : "first" == t ? i = 0 : "previous" == t ? (i = 0 <= r ? i - r : 0) < 0 && (i = 0) : "next" == t ? i + r < o && (i += r) : "last" == t ? i = Math.floor((o - 1) / r) * r : st(e, 0, "Unknown paging action: " + t, 5), e._iDisplayStart !== i);
            return e._iDisplayStart = i, o ? (ht(e, null, "page", [e]), n && se(e)) : ht(e, null, "page-nc", [e]), o
        }

        function je(t) {
            return e("<div/>", {
                id: t.aanFeatures.r ? null : t.sTableId + "_processing",
                class: t.oClasses.sProcessing,
                role: "status"
            }).html(t.oLanguage.sProcessing).append("<div><div></div><div></div><div></div><div></div></div>").insertBefore(t.nTable)[0]
        }

        function $e(t, n) {
            t.oFeatures.bProcessing && e(t.aanFeatures.r).css("display", n ? "block" : "none"), ht(t, null, "processing", [t, n])
        }

        function ze(t) {
            var n, i, r, o, a, s, l, c, u, d, h, f, p = e(t.nTable),
                g = t.oScroll;
            return "" === g.sX && "" === g.sY ? t.nTable : (n = g.sX, i = g.sY, r = t.oClasses, a = (o = p.children("caption")).length ? o[0]._captionSide : null, c = e(p[0].cloneNode(!1)), s = e(p[0].cloneNode(!1)), u = function(e) {
                return e ? Ge(e) : null
            }, (l = p.children("tfoot")).length || (l = null), c = e(h = "<div/>", {
                class: r.sScrollWrapper
            }).append(e(h, {
                class: r.sScrollHead
            }).css({
                overflow: "hidden",
                position: "relative",
                border: 0,
                width: n ? u(n) : "100%"
            }).append(e(h, {
                class: r.sScrollHeadInner
            }).css({
                "box-sizing": "content-box",
                width: g.sXInner || "100%"
            }).append(c.removeAttr("id").css("margin-left", 0).append("top" === a ? o : null).append(p.children("thead"))))).append(e(h, {
                class: r.sScrollBody
            }).css({
                position: "relative",
                overflow: "auto",
                width: u(n)
            }).append(p)), l && c.append(e(h, {
                class: r.sScrollFoot
            }).css({
                overflow: "hidden",
                border: 0,
                width: n ? u(n) : "100%"
            }).append(e(h, {
                class: r.sScrollFootInner
            }).append(s.removeAttr("id").css("margin-left", 0).append("bottom" === a ? o : null).append(p.children("tfoot"))))), u = c.children(), d = u[0], h = u[1], f = l ? u[2] : null, n && e(h).on("scroll.DT", (function(e) {
                var t = this.scrollLeft;
                d.scrollLeft = t, l && (f.scrollLeft = t)
            })), e(h).css("max-height", i), g.bCollapse || e(h).css("height", i), t.nScrollHead = d, t.nScrollBody = h, t.nScrollFoot = f, t.aoDrawCallback.push({
                fn: He,
                sName: "scrolling"
            }), c[0])
        }

        function He(n) {
            function r(e) {
                (e = e.style).paddingTop = "0", e.paddingBottom = "0", e.borderTopWidth = "0", e.borderBottomWidth = "0", e.height = 0
            }
            var o, a, s, l, c, u = (f = n.oScroll).sX,
                d = f.sXInner,
                h = f.sY,
                f = f.iBarWidth,
                p = e(n.nScrollHead),
                g = p[0].style,
                m = (v = p.children("div"))[0].style,
                v = v.children("table"),
                y = n.nScrollBody,
                b = e(y),
                w = y.style,
                x = e(n.nScrollFoot).children("div"),
                _ = x.children("table"),
                S = e(n.nTHead),
                k = e(n.nTable),
                T = k[0],
                A = T.style,
                D = n.nTFoot ? e(n.nTFoot) : null,
                E = n.oBrowser,
                O = E.bScrollOversize,
                M = (C(n.aoColumns, "nTh"), []),
                I = [],
                P = [],
                L = [],
                N = y.scrollHeight > y.clientHeight;
            n.scrollBarVis !== N && n.scrollBarVis !== i ? (n.scrollBarVis = N, F(n)) : (n.scrollBarVis = N, k.children("thead, tfoot").remove(), D && (N = D.clone().prependTo(k), c = D.find("tr"), a = N.find("tr"), N.find("[id]").removeAttr("id")), N = S.clone().prependTo(k), S = S.find("tr"), o = N.find("tr"), N.find("th, td").removeAttr("tabindex"), N.find("[id]").removeAttr("id"), u || (w.width = "100%", p[0].style.width = "100%"), e.each(de(n, N), (function(e, t) {
                s = R(n, e), t.style.width = n.aoColumns[s].sWidth
            })), D && Be((function(e) {
                e.style.width = ""
            }), a), p = k.outerWidth(), "" === u ? (A.width = "100%", O && (k.find("tbody").height() > y.offsetHeight || "scroll" == b.css("overflow-y")) && (A.width = Ge(k.outerWidth() - f)), p = k.outerWidth()) : "" !== d && (A.width = Ge(d), p = k.outerWidth()), Be(r, o), Be((function(n) {
                var i = t.getComputedStyle ? t.getComputedStyle(n).width : Ge(e(n).width());
                P.push(n.innerHTML), M.push(i)
            }), o), Be((function(e, t) {
                e.style.width = M[t]
            }), S), e(o).css("height", 0), D && (Be(r, a), Be((function(t) {
                L.push(t.innerHTML), I.push(Ge(e(t).css("width")))
            }), a), Be((function(e, t) {
                e.style.width = I[t]
            }), c), e(a).height(0)), Be((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 = M[t]
            }), o), D && Be((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]
            }), a), Math.round(k.outerWidth()) < Math.round(p) ? (l = y.scrollHeight > y.offsetHeight || "scroll" == b.css("overflow-y") ? p + f : p, O && (y.scrollHeight > y.offsetHeight || "scroll" == b.css("overflow-y")) && (A.width = Ge(l - f)), "" !== u && "" === d || st(n, 1, "Possible column misalignment", 6)) : l = "100%", w.width = Ge(l), g.width = Ge(l), D && (n.nScrollFoot.style.width = Ge(l)), h || O && (w.height = Ge(T.offsetHeight + f)), N = k.outerWidth(), v[0].style.width = Ge(N), m.width = Ge(N), S = k.height() > y.clientHeight || "scroll" == b.css("overflow-y"), m[c = "padding" + (E.bScrollbarLeft ? "Left" : "Right")] = S ? f + "px" : "0px", D && (_[0].style.width = Ge(N), x[0].style.width = Ge(N), x[0].style[c] = S ? f + "px" : "0px"), k.children("colgroup").insertBefore(k.children("thead")), b.trigger("scroll"), !n.bSorted && !n.bFiltered || n._drawHold || (y.scrollTop = 0))
        }

        function Be(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++
            }
        }
        var qe = /<.*?>/g;

        function We(n) {
            var i, r, o = n.nTable,
                a = n.aoColumns,
                s = (c = n.oScroll).sY,
                l = c.sX,
                c = c.sXInner,
                u = a.length,
                d = z(n, "bVisible"),
                h = e("th", n.nTHead),
                f = o.getAttribute("width"),
                p = o.parentNode,
                g = !1,
                m = n.oBrowser,
                v = m.bScrollOversize;
            for ((b = o.style.width) && -1 !== b.indexOf("%") && (f = b), C = 0; C < d.length; C++) null !== (i = a[d[C]]).sWidth && (i.sWidth = Ve(i.sWidthOrig, p), g = !0);
            if (v || !g && !l && !s && u == $(n) && u == h.length)
                for (C = 0; C < u; C++) {
                    var y = R(n, C);
                    null !== y && (a[y].sWidth = Ge(h.eq(C).width()))
                } else {
                    var b, w = ((b = e(o).clone().css("visibility", "hidden").removeAttr("id")).find("tbody tr").remove(), e("<tr/>").appendTo(b.find("tbody")));
                    for (b.find("thead, tfoot").remove(), b.append(e(n.nTHead).clone()).append(e(n.nTFoot).clone()), b.find("tfoot th, tfoot td").css("width", ""), h = de(n, b.find("thead")[0]), C = 0; C < d.length; C++) i = a[d[C]], h[C].style.width = null !== i.sWidthOrig && "" !== i.sWidthOrig ? Ge(i.sWidthOrig) : "", i.sWidthOrig && l && e(h[C]).append(e("<div/>").css({
                        width: i.sWidthOrig,
                        margin: 0,
                        padding: 0,
                        border: 0,
                        height: 1
                    }));
                    if (n.aoData.length)
                        for (C = 0; C < d.length; C++) i = a[r = d[C]], e(Ye(n, r)).clone(!1).append(i.sContentPadding).appendTo(w);
                    e("[name]", b).removeAttr("name");
                    for (var x = e("<div/>").css(l || s ? {
                            position: "absolute",
                            top: 0,
                            left: 0,
                            height: 1,
                            right: 0,
                            overflow: "hidden"
                        } : {}).append(b).appendTo(p), _ = (l && c ? b.width(c) : l ? (b.css("width", "auto"), b.removeAttr("width"), b.width() < p.clientWidth && f && b.width(p.clientWidth)) : s ? b.width(p.clientWidth) : f && b.width(f), 0), C = 0; C < d.length; C++) {
                        var S, k = (S = e(h[C])).outerWidth() - S.width();
                        _ += S = m.bBounding ? Math.ceil(h[C].getBoundingClientRect().width) : S.outerWidth(), a[d[C]].sWidth = Ge(S - k)
                    }
                    o.style.width = Ge(_), x.remove()
                }
            f && (o.style.width = Ge(f)), !f && !l || n._reszEvt || (c = function() {
                e(t).on("resize.DT-" + n.sInstance, Ue((function() {
                    F(n)
                })))
            }, v ? setTimeout(c, 1e3) : c(), n._reszEvt = !0)
        }
        var Ue = p.util.throttle;

        function Ve(t, i) {
            return t ? (i = (t = e("<div/>").css("width", Ge(t)).appendTo(i || n.body))[0].offsetWidth, t.remove(), i) : 0
        }

        function Ye(t, n) {
            var i, r = Xe(t, n);
            return r < 0 ? null : (i = t.aoData[r]).nTr ? i.anCells[n] : e("<td/>").html(U(t, r, n, "display"))[0]
        }

        function Xe(e, t) {
            for (var n, i = -1, r = -1, o = 0, a = e.aoData.length; o < a; o++)(n = (n = (n = U(e, o, t, "display") + "").replace(qe, "")).replace(/&nbsp;/g, " ")).length > i && (i = n.length, r = o);
            return r
        }

        function Ge(e) {
            return null === e ? "0px" : "number" == typeof e ? e < 0 ? "0px" : e + "px" : e.match(/\d$/) ? e + "px" : e
        }

        function Ke(t) {
            function n(t) {
                t.length && !Array.isArray(t[0]) ? m.push(t) : e.merge(m, t)
            }
            var r, o, a, s, l, c, u, d = [],
                h = t.aoColumns,
                f = t.aaSortingFixed,
                g = e.isPlainObject(f),
                m = [];
            for (Array.isArray(f) && n(f), g && f.pre && n(f.pre), n(t.aaSorting), g && f.post && n(f.post), r = 0; r < m.length; r++)
                for (a = (s = h[u = m[r][o = 0]].aDataSort).length; o < a; o++) c = h[l = s[o]].sType || "string", m[r]._idx === i && (m[r]._idx = e.inArray(m[r][1], h[l].asSorting)), d.push({
                    src: u,
                    col: l,
                    dir: m[r][1],
                    index: m[r]._idx,
                    type: c,
                    formatter: p.ext.type.order[c + "-pre"]
                });
            return d
        }

        function Qe(e) {
            var t, n, i, r, o, a = [],
                s = p.ext.type.order,
                l = e.aoData,
                c = (e.aoColumns, 0),
                u = e.aiDisplayMaster;
            for (H(e), t = 0, n = (o = Ke(e)).length; t < n; t++)(r = o[t]).formatter && c++, nt(e, r.col);
            if ("ssp" != gt(e) && 0 !== o.length) {
                for (t = 0, i = u.length; t < i; t++) a[u[t]] = t;
                c === o.length ? u.sort((function(e, t) {
                    for (var n, i, r, s, c = o.length, u = l[e]._aSortData, d = l[t]._aSortData, h = 0; h < c; h++)
                        if (0 != (r = (n = u[(s = o[h]).col]) < (i = d[s.col]) ? -1 : i < n ? 1 : 0)) return "asc" === s.dir ? r : -r;
                    return (n = a[e]) < (i = a[t]) ? -1 : i < n ? 1 : 0
                })) : u.sort((function(e, t) {
                    for (var n, i, r, c = o.length, u = l[e]._aSortData, d = l[t]._aSortData, h = 0; h < c; h++)
                        if (n = u[(r = o[h]).col], i = d[r.col], 0 !== (r = (s[r.type + "-" + r.dir] || s["string-" + r.dir])(n, i))) return r;
                    return (n = a[e]) < (i = a[t]) ? -1 : i < n ? 1 : 0
                }))
            }
            e.bSorted = !0
        }

        function Ze(e) {
            for (var t = e.aoColumns, n = Ke(e), i = e.oLanguage.oAria, r = 0, o = t.length; r < o; r++) {
                var a = t[r],
                    s = a.asSorting,
                    l = a.ariaTitle || a.sTitle.replace(/<.*?>/g, ""),
                    c = a.nTh;
                c.removeAttribute("aria-sort"), a = a.bSortable ? l + ("asc" === (0 < n.length && n[0].col == r && (c.setAttribute("aria-sort", "asc" == n[0].dir ? "ascending" : "descending"), s[n[0].index + 1]) || s[0]) ? i.sSortAscending : i.sSortDescending) : l, c.setAttribute("aria-label", a)
            }
        }

        function Je(t, n, r, o) {
            function a(t, n) {
                var r = t._idx;
                return (r = r === i ? e.inArray(t[1], u) : r) + 1 < u.length ? r + 1 : n ? null : 0
            }
            var s, l = t.aoColumns[n],
                c = t.aaSorting,
                u = l.asSorting;
            "number" == typeof c[0] && (c = t.aaSorting = [c]), r && t.oFeatures.bSortMulti ? -1 !== (l = e.inArray(n, C(c, "0"))) ? null === (s = null === (s = a(c[l], !0)) && 1 === c.length ? 0 : s) ? c.splice(l, 1) : (c[l][1] = u[s], c[l]._idx = s) : (c.push([n, u[0], 0]), c[c.length - 1]._idx = 0) : c.length && c[0][0] == n ? (s = a(c[0]), c.length = 1, c[0][1] = u[s], c[0]._idx = s) : (c.length = 0, c.push([n, u[0]]), c[0]._idx = 0), le(t), "function" == typeof o && o(t)
        }

        function et(e, t, n, i) {
            var r = e.aoColumns[n];
            ut(t, {}, (function(t) {
                !1 !== r.bSortable && (e.oFeatures.bProcessing ? ($e(e, !0), setTimeout((function() {
                    Je(e, n, t.shiftKey, i), "ssp" !== gt(e) && $e(e, !1)
                }), 0)) : Je(e, n, t.shiftKey, i))
            }))
        }

        function tt(t) {
            var n, i, r, o = t.aLastSort,
                a = t.oClasses.sSortColumn,
                s = Ke(t),
                l = t.oFeatures;
            if (l.bSort && l.bSortClasses) {
                for (n = 0, i = o.length; n < i; n++) r = o[n].src, e(C(t.aoData, "anCells", r)).removeClass(a + (n < 2 ? n + 1 : 3));
                for (n = 0, i = s.length; n < i; n++) r = s[n].src, e(C(t.aoData, "anCells", r)).addClass(a + (n < 2 ? n + 1 : 3))
            }
            t.aLastSort = s
        }

        function nt(e, t) {
            for (var n, i, r, o = e.aoColumns[t], a = p.ext.order[o.sSortDataType], s = (a && (n = a.call(e.oInstance, e, t, j(e, t))), p.ext.type.order[o.sType + "-pre"]), l = 0, c = e.aoData.length; l < c; l++)(i = e.aoData[l])._aSortData || (i._aSortData = []), i._aSortData[t] && !a || (r = a ? n[l] : U(e, l, t, "sort"), i._aSortData[t] = s ? s(r) : r)
        }

        function it(t) {
            var n;
            t._bLoadingState || (n = {
                time: +new Date,
                start: t._iDisplayStart,
                length: t._iDisplayLength,
                order: e.extend(!0, [], t.aaSorting),
                search: Ae(t.oPreviousSearch),
                columns: e.map(t.aoColumns, (function(e, n) {
                    return {
                        visible: e.bVisible,
                        search: Ae(t.aoPreSearchCols[n])
                    }
                }))
            }, t.oSavedState = n, ht(t, "aoStateSaveParams", "stateSaveParams", [t, n]), t.oFeatures.bStateSave && !t.bDestroying && t.fnStateSaveCallback.call(t.oInstance, t, n))
        }

        function rt(e, t, n) {
            var r;
            if (e.oFeatures.bStateSave) return (r = e.fnStateLoadCallback.call(e.oInstance, e, (function(t) {
                ot(e, t, n)
            }))) !== i && ot(e, r, n), !0;
            n()
        }

        function ot(t, n, r) {
            var o, a, s = t.aoColumns,
                l = (t._bLoadingState = !0, t._bInitComplete ? new p.Api(t) : null);
            if (n && n.time) {
                var c = ht(t, "aoStateLoadParams", "stateLoadParams", [t, n]);
                if (-1 !== e.inArray(!1, c)) t._bLoadingState = !1;
                else if (0 < (c = t.iStateDuration) && n.time < +new Date - 1e3 * c) t._bLoadingState = !1;
                else if (n.columns && s.length !== n.columns.length) t._bLoadingState = !1;
                else {
                    if (t.oLoadedState = e.extend(!0, {}, n), n.length !== i && (l ? l.page.len(n.length) : t._iDisplayLength = n.length), n.start !== i && (null === l ? (t._iDisplayStart = n.start, t.iInitDisplayStart = n.start) : Re(t, n.start / t._iDisplayLength)), 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, De(n.search)), n.columns) {
                        for (o = 0, a = n.columns.length; o < a; o++) {
                            var u = n.columns[o];
                            u.visible !== i && (l ? l.column(o).visible(u.visible, !1) : s[o].bVisible = u.visible), u.search !== i && e.extend(t.aoPreSearchCols[o], De(u.search))
                        }
                        l && l.columns.adjust()
                    }
                    t._bLoadingState = !1, ht(t, "aoStateLoaded", "stateLoaded", [t, n])
                }
            } else t._bLoadingState = !1;
            r()
        }

        function at(t) {
            var n = p.settings;
            return -1 !== (t = e.inArray(t, C(n, "nTable"))) ? n[t] : null
        }

        function st(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 = p.ext).sErrMode || n.errMode, e && ht(e, null, "error", [e, r, i]), "alert" == n) alert(i);
            else {
                if ("throw" == n) throw new Error(i);
                "function" == typeof n && n(e, r, i)
            }
        }

        function lt(t, n, r, o) {
            Array.isArray(r) ? e.each(r, (function(e, i) {
                Array.isArray(i) ? lt(t, n, i[0], i[1]) : lt(t, n, i)
            })) : (o === i && (o = r), n[r] !== i && (t[o] = n[r]))
        }

        function ct(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)) : i && "data" !== o && "aaData" !== o && Array.isArray(r) ? t[o] = r.slice() : t[o] = r);
            return t
        }

        function ut(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 dt(e, t, n, i) {
            n && e[t].push({
                fn: n,
                sName: i
            })
        }

        function ht(t, n, i, r) {
            var o = [];
            return n && (o = e.map(t[n].slice().reverse(), (function(e, n) {
                return e.fn.apply(t.oInstance, r)
            }))), null !== i && (n = e.Event(i + ".dt"), (i = e(t.nTable)).trigger(n, r), 0 === i.parents("body").length && e("body").trigger(n, r), o.push(n.result)), o
        }

        function ft(e) {
            var t = e._iDisplayStart,
                n = e.fnDisplayEnd(),
                i = e._iDisplayLength;
            n <= t && (t = n - i), t -= t % i, e._iDisplayStart = t = -1 === i || t < 0 ? 0 : t
        }

        function pt(t, n) {
            t = t.renderer;
            var i = p.ext.renderer[n];
            return e.isPlainObject(t) && t[n] ? i[t[n]] || i._ : "string" == typeof t && i[t] || i._
        }

        function gt(e) {
            return e.oFeatures.bServerSide ? "ssp" : e.ajax || e.sAjaxSource ? "ajax" : "dom"
        }

        function mt(e, t, n) {
            var i, r;
            n && (i = new St(e)).one("draw", (function() {
                n(i.ajax.json())
            })), "ssp" == gt(e) ? le(e, t) : ($e(e, !0), (r = e.jqXHR) && 4 !== r.readyState && r.abort(), he(e, [], (function(n) {
                J(e);
                for (var i = me(e, n), r = 0, o = i.length; r < o; r++) q(e, i[r]);
                le(e, t), $e(e, !1)
            })))
        }

        function vt(e, t, n, r, o) {
            for (var a, s, l, c, u = [], h = typeof t, f = 0, p = (t = t && "string" != h && "function" != h && t.length !== i ? t : [t]).length; f < p; f++)
                for (l = 0, c = (s = t[f] && t[f].split && !t[f].match(/[\[\(:]/) ? t[f].split(",") : [t[f]]).length; l < c; l++)(a = n("string" == typeof s[l] ? s[l].trim() : s[l])) && a.length && (u = u.concat(a));
            var g = d.selector[e];
            if (g.length)
                for (f = 0, p = g.length; f < p; f++) u = g[f](r, o, u);
            return S(u)
        }

        function yt(t) {
            return (t = t || {}).filter && t.search === i && (t.search = t.filter), e.extend({
                search: "none",
                order: "current",
                page: "all"
            }, t)
        }

        function bt(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
        }

        function wt(t, n) {
            var i = t.context;
            if (i.length && t.length && (a = i[0].aoData[t[0]])._details) {
                (a._detailsShow = n) ? (a._details.insertAfter(a.nTr), e(a.nTr).addClass("dt-hasChild")) : (a._details.detach(), e(a.nTr).removeClass("dt-hasChild")), ht(i[0], null, "childRow", [n, t.row(t[0])]);
                var r = i[0],
                    o = new St(r),
                    a = (n = "draw" + (a = ".dt.DT_details"), t = "column-sizing" + a, "destroy" + a),
                    s = r.aoData;
                o.off(n + " " + t + " " + a), C(s, "_details").length > 0 && (o.on(n, (function(e, t) {
                    r === t && o.rows({
                        page: "current"
                    }).eq(0).each((function(e) {
                        var t = s[e];
                        t._detailsShow && t._details.insertAfter(t.nTr)
                    }))
                })), o.on(t, (function(e, t, n, i) {
                    if (r === t)
                        for (var o, a = $(t), l = 0, c = s.length; l < c; l++)(o = s[l])._details && o._details.children("td[colspan]").attr("colspan", a)
                })), o.on(a, (function(e, t) {
                    if (r === t)
                        for (var n = 0, i = s.length; n < i; n++) s[n]._details && At(o, n)
                }))), Tt(i)
            }
        }

        function xt(e, t, n, i, r) {
            for (var o = [], a = 0, s = r.length; a < s; a++) o.push(U(e, r[a], t));
            return o
        }
        var _t = [],
            Ct = Array.prototype,
            St = function(t, n) {
                if (!(this instanceof St)) return new St(t, n);

                function i(t) {
                    var n, i, o, a;
                    t = t, o = p.settings, a = e.map(o, (function(e, t) {
                        return e.nTable
                    })), (t = t ? t.nTable && t.oApi ? [t] : t.nodeName && "table" === t.nodeName.toLowerCase() ? -1 !== (n = e.inArray(t, a)) ? [o[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(t) {
                        return -1 !== (n = e.inArray(this, a)) ? o[n] : null
                    })).toArray() : void 0) : []) && r.push.apply(r, t)
                }
                var r = [];
                if (Array.isArray(t))
                    for (var o = 0, a = t.length; o < a; o++) i(t[o]);
                else i(t);
                this.context = S(r), n && e.merge(this, n), this.selector = {
                    rows: null,
                    cols: null,
                    opts: null
                }, St.extend(this, this, _t)
            },
            kt = (p.Api = St, e.extend(St.prototype, {
                any: function() {
                    return 0 !== this.count()
                },
                concat: Ct.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 St(t[e], this[e]) : null
                },
                filter: function(e) {
                    var t = [];
                    if (Ct.filter) t = Ct.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 St(this.context, t)
                },
                flatten: function() {
                    var e = [];
                    return new St(this.context, e.concat.apply(e, this.toArray()))
                },
                join: Ct.join,
                indexOf: Ct.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 = [],
                        p = this.context,
                        g = this.selector;
                    for ("string" == typeof e && (r = n, n = t, t = e, e = !1), a = 0, s = p.length; a < s; a++) {
                        var m = new St(p[a]);
                        if ("table" === t)(o = n.call(m, p[a], a)) !== i && f.push(o);
                        else if ("columns" === t || "rows" === t)(o = n.call(m, p[a], this[a], a)) !== i && f.push(o);
                        else if ("column" === t || "column-rows" === t || "row" === t || "cell" === t)
                            for (d = this[a], "column-rows" === t && (u = kt(p[a], g.opts)), l = 0, c = d.length; l < c; l++) h = d[l], (o = "cell" === t ? n.call(m, p[a], h.row, h.column, a, l) : n.call(m, p[a], h, a, l, u)) !== i && f.push(o)
                    }
                    return f.length || r ? ((e = (r = new St(p, e ? f.concat.apply([], f) : f)).selector).rows = g.rows, e.cols = g.cols, e.opts = g.opts, r) : this
                },
                lastIndexOf: Ct.lastIndexOf || function(e, t) {
                    return this.indexOf.apply(this.toArray.reverse(), arguments)
                },
                length: 0,
                map: function(e) {
                    var t = [];
                    if (Ct.map) t = Ct.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 St(this.context, t)
                },
                pluck: function(e) {
                    var t = p.util.get(e);
                    return this.map((function(e) {
                        return t(e)
                    }))
                },
                pop: Ct.pop,
                push: Ct.push,
                reduce: Ct.reduce || function(e, t) {
                    return P(this, e, t, 0, this.length, 1)
                },
                reduceRight: Ct.reduceRight || function(e, t) {
                    return P(this, e, t, this.length - 1, -1, -1)
                },
                reverse: Ct.reverse,
                selector: null,
                shift: Ct.shift,
                slice: function() {
                    return new St(this.context, this)
                },
                sort: Ct.sort,
                splice: Ct.splice,
                toArray: function() {
                    return Ct.slice.call(this)
                },
                to$: function() {
                    return e(this)
                },
                toJQuery: function() {
                    return e(this)
                },
                unique: function() {
                    return new St(this.context, S(this))
                },
                unshift: Ct.unshift
            }), St.extend = function(e, t, n) {
                if (n.length && t && (t instanceof St || t.__dt_wrapper))
                    for (var i, r = 0, o = n.length; r < o; r++) t[(i = n[r]).name] = "function" === i.type ? function(e, t, n) {
                        return function() {
                            var i = t.apply(e, arguments);
                            return St.extend(i, i, n.methodExt), i
                        }
                    }(e, i.val, i) : "object" === i.type ? {} : i.val, t[i.name].__dt_wrapper = !0, St.extend(e, t[i.name], i.propExt)
            }, St.register = h = function(t, n) {
                if (Array.isArray(t))
                    for (var i = 0, r = t.length; i < r; i++) St.register(t[i], n);
                else
                    for (var o = t.split("."), a = _t, s = 0, l = o.length; s < l; s++) {
                        var c, u, d = function(e, t) {
                            for (var n = 0, i = e.length; n < i; n++)
                                if (e[n].name === t) return e[n];
                            return null
                        }(a, u = (c = -1 !== o[s].indexOf("()")) ? o[s].replace("()", "") : o[s]);
                        d || a.push(d = {
                            name: u,
                            val: {},
                            methodExt: [],
                            propExt: [],
                            type: "object"
                        }), s === l - 1 ? (d.val = n, d.type = "function" == typeof n ? "function" : e.isPlainObject(n) ? "object" : "other") : a = c ? d.methodExt : d.propExt
                    }
            }, St.registerPlural = f = function(e, t, n) {
                St.register(e, n), St.register(t, (function() {
                    var e = n.apply(this, arguments);
                    return e === this ? this : e instanceof St ? e.length ? Array.isArray(e[0]) ? new St(e.context, e[0]) : e[0] : i : e
                }))
            }, h("tables()", (function(t) {
                return t !== i && null !== t ? new St(function t(n, i) {
                    var r;
                    return Array.isArray(n) ? e.map(n, (function(e) {
                        return t(e, i)
                    })) : "number" == typeof n ? [i[n]] : (r = e.map(i, (function(e, t) {
                        return e.nTable
                    })), e(r).filter(n).map((function(t) {
                        var n = e.inArray(this, r);
                        return i[n]
                    })).toArray())
                }(t, this.context)) : this
            })), h("table()", (function(e) {
                var t = (e = this.tables(e)).context;
                return t.length ? new St(t[0]) : e
            })), f("tables().nodes()", "table().node()", (function() {
                return this.iterator("table", (function(e) {
                    return e.nTable
                }), 1)
            })), f("tables().body()", "table().body()", (function() {
                return this.iterator("table", (function(e) {
                    return e.nTBody
                }), 1)
            })), f("tables().header()", "table().header()", (function() {
                return this.iterator("table", (function(e) {
                    return e.nTHead
                }), 1)
            })), f("tables().footer()", "table().footer()", (function() {
                return this.iterator("table", (function(e) {
                    return e.nTFoot
                }), 1)
            })), f("tables().containers()", "table().container()", (function() {
                return this.iterator("table", (function(e) {
                    return e.nTableWrapper
                }), 1)
            })), h("draw()", (function(e) {
                return this.iterator("table", (function(t) {
                    "page" === e ? se(t) : le(t, !1 === (e = "string" == typeof e ? "full-hold" !== e : e))
                }))
            })), h("page()", (function(e) {
                return e === i ? this.page.info().page : this.iterator("table", (function(t) {
                    Re(t, e)
                }))
            })), h("page.info()", (function(e) {
                var t, n, r, o, a;
                return 0 === this.context.length ? i : (n = (t = this.context[0])._iDisplayStart, r = t.oFeatures.bPaginate ? t._iDisplayLength : -1, o = t.fnRecordsDisplay(), {
                    page: (a = -1 === r) ? 0 : Math.floor(n / r),
                    pages: a ? 1 : Math.ceil(o / r),
                    start: n,
                    end: t.fnDisplayEnd(),
                    length: r,
                    recordsTotal: t.fnRecordsTotal(),
                    recordsDisplay: o,
                    serverSide: "ssp" === gt(t)
                })
            })), h("page.len()", (function(e) {
                return e === i ? 0 !== this.context.length ? this.context[0]._iDisplayLength : i : this.iterator("table", (function(t) {
                    Le(t, e)
                }))
            })), h("ajax.json()", (function() {
                var e = this.context;
                if (0 < e.length) return e[0].json
            })), h("ajax.params()", (function() {
                var e = this.context;
                if (0 < e.length) return e[0].oAjaxData
            })), h("ajax.reload()", (function(e, t) {
                return this.iterator("table", (function(n) {
                    mt(n, !1 === t, e)
                }))
            })), h("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
                }))
            })), h("ajax.url().load()", (function(e, t) {
                return this.iterator("table", (function(n) {
                    mt(n, !1 === t, e)
                }))
            })), function(t, n) {
                var i, r = [],
                    o = t.aiDisplay,
                    a = t.aiDisplayMaster,
                    s = n.search,
                    c = n.order;
                n = n.page;
                if ("ssp" == gt(t)) return "removed" === s ? [] : l(0, a.length);
                if ("current" == n)
                    for (d = t._iDisplayStart, h = t.fnDisplayEnd(); d < h; d++) r.push(o[d]);
                else if ("current" == c || "applied" == c) {
                    if ("none" == s) r = a.slice();
                    else if ("applied" == s) r = o.slice();
                    else if ("removed" == s) {
                        for (var u = {}, d = 0, h = o.length; d < h; d++) u[o[d]] = null;
                        r = e.map(a, (function(e) {
                            return u.hasOwnProperty(e) ? null : e
                        }))
                    }
                } else if ("index" == c || "original" == c)
                    for (d = 0, h = t.aoData.length; d < h; d++)("none" == s || -1 === (i = e.inArray(d, o)) && "removed" == s || 0 <= i && "applied" == s) && r.push(d);
                return r
            }),
            Tt = (h("rows()", (function(t, n) {
                t === i ? t = "" : e.isPlainObject(t) && (n = t, t = ""), n = yt(n);
                var o = this.iterator("table", (function(o) {
                    return vt("row", t, (function(t) {
                        var n = r(t),
                            o = a.aoData;
                        if (null !== n && !l) return [n];
                        if (u = u || kt(a, l), null !== n && -1 !== e.inArray(n, u)) return [n];
                        if (null === t || t === i || "" === t) return u;
                        if ("function" == typeof t) return e.map(u, (function(e) {
                            var n = o[e];
                            return t(e, n._aData, n.nTr) ? e : null
                        }));
                        if (t.nodeName) return n = t._DT_RowIndex, d = t._DT_CellIndex, n !== i ? o[n] && o[n].nTr === t ? [n] : [] : d ? o[d.row] && o[d.row].nTr === t.parentNode ? [d.row] : [] : (n = e(t).closest("*[data-dt-row]")).length ? [n.data("dt-row")] : [];
                        if ("string" == typeof t && "#" === t.charAt(0)) {
                            var d = a.aIds[t.replace(/^#/, "")];
                            if (d !== i) return [d.idx]
                        }
                        return n = c(s(a.aoData, u, "nTr")), e(n).filter(t).map((function() {
                            return this._DT_RowIndex
                        })).toArray()
                    }), a = o, l = n);
                    var a, l, u
                }), 1);
                return o.selector.rows = t, o.selector.opts = n, o
            })), h("rows().nodes()", (function() {
                return this.iterator("row", (function(e, t) {
                    return e.aoData[t].nTr || i
                }), 1)
            })), h("rows().data()", (function() {
                return this.iterator(!0, "rows", (function(e, t) {
                    return s(e.aoData, t, "_aData")
                }), 1)
            })), f("rows().cache()", "row().cache()", (function(e) {
                return this.iterator("row", (function(t, n) {
                    return t = t.aoData[n], "search" === e ? t._aFilterData : t._aSortData
                }), 1)
            })), f("rows().invalidate()", "row().invalidate()", (function(e) {
                return this.iterator("row", (function(t, n) {
                    te(t, n, e)
                }))
            })), f("rows().indexes()", "row().index()", (function() {
                return this.iterator("row", (function(e, t) {
                    return t
                }), 1)
            })), f("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 St(n, t)
            })), f("rows().remove()", "row().remove()", (function() {
                var e = this;
                return this.iterator("row", (function(t, n, r) {
                    var o, a, s, l, c, u, d = t.aoData,
                        h = d[n];
                    for (d.splice(n, 1), o = 0, a = d.length; o < a; o++)
                        if (u = (c = d[o]).anCells, null !== c.nTr && (c.nTr._DT_RowIndex = o), null !== u)
                            for (s = 0, l = u.length; s < l; s++) u[s]._DT_CellIndex.row = o;
                    ee(t.aiDisplayMaster, n), ee(t.aiDisplay, n), ee(e[r], n, !1), 0 < t._iRecordsDisplay && t._iRecordsDisplay--, ft(t), (r = t.rowIdFn(h._aData)) !== i && delete t.aIds[r]
                })), this.iterator("table", (function(e) {
                    for (var t = 0, n = e.aoData.length; t < n; t++) e.aoData[t].idx = t
                })), this
            })), h("rows.add()", (function(t) {
                var n = this.iterator("table", (function(e) {
                        for (var n, i = [], r = 0, o = t.length; r < o; r++)(n = t[r]).nodeName && "TR" === n.nodeName.toUpperCase() ? i.push(W(e, n)[0]) : i.push(q(e, n));
                        return i
                    }), 1),
                    i = this.rows(-1);
                return i.pop(), e.merge(i, n), i
            })), h("row()", (function(e, t) {
                return bt(this.rows(e, t))
            })), h("row().data()", (function(e) {
                var t, n = this.context;
                return e === i ? n.length && this.length ? n[0].aoData[this[0]]._aData : i : ((t = n[0].aoData[this[0]])._aData = e, Array.isArray(e) && t.nTr && t.nTr.id && Q(n[0].rowId)(e, t.nTr.id), te(n[0], this[0], "data"), this)
            })), h("row().node()", (function() {
                var e = this.context;
                return e.length && this.length && e[0].aoData[this[0]].nTr || null
            })), h("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() ? W(e, t)[0] : q(e, t)
                }));
                return this.row(n[0])
            })), e(n).on("plugin-init.dt", (function(t, n) {
                var i, r = new St(n),
                    o = "stateSaveParams." + (i = "on-plugin-init"),
                    a = "destroy. " + i;
                (i = (r.on(o, (function(e, t, n) {
                    for (var i = t.rowIdFn, r = t.aoData, o = [], a = 0; a < r.length; a++) r[a]._detailsShow && o.push("#" + i(r[a]._aData));
                    n.childRows = o
                })), r.on(a, (function() {
                    r.off(o + " " + a)
                })), r.state.loaded())) && i.childRows && r.rows(e.map(i.childRows, (function(e) {
                    return e.replace(/:/g, "\\:")
                }))).every((function() {
                    ht(n, null, "requestChild", [this])
                }))
            })), p.util.throttle((function(e) {
                it(e[0])
            }), 500)),
            At = function(t, n) {
                var r = t.context;
                r.length && (n = r[0].aoData[n !== i ? n : t[0]]) && n._details && (n._details.remove(), n._detailsShow = i, n._details = i, e(n.nTr).removeClass("dt-hasChild"), Tt(r))
            },
            Dt = "row().child",
            Et = Dt + "()",
            Ot = (h(Et, (function(t, n) {
                var r = this.context;
                return t === i ? r.length && this.length ? r[0].aoData[this[0]]._details : i : (!0 === t ? this.child.show() : !1 === t ? At(this) : r.length && this.length && function(t, n, i, r) {
                    var o = [];
                    (function n(i, r) {
                        var a;
                        if (Array.isArray(i) || i instanceof e)
                            for (var s = 0, l = i.length; s < l; s++) n(i[s], r);
                        else i.nodeName && "tr" === i.nodeName.toLowerCase() ? o.push(i) : (a = e("<tr><td></td></tr>").addClass(r), e("td", a).addClass(r).html(i)[0].colSpan = $(t), o.push(a[0]))
                    })(i, r), n._details && n._details.detach(), n._details = e(o), n._detailsShow && n._details.insertAfter(n.nTr)
                }(r[0], r[0].aoData[this[0]], t, n), this)
            })), h([Dt + ".show()", Et + ".show()"], (function(e) {
                return wt(this, !0), this
            })), h([Dt + ".hide()", Et + ".hide()"], (function() {
                return wt(this, !1), this
            })), h([Dt + ".remove()", Et + ".remove()"], (function() {
                return At(this), this
            })), h(Dt + ".isShown()", (function() {
                var e = this.context;
                return e.length && this.length && e[0].aoData[this[0]]._detailsShow || !1
            })), /^([^:]+):(name|visIdx|visible)$/),
            Mt = (h("columns()", (function(t, n) {
                t === i ? t = "" : e.isPlainObject(t) && (n = t, t = ""), n = yt(n);
                var o = this.iterator("table", (function(i) {
                    return a = t, s = n, c = (o = i).aoColumns, u = C(c, "sName"), d = C(c, "nTh"), vt("column", a, (function(t) {
                        var n, i = r(t);
                        if ("" === t) return l(c.length);
                        if (null !== i) return [0 <= i ? i : c.length + i];
                        if ("function" == typeof t) return n = kt(o, s), e.map(c, (function(e, i) {
                            return t(i, xt(o, i, 0, 0, n), d[i]) ? i : null
                        }));
                        var a = "string" == typeof t ? t.match(Ot) : "";
                        if (a) switch (a[2]) {
                            case "visIdx":
                            case "visible":
                                var h, f = parseInt(a[1], 10);
                                return f < 0 ? [(h = e.map(c, (function(e, t) {
                                    return e.bVisible ? t : null
                                })))[h.length + f]] : [R(o, f)];
                            case "name":
                                return e.map(u, (function(e, t) {
                                    return e === a[1] ? t : null
                                }));
                            default:
                                return []
                        }
                        return t.nodeName && t._DT_CellIndex ? [t._DT_CellIndex.column] : (i = e(d).filter(t).map((function() {
                            return e.inArray(this, d)
                        })).toArray()).length || !t.nodeName ? i : (i = e(t).closest("*[data-dt-column]")).length ? [i.data("dt-column")] : []
                    }), o, s);
                    var o, a, s, c, u, d
                }), 1);
                return o.selector.cols = t, o.selector.opts = n, o
            })), f("columns().header()", "column().header()", (function(e, t) {
                return this.iterator("column", (function(e, t) {
                    return e.aoColumns[t].nTh
                }), 1)
            })), f("columns().footer()", "column().footer()", (function(e, t) {
                return this.iterator("column", (function(e, t) {
                    return e.aoColumns[t].nTf
                }), 1)
            })), f("columns().data()", "column().data()", (function() {
                return this.iterator("column-rows", xt, 1)
            })), f("columns().dataSrc()", "column().dataSrc()", (function() {
                return this.iterator("column", (function(e, t) {
                    return e.aoColumns[t].mData
                }), 1)
            })), f("columns().cache()", "column().cache()", (function(e) {
                return this.iterator("column-rows", (function(t, n, i, r, o) {
                    return s(t.aoData, o, "search" === e ? "_aFilterData" : "_aSortData", n)
                }), 1)
            })), f("columns().nodes()", "column().nodes()", (function() {
                return this.iterator("column-rows", (function(e, t, n, i, r) {
                    return s(e.aoData, r, "anCells", t)
                }), 1)
            })), f("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 = r,
                            l = (r = t, n.aoColumns),
                            c = l[s],
                            u = n.aoData;
                        if (r === i) c.bVisible;
                        else if (c.bVisible !== r) {
                            if (r)
                                for (var d = e.inArray(!0, C(l, "bVisible"), s + 1), h = 0, f = u.length; h < f; h++) a = u[h].nTr, o = u[h].anCells, a && a.insertBefore(o[s], o[d] || null);
                            else e(C(n.aoData, "anCells", s)).detach();
                            c.bVisible = r
                        }
                    }));
                return t !== i && this.iterator("table", (function(o) {
                    ae(o, o.aoHeader), ae(o, o.aoFooter), o.aiDisplay.length || e(o.nTBody).find("td[colspan]").attr("colspan", $(o)), it(o), r.iterator("column", (function(e, i) {
                        ht(e, null, "column-visibility", [e, i, t, n])
                    })), n !== i && !n || r.columns.adjust()
                })), o
            })), f("columns().indexes()", "column().index()", (function(e) {
                return this.iterator("column", (function(t, n) {
                    return "visible" === e ? j(t, n) : n
                }), 1)
            })), h("columns.adjust()", (function() {
                return this.iterator("table", (function(e) {
                    F(e)
                }), 1)
            })), h("column.index()", (function(e, t) {
                var n;
                if (0 !== this.context.length) return n = this.context[0], "fromVisible" === e || "toData" === e ? R(n, t) : "fromData" === e || "toVisible" === e ? j(n, t) : void 0
            })), h("column()", (function(e, t) {
                return bt(this.columns(e, t))
            })), h("cells()", (function(t, n, r) {
                var o, a, l, u, d, h, f;
                return 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 ? this.iterator("table", (function(n) {
                    return o = n, n = t, a = yt(r), m = o.aoData, v = kt(o, a), y = c(s(m, v, "anCells")), b = e(k([], y)), w = o.aoColumns.length, vt("cell", n, (function(t) {
                        var n, r = "function" == typeof t;
                        if (null === t || t === i || r) {
                            for (u = [], d = 0, h = v.length; d < h; d++)
                                for (l = v[d], f = 0; f < w; f++) p = {
                                    row: l,
                                    column: f
                                }, (!r || (g = m[l], t(p, U(o, l, f), g.anCells ? g.anCells[f] : null))) && u.push(p);
                            return u
                        }
                        return e.isPlainObject(t) ? t.column !== i && t.row !== i && -1 !== e.inArray(t.row, v) ? [t] : [] : (n = b.filter(t).map((function(e, t) {
                            return {
                                row: t._DT_CellIndex.row,
                                column: t._DT_CellIndex.column
                            }
                        })).toArray()).length || !t.nodeName ? n : (g = e(t).closest("*[data-dt-row]")).length ? [{
                            row: g.data("dt-row"),
                            column: g.data("dt-column")
                        }] : []
                    }), o, a);
                    var o, a, l, u, d, h, f, p, g, m, v, y, b, w
                })) : (f = r ? {
                    page: r.page,
                    order: r.order,
                    search: r.search
                } : {}, o = this.columns(n, f), a = this.rows(t, f), f = this.iterator("table", (function(e, t) {
                    var n = [];
                    for (l = 0, u = a[t].length; l < u; l++)
                        for (d = 0, h = o[t].length; d < h; d++) n.push({
                            row: a[t][l],
                            column: o[t][d]
                        });
                    return n
                }), 1), f = r && r.selected ? this.cells(f, r) : f, e.extend(f.selector, {
                    cols: n,
                    rows: t,
                    opts: r
                }), f)
            })), f("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)
            })), h("cells().data()", (function() {
                return this.iterator("cell", (function(e, t, n) {
                    return U(e, t, n)
                }), 1)
            })), f("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)
            })), f("cells().render()", "cell().render()", (function(e) {
                return this.iterator("cell", (function(t, n, i) {
                    return U(t, n, i, e)
                }), 1)
            })), f("cells().indexes()", "cell().index()", (function() {
                return this.iterator("cell", (function(e, t, n) {
                    return {
                        row: t,
                        column: n,
                        columnVisible: j(e, n)
                    }
                }), 1)
            })), f("cells().invalidate()", "cell().invalidate()", (function(e) {
                return this.iterator("cell", (function(t, n, i) {
                    te(t, n, e, i)
                }))
            })), h("cell()", (function(e, t, n) {
                return bt(this.cells(e, t, n))
            })), h("cell().data()", (function(e) {
                var t = this.context,
                    n = this[0];
                return e === i ? t.length && n.length ? U(t[0], n[0].row, n[0].column) : i : (V(t[0], n[0].row, n[0].column, e), te(t[0], n[0].row, "data", n[0].column), this)
            })), h("order()", (function(e, t) {
                var n = this.context;
                return e === i ? 0 !== n.length ? n[0].aaSorting : i : ("number" == typeof e ? e = [
                    [e, t]
                ] : e.length && !Array.isArray(e[0]) && (e = Array.prototype.slice.call(arguments)), this.iterator("table", (function(t) {
                    t.aaSorting = e.slice()
                })))
            })), h("order.listener()", (function(e, t, n) {
                return this.iterator("table", (function(i) {
                    et(i, e, t, n)
                }))
            })), h("order.fixed()", (function(t) {
                var n;
                return t ? this.iterator("table", (function(n) {
                    n.aaSortingFixed = e.extend(!0, {}, t)
                })) : (n = (n = this.context).length ? n[0].aaSortingFixed : i, Array.isArray(n) ? {
                    pre: n
                } : n)
            })), h(["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
                }))
            })), h("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 && ye(i, e.extend({}, i.oPreviousSearch, {
                        sSearch: t + "",
                        bRegex: null !== n && n,
                        bSmart: null === r || r,
                        bCaseInsensitive: null === o || o
                    }), 1)
                }))
            })), f("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
                    }), ye(a, a.oPreviousSearch, 1))
                }))
            })), h("state()", (function() {
                return this.context.length ? this.context[0].oSavedState : null
            })), h("state.clear()", (function() {
                return this.iterator("table", (function(e) {
                    e.fnStateSaveCallback.call(e.oInstance, e, {})
                }))
            })), h("state.loaded()", (function() {
                return this.context.length ? this.context[0].oLoadedState : null
            })), h("state.save()", (function() {
                return this.iterator("table", (function(e) {
                    it(e)
                }))
            })), p.use = function(i, r) {
                "lib" === r || i.fn ? e = i : "win" != r && !i.document || (n = (t = i).document)
            }, p.factory = function(i, r) {
                var o = !1;
                return i && i.document && (n = (t = i).document), r && r.fn && r.fn.jquery && (e = r, o = !0), o
            }, p.versionCheck = p.fnVersionCheck = function(e) {
                for (var t, n, i = p.version.split("."), r = e.split("."), o = 0, a = r.length; o < a; o++)
                    if ((t = parseInt(i[o], 10) || 0) !== (n = parseInt(r[o], 10) || 0)) return n < t;
                return !0
            }, p.isDataTable = p.fnIsDataTable = function(t) {
                var n = e(t).get(0),
                    i = !1;
                return t instanceof p.Api || (e.each(p.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)
            }, p.tables = p.fnTables = function(t) {
                var n = !1,
                    i = (e.isPlainObject(t) && (n = t.api, t = t.visible), e.map(p.settings, (function(n) {
                        if (!t || e(n.nTable).is(":visible")) return n.nTable
                    })));
                return n ? new St(i) : i
            }, p.camelToHungarian = A, h("$()", (function(t, n) {
                return n = this.rows(n).nodes(), n = e(n), e([].concat(n.filter(t).toArray(), n.find(t).toArray()))
            })), e.each(["on", "one", "off"], (function(t, n) {
                h(n + "()", (function() {
                    var t = Array.prototype.slice.call(arguments),
                        i = (t[0] = e.map(t[0].split(/\s/), (function(e) {
                            return e.match(/\.dt\b/) ? e : e + ".dt"
                        })).join(" "), e(this.tables().nodes()));
                    return i[n].apply(i, t), this
                }))
            })), h("clear()", (function() {
                return this.iterator("table", (function(e) {
                    J(e)
                }))
            })), h("settings()", (function() {
                return new St(this.context, this.context)
            })), h("init()", (function() {
                var e = this.context;
                return e.length ? e[0].oInit : null
            })), h("data()", (function() {
                return this.iterator("table", (function(e) {
                    return C(e.aoData, "_aData")
                })).flatten()
            })), h("destroy()", (function(n) {
                return n = n || !1, this.iterator("table", (function(i) {
                    var r, o = i.oClasses,
                        a = i.nTable,
                        s = i.nTBody,
                        l = i.nTHead,
                        c = i.nTFoot,
                        u = e(a),
                        d = (s = e(s), e(i.nTableWrapper)),
                        h = e.map(i.aoData, (function(e) {
                            return e.nTr
                        }));
                    i.bDestroying = !0, ht(i, "aoDestroyCallback", "destroy", [i]), n || new St(i).columns().visible(!0), d.off(".DT").find(":not(tbody *)").off(".DT"), e(t).off(".DT-" + i.sInstance), a != l.parentNode && (u.children("thead").detach(), u.append(l)), c && a != c.parentNode && (u.children("tfoot").detach(), u.append(c)), i.aaSorting = [], i.aaSortingFixed = [], tt(i), e(h).removeClass(i.asStripeClasses.join(" ")), e("th, td", l).removeClass(o.sSortable + " " + o.sSortableAsc + " " + o.sSortableDesc + " " + o.sSortableNone), s.children().detach(), s.append(h), c = i.nTableWrapper.parentNode; - 1 !== (h = (u[l = n ? "remove" : "detach"](), d[l](), !n && c && (c.insertBefore(a, i.nTableReinsertBefore), u.css("width", i.sDestroyWidth).removeClass(o.sTable), (r = i.asDestroyStripes.length) && s.children().each((function(t) {
                        e(this).addClass(i.asDestroyStripes[t % r])
                    }))), e.inArray(i, p.settings))) && p.settings.splice(h, 1)
                }))
            })), e.each(["column", "row", "cell"], (function(e, t) {
                h(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)
                    }))
                }))
            })), h("i18n()", (function(t, n, r) {
                var o = this.context[0];
                return (t = K(t)(o.oLanguage)) === i && (t = n), (t = r !== i && e.isPlainObject(t) ? t[r] !== i ? t[r] : t._ : t).replace("%d", r)
            })), p.version = "1.13.4", p.settings = [], p.models = {}, p.models.oSearch = {
                bCaseInsensitive: !0,
                sSearch: "",
                bRegex: !1,
                bSmart: !0,
                return: !1
            }, p.models.oRow = {
                nTr: null,
                anCells: null,
                _aData: [],
                _aSortData: null,
                _aFilterData: null,
                _sFilterRow: null,
                _sRowStripe: "",
                src: null,
                idx: -1
            }, p.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
            }, p.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: "",
                    sSearch: "Search:",
                    sSearchPlaceholder: "",
                    sUrl: "",
                    sZeroRecords: "No matching records found"
                },
                oSearch: e.extend({}, p.models.oSearch),
                sAjaxDataProp: "data",
                sAjaxSource: null,
                sDom: "lfrtip",
                searchDelay: null,
                sPaginationType: "simple_numbers",
                sScrollX: "",
                sScrollXInner: "",
                sScrollY: "",
                sServerMethod: "GET",
                renderer: null,
                rowId: "DT_RowId"
            }, T(p.defaults), p.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
            }, T(p.defaults.column), p.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,
                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" == gt(this) ? +this._iRecordsTotal : this.aiDisplayMaster.length
                },
                fnRecordsDisplay: function() {
                    return "ssp" == gt(this) ? +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 || i < n || -1 === e ? i : n
                },
                oInstance: null,
                sInstance: null,
                iTabIndex: 0,
                nScrollHead: null,
                nScrollFoot: null,
                aLastSort: [],
                oPlugins: {},
                rowIdFn: null,
                rowId: null
            }, p.ext = d = {
                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: p.fnVersionCheck,
                iApiIndex: 0,
                oJUIClasses: {},
                sVersion: p.version
            }, e.extend(d, {
                afnFiltering: d.search,
                aTypes: d.type.detect,
                ofnSearch: d.type.search,
                oSort: d.type.order,
                afnSortData: d.order,
                aoFeatures: d.feature,
                oApi: d.internal,
                oStdClasses: d.classes,
                oPagination: d.pager
            }), e.extend(p.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_desc_disabled",
                sSortableDesc: "sorting_asc_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: ""
            }), p.ext.pager);

        function It(e, t) {
            var n = [],
                i = Mt.numbers_length,
                r = Math.floor(i / 2);
            return t <= i ? n = l(0, t) : e <= r ? ((n = l(0, i - 2)).push("ellipsis"), n.push(t - 1)) : ((t - 1 - r <= e ? n = l(t - (i - 2), t) : ((n = l(e - r + 2, e + r - 1)).push("ellipsis"), n.push(t - 1), n)).splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n
        }

        function Pt(e, t, n, i) {
            var r;
            return 0 === e || e && "-" !== e ? "number" == (r = typeof e) || "bigint" == r ? e : ((e = t ? _(e, t) : e).replace && (n && (e = e.replace(n, "")), i && (e = e.replace(i, ""))), +e) : -1 / 0
        }

        function Lt(t) {
            e.each({
                num: function(e) {
                    return Pt(e, t)
                },
                "num-fmt": function(e) {
                    return Pt(e, t, w)
                },
                "html-num": function(e) {
                    return Pt(e, t, v)
                },
                "html-num-fmt": function(e) {
                    return Pt(e, t, v, w)
                }
            }, (function(e, n) {
                d.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (d.type.search[e + t] = d.type.search.html)
            }))
        }

        function Nt(e) {
            return "string" == typeof(e = Array.isArray(e) ? e.join(",") : e) ? e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;") : e
        }

        function Ft(e, n, i, r, o) {
            return t.moment ? e[n](o) : t.luxon ? e[i](o) : r ? e[r](o) : e
        }
        e.extend(Mt, {
            simple: function(e, t) {
                return ["previous", "next"]
            },
            full: function(e, t) {
                return ["first", "previous", "next", "last"]
            },
            numbers: function(e, t) {
                return [It(e, t)]
            },
            simple_numbers: function(e, t) {
                return ["previous", It(e, t), "next"]
            },
            full_numbers: function(e, t) {
                return ["first", "previous", It(e, t), "next", "last"]
            },
            first_last_numbers: function(e, t) {
                return ["first", It(e, t), "last"]
            },
            _numbers: It,
            numbers_length: 7
        }), e.extend(!0, p.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 || {};
                    try {
                        d = e(r).find(n.activeElement).data("dt-idx")
                    } catch (r) {}(function n(i, r) {
                        for (var a, d, g, m = h.sPageButtonDisabled, v = function(e) {
                                Re(t, e.data.action, !0)
                            }, y = 0, b = r.length; y < b; y++)
                            if (a = r[y], Array.isArray(a)) {
                                var w = e("<" + (a.DT_el || "div") + "/>").appendTo(i);
                                n(w, a)
                            } else {
                                switch (c = null, u = a, d = t.iTabIndex, a) {
                                    case "ellipsis":
                                        i.append('<span class="ellipsis">&#x2026;</span>');
                                        break;
                                    case "first":
                                        c = f.sFirst, 0 === s && (d = -1, u += " " + m);
                                        break;
                                    case "previous":
                                        c = f.sPrevious, 0 === s && (d = -1, u += " " + m);
                                        break;
                                    case "next":
                                        c = f.sNext, 0 !== l && s !== l - 1 || (d = -1, u += " " + m);
                                        break;
                                    case "last":
                                        c = f.sLast, 0 !== l && s !== l - 1 || (d = -1, u += " " + m);
                                        break;
                                    default:
                                        c = t.fnFormatNumber(a + 1), u = s === a ? h.sPageButtonActive : ""
                                }
                                null !== c && (w = t.oInit.pagingTag || "a", g = -1 !== u.indexOf(m), ut(e("<" + w + ">", {
                                    class: h.sPageButton + " " + u,
                                    "aria-controls": t.sTableId,
                                    "aria-disabled": g ? "true" : null,
                                    "aria-label": p[a],
                                    "aria-role": "link",
                                    "aria-current": u === h.sPageButtonActive ? "page" : null,
                                    "data-dt-idx": a,
                                    tabindex: d,
                                    id: 0 === o && "string" == typeof a ? t.sTableId + "_" + a : null
                                }).html(c).appendTo(i), {
                                    action: a
                                }, v))
                            }
                    })(e(r).empty(), a), d !== i && e(r).find("[data-dt-idx=" + d + "]").trigger("focus")
                }
            }
        }), e.extend(p.ext.type.detect, [function(e, t) {
            return o(e, t = t.oLanguage.sDecimal) ? "num" + t : null
        }, function(e, t) {
            var n;
            return (!e || e instanceof Date || y.test(e)) && (null !== (n = Date.parse(e)) && !isNaN(n) || x(e)) ? "date" : null
        }, function(e, t) {
            return o(e, t = t.oLanguage.sDecimal, !0) ? "num-fmt" + t : null
        }, function(e, t) {
            return a(e, t = t.oLanguage.sDecimal) ? "html-num" + t : null
        }, function(e, t) {
            return a(e, t = t.oLanguage.sDecimal, !0) ? "html-num-fmt" + t : null
        }, function(e, t) {
            return x(e) || "string" == typeof e && -1 !== e.indexOf("<") ? "html" : null
        }]), e.extend(p.ext.type.search, {
            html: function(e) {
                return x(e) ? e : "string" == typeof e ? e.replace(m, " ").replace(v, "") : ""
            },
            string: function(e) {
                return x(e) || "string" != typeof e ? e : e.replace(m, " ")
            }
        }), e.extend(d.type.order, {
            "date-pre": function(e) {
                return e = Date.parse(e), isNaN(e) ? -1 / 0 : e
            },
            "html-pre": function(e) {
                return x(e) ? "" : e.replace ? e.replace(/<.*?>/g, "").toLowerCase() : e + ""
            },
            "string-pre": function(e) {
                return x(e) ? "" : "string" == typeof e ? e.toLowerCase() : e.toString ? e.toString() : ""
            },
            "string-asc": function(e, t) {
                return e < t ? -1 : t < e ? 1 : 0
            },
            "string-desc": function(e, t) {
                return e < t ? 1 : t < e ? -1 : 0
            }
        }), Lt(""), e.extend(!0, p.ext.renderer, {
            header: {
                _: function(t, n, i, r) {
                    e(t.nTable).on("order.dt.DT", (function(e, o, a, s) {
                        t === o && (o = i.idx, n.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[o] ? r.sSortAsc : "desc" == s[o] ? 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 && (o = i.idx, n.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[o] ? r.sSortAsc : "desc" == s[o] ? r.sSortDesc : i.sSortingClass), n.find("span." + r.sSortIcon).removeClass(r.sSortJUIAsc + " " + r.sSortJUIDesc + " " + r.sSortJUI + " " + r.sSortJUIAscAllowed + " " + r.sSortJUIDescAllowed).addClass("asc" == s[o] ? r.sSortJUIAsc : "desc" == s[o] ? r.sSortJUIDesc : i.sSortingClassJUI))
                    }))
                }
            }
        });
        var Rt = !1;

        function jt(e, n, i) {
            var r;
            if (t.moment) {
                if (!(r = t.moment.utc(e, n, i, !0)).isValid()) return null
            } else if (t.luxon) {
                if (!(r = n && "string" == typeof e ? t.luxon.DateTime.fromFormat(e, n) : t.luxon.DateTime.fromISO(e)).isValid) return null;
                r.setLocale(i)
            } else n ? (Rt || alert("DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17"), Rt = !0) : r = new Date(e);
            return r
        }

        function $t(e) {
            return function(t, n, r, o) {
                0 === arguments.length ? (r = "en", t = n = null) : 1 === arguments.length ? (r = "en", n = t, t = null) : 2 === arguments.length && (r = n, n = t, t = null);
                var a = "datetime-" + n;
                return p.ext.type.order[a] || (p.ext.type.detect.unshift((function(e) {
                        return e === a && a
                    })), p.ext.type.order[a + "-asc"] = function(e, t) {
                        return (e = e.valueOf()) === (t = t.valueOf()) ? 0 : e < t ? -1 : 1
                    }, p.ext.type.order[a + "-desc"] = function(e, t) {
                        return (e = e.valueOf()) === (t = t.valueOf()) ? 0 : t < e ? -1 : 1
                    }),
                    function(s, l) {
                        var c;
                        return null !== s && s !== i || (s = "--now" === o ? (c = new Date, new Date(Date.UTC(c.getFullYear(), c.getMonth(), c.getDate(), c.getHours(), c.getMinutes(), c.getSeconds()))) : ""), "type" === l ? a : "" === s ? "sort" !== l ? "" : jt("0000-01-01 00:00:00", null, r) : (null === n || t !== n || "sort" === l || "type" === l || s instanceof Date) && null !== (c = jt(s, t, r)) ? "sort" === l ? c : (s = null === n ? Ft(c, "toDate", "toJSDate", "")[e]() : Ft(c, "format", "toFormat", "toISOString", n), "display" === l ? Nt(s) : s) : s
                    }
            }
        }
        var zt = ",",
            Ht = ".";
        if (Intl) try {
            for (var Bt = (new Intl.NumberFormat).formatToParts(100000.1), qt = 0; qt < Bt.length; qt++) "group" === Bt[qt].type ? zt = Bt[qt].value : "decimal" === Bt[qt].type && (Ht = Bt[qt].value)
        } catch (f) {}

        function Wt(e) {
            return function() {
                var t = [at(this[p.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));
                return p.ext.internal[e].apply(this, t)
            }
        }
        return p.datetime = function(e, t) {
            var n = "datetime-detect-" + e;
            t = t || "en", p.ext.type.order[n] || (p.ext.type.detect.unshift((function(i) {
                var r = jt(i, e, t);
                return !("" !== i && !r) && n
            })), p.ext.type.order[n + "-pre"] = function(n) {
                return jt(n, e, t) || 0
            })
        }, p.render = {
            date: $t("toLocaleDateString"),
            datetime: $t("toLocaleString"),
            time: $t("toLocaleTimeString"),
            number: function(e, t, n, r, o) {
                return null !== e && e !== i || (e = zt), null !== t && t !== i || (t = Ht), {
                    display: function(i) {
                        if ("number" != typeof i && "string" != typeof i) return i;
                        if ("" === i || null === i) return i;
                        var a = i < 0 ? "-" : "",
                            s = parseFloat(i);
                        return isNaN(s) ? Nt(i) : (s = s.toFixed(n), i = Math.abs(s), s = parseInt(i, 10), i = n ? t + (i - s).toFixed(n).substring(2) : "", (a = 0 === s && 0 === parseFloat(i) ? "" : a) + (r || "") + s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, e) + i + (o || ""))
                    }
                }
            },
            text: function() {
                return {
                    display: Nt,
                    filter: Nt
                }
            }
        }, e.extend(p.ext.internal, {
            _fnExternApiFunc: Wt,
            _fnBuildAjax: he,
            _fnAjaxUpdate: fe,
            _fnAjaxParameters: pe,
            _fnAjaxUpdateDraw: ge,
            _fnAjaxDataSrc: me,
            _fnAddColumn: L,
            _fnColumnOptions: N,
            _fnAdjustColumnSizing: F,
            _fnVisibleToColumnIndex: R,
            _fnColumnIndexToVisible: j,
            _fnVisbleColumns: $,
            _fnGetColumns: z,
            _fnColumnTypes: H,
            _fnApplyColumnDefs: B,
            _fnHungarianMap: T,
            _fnCamelToHungarian: A,
            _fnLanguageCompat: D,
            _fnBrowserDetect: I,
            _fnAddData: q,
            _fnAddTr: W,
            _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: U,
            _fnSetCellData: V,
            _fnSplitObjNotation: G,
            _fnGetObjectDataFn: K,
            _fnSetObjectDataFn: Q,
            _fnGetDataMaster: Z,
            _fnClearTable: J,
            _fnDeleteIndex: ee,
            _fnInvalidate: te,
            _fnGetRowElements: ne,
            _fnCreateTr: ie,
            _fnBuildHead: oe,
            _fnDrawHead: ae,
            _fnDraw: se,
            _fnReDraw: le,
            _fnAddOptionsHtml: ce,
            _fnDetectHeader: ue,
            _fnGetUniqueThs: de,
            _fnFeatureHtmlFilter: ve,
            _fnFilterComplete: ye,
            _fnFilterCustom: be,
            _fnFilterColumn: we,
            _fnFilter: xe,
            _fnFilterCreateSearch: _e,
            _fnEscapeRegex: Ce,
            _fnFilterData: Te,
            _fnFeatureHtmlInfo: Ee,
            _fnUpdateInfo: Oe,
            _fnInfoMacros: Me,
            _fnInitialise: Ie,
            _fnInitComplete: Pe,
            _fnLengthChange: Le,
            _fnFeatureHtmlLength: Ne,
            _fnFeatureHtmlPaginate: Fe,
            _fnPageChange: Re,
            _fnFeatureHtmlProcessing: je,
            _fnProcessingDisplay: $e,
            _fnFeatureHtmlTable: ze,
            _fnScrollDraw: He,
            _fnApplyToChildren: Be,
            _fnCalculateColumnWidths: We,
            _fnThrottle: Ue,
            _fnConvertToWidth: Ve,
            _fnGetWidestNode: Ye,
            _fnGetMaxLenString: Xe,
            _fnStringToCss: Ge,
            _fnSortFlatten: Ke,
            _fnSort: Qe,
            _fnSortAria: Ze,
            _fnSortListener: Je,
            _fnSortAttachListener: et,
            _fnSortingClasses: tt,
            _fnSortData: nt,
            _fnSaveState: it,
            _fnLoadState: rt,
            _fnImplementState: ot,
            _fnSettingsFromNode: at,
            _fnLog: st,
            _fnMap: lt,
            _fnBindAction: ut,
            _fnCallbackReg: dt,
            _fnCallbackFire: ht,
            _fnLengthOverflow: ft,
            _fnRenderer: pt,
            _fnDataSource: gt,
            _fnRowAttributes: re,
            _fnExtend: ct,
            _fnCalculateEnd: function() {}
        }), ((e.fn.dataTable = p).$ = e).fn.dataTableSettings = p.settings, e.fn.dataTableExt = p.ext, e.fn.DataTable = function(t) {
            return e(this).dataTable(t).api()
        }, e.each(p, (function(t, n) {
            e.fn.DataTable[t] = n
        })), p
    })),
    function(e) {
        var t, n;
        "function" == typeof define && define.amd ? define(["jquery", "datatables.net"], (function(t) {
            return e(t, window, document)
        })) : "object" == typeof exports ? (t = require("jquery"), n = function(e, t) {
            t.fn.dataTable || require("datatables.net")(e, t)
        }, "undefined" != typeof window ? module.exports = function(i, r) {
            return i = i || window, r = r || t(i), n(i, r), e(r, i, i.document)
        } : (n(window, t), module.exports = e(t, window, window.document))) : e(jQuery, window, document)
    }((function(e, t, n, i) {
        "use strict";

        function r(t, n) {
            if (!o.versionCheck || !o.versionCheck("1.10.10")) throw "DataTables Responsive requires DataTables 1.10.10 or newer";
            this.s = {
                childNodeStore: {},
                columns: [],
                current: [],
                dt: new o.Api(t)
            }, 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, {}, r.defaults, o.defaults.responsive, n), (t.responsive = this)._constructor())
        }
        var o = e.fn.dataTable,
            a = (e.extend(r.prototype, {
                _constructor: function() {
                    var n = this,
                        i = this.s.dt,
                        r = i.settings()[0],
                        a = e(t).innerWidth();
                    !1 !== (r = (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, r, o) {
                        -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(), 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(!0), n._redrawChildren()
                        }), 100)
                    })), i.on("draw.dtr", (function() {
                        n._redrawChildren()
                    })), e(i.table().node()).addClass("dtr-" + r.type)), i.on("column-reorder.dtr", (function(e, t, i) {
                        n._classLogic(), n._resizeAuto(), n._resize(!0)
                    })), i.on("column-sizing.dtr", (function() {
                        n._resizeAuto(), n._resize()
                    })), i.on("column-calc.dt", (function(e, t) {
                        for (var i = n.s.current, r = 0; r < i.length; r++) {
                            var o = t.visible.indexOf(r);
                            !1 === i[r] && 0 <= o && t.visible.splice(o, 1)
                        }
                    })), 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, r, o) {
                        "dt" === t.namespace && (n._resizeAuto(), n._resize(), e.inArray(!1, n.s.current) && i.columns.adjust())
                    })), this._resize()
                },
                _childNodes: function(e, t, n) {
                    var i = t + "-" + n;
                    if (this.s.childNodeStore[i]) return this.s.childNodeStore[i];
                    for (var r = [], o = e.cell(t, n).node().childNodes, a = 0, s = o.length; a < s; a++) r.push(o[a]);
                    return this.s.childNodeStore[i] = r
                },
                _childNodesRestore: function(e, t, n) {
                    var r = t + "-" + n;
                    if (this.s.childNodeStore[r]) {
                        for (var o = e.cell(t, n).node(), a = this.s.childNodeStore[r][0].parentNode.childNodes, s = [], l = 0, c = a.length; l < c; l++) s.push(a[l]);
                        for (var u = 0, d = s.length; u < d; u++) o.appendChild(s[u]);
                        this.s.childNodeStore[r] = i
                    }
                },
                _columnsVisiblity: function(t) {
                    for (var n = this.s.dt, i = this.s.columns, r = i.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
                        })), o = e.map(i, (function(i, r) {
                            return !1 === n.column(r).visible() ? "not-visible" : (!i.auto || null !== i.minWidth) && (!0 === i.auto ? "-" : -1 !== e.inArray(t, i.includeIn))
                        })), a = 0, s = 0, l = o.length; s < l; s++) !0 === o[s] && (a += i[s].minWidth);
                    var c = (c = n.settings()[0].oScroll).sY || c.sX ? c.iBarWidth : 0,
                        u = n.table().container().offsetWidth - c - a;
                    for (s = 0, l = o.length; s < l; s++) i[s].control && (u -= i[s].minWidth);
                    var d = !1;
                    for (s = 0, l = r.length; s < l; s++) {
                        var h = r[s].columnIdx;
                        "-" === o[h] && !i[h].control && i[h].minWidth && (d || u - i[h].minWidth < 0 ? o[h] = !(d = !0) : o[h] = !0, u -= i[h].minWidth)
                    }
                    var f = !1;
                    for (s = 0, l = i.length; s < l; s++)
                        if (!i[s].control && !i[s].never && !1 === o[s]) {
                            f = !0;
                            break
                        }
                    for (s = 0, l = i.length; s < l; s++) i[s].control && (o[s] = f), "not-visible" === o[s] && (o[s] = !1);
                    return -1 === e.inArray(!0, o) && (o[0] = !0), o
                },
                _classLogic: function() {
                    function t(e, t, i, o) {
                        var l, c, u;
                        if (i) {
                            if ("max-" === i)
                                for (l = n._find(t).width, c = 0, u = r.length; c < u; c++) r[c].width <= l && s(e, r[c].name);
                            else if ("min-" === i)
                                for (l = n._find(t).width, c = 0, u = r.length; c < u; c++) r[c].width >= l && s(e, r[c].name);
                            else if ("not-" === i)
                                for (c = 0, u = r.length; c < u; c++) - 1 === r[c].name.indexOf(o) && s(e, r[c].name)
                        } else a[e].includeIn.push(t)
                    }
                    var n = this,
                        r = this.c.breakpoints,
                        o = this.s.dt,
                        a = o.columns().eq(0).map((function(e) {
                            var t = (n = this.column(e)).header().className,
                                n = (e = o.settings()[0].aoColumns[e].responsivePriority, n.header().getAttribute("data-priority"));
                            return e === i && (e = n === i || null === n ? 1e4 : +n), {
                                className: t,
                                includeIn: [],
                                auto: !1,
                                control: !1,
                                never: !!t.match(/\b(dtr\-)?never\b/),
                                priority: e
                            }
                        })),
                        s = function(t, n) {
                            t = a[t].includeIn, -1 === e.inArray(n, t) && t.push(n)
                        };
                    a.each((function(n, i) {
                        for (var o = n.className.split(" "), a = !1, s = 0, l = o.length; s < l; s++) {
                            var c = o[s].trim();
                            if ("all" === c || "dtr-all" === c) return a = !0, void(n.includeIn = e.map(r, (function(e) {
                                return e.name
                            })));
                            if ("none" === c || "dtr-none" === c || n.never) return void(a = !0);
                            if ("control" === c || "dtr-control" === c) return a = !0, void(n.control = !0);
                            e.each(r, (function(e, n) {
                                var r = n.name.split("-"),
                                    o = new RegExp("(min\\-|max\\-|not\\-)?(" + r[0] + ")(\\-[_a-zA-Z0-9])?");
                                (o = c.match(o)) && (a = !0, o[2] === r[0] && o[3] === "-" + r[1] ? t(i, n.name, o[1], o[2] + o[3]) : o[2] !== r[0] || o[3] || t(i, n.name, o[1], o[2]))
                            }))
                        }
                        a || (n.auto = !0)
                    })), this.s.columns = a
                },
                _controlClass: function() {
                    var t, n, i;
                    "inline" === this.c.details.type && (t = this.s.dt, n = this.s.current, i = e.inArray(!0, n), t.cells(null, (function(e) {
                        return e !== i
                    }), {
                        page: "current"
                    }).nodes().to$().filter(".dtr-control").removeClass("dtr-control"), t.cells(null, i, {
                        page: "current"
                    }).nodes().to$().addClass("dtr-control"))
                },
                _detailsDisplay: function(t, n) {
                    var i, o = this,
                        a = this.s.dt,
                        s = this.c.details;
                    s && !1 !== s.type && (i = "string" == typeof s.renderer ? r.renderer[s.renderer]() : s.renderer, !0 !== (s = s.display(t, n, (function() {
                        return i.call(o, a, t[0], o._detailsObj(t[0]))
                    }))) && !1 !== s || e(a.table().node()).triggerHandler("responsive-display.dt", [a, t, s, n]))
                },
                _detailsInit: function() {
                    var t = this,
                        n = this.s.dt,
                        r = ("inline" === (o = this.c.details).type && (o.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()
                        })), o.target),
                        o = "string" == typeof r ? r : "td, th";
                    r === i && null === r || e(n.table().body()).on("click.dtr mousedown.dtr mouseup.dtr", o, (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 r) {
                                var o = r < 0 ? n.columns().eq(0).length + r : r;
                                if (n.cell(this).index().column !== o) return
                            }
                            o = n.row(e(this).closest("tr")), "click" === i.type ? t._detailsDisplay(o, !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) return {
                            className: (r = i.settings()[0].aoColumns[o]).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 !== r.sTitle ? r.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) {
                    for (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(), d = s.length - 1; 0 <= d; d--)
                        if (a <= s[d].width) {
                            l = s[d].name;
                            break
                        }
                    var h = this._columnsVisiblity(l),
                        f = (this.s.current = h, !1);
                    for (d = 0, i = c.length; d < i; d++)
                        if (!1 === h[d] && !c[d].never && !c[d].control && 0 == !o.column(d).visible()) {
                            f = !0;
                            break
                        }
                    e(o.table().node()).toggleClass("collapsed", f);
                    var p = !1,
                        g = 0;
                    o.columns().eq(0).each((function(e, t) {
                        !0 === h[t] && g++, !n && h[t] === u[t] || (p = !0, r._setColumnVis(e, h[t]))
                    })), this._redrawChildren(), p && (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", g)), r._controlClass()
                },
                _resizeAuto: function() {
                    var t, n, i, r, o, a = this.s.dt,
                        s = this.s.columns,
                        l = this;
                    this.c.auto && -1 !== e.inArray(!0, e.map(s, (function(e) {
                        return e.auto
                    }))) && (e.isEmptyObject(this.s.childNodeStore) || e.each(this.s.childNodeStore, (function(e) {
                        e = e.split("-"), l._childNodesRestore(a, +e[0], +e[1])
                    })), a.table().node().offsetWidth, a.columns, t = a.table().node().cloneNode(!1), n = e(a.table().header().cloneNode(!1)).appendTo(t), r = e(a.table().body()).clone(!1, !1).empty().appendTo(t), t.style.width = "auto", i = a.columns().header().filter((function(e) {
                        return a.column(e).visible()
                    })).to$().clone(!1).css("display", "table-cell").css("width", "auto").css("min-width", 0), e(r).append(e(a.rows({
                        page: "current"
                    }).nodes()).clone(!1)).find("th, td").css("display", ""), (r = a.table().footer()) && (r = e(r.cloneNode(!1)).appendTo(t), o = a.columns().footer().filter((function(e) {
                        return a.column(e).visible()
                    })).to$().clone(!1).css("display", "table-cell"), e("<tr/>").append(o).appendTo(r)), e("<tr/>").append(i).appendTo(n), "inline" === this.c.details.type && e(t).addClass("dtr-inline collapsed"), e(t).find("[name]").removeAttr("name"), e(t).css("position", "relative"), (o = e("<div/>").css({
                        width: 1,
                        height: 1,
                        overflow: "hidden",
                        clear: "both"
                    }).append(t)).insertBefore(a.table().node()), i.each((function(e) {
                        e = a.column.index("fromVisible", e), s[e].minWidth = this.offsetWidth || 0
                    })), o.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,
                        r = this.s.dt,
                        o = n ? "" : "none";
                    e(r.column(t).header()).css("display", o).toggleClass("dtr-hidden", !n), e(r.column(t).footer()).css("display", o).toggleClass("dtr-hidden", !n), r.column(t).nodes().to$().css("display", o).toggleClass("dtr-hidden", !n), e.isEmptyObject(this.s.childNodeStore) || r.cells(null, t).indexes().each((function(e) {
                        i._childNodesRestore(r, 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$() : e(r = "td:first-child, th:first-child" === r ? ">td:first-child, >th:first-child" : r, t.rows({
                        page: "current"
                    }).nodes())).attr("tabIndex", i.iTabIndex).data("dtr-keyboard", 1)
                }
            }), r.defaults = {
                breakpoints: r.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
                }],
                auto: !0,
                details: {
                    display: (r.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) {
                                var a, s;
                                r ? e("div.dtr-modal-content").empty().append(o()) : (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">&times;</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>")
                            }
                        }
                    }).childRow,
                    renderer: (r.renderer = {
                        listHiddenNodes: function() {
                            return function(t, n, i) {
                                var r = this,
                                    o = e('<ul data-dtr-index="' + n + '" class="dtr-details"/>'),
                                    a = !1;
                                return e.each(i, (function(n, i) {
                                    var s;
                                    i.hidden && (s = i.className ? 'class="' + i.className + '"' : "", e("<li " + s + ' 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(r._childNodes(t, i.rowIndex, i.columnIndex))).appendTo(o), a = !0)
                                })), !!a && o
                            }
                        },
                        listHidden: function() {
                            return function(t, n, i) {
                                return !!(i = 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(i)
                            }
                        },
                        tableAll: function(t) {
                            return t = e.extend({
                                    tableClass: ""
                                }, t),
                                function(n, i, r) {
                                    return r = 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(r)
                                }
                        }
                    }).listHidden(),
                    target: 0,
                    type: "inline"
                },
                orthogonal: "display"
            }, e.fn.dataTable.Api);
        return a.register("responsive()", (function() {
            return this
        })), a.register("responsive.index()", (function(t) {
            return {
                column: (t = e(t)).data("dtr-index"),
                row: t.parent().data("dtr-index")
            }
        })), a.register("responsive.rebuild()", (function() {
            return this.iterator("table", (function(e) {
                e._responsive && e._responsive._classLogic()
            }))
        })), a.register("responsive.recalc()", (function() {
            return this.iterator("table", (function(e) {
                e._responsive && (e._responsive._resizeAuto(), e._responsive._resize())
            }))
        })), a.register("responsive.hasHidden()", (function() {
            var t = this.context[0];
            return !!t._responsive && -1 !== e.inArray(!1, t._responsive._responsiveOnlyHidden())
        })), a.registerPlural("columns().responsiveHidden()", "column().responsiveHidden()", (function() {
            return this.iterator("column", (function(e, t) {
                return !!e._responsive && e._responsive._responsiveOnlyHidden()[t]
            }), 1)
        })), r.version = "2.4.1", e.fn.dataTable.Responsive = r, e.fn.DataTable.Responsive = r, e(n).on("preInit.dt.dtr", (function(t, n, i) {
            "dt" === t.namespace && (e(n.nTable).hasClass("responsive") || e(n.nTable).hasClass("dt-responsive") || n.oInit.responsive || o.defaults.responsive) && !1 !== (t = n.oInit.responsive) && new r(n, e.isPlainObject(t) ? t : {})
        })), o
    })),
    function(e) {
        var t, n;
        "function" == typeof define && define.amd ? define(["jquery", "datatables.net"], (function(t) {
            return e(t, window, document)
        })) : "object" == typeof exports ? (t = require("jquery"), n = function(e, t) {
            t.fn.dataTable || require("datatables.net")(e, t)
        }, "undefined" != typeof window ? module.exports = function(i, r) {
            return i = i || window, r = r || t(i), n(i, r), e(r, 0, i.document)
        } : (n(window, t), module.exports = e(t, window, window.document))) : e(jQuery, window, document)
    }((function(e, t, n, i) {
        "use strict";
        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 || {};
            try {
                h = e(o).find(n.activeElement).data("dt-idx")
            } catch (o) {}(function n(i, r) {
                for (var o, s, h = function(t) {
                        t.preventDefault(), e(t.currentTarget).hasClass("disabled") || f.page() == t.data.action || f.page(t.data.action).draw("page")
                    }, v = 0, y = r.length; v < y; v++)
                    if (o = r[v], Array.isArray(o)) n(i, o);
                    else {
                        switch (d = u = "", o) {
                            case "ellipsis":
                                u = "&#x2026;", d = "disabled";
                                break;
                            case "first":
                                u = g.sFirst, d = o + (0 < l ? "" : " disabled");
                                break;
                            case "previous":
                                u = g.sPrevious, d = o + (0 < l ? "" : " disabled");
                                break;
                            case "next":
                                u = g.sNext, d = o + (l < c - 1 ? "" : " disabled");
                                break;
                            case "last":
                                u = g.sLast, d = o + (l < c - 1 ? "" : " disabled");
                                break;
                            default:
                                u = o + 1, d = l === o ? "active" : ""
                        }
                        u && (s = -1 !== d.indexOf("disabled"), s = e("<li>", {
                            class: p.sPageButton + " " + d,
                            id: 0 === a && "string" == typeof o ? t.sTableId + "_" + o : null
                        }).append(e("<a>", {
                            href: s ? null : "#",
                            "aria-controls": t.sTableId,
                            "aria-disabled": s ? "true" : null,
                            "aria-label": m[o],
                            "aria-role": "link",
                            "aria-current": "active" === d ? "page" : null,
                            "data-dt-idx": o,
                            tabindex: t.iTabIndex,
                            class: "page-link"
                        }).html(u)).appendTo(i), t.oApi._fnBindAction(s, {
                            action: o
                        }, h))
                    }
            })(e(o).empty().html('<ul class="pagination"/>').children("ul"), s), h !== i && e(o).find("[data-dt-idx=" + h + "]").trigger("focus")
        }, r
    })),
    function(e) {
        var t, n;
        "function" == typeof define && define.amd ? define(["jquery", "datatables.net-bs4", "datatables.net-responsive"], (function(t) {
            return e(t, window, document)
        })) : "object" == typeof exports ? (t = require("jquery"), n = function(e, t) {
            t.fn.dataTable || require("datatables.net-bs4")(e, t), t.fn.dataTable.Responsive || require("datatables.net-responsive")(e, t)
        }, "undefined" != typeof window ? module.exports = function(i, r) {
            return i = i || window, r = r || t(i), n(i, r), e(r, 0, i.document)
        } : (n(window, t), module.exports = e(t, window, window.document))) : e(jQuery, window, document)
    }((function(e, t, n, i) {
        "use strict";
        var r = e.fn.dataTable,
            o = r.Responsive.display,
            a = o.modal,
            s = 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">&times;</span></button></div><div class="modal-body"/></div></div></div>');
        return o.modal = function(t) {
            return function(n, i, r) {
                var o, l;
                e.fn.modal ? i || (t && t.header && (l = (o = s.find("div.modal-header")).find("button").detach(), o.empty().append('<h4 class="modal-title">' + t.header(n) + "</h4>").append(l)), s.find("div.modal-body").empty().append(r()), s.appendTo("body").modal()) : a(n, i, r)
            }
        }, r
    })),
    function(e, t) {
        if ("object" == typeof exports && "object" == typeof module) module.exports = t();
        else if ("function" == typeof define && define.amd) define([], t);
        else {
            var n = t();
            for (var i in n)("object" == typeof exports ? exports : e)[i] = n[i]
        }
    }(self, (function() {
        return function() {
            var e = {
                    3099: function(e) {
                        e.exports = function(e) {
                            if ("function" != typeof e) throw TypeError(String(e) + " is not a function");
                            return e
                        }
                    },
                    6077: function(e, t, n) {
                        var i = n(111);
                        e.exports = function(e) {
                            if (!i(e) && null !== e) throw TypeError("Can't set " + String(e) + " as a prototype");
                            return e
                        }
                    },
                    1223: function(e, t, n) {
                        var i = n(5112),
                            r = n(30),
                            o = n(3070),
                            a = i("unscopables"),
                            s = Array.prototype;
                        null == s[a] && o.f(s, a, {
                            configurable: !0,
                            value: r(null)
                        }), e.exports = function(e) {
                            s[a][e] = !0
                        }
                    },
                    1530: function(e, t, n) {
                        "use strict";
                        var i = n(8710).charAt;
                        e.exports = function(e, t, n) {
                            return t + (n ? i(e, t).length : 1)
                        }
                    },
                    5787: function(e) {
                        e.exports = function(e, t, n) {
                            if (!(e instanceof t)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation");
                            return e
                        }
                    },
                    9670: function(e, t, n) {
                        var i = n(111);
                        e.exports = function(e) {
                            if (!i(e)) throw TypeError(String(e) + " is not an object");
                            return e
                        }
                    },
                    4019: function(e) {
                        e.exports = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView
                    },
                    260: function(e, t, n) {
                        "use strict";
                        var i, r = n(4019),
                            o = n(9781),
                            a = n(7854),
                            s = n(111),
                            l = n(6656),
                            c = n(648),
                            u = n(8880),
                            d = n(1320),
                            h = n(3070).f,
                            f = n(9518),
                            p = n(7674),
                            g = n(5112),
                            m = n(9711),
                            v = a.Int8Array,
                            y = v && v.prototype,
                            b = a.Uint8ClampedArray,
                            w = b && b.prototype,
                            x = v && f(v),
                            _ = y && f(y),
                            C = Object.prototype,
                            S = C.isPrototypeOf,
                            k = g("toStringTag"),
                            T = m("TYPED_ARRAY_TAG"),
                            A = r && !!p && "Opera" !== c(a.opera),
                            D = !1,
                            E = {
                                Int8Array: 1,
                                Uint8Array: 1,
                                Uint8ClampedArray: 1,
                                Int16Array: 2,
                                Uint16Array: 2,
                                Int32Array: 4,
                                Uint32Array: 4,
                                Float32Array: 4,
                                Float64Array: 8
                            },
                            O = {
                                BigInt64Array: 8,
                                BigUint64Array: 8
                            },
                            M = function(e) {
                                if (!s(e)) return !1;
                                var t = c(e);
                                return l(E, t) || l(O, t)
                            };
                        for (i in E) a[i] || (A = !1);
                        if ((!A || "function" != typeof x || x === Function.prototype) && (x = function() {
                                throw TypeError("Incorrect invocation")
                            }, A))
                            for (i in E) a[i] && p(a[i], x);
                        if ((!A || !_ || _ === C) && (_ = x.prototype, A))
                            for (i in E) a[i] && p(a[i].prototype, _);
                        if (A && f(w) !== _ && p(w, _), o && !l(_, k))
                            for (i in D = !0, h(_, k, {
                                    get: function() {
                                        return s(this) ? this[T] : void 0
                                    }
                                }), E) a[i] && u(a[i], T, i);
                        e.exports = {
                            NATIVE_ARRAY_BUFFER_VIEWS: A,
                            TYPED_ARRAY_TAG: D && T,
                            aTypedArray: function(e) {
                                if (M(e)) return e;
                                throw TypeError("Target is not a typed array")
                            },
                            aTypedArrayConstructor: function(e) {
                                if (p) {
                                    if (S.call(x, e)) return e
                                } else
                                    for (var t in E)
                                        if (l(E, i)) {
                                            var n = a[t];
                                            if (n && (e === n || S.call(n, e))) return e
                                        } throw TypeError("Target is not a typed array constructor")
                            },
                            exportTypedArrayMethod: function(e, t, n) {
                                if (o) {
                                    if (n)
                                        for (var i in E) {
                                            var r = a[i];
                                            r && l(r.prototype, e) && delete r.prototype[e]
                                        }
                                    _[e] && !n || d(_, e, n ? t : A && y[e] || t)
                                }
                            },
                            exportTypedArrayStaticMethod: function(e, t, n) {
                                var i, r;
                                if (o) {
                                    if (p) {
                                        if (n)
                                            for (i in E)(r = a[i]) && l(r, e) && delete r[e];
                                        if (x[e] && !n) return;
                                        try {
                                            return d(x, e, n ? t : A && v[e] || t)
                                        } catch (e) {}
                                    }
                                    for (i in E) !(r = a[i]) || r[e] && !n || d(r, e, t)
                                }
                            },
                            isView: function(e) {
                                if (!s(e)) return !1;
                                var t = c(e);
                                return "DataView" === t || l(E, t) || l(O, t)
                            },
                            isTypedArray: M,
                            TypedArray: x,
                            TypedArrayPrototype: _
                        }
                    },
                    3331: function(e, t, n) {
                        "use strict";
                        var i = n(7854),
                            r = n(9781),
                            o = n(4019),
                            a = n(8880),
                            s = n(2248),
                            l = n(7293),
                            c = n(5787),
                            u = n(9958),
                            d = n(7466),
                            h = n(7067),
                            f = n(1179),
                            p = n(9518),
                            g = n(7674),
                            m = n(8006).f,
                            v = n(3070).f,
                            y = n(1285),
                            b = n(8003),
                            w = n(9909),
                            x = w.get,
                            _ = w.set,
                            C = "ArrayBuffer",
                            S = "DataView",
                            k = "Wrong index",
                            T = i.ArrayBuffer,
                            A = T,
                            D = i.DataView,
                            E = D && D.prototype,
                            O = Object.prototype,
                            M = i.RangeError,
                            I = f.pack,
                            P = f.unpack,
                            L = function(e) {
                                return [255 & e]
                            },
                            N = function(e) {
                                return [255 & e, e >> 8 & 255]
                            },
                            F = function(e) {
                                return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255]
                            },
                            R = function(e) {
                                return e[3] << 24 | e[2] << 16 | e[1] << 8 | e[0]
                            },
                            j = function(e) {
                                return I(e, 23, 4)
                            },
                            $ = function(e) {
                                return I(e, 52, 8)
                            },
                            z = function(e, t) {
                                v(e.prototype, t, {
                                    get: function() {
                                        return x(this)[t]
                                    }
                                })
                            },
                            H = function(e, t, n, i) {
                                var r = h(n),
                                    o = x(e);
                                if (r + t > o.byteLength) throw M(k);
                                var a = x(o.buffer).bytes,
                                    s = r + o.byteOffset,
                                    l = a.slice(s, s + t);
                                return i ? l : l.reverse()
                            },
                            B = function(e, t, n, i, r, o) {
                                var a = h(n),
                                    s = x(e);
                                if (a + t > s.byteLength) throw M(k);
                                for (var l = x(s.buffer).bytes, c = a + s.byteOffset, u = i(+r), d = 0; d < t; d++) l[c + d] = u[o ? d : t - d - 1]
                            };
                        if (o) {
                            if (!l((function() {
                                    T(1)
                                })) || !l((function() {
                                    new T(-1)
                                })) || l((function() {
                                    return new T, new T(1.5), new T(NaN), T.name != C
                                }))) {
                                for (var q, W = (A = function(e) {
                                        return c(this, A), new T(h(e))
                                    }).prototype = T.prototype, U = m(T), V = 0; U.length > V;)(q = U[V++]) in A || a(A, q, T[q]);
                                W.constructor = A
                            }
                            g && p(E) !== O && g(E, O);
                            var Y = new D(new A(2)),
                                X = E.setInt8;
                            Y.setInt8(0, 2147483648), Y.setInt8(1, 2147483649), !Y.getInt8(0) && Y.getInt8(1) || s(E, {
                                setInt8: function(e, t) {
                                    X.call(this, e, t << 24 >> 24)
                                },
                                setUint8: function(e, t) {
                                    X.call(this, e, t << 24 >> 24)
                                }
                            }, {
                                unsafe: !0
                            })
                        } else A = function(e) {
                            c(this, A, C);
                            var t = h(e);
                            _(this, {
                                bytes: y.call(new Array(t), 0),
                                byteLength: t
                            }), r || (this.byteLength = t)
                        }, D = function(e, t, n) {
                            c(this, D, S), c(e, A, S);
                            var i = x(e).byteLength,
                                o = u(t);
                            if (o < 0 || o > i) throw M("Wrong offset");
                            if (o + (n = void 0 === n ? i - o : d(n)) > i) throw M("Wrong length");
                            _(this, {
                                buffer: e,
                                byteLength: n,
                                byteOffset: o
                            }), r || (this.buffer = e, this.byteLength = n, this.byteOffset = o)
                        }, r && (z(A, "byteLength"), z(D, "buffer"), z(D, "byteLength"), z(D, "byteOffset")), s(D.prototype, {
                            getInt8: function(e) {
                                return H(this, 1, e)[0] << 24 >> 24
                            },
                            getUint8: function(e) {
                                return H(this, 1, e)[0]
                            },
                            getInt16: function(e) {
                                var t = H(this, 2, e, arguments.length > 1 ? arguments[1] : void 0);
                                return (t[1] << 8 | t[0]) << 16 >> 16
                            },
                            getUint16: function(e) {
                                var t = H(this, 2, e, arguments.length > 1 ? arguments[1] : void 0);
                                return t[1] << 8 | t[0]
                            },
                            getInt32: function(e) {
                                return R(H(this, 4, e, arguments.length > 1 ? arguments[1] : void 0))
                            },
                            getUint32: function(e) {
                                return R(H(this, 4, e, arguments.length > 1 ? arguments[1] : void 0)) >>> 0
                            },
                            getFloat32: function(e) {
                                return P(H(this, 4, e, arguments.length > 1 ? arguments[1] : void 0), 23)
                            },
                            getFloat64: function(e) {
                                return P(H(this, 8, e, arguments.length > 1 ? arguments[1] : void 0), 52)
                            },
                            setInt8: function(e, t) {
                                B(this, 1, e, L, t)
                            },
                            setUint8: function(e, t) {
                                B(this, 1, e, L, t)
                            },
                            setInt16: function(e, t) {
                                B(this, 2, e, N, t, arguments.length > 2 ? arguments[2] : void 0)
                            },
                            setUint16: function(e, t) {
                                B(this, 2, e, N, t, arguments.length > 2 ? arguments[2] : void 0)
                            },
                            setInt32: function(e, t) {
                                B(this, 4, e, F, t, arguments.length > 2 ? arguments[2] : void 0)
                            },
                            setUint32: function(e, t) {
                                B(this, 4, e, F, t, arguments.length > 2 ? arguments[2] : void 0)
                            },
                            setFloat32: function(e, t) {
                                B(this, 4, e, j, t, arguments.length > 2 ? arguments[2] : void 0)
                            },
                            setFloat64: function(e, t) {
                                B(this, 8, e, $, t, arguments.length > 2 ? arguments[2] : void 0)
                            }
                        });
                        b(A, C), b(D, S), e.exports = {
                            ArrayBuffer: A,
                            DataView: D
                        }
                    },
                    1048: function(e, t, n) {
                        "use strict";
                        var i = n(7908),
                            r = n(1400),
                            o = n(7466),
                            a = Math.min;
                        e.exports = [].copyWithin || function(e, t) {
                            var n = i(this),
                                s = o(n.length),
                                l = r(e, s),
                                c = r(t, s),
                                u = arguments.length > 2 ? arguments[2] : void 0,
                                d = a((void 0 === u ? s : r(u, s)) - c, s - l),
                                h = 1;
                            for (c < l && l < c + d && (h = -1, c += d - 1, l += d - 1); d-- > 0;) c in n ? n[l] = n[c] : delete n[l], l += h, c += h;
                            return n
                        }
                    },
                    1285: function(e, t, n) {
                        "use strict";
                        var i = n(7908),
                            r = n(1400),
                            o = n(7466);
                        e.exports = function(e) {
                            for (var t = i(this), n = o(t.length), a = arguments.length, s = r(a > 1 ? arguments[1] : void 0, n), l = a > 2 ? arguments[2] : void 0, c = void 0 === l ? n : r(l, n); c > s;) t[s++] = e;
                            return t
                        }
                    },
                    8533: function(e, t, n) {
                        "use strict";
                        var i = n(2092).forEach,
                            r = n(9341)("forEach");
                        e.exports = r ? [].forEach : function(e) {
                            return i(this, e, arguments.length > 1 ? arguments[1] : void 0)
                        }
                    },
                    8457: function(e, t, n) {
                        "use strict";
                        var i = n(9974),
                            r = n(7908),
                            o = n(3411),
                            a = n(7659),
                            s = n(7466),
                            l = n(6135),
                            c = n(1246);
                        e.exports = function(e) {
                            var t, n, u, d, h, f, p = r(e),
                                g = "function" == typeof this ? this : Array,
                                m = arguments.length,
                                v = m > 1 ? arguments[1] : void 0,
                                y = void 0 !== v,
                                b = c(p),
                                w = 0;
                            if (y && (v = i(v, m > 2 ? arguments[2] : void 0, 2)), null == b || g == Array && a(b))
                                for (n = new g(t = s(p.length)); t > w; w++) f = y ? v(p[w], w) : p[w], l(n, w, f);
                            else
                                for (h = (d = b.call(p)).next, n = new g; !(u = h.call(d)).done; w++) f = y ? o(d, v, [u.value, w], !0) : u.value, l(n, w, f);
                            return n.length = w, n
                        }
                    },
                    1318: function(e, t, n) {
                        var i = n(5656),
                            r = n(7466),
                            o = n(1400),
                            a = function(e) {
                                return function(t, n, a) {
                                    var s, l = i(t),
                                        c = r(l.length),
                                        u = o(a, c);
                                    if (e && n != n) {
                                        for (; c > u;)
                                            if ((s = l[u++]) != s) return !0
                                    } else
                                        for (; c > u; u++)
                                            if ((e || u in l) && l[u] === n) return e || u || 0;
                                    return !e && -1
                                }
                            };
                        e.exports = {
                            includes: a(!0),
                            indexOf: a(!1)
                        }
                    },
                    2092: function(e, t, n) {
                        var i = n(9974),
                            r = n(8361),
                            o = n(7908),
                            a = n(7466),
                            s = n(5417),
                            l = [].push,
                            c = function(e) {
                                var t = 1 == e,
                                    n = 2 == e,
                                    c = 3 == e,
                                    u = 4 == e,
                                    d = 6 == e,
                                    h = 7 == e,
                                    f = 5 == e || d;
                                return function(p, g, m, v) {
                                    for (var y, b, w = o(p), x = r(w), _ = i(g, m, 3), C = a(x.length), S = 0, k = v || s, T = t ? k(p, C) : n || h ? k(p, 0) : void 0; C > S; S++)
                                        if ((f || S in x) && (b = _(y = x[S], S, w), e))
                                            if (t) T[S] = b;
                                            else if (b) switch (e) {
                                        case 3:
                                            return !0;
                                        case 5:
                                            return y;
                                        case 6:
                                            return S;
                                        case 2:
                                            l.call(T, y)
                                    } else switch (e) {
                                        case 4:
                                            return !1;
                                        case 7:
                                            l.call(T, y)
                                    }
                                    return d ? -1 : c || u ? u : T
                                }
                            };
                        e.exports = {
                            forEach: c(0),
                            map: c(1),
                            filter: c(2),
                            some: c(3),
                            every: c(4),
                            find: c(5),
                            findIndex: c(6),
                            filterOut: c(7)
                        }
                    },
                    6583: function(e, t, n) {
                        "use strict";
                        var i = n(5656),
                            r = n(9958),
                            o = n(7466),
                            a = n(9341),
                            s = Math.min,
                            l = [].lastIndexOf,
                            c = !!l && 1 / [1].lastIndexOf(1, -0) < 0,
                            u = a("lastIndexOf"),
                            d = c || !u;
                        e.exports = d ? function(e) {
                            if (c) return l.apply(this, arguments) || 0;
                            var t = i(this),
                                n = o(t.length),
                                a = n - 1;
                            for (arguments.length > 1 && (a = s(a, r(arguments[1]))), a < 0 && (a = n + a); a >= 0; a--)
                                if (a in t && t[a] === e) return a || 0;
                            return -1
                        } : l
                    },
                    1194: function(e, t, n) {
                        var i = n(7293),
                            r = n(5112),
                            o = n(7392),
                            a = r("species");
                        e.exports = function(e) {
                            return o >= 51 || !i((function() {
                                var t = [];
                                return (t.constructor = {})[a] = function() {
                                    return {
                                        foo: 1
                                    }
                                }, 1 !== t[e](Boolean).foo
                            }))
                        }
                    },
                    9341: function(e, t, n) {
                        "use strict";
                        var i = n(7293);
                        e.exports = function(e, t) {
                            var n = [][e];
                            return !!n && i((function() {
                                n.call(null, t || function() {
                                    throw 1
                                }, 1)
                            }))
                        }
                    },
                    3671: function(e, t, n) {
                        var i = n(3099),
                            r = n(7908),
                            o = n(8361),
                            a = n(7466),
                            s = function(e) {
                                return function(t, n, s, l) {
                                    i(n);
                                    var c = r(t),
                                        u = o(c),
                                        d = a(c.length),
                                        h = e ? d - 1 : 0,
                                        f = e ? -1 : 1;
                                    if (s < 2)
                                        for (;;) {
                                            if (h in u) {
                                                l = u[h], h += f;
                                                break
                                            }
                                            if (h += f, e ? h < 0 : d <= h) throw TypeError("Reduce of empty array with no initial value")
                                        }
                                    for (; e ? h >= 0 : d > h; h += f) h in u && (l = n(l, u[h], h, c));
                                    return l
                                }
                            };
                        e.exports = {
                            left: s(!1),
                            right: s(!0)
                        }
                    },
                    5417: function(e, t, n) {
                        var i = n(111),
                            r = n(3157),
                            o = n(5112)("species");
                        e.exports = function(e, t) {
                            var n;
                            return r(e) && ("function" != typeof(n = e.constructor) || n !== Array && !r(n.prototype) ? i(n) && null === (n = n[o]) && (n = void 0) : n = void 0), new(void 0 === n ? Array : n)(0 === t ? 0 : t)
                        }
                    },
                    3411: function(e, t, n) {
                        var i = n(9670),
                            r = n(9212);
                        e.exports = function(e, t, n, o) {
                            try {
                                return o ? t(i(n)[0], n[1]) : t(n)
                            } catch (t) {
                                throw r(e), t
                            }
                        }
                    },
                    7072: function(e, t, n) {
                        var i = n(5112)("iterator"),
                            r = !1;
                        try {
                            var o = 0,
                                a = {
                                    next: function() {
                                        return {
                                            done: !!o++
                                        }
                                    },
                                    return: function() {
                                        r = !0
                                    }
                                };
                            a[i] = function() {
                                return this
                            }, Array.from(a, (function() {
                                throw 2
                            }))
                        } catch (e) {}
                        e.exports = function(e, t) {
                            if (!t && !r) return !1;
                            var n = !1;
                            try {
                                var o = {};
                                o[i] = function() {
                                    return {
                                        next: function() {
                                            return {
                                                done: n = !0
                                            }
                                        }
                                    }
                                }, e(o)
                            } catch (e) {}
                            return n
                        }
                    },
                    4326: function(e) {
                        var t = {}.toString;
                        e.exports = function(e) {
                            return t.call(e).slice(8, -1)
                        }
                    },
                    648: function(e, t, n) {
                        var i = n(1694),
                            r = n(4326),
                            o = n(5112)("toStringTag"),
                            a = "Arguments" == r(function() {
                                return arguments
                            }());
                        e.exports = i ? r : 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), o)) ? n : a ? r(t) : "Object" == (i = r(t)) && "function" == typeof t.callee ? "Arguments" : i
                        }
                    },
                    9920: function(e, t, n) {
                        var i = n(6656),
                            r = n(3887),
                            o = n(1236),
                            a = n(3070);
                        e.exports = function(e, t) {
                            for (var n = r(t), s = a.f, l = o.f, c = 0; c < n.length; c++) {
                                var u = n[c];
                                i(e, u) || s(e, u, l(t, u))
                            }
                        }
                    },
                    8544: function(e, t, n) {
                        var i = n(7293);
                        e.exports = !i((function() {
                            function e() {}
                            return e.prototype.constructor = null, Object.getPrototypeOf(new e) !== e.prototype
                        }))
                    },
                    4994: function(e, t, n) {
                        "use strict";
                        var i = n(3383).IteratorPrototype,
                            r = n(30),
                            o = n(9114),
                            a = n(8003),
                            s = n(7497),
                            l = function() {
                                return this
                            };
                        e.exports = function(e, t, n) {
                            var c = t + " Iterator";
                            return e.prototype = r(i, {
                                next: o(1, n)
                            }), a(e, c, !1, !0), s[c] = l, e
                        }
                    },
                    8880: function(e, t, n) {
                        var i = n(9781),
                            r = n(3070),
                            o = n(9114);
                        e.exports = i ? function(e, t, n) {
                            return r.f(e, t, o(1, n))
                        } : function(e, t, n) {
                            return e[t] = n, e
                        }
                    },
                    9114: function(e) {
                        e.exports = function(e, t) {
                            return {
                                enumerable: !(1 & e),
                                configurable: !(2 & e),
                                writable: !(4 & e),
                                value: t
                            }
                        }
                    },
                    6135: function(e, t, n) {
                        "use strict";
                        var i = n(7593),
                            r = n(3070),
                            o = n(9114);
                        e.exports = function(e, t, n) {
                            var a = i(t);
                            a in e ? r.f(e, a, o(0, n)) : e[a] = n
                        }
                    },
                    654: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(4994),
                            o = n(9518),
                            a = n(7674),
                            s = n(8003),
                            l = n(8880),
                            c = n(1320),
                            u = n(5112),
                            d = n(1913),
                            h = n(7497),
                            f = n(3383),
                            p = f.IteratorPrototype,
                            g = f.BUGGY_SAFARI_ITERATORS,
                            m = u("iterator"),
                            v = "keys",
                            y = "values",
                            b = "entries",
                            w = function() {
                                return this
                            };
                        e.exports = function(e, t, n, u, f, x, _) {
                            r(n, t, u);
                            var C, S, k, T = function(e) {
                                    if (e === f && M) return M;
                                    if (!g && e in E) return E[e];
                                    switch (e) {
                                        case v:
                                        case y:
                                        case b:
                                            return function() {
                                                return new n(this, e)
                                            }
                                    }
                                    return function() {
                                        return new n(this)
                                    }
                                },
                                A = t + " Iterator",
                                D = !1,
                                E = e.prototype,
                                O = E[m] || E["@@iterator"] || f && E[f],
                                M = !g && O || T(f),
                                I = "Array" == t && E.entries || O;
                            if (I && (C = o(I.call(new e)), p !== Object.prototype && C.next && (d || o(C) === p || (a ? a(C, p) : "function" != typeof C[m] && l(C, m, w)), s(C, A, !0, !0), d && (h[A] = w))), f == y && O && O.name !== y && (D = !0, M = function() {
                                    return O.call(this)
                                }), d && !_ || E[m] === M || l(E, m, M), h[t] = M, f)
                                if (S = {
                                        values: T(y),
                                        keys: x ? M : T(v),
                                        entries: T(b)
                                    }, _)
                                    for (k in S)(g || D || !(k in E)) && c(E, k, S[k]);
                                else i({
                                    target: t,
                                    proto: !0,
                                    forced: g || D
                                }, S);
                            return S
                        }
                    },
                    9781: function(e, t, n) {
                        var i = n(7293);
                        e.exports = !i((function() {
                            return 7 != Object.defineProperty({}, 1, {
                                get: function() {
                                    return 7
                                }
                            })[1]
                        }))
                    },
                    317: function(e, t, n) {
                        var i = n(7854),
                            r = n(111),
                            o = i.document,
                            a = r(o) && r(o.createElement);
                        e.exports = function(e) {
                            return a ? o.createElement(e) : {}
                        }
                    },
                    8324: function(e) {
                        e.exports = {
                            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
                        }
                    },
                    8113: function(e, t, n) {
                        var i = n(5005);
                        e.exports = i("navigator", "userAgent") || ""
                    },
                    7392: function(e, t, n) {
                        var i, r, o = n(7854),
                            a = n(8113),
                            s = o.process,
                            l = s && s.versions,
                            c = l && l.v8;
                        c ? r = (i = c.split("."))[0] + i[1] : a && (!(i = a.match(/Edge\/(\d+)/)) || i[1] >= 74) && (i = a.match(/Chrome\/(\d+)/)) && (r = i[1]), e.exports = r && +r
                    },
                    748: function(e) {
                        e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
                    },
                    2109: function(e, t, n) {
                        var i = n(7854),
                            r = n(1236).f,
                            o = n(8880),
                            a = n(1320),
                            s = n(3505),
                            l = n(9920),
                            c = n(4705);
                        e.exports = function(e, t) {
                            var n, u, d, h, f, p = e.target,
                                g = e.global,
                                m = e.stat;
                            if (n = g ? i : m ? i[p] || s(p, {}) : (i[p] || {}).prototype)
                                for (u in t) {
                                    if (h = t[u], d = e.noTargetGet ? (f = r(n, u)) && f.value : n[u], !c(g ? u : p + (m ? "." : "#") + u, e.forced) && void 0 !== d) {
                                        if (typeof h == typeof d) continue;
                                        l(h, d)
                                    }(e.sham || d && d.sham) && o(h, "sham", !0), a(n, u, h, e)
                                }
                        }
                    },
                    7293: function(e) {
                        e.exports = function(e) {
                            try {
                                return !!e()
                            } catch (e) {
                                return !0
                            }
                        }
                    },
                    7007: function(e, t, n) {
                        "use strict";
                        n(4916);
                        var i = n(1320),
                            r = n(7293),
                            o = n(5112),
                            a = n(2261),
                            s = n(8880),
                            l = o("species"),
                            c = !r((function() {
                                var e = /./;
                                return e.exec = function() {
                                    var e = [];
                                    return e.groups = {
                                        a: "7"
                                    }, e
                                }, "7" !== "".replace(e, "$<a>")
                            })),
                            u = "$0" === "a".replace(/./, "$0"),
                            d = o("replace"),
                            h = !!/./ [d] && "" === /./ [d]("a", "$0"),
                            f = !r((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]
                            }));
                        e.exports = function(e, t, n, d) {
                            var p = o(e),
                                g = !r((function() {
                                    var t = {};
                                    return t[p] = function() {
                                        return 7
                                    }, 7 != "" [e](t)
                                })),
                                m = g && !r((function() {
                                    var t = !1,
                                        n = /a/;
                                    return "split" === e && ((n = {}).constructor = {}, n.constructor[l] = function() {
                                        return n
                                    }, n.flags = "", n[p] = /./ [p]), n.exec = function() {
                                        return t = !0, null
                                    }, n[p](""), !t
                                }));
                            if (!g || !m || "replace" === e && (!c || !u || h) || "split" === e && !f) {
                                var v = /./ [p],
                                    y = n(p, "" [e], (function(e, t, n, i, r) {
                                        return t.exec === a ? g && !r ? {
                                            done: !0,
                                            value: v.call(t, n, i)
                                        } : {
                                            done: !0,
                                            value: e.call(n, t, i)
                                        } : {
                                            done: !1
                                        }
                                    }), {
                                        REPLACE_KEEPS_$0: u,
                                        REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: h
                                    }),
                                    b = y[0],
                                    w = y[1];
                                i(String.prototype, e, b), i(RegExp.prototype, p, 2 == t ? function(e, t) {
                                    return w.call(e, this, t)
                                } : function(e) {
                                    return w.call(e, this)
                                })
                            }
                            d && s(RegExp.prototype[p], "sham", !0)
                        }
                    },
                    9974: function(e, t, n) {
                        var i = n(3099);
                        e.exports = function(e, t, n) {
                            if (i(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)
                            }
                        }
                    },
                    5005: function(e, t, n) {
                        var i = n(857),
                            r = n(7854),
                            o = function(e) {
                                return "function" == typeof e ? e : void 0
                            };
                        e.exports = function(e, t) {
                            return arguments.length < 2 ? o(i[e]) || o(r[e]) : i[e] && i[e][t] || r[e] && r[e][t]
                        }
                    },
                    1246: function(e, t, n) {
                        var i = n(648),
                            r = n(7497),
                            o = n(5112)("iterator");
                        e.exports = function(e) {
                            if (null != e) return e[o] || e["@@iterator"] || r[i(e)]
                        }
                    },
                    8554: function(e, t, n) {
                        var i = n(9670),
                            r = n(1246);
                        e.exports = function(e) {
                            var t = r(e);
                            if ("function" != typeof t) throw TypeError(String(e) + " is not iterable");
                            return i(t.call(e))
                        }
                    },
                    647: function(e, t, n) {
                        var i = n(7908),
                            r = Math.floor,
                            o = "".replace,
                            a = /\$([$&'`]|\d\d?|<[^>]*>)/g,
                            s = /\$([$&'`]|\d\d?)/g;
                        e.exports = function(e, t, n, l, c, u) {
                            var d = n + e.length,
                                h = l.length,
                                f = s;
                            return void 0 !== c && (c = i(c), f = a), o.call(u, f, (function(i, o) {
                                var a;
                                switch (o.charAt(0)) {
                                    case "$":
                                        return "$";
                                    case "&":
                                        return e;
                                    case "`":
                                        return t.slice(0, n);
                                    case "'":
                                        return t.slice(d);
                                    case "<":
                                        a = c[o.slice(1, -1)];
                                        break;
                                    default:
                                        var s = +o;
                                        if (0 === s) return i;
                                        if (s > h) {
                                            var u = r(s / 10);
                                            return 0 === u ? i : u <= h ? void 0 === l[u - 1] ? o.charAt(1) : l[u - 1] + o.charAt(1) : i
                                        }
                                        a = l[s - 1]
                                }
                                return void 0 === a ? "" : a
                            }))
                        }
                    },
                    7854: function(e, t, n) {
                        var i = function(e) {
                            return e && e.Math == Math && e
                        };
                        e.exports = i("object" == typeof globalThis && globalThis) || i("object" == typeof window && window) || i("object" == typeof self && self) || i("object" == typeof n.g && n.g) || function() {
                            return this
                        }() || Function("return this")()
                    },
                    6656: function(e) {
                        var t = {}.hasOwnProperty;
                        e.exports = function(e, n) {
                            return t.call(e, n)
                        }
                    },
                    3501: function(e) {
                        e.exports = {}
                    },
                    490: function(e, t, n) {
                        var i = n(5005);
                        e.exports = i("document", "documentElement")
                    },
                    4664: function(e, t, n) {
                        var i = n(9781),
                            r = n(7293),
                            o = n(317);
                        e.exports = !i && !r((function() {
                            return 7 != Object.defineProperty(o("div"), "a", {
                                get: function() {
                                    return 7
                                }
                            }).a
                        }))
                    },
                    1179: function(e) {
                        var t = Math.abs,
                            n = Math.pow,
                            i = Math.floor,
                            r = Math.log,
                            o = Math.LN2;
                        e.exports = {
                            pack: function(e, a, s) {
                                var l, c, u, d = new Array(s),
                                    h = 8 * s - a - 1,
                                    f = (1 << h) - 1,
                                    p = f >> 1,
                                    g = 23 === a ? n(2, -24) - n(2, -77) : 0,
                                    m = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0,
                                    v = 0;
                                for ((e = t(e)) != e || e === 1 / 0 ? (c = e != e ? 1 : 0, l = f) : (l = i(r(e) / o), e * (u = n(2, -l)) < 1 && (l--, u *= 2), (e += l + p >= 1 ? g / u : g * n(2, 1 - p)) * u >= 2 && (l++, u /= 2), l + p >= f ? (c = 0, l = f) : l + p >= 1 ? (c = (e * u - 1) * n(2, a), l += p) : (c = e * n(2, p - 1) * n(2, a), l = 0)); a >= 8; d[v++] = 255 & c, c /= 256, a -= 8);
                                for (l = l << a | c, h += a; h > 0; d[v++] = 255 & l, l /= 256, h -= 8);
                                return d[--v] |= 128 * m, d
                            },
                            unpack: function(e, t) {
                                var i, r = e.length,
                                    o = 8 * r - t - 1,
                                    a = (1 << o) - 1,
                                    s = a >> 1,
                                    l = o - 7,
                                    c = r - 1,
                                    u = e[c--],
                                    d = 127 & u;
                                for (u >>= 7; l > 0; d = 256 * d + e[c], c--, l -= 8);
                                for (i = d & (1 << -l) - 1, d >>= -l, l += t; l > 0; i = 256 * i + e[c], c--, l -= 8);
                                if (0 === d) d = 1 - s;
                                else {
                                    if (d === a) return i ? NaN : u ? -1 / 0 : 1 / 0;
                                    i += n(2, t), d -= s
                                }
                                return (u ? -1 : 1) * i * n(2, d - t)
                            }
                        }
                    },
                    8361: function(e, t, n) {
                        var i = n(7293),
                            r = n(4326),
                            o = "".split;
                        e.exports = i((function() {
                            return !Object("z").propertyIsEnumerable(0)
                        })) ? function(e) {
                            return "String" == r(e) ? o.call(e, "") : Object(e)
                        } : Object
                    },
                    9587: function(e, t, n) {
                        var i = n(111),
                            r = n(7674);
                        e.exports = function(e, t, n) {
                            var o, a;
                            return r && "function" == typeof(o = t.constructor) && o !== n && i(a = o.prototype) && a !== n.prototype && r(e, a), e
                        }
                    },
                    2788: function(e, t, n) {
                        var i = n(5465),
                            r = Function.toString;
                        "function" != typeof i.inspectSource && (i.inspectSource = function(e) {
                            return r.call(e)
                        }), e.exports = i.inspectSource
                    },
                    9909: function(e, t, n) {
                        var i, r, o, a = n(8536),
                            s = n(7854),
                            l = n(111),
                            c = n(8880),
                            u = n(6656),
                            d = n(5465),
                            h = n(6200),
                            f = n(3501),
                            p = s.WeakMap;
                        if (a) {
                            var g = d.state || (d.state = new p),
                                m = g.get,
                                v = g.has,
                                y = g.set;
                            i = function(e, t) {
                                return t.facade = e, y.call(g, e, t), t
                            }, r = function(e) {
                                return m.call(g, e) || {}
                            }, o = function(e) {
                                return v.call(g, e)
                            }
                        } else {
                            var b = h("state");
                            f[b] = !0, i = function(e, t) {
                                return t.facade = e, c(e, b, t), t
                            }, r = function(e) {
                                return u(e, b) ? e[b] : {}
                            }, o = function(e) {
                                return u(e, b)
                            }
                        }
                        e.exports = {
                            set: i,
                            get: r,
                            has: o,
                            enforce: function(e) {
                                return o(e) ? r(e) : i(e, {})
                            },
                            getterFor: function(e) {
                                return function(t) {
                                    var n;
                                    if (!l(t) || (n = r(t)).type !== e) throw TypeError("Incompatible receiver, " + e + " required");
                                    return n
                                }
                            }
                        }
                    },
                    7659: function(e, t, n) {
                        var i = n(5112),
                            r = n(7497),
                            o = i("iterator"),
                            a = Array.prototype;
                        e.exports = function(e) {
                            return void 0 !== e && (r.Array === e || a[o] === e)
                        }
                    },
                    3157: function(e, t, n) {
                        var i = n(4326);
                        e.exports = Array.isArray || function(e) {
                            return "Array" == i(e)
                        }
                    },
                    4705: function(e, t, n) {
                        var i = n(7293),
                            r = /#|\.prototype\./,
                            o = function(e, t) {
                                var n = s[a(e)];
                                return n == c || n != l && ("function" == typeof t ? i(t) : !!t)
                            },
                            a = o.normalize = function(e) {
                                return String(e).replace(r, ".").toLowerCase()
                            },
                            s = o.data = {},
                            l = o.NATIVE = "N",
                            c = o.POLYFILL = "P";
                        e.exports = o
                    },
                    111: function(e) {
                        e.exports = function(e) {
                            return "object" == typeof e ? null !== e : "function" == typeof e
                        }
                    },
                    1913: function(e) {
                        e.exports = !1
                    },
                    7850: function(e, t, n) {
                        var i = n(111),
                            r = n(4326),
                            o = n(5112)("match");
                        e.exports = function(e) {
                            var t;
                            return i(e) && (void 0 !== (t = e[o]) ? !!t : "RegExp" == r(e))
                        }
                    },
                    9212: function(e, t, n) {
                        var i = n(9670);
                        e.exports = function(e) {
                            var t = e.return;
                            if (void 0 !== t) return i(t.call(e)).value
                        }
                    },
                    3383: function(e, t, n) {
                        "use strict";
                        var i, r, o, a = n(7293),
                            s = n(9518),
                            l = n(8880),
                            c = n(6656),
                            u = n(5112),
                            d = n(1913),
                            h = u("iterator"),
                            f = !1;
                        [].keys && ("next" in (o = [].keys()) ? (r = s(s(o))) !== Object.prototype && (i = r) : f = !0);
                        var p = null == i || a((function() {
                            var e = {};
                            return i[h].call(e) !== e
                        }));
                        p && (i = {}), d && !p || c(i, h) || l(i, h, (function() {
                            return this
                        })), e.exports = {
                            IteratorPrototype: i,
                            BUGGY_SAFARI_ITERATORS: f
                        }
                    },
                    7497: function(e) {
                        e.exports = {}
                    },
                    133: function(e, t, n) {
                        var i = n(7293);
                        e.exports = !!Object.getOwnPropertySymbols && !i((function() {
                            return !String(Symbol())
                        }))
                    },
                    590: function(e, t, n) {
                        var i = n(7293),
                            r = n(5112),
                            o = n(1913),
                            a = r("iterator");
                        e.exports = !i((function() {
                            var e = new URL("b?a=1&b=2&c=3", "http://a"),
                                t = e.searchParams,
                                n = "";
                            return e.pathname = "c%20d", t.forEach((function(e, i) {
                                t.delete("b"), n += i + e
                            })), o && !e.toJSON || !t.sort || "http://a/c%20d?a=1&c=3" !== e.href || "3" !== t.get("c") || "a=1" !== String(new URLSearchParams("?a=1")) || !t[a] || "a" !== new URL("https://a@b").username || "b" !== new URLSearchParams(new URLSearchParams("a=b")).get("a") || "xn--e1aybc" !== new URL("http://тест").host || "#%D0%B1" !== new URL("http://a#б").hash || "a1c3" !== n || "x" !== new URL("http://x", void 0).host
                        }))
                    },
                    8536: function(e, t, n) {
                        var i = n(7854),
                            r = n(2788),
                            o = i.WeakMap;
                        e.exports = "function" == typeof o && /native code/.test(r(o))
                    },
                    1574: function(e, t, n) {
                        "use strict";
                        var i = n(9781),
                            r = n(7293),
                            o = n(1956),
                            a = n(5181),
                            s = n(5296),
                            l = n(7908),
                            c = n(8361),
                            u = Object.assign,
                            d = Object.defineProperty;
                        e.exports = !u || r((function() {
                            if (i && 1 !== u({
                                    b: 1
                                }, u(d({}, "a", {
                                    enumerable: !0,
                                    get: function() {
                                        d(this, "b", {
                                            value: 3,
                                            enumerable: !1
                                        })
                                    }
                                }), {
                                    b: 2
                                })).b) return !0;
                            var e = {},
                                t = {},
                                n = Symbol(),
                                r = "abcdefghijklmnopqrst";
                            return e[n] = 7, r.split("").forEach((function(e) {
                                t[e] = e
                            })), 7 != u({}, e)[n] || o(u({}, t)).join("") != r
                        })) ? function(e, t) {
                            for (var n = l(e), r = arguments.length, u = 1, d = a.f, h = s.f; r > u;)
                                for (var f, p = c(arguments[u++]), g = d ? o(p).concat(d(p)) : o(p), m = g.length, v = 0; m > v;) f = g[v++], i && !h.call(p, f) || (n[f] = p[f]);
                            return n
                        } : u
                    },
                    30: function(e, t, n) {
                        var i, r = n(9670),
                            o = n(6048),
                            a = n(748),
                            s = n(3501),
                            l = n(490),
                            c = n(317),
                            u = n(6200)("IE_PROTO"),
                            d = function() {},
                            h = function(e) {
                                return "<script>" + e + "<\/script>"
                            },
                            f = function() {
                                try {
                                    i = document.domain && new ActiveXObject("htmlfile")
                                } catch (e) {}
                                var e, t;
                                f = i ? function(e) {
                                    e.write(h("")), e.close();
                                    var t = e.parentWindow.Object;
                                    return e = null, t
                                }(i) : ((t = c("iframe")).style.display = "none", l.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(h("document.F=Object")), e.close(), e.F);
                                for (var n = a.length; n--;) delete f.prototype[a[n]];
                                return f()
                            };
                        s[u] = !0, e.exports = Object.create || function(e, t) {
                            var n;
                            return null !== e ? (d.prototype = r(e), n = new d, d.prototype = null, n[u] = e) : n = f(), void 0 === t ? n : o(n, t)
                        }
                    },
                    6048: function(e, t, n) {
                        var i = n(9781),
                            r = n(3070),
                            o = n(9670),
                            a = n(1956);
                        e.exports = i ? Object.defineProperties : function(e, t) {
                            o(e);
                            for (var n, i = a(t), s = i.length, l = 0; s > l;) r.f(e, n = i[l++], t[n]);
                            return e
                        }
                    },
                    3070: function(e, t, n) {
                        var i = n(9781),
                            r = n(4664),
                            o = n(9670),
                            a = n(7593),
                            s = Object.defineProperty;
                        t.f = i ? s : function(e, t, n) {
                            if (o(e), t = a(t, !0), o(n), r) try {
                                return s(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
                        }
                    },
                    1236: function(e, t, n) {
                        var i = n(9781),
                            r = n(5296),
                            o = n(9114),
                            a = n(5656),
                            s = n(7593),
                            l = n(6656),
                            c = n(4664),
                            u = Object.getOwnPropertyDescriptor;
                        t.f = i ? u : function(e, t) {
                            if (e = a(e), t = s(t, !0), c) try {
                                return u(e, t)
                            } catch (e) {}
                            if (l(e, t)) return o(!r.f.call(e, t), e[t])
                        }
                    },
                    8006: function(e, t, n) {
                        var i = n(6324),
                            r = n(748).concat("length", "prototype");
                        t.f = Object.getOwnPropertyNames || function(e) {
                            return i(e, r)
                        }
                    },
                    5181: function(e, t) {
                        t.f = Object.getOwnPropertySymbols
                    },
                    9518: function(e, t, n) {
                        var i = n(6656),
                            r = n(7908),
                            o = n(6200),
                            a = n(8544),
                            s = o("IE_PROTO"),
                            l = Object.prototype;
                        e.exports = a ? Object.getPrototypeOf : function(e) {
                            return e = r(e), i(e, s) ? e[s] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? l : null
                        }
                    },
                    6324: function(e, t, n) {
                        var i = n(6656),
                            r = n(5656),
                            o = n(1318).indexOf,
                            a = n(3501);
                        e.exports = function(e, t) {
                            var n, s = r(e),
                                l = 0,
                                c = [];
                            for (n in s) !i(a, n) && i(s, n) && c.push(n);
                            for (; t.length > l;) i(s, n = t[l++]) && (~o(c, n) || c.push(n));
                            return c
                        }
                    },
                    1956: function(e, t, n) {
                        var i = n(6324),
                            r = n(748);
                        e.exports = Object.keys || function(e) {
                            return i(e, r)
                        }
                    },
                    5296: function(e, t) {
                        "use strict";
                        var n = {}.propertyIsEnumerable,
                            i = Object.getOwnPropertyDescriptor,
                            r = i && !n.call({
                                1: 2
                            }, 1);
                        t.f = r ? function(e) {
                            var t = i(this, e);
                            return !!t && t.enumerable
                        } : n
                    },
                    7674: function(e, t, n) {
                        var i = n(9670),
                            r = n(6077);
                        e.exports = 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, o) {
                                return i(n), r(o), t ? e.call(n, o) : n.__proto__ = o, n
                            }
                        }() : void 0)
                    },
                    288: function(e, t, n) {
                        "use strict";
                        var i = n(1694),
                            r = n(648);
                        e.exports = i ? {}.toString : function() {
                            return "[object " + r(this) + "]"
                        }
                    },
                    3887: function(e, t, n) {
                        var i = n(5005),
                            r = n(8006),
                            o = n(5181),
                            a = n(9670);
                        e.exports = i("Reflect", "ownKeys") || function(e) {
                            var t = r.f(a(e)),
                                n = o.f;
                            return n ? t.concat(n(e)) : t
                        }
                    },
                    857: function(e, t, n) {
                        var i = n(7854);
                        e.exports = i
                    },
                    2248: function(e, t, n) {
                        var i = n(1320);
                        e.exports = function(e, t, n) {
                            for (var r in t) i(e, r, t[r], n);
                            return e
                        }
                    },
                    1320: function(e, t, n) {
                        var i = n(7854),
                            r = n(8880),
                            o = n(6656),
                            a = n(3505),
                            s = n(2788),
                            l = n(9909),
                            c = l.get,
                            u = l.enforce,
                            d = String(String).split("String");
                        (e.exports = function(e, t, n, s) {
                            var l, c = !!s && !!s.unsafe,
                                h = !!s && !!s.enumerable,
                                f = !!s && !!s.noTargetGet;
                            "function" == typeof n && ("string" != typeof t || o(n, "name") || r(n, "name", t), (l = u(n)).source || (l.source = d.join("string" == typeof t ? t : ""))), e !== i ? (c ? !f && e[t] && (h = !0) : delete e[t], h ? e[t] = n : r(e, t, n)) : h ? e[t] = n : a(t, n)
                        })(Function.prototype, "toString", (function() {
                            return "function" == typeof this && c(this).source || s(this)
                        }))
                    },
                    7651: function(e, t, n) {
                        var i = n(4326),
                            r = n(2261);
                        e.exports = function(e, t) {
                            var n = e.exec;
                            if ("function" == typeof n) {
                                var o = n.call(e, t);
                                if ("object" != typeof o) throw TypeError("RegExp exec method returned something other than an Object or null");
                                return o
                            }
                            if ("RegExp" !== i(e)) throw TypeError("RegExp#exec called on incompatible receiver");
                            return r.call(e, t)
                        }
                    },
                    2261: function(e, t, n) {
                        "use strict";
                        var i, r, o = n(7066),
                            a = n(2999),
                            s = RegExp.prototype.exec,
                            l = String.prototype.replace,
                            c = s,
                            u = (i = /a/, r = /b*/g, s.call(i, "a"), s.call(r, "a"), 0 !== i.lastIndex || 0 !== r.lastIndex),
                            d = a.UNSUPPORTED_Y || a.BROKEN_CARET,
                            h = void 0 !== /()??/.exec("")[1];
                        (u || h || d) && (c = function(e) {
                            var t, n, i, r, a = this,
                                c = d && a.sticky,
                                f = o.call(a),
                                p = a.source,
                                g = 0,
                                m = e;
                            return c && (-1 === (f = f.replace("y", "")).indexOf("g") && (f += "g"), m = String(e).slice(a.lastIndex), a.lastIndex > 0 && (!a.multiline || a.multiline && "\n" !== e[a.lastIndex - 1]) && (p = "(?: " + p + ")", m = " " + m, g++), n = new RegExp("^(?:" + p + ")", f)), h && (n = new RegExp("^" + p + "$(?!\\s)", f)), u && (t = a.lastIndex), i = s.call(c ? n : a, m), c ? i ? (i.input = i.input.slice(g), i[0] = i[0].slice(g), i.index = a.lastIndex, a.lastIndex += i[0].length) : a.lastIndex = 0 : u && i && (a.lastIndex = a.global ? i.index + i[0].length : t), h && i && i.length > 1 && l.call(i[0], n, (function() {
                                for (r = 1; r < arguments.length - 2; r++) void 0 === arguments[r] && (i[r] = void 0)
                            })), i
                        }), e.exports = c
                    },
                    7066: function(e, t, n) {
                        "use strict";
                        var i = n(9670);
                        e.exports = function() {
                            var e = i(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
                        }
                    },
                    2999: function(e, t, n) {
                        "use strict";
                        var i = n(7293);

                        function r(e, t) {
                            return RegExp(e, t)
                        }
                        t.UNSUPPORTED_Y = i((function() {
                            var e = r("a", "y");
                            return e.lastIndex = 2, null != e.exec("abcd")
                        })), t.BROKEN_CARET = i((function() {
                            var e = r("^r", "gy");
                            return e.lastIndex = 2, null != e.exec("str")
                        }))
                    },
                    4488: function(e) {
                        e.exports = function(e) {
                            if (null == e) throw TypeError("Can't call method on " + e);
                            return e
                        }
                    },
                    3505: function(e, t, n) {
                        var i = n(7854),
                            r = n(8880);
                        e.exports = function(e, t) {
                            try {
                                r(i, e, t)
                            } catch (n) {
                                i[e] = t
                            }
                            return t
                        }
                    },
                    6340: function(e, t, n) {
                        "use strict";
                        var i = n(5005),
                            r = n(3070),
                            o = n(5112),
                            a = n(9781),
                            s = o("species");
                        e.exports = function(e) {
                            var t = i(e),
                                n = r.f;
                            a && t && !t[s] && n(t, s, {
                                configurable: !0,
                                get: function() {
                                    return this
                                }
                            })
                        }
                    },
                    8003: function(e, t, n) {
                        var i = n(3070).f,
                            r = n(6656),
                            o = n(5112)("toStringTag");
                        e.exports = function(e, t, n) {
                            e && !r(e = n ? e : e.prototype, o) && i(e, o, {
                                configurable: !0,
                                value: t
                            })
                        }
                    },
                    6200: function(e, t, n) {
                        var i = n(2309),
                            r = n(9711),
                            o = i("keys");
                        e.exports = function(e) {
                            return o[e] || (o[e] = r(e))
                        }
                    },
                    5465: function(e, t, n) {
                        var i = n(7854),
                            r = n(3505),
                            o = "__core-js_shared__",
                            a = i[o] || r(o, {});
                        e.exports = a
                    },
                    2309: function(e, t, n) {
                        var i = n(1913),
                            r = n(5465);
                        (e.exports = function(e, t) {
                            return r[e] || (r[e] = void 0 !== t ? t : {})
                        })("versions", []).push({
                            version: "3.9.0",
                            mode: i ? "pure" : "global",
                            copyright: "© 2021 Denis Pushkarev (zloirock.ru)"
                        })
                    },
                    6707: function(e, t, n) {
                        var i = n(9670),
                            r = n(3099),
                            o = n(5112)("species");
                        e.exports = function(e, t) {
                            var n, a = i(e).constructor;
                            return void 0 === a || null == (n = i(a)[o]) ? t : r(n)
                        }
                    },
                    8710: function(e, t, n) {
                        var i = n(9958),
                            r = n(4488),
                            o = function(e) {
                                return function(t, n) {
                                    var o, a, s = String(r(t)),
                                        l = i(n),
                                        c = s.length;
                                    return l < 0 || l >= c ? e ? "" : void 0 : (o = s.charCodeAt(l)) < 55296 || o > 56319 || l + 1 === c || (a = s.charCodeAt(l + 1)) < 56320 || a > 57343 ? e ? s.charAt(l) : o : e ? s.slice(l, l + 2) : a - 56320 + (o - 55296 << 10) + 65536
                                }
                            };
                        e.exports = {
                            codeAt: o(!1),
                            charAt: o(!0)
                        }
                    },
                    3197: function(e) {
                        "use strict";
                        var t = 2147483647,
                            n = /[^\0-\u007E]/,
                            i = /[.\u3002\uFF0E\uFF61]/g,
                            r = "Overflow: input needs wider integers to process",
                            o = Math.floor,
                            a = String.fromCharCode,
                            s = function(e) {
                                return e + 22 + 75 * (e < 26)
                            },
                            l = function(e, t, n) {
                                var i = 0;
                                for (e = n ? o(e / 700) : e >> 1, e += o(e / t); e > 455; i += 36) e = o(e / 35);
                                return o(i + 36 * e / (e + 38))
                            },
                            c = function(e) {
                                var n, i, c = [],
                                    u = (e = function(e) {
                                        for (var t = [], n = 0, i = e.length; n < i;) {
                                            var r = e.charCodeAt(n++);
                                            if (r >= 55296 && r <= 56319 && n < i) {
                                                var o = e.charCodeAt(n++);
                                                56320 == (64512 & o) ? t.push(((1023 & r) << 10) + (1023 & o) + 65536) : (t.push(r), n--)
                                            } else t.push(r)
                                        }
                                        return t
                                    }(e)).length,
                                    d = 128,
                                    h = 0,
                                    f = 72;
                                for (n = 0; n < e.length; n++)(i = e[n]) < 128 && c.push(a(i));
                                var p = c.length,
                                    g = p;
                                for (p && c.push("-"); g < u;) {
                                    var m = t;
                                    for (n = 0; n < e.length; n++)(i = e[n]) >= d && i < m && (m = i);
                                    var v = g + 1;
                                    if (m - d > o((t - h) / v)) throw RangeError(r);
                                    for (h += (m - d) * v, d = m, n = 0; n < e.length; n++) {
                                        if ((i = e[n]) < d && ++h > t) throw RangeError(r);
                                        if (i == d) {
                                            for (var y = h, b = 36;; b += 36) {
                                                var w = b <= f ? 1 : b >= f + 26 ? 26 : b - f;
                                                if (y < w) break;
                                                var x = y - w,
                                                    _ = 36 - w;
                                                c.push(a(s(w + x % _))), y = o(x / _)
                                            }
                                            c.push(a(s(y))), f = l(h, v, g == p), h = 0, ++g
                                        }
                                    }++h, ++d
                                }
                                return c.join("")
                            };
                        e.exports = function(e) {
                            var t, r, o = [],
                                a = e.toLowerCase().replace(i, ".").split(".");
                            for (t = 0; t < a.length; t++) r = a[t], o.push(n.test(r) ? "xn--" + c(r) : r);
                            return o.join(".")
                        }
                    },
                    6091: function(e, t, n) {
                        var i = n(7293),
                            r = n(1361);
                        e.exports = function(e) {
                            return i((function() {
                                return !!r[e]() || "​᠎" != "​᠎" [e]() || r[e].name !== e
                            }))
                        }
                    },
                    3111: function(e, t, n) {
                        var i = n(4488),
                            r = "[" + n(1361) + "]",
                            o = RegExp("^" + r + r + "*"),
                            a = RegExp(r + r + "*$"),
                            s = function(e) {
                                return function(t) {
                                    var n = String(i(t));
                                    return 1 & e && (n = n.replace(o, "")), 2 & e && (n = n.replace(a, "")), n
                                }
                            };
                        e.exports = {
                            start: s(1),
                            end: s(2),
                            trim: s(3)
                        }
                    },
                    1400: function(e, t, n) {
                        var i = n(9958),
                            r = Math.max,
                            o = Math.min;
                        e.exports = function(e, t) {
                            var n = i(e);
                            return n < 0 ? r(n + t, 0) : o(n, t)
                        }
                    },
                    7067: function(e, t, n) {
                        var i = n(9958),
                            r = n(7466);
                        e.exports = function(e) {
                            if (void 0 === e) return 0;
                            var t = i(e),
                                n = r(t);
                            if (t !== n) throw RangeError("Wrong length or index");
                            return n
                        }
                    },
                    5656: function(e, t, n) {
                        var i = n(8361),
                            r = n(4488);
                        e.exports = function(e) {
                            return i(r(e))
                        }
                    },
                    9958: function(e) {
                        var t = Math.ceil,
                            n = Math.floor;
                        e.exports = function(e) {
                            return isNaN(e = +e) ? 0 : (e > 0 ? n : t)(e)
                        }
                    },
                    7466: function(e, t, n) {
                        var i = n(9958),
                            r = Math.min;
                        e.exports = function(e) {
                            return e > 0 ? r(i(e), 9007199254740991) : 0
                        }
                    },
                    7908: function(e, t, n) {
                        var i = n(4488);
                        e.exports = function(e) {
                            return Object(i(e))
                        }
                    },
                    4590: function(e, t, n) {
                        var i = n(3002);
                        e.exports = function(e, t) {
                            var n = i(e);
                            if (n % t) throw RangeError("Wrong offset");
                            return n
                        }
                    },
                    3002: function(e, t, n) {
                        var i = n(9958);
                        e.exports = function(e) {
                            var t = i(e);
                            if (t < 0) throw RangeError("The argument can't be less than 0");
                            return t
                        }
                    },
                    7593: function(e, t, n) {
                        var i = n(111);
                        e.exports = function(e, t) {
                            if (!i(e)) return e;
                            var n, r;
                            if (t && "function" == typeof(n = e.toString) && !i(r = n.call(e))) return r;
                            if ("function" == typeof(n = e.valueOf) && !i(r = n.call(e))) return r;
                            if (!t && "function" == typeof(n = e.toString) && !i(r = n.call(e))) return r;
                            throw TypeError("Can't convert object to primitive value")
                        }
                    },
                    1694: function(e, t, n) {
                        var i = {};
                        i[n(5112)("toStringTag")] = "z", e.exports = "[object z]" === String(i)
                    },
                    9843: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(7854),
                            o = n(9781),
                            a = n(3832),
                            s = n(260),
                            l = n(3331),
                            c = n(5787),
                            u = n(9114),
                            d = n(8880),
                            h = n(7466),
                            f = n(7067),
                            p = n(4590),
                            g = n(7593),
                            m = n(6656),
                            v = n(648),
                            y = n(111),
                            b = n(30),
                            w = n(7674),
                            x = n(8006).f,
                            _ = n(7321),
                            C = n(2092).forEach,
                            S = n(6340),
                            k = n(3070),
                            T = n(1236),
                            A = n(9909),
                            D = n(9587),
                            E = A.get,
                            O = A.set,
                            M = k.f,
                            I = T.f,
                            P = Math.round,
                            L = r.RangeError,
                            N = l.ArrayBuffer,
                            F = l.DataView,
                            R = s.NATIVE_ARRAY_BUFFER_VIEWS,
                            j = s.TYPED_ARRAY_TAG,
                            $ = s.TypedArray,
                            z = s.TypedArrayPrototype,
                            H = s.aTypedArrayConstructor,
                            B = s.isTypedArray,
                            q = "BYTES_PER_ELEMENT",
                            W = "Wrong length",
                            U = function(e, t) {
                                for (var n = 0, i = t.length, r = new(H(e))(i); i > n;) r[n] = t[n++];
                                return r
                            },
                            V = function(e, t) {
                                M(e, t, {
                                    get: function() {
                                        return E(this)[t]
                                    }
                                })
                            },
                            Y = function(e) {
                                var t;
                                return e instanceof N || "ArrayBuffer" == (t = v(e)) || "SharedArrayBuffer" == t
                            },
                            X = function(e, t) {
                                return B(e) && "symbol" != typeof t && t in e && String(+t) == String(t)
                            },
                            G = function(e, t) {
                                return X(e, t = g(t, !0)) ? u(2, e[t]) : I(e, t)
                            },
                            K = function(e, t, n) {
                                return !(X(e, t = g(t, !0)) && y(n) && m(n, "value")) || m(n, "get") || m(n, "set") || n.configurable || m(n, "writable") && !n.writable || m(n, "enumerable") && !n.enumerable ? M(e, t, n) : (e[t] = n.value, e)
                            };
                        o ? (R || (T.f = G, k.f = K, V(z, "buffer"), V(z, "byteOffset"), V(z, "byteLength"), V(z, "length")), i({
                            target: "Object",
                            stat: !0,
                            forced: !R
                        }, {
                            getOwnPropertyDescriptor: G,
                            defineProperty: K
                        }), e.exports = function(e, t, n) {
                            var o = e.match(/\d+$/)[0] / 8,
                                s = e + (n ? "Clamped" : "") + "Array",
                                l = "get" + e,
                                u = "set" + e,
                                g = r[s],
                                m = g,
                                v = m && m.prototype,
                                k = {},
                                T = function(e, t) {
                                    M(e, t, {
                                        get: function() {
                                            return function(e, t) {
                                                var n = E(e);
                                                return n.view[l](t * o + n.byteOffset, !0)
                                            }(this, t)
                                        },
                                        set: function(e) {
                                            return function(e, t, i) {
                                                var r = E(e);
                                                n && (i = (i = P(i)) < 0 ? 0 : i > 255 ? 255 : 255 & i), r.view[u](t * o + r.byteOffset, i, !0)
                                            }(this, t, e)
                                        },
                                        enumerable: !0
                                    })
                                };
                            R ? a && (m = t((function(e, t, n, i) {
                                return c(e, m, s), D(y(t) ? Y(t) ? void 0 !== i ? new g(t, p(n, o), i) : void 0 !== n ? new g(t, p(n, o)) : new g(t) : B(t) ? U(m, t) : _.call(m, t) : new g(f(t)), e, m)
                            })), w && w(m, $), C(x(g), (function(e) {
                                e in m || d(m, e, g[e])
                            })), m.prototype = v) : (m = t((function(e, t, n, i) {
                                c(e, m, s);
                                var r, a, l, u = 0,
                                    d = 0;
                                if (y(t)) {
                                    if (!Y(t)) return B(t) ? U(m, t) : _.call(m, t);
                                    r = t, d = p(n, o);
                                    var g = t.byteLength;
                                    if (void 0 === i) {
                                        if (g % o) throw L(W);
                                        if ((a = g - d) < 0) throw L(W)
                                    } else if ((a = h(i) * o) + d > g) throw L(W);
                                    l = a / o
                                } else l = f(t), r = new N(a = l * o);
                                for (O(e, {
                                        buffer: r,
                                        byteOffset: d,
                                        byteLength: a,
                                        length: l,
                                        view: new F(r)
                                    }); u < l;) T(e, u++)
                            })), w && w(m, $), v = m.prototype = b(z)), v.constructor !== m && d(v, "constructor", m), j && d(v, j, s), k[s] = m, i({
                                global: !0,
                                forced: m != g,
                                sham: !R
                            }, k), q in m || d(m, q, o), q in v || d(v, q, o), S(s)
                        }) : e.exports = function() {}
                    },
                    3832: function(e, t, n) {
                        var i = n(7854),
                            r = n(7293),
                            o = n(7072),
                            a = n(260).NATIVE_ARRAY_BUFFER_VIEWS,
                            s = i.ArrayBuffer,
                            l = i.Int8Array;
                        e.exports = !a || !r((function() {
                            l(1)
                        })) || !r((function() {
                            new l(-1)
                        })) || !o((function(e) {
                            new l, new l(null), new l(1.5), new l(e)
                        }), !0) || r((function() {
                            return 1 !== new l(new s(2), 1, void 0).length
                        }))
                    },
                    3074: function(e, t, n) {
                        var i = n(260).aTypedArrayConstructor,
                            r = n(6707);
                        e.exports = function(e, t) {
                            for (var n = r(e, e.constructor), o = 0, a = t.length, s = new(i(n))(a); a > o;) s[o] = t[o++];
                            return s
                        }
                    },
                    7321: function(e, t, n) {
                        var i = n(7908),
                            r = n(7466),
                            o = n(1246),
                            a = n(7659),
                            s = n(9974),
                            l = n(260).aTypedArrayConstructor;
                        e.exports = function(e) {
                            var t, n, c, u, d, h, f = i(e),
                                p = arguments.length,
                                g = p > 1 ? arguments[1] : void 0,
                                m = void 0 !== g,
                                v = o(f);
                            if (null != v && !a(v))
                                for (h = (d = v.call(f)).next, f = []; !(u = h.call(d)).done;) f.push(u.value);
                            for (m && p > 2 && (g = s(g, arguments[2], 2)), n = r(f.length), c = new(l(this))(n), t = 0; n > t; t++) c[t] = m ? g(f[t], t) : f[t];
                            return c
                        }
                    },
                    9711: function(e) {
                        var t = 0,
                            n = Math.random();
                        e.exports = function(e) {
                            return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++t + n).toString(36)
                        }
                    },
                    3307: function(e, t, n) {
                        var i = n(133);
                        e.exports = i && !Symbol.sham && "symbol" == typeof Symbol.iterator
                    },
                    5112: function(e, t, n) {
                        var i = n(7854),
                            r = n(2309),
                            o = n(6656),
                            a = n(9711),
                            s = n(133),
                            l = n(3307),
                            c = r("wks"),
                            u = i.Symbol,
                            d = l ? u : u && u.withoutSetter || a;
                        e.exports = function(e) {
                            return o(c, e) || (s && o(u, e) ? c[e] = u[e] : c[e] = d("Symbol." + e)), c[e]
                        }
                    },
                    1361: function(e) {
                        e.exports = "\t\n\v\f\r                　\u2028\u2029\ufeff"
                    },
                    8264: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(7854),
                            o = n(3331),
                            a = n(6340),
                            s = o.ArrayBuffer;
                        i({
                            global: !0,
                            forced: r.ArrayBuffer !== s
                        }, {
                            ArrayBuffer: s
                        }), a("ArrayBuffer")
                    },
                    2222: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(7293),
                            o = n(3157),
                            a = n(111),
                            s = n(7908),
                            l = n(7466),
                            c = n(6135),
                            u = n(5417),
                            d = n(1194),
                            h = n(5112),
                            f = n(7392),
                            p = h("isConcatSpreadable"),
                            g = 9007199254740991,
                            m = "Maximum allowed index exceeded",
                            v = f >= 51 || !r((function() {
                                var e = [];
                                return e[p] = !1, e.concat()[0] !== e
                            })),
                            y = d("concat"),
                            b = function(e) {
                                if (!a(e)) return !1;
                                var t = e[p];
                                return void 0 !== t ? !!t : o(e)
                            };
                        i({
                            target: "Array",
                            proto: !0,
                            forced: !v || !y
                        }, {
                            concat: function(e) {
                                var t, n, i, r, o, a = s(this),
                                    d = u(a, 0),
                                    h = 0;
                                for (t = -1, i = arguments.length; t < i; t++)
                                    if (b(o = -1 === t ? a : arguments[t])) {
                                        if (h + (r = l(o.length)) > g) throw TypeError(m);
                                        for (n = 0; n < r; n++, h++) n in o && c(d, h, o[n])
                                    } else {
                                        if (h >= g) throw TypeError(m);
                                        c(d, h++, o)
                                    }
                                return d.length = h, d
                            }
                        })
                    },
                    7327: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(2092).filter;
                        i({
                            target: "Array",
                            proto: !0,
                            forced: !n(1194)("filter")
                        }, {
                            filter: function(e) {
                                return r(this, e, arguments.length > 1 ? arguments[1] : void 0)
                            }
                        })
                    },
                    2772: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(1318).indexOf,
                            o = n(9341),
                            a = [].indexOf,
                            s = !!a && 1 / [1].indexOf(1, -0) < 0,
                            l = o("indexOf");
                        i({
                            target: "Array",
                            proto: !0,
                            forced: s || !l
                        }, {
                            indexOf: function(e) {
                                return s ? a.apply(this, arguments) || 0 : r(this, e, arguments.length > 1 ? arguments[1] : void 0)
                            }
                        })
                    },
                    6992: function(e, t, n) {
                        "use strict";
                        var i = n(5656),
                            r = n(1223),
                            o = n(7497),
                            a = n(9909),
                            s = n(654),
                            l = "Array Iterator",
                            c = a.set,
                            u = a.getterFor(l);
                        e.exports = s(Array, "Array", (function(e, t) {
                            c(this, {
                                type: l,
                                target: i(e),
                                index: 0,
                                kind: t
                            })
                        }), (function() {
                            var e = u(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"), o.Arguments = o.Array, r("keys"), r("values"), r("entries")
                    },
                    1249: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(2092).map;
                        i({
                            target: "Array",
                            proto: !0,
                            forced: !n(1194)("map")
                        }, {
                            map: function(e) {
                                return r(this, e, arguments.length > 1 ? arguments[1] : void 0)
                            }
                        })
                    },
                    7042: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(111),
                            o = n(3157),
                            a = n(1400),
                            s = n(7466),
                            l = n(5656),
                            c = n(6135),
                            u = n(5112),
                            d = n(1194)("slice"),
                            h = u("species"),
                            f = [].slice,
                            p = Math.max;
                        i({
                            target: "Array",
                            proto: !0,
                            forced: !d
                        }, {
                            slice: function(e, t) {
                                var n, i, u, d = l(this),
                                    g = s(d.length),
                                    m = a(e, g),
                                    v = a(void 0 === t ? g : t, g);
                                if (o(d) && ("function" != typeof(n = d.constructor) || n !== Array && !o(n.prototype) ? r(n) && null === (n = n[h]) && (n = void 0) : n = void 0, n === Array || void 0 === n)) return f.call(d, m, v);
                                for (i = new(void 0 === n ? Array : n)(p(v - m, 0)), u = 0; m < v; m++, u++) m in d && c(i, u, d[m]);
                                return i.length = u, i
                            }
                        })
                    },
                    561: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(1400),
                            o = n(9958),
                            a = n(7466),
                            s = n(7908),
                            l = n(5417),
                            c = n(6135),
                            u = n(1194)("splice"),
                            d = Math.max,
                            h = Math.min,
                            f = 9007199254740991,
                            p = "Maximum allowed length exceeded";
                        i({
                            target: "Array",
                            proto: !0,
                            forced: !u
                        }, {
                            splice: function(e, t) {
                                var n, i, u, g, m, v, y = s(this),
                                    b = a(y.length),
                                    w = r(e, b),
                                    x = arguments.length;
                                if (0 === x ? n = i = 0 : 1 === x ? (n = 0, i = b - w) : (n = x - 2, i = h(d(o(t), 0), b - w)), b + n - i > f) throw TypeError(p);
                                for (u = l(y, i), g = 0; g < i; g++)(m = w + g) in y && c(u, g, y[m]);
                                if (u.length = i, n < i) {
                                    for (g = w; g < b - i; g++) v = g + n, (m = g + i) in y ? y[v] = y[m] : delete y[v];
                                    for (g = b; g > b - i + n; g--) delete y[g - 1]
                                } else if (n > i)
                                    for (g = b - i; g > w; g--) v = g + n - 1, (m = g + i - 1) in y ? y[v] = y[m] : delete y[v];
                                for (g = 0; g < n; g++) y[g + w] = arguments[g + 2];
                                return y.length = b - i + n, u
                            }
                        })
                    },
                    8309: function(e, t, n) {
                        var i = n(9781),
                            r = n(3070).f,
                            o = Function.prototype,
                            a = o.toString,
                            s = /^\s*function ([^ (]*)/,
                            l = "name";
                        i && !(l in o) && r(o, l, {
                            configurable: !0,
                            get: function() {
                                try {
                                    return a.call(this).match(s)[1]
                                } catch (e) {
                                    return ""
                                }
                            }
                        })
                    },
                    489: function(e, t, n) {
                        var i = n(2109),
                            r = n(7293),
                            o = n(7908),
                            a = n(9518),
                            s = n(8544);
                        i({
                            target: "Object",
                            stat: !0,
                            forced: r((function() {
                                a(1)
                            })),
                            sham: !s
                        }, {
                            getPrototypeOf: function(e) {
                                return a(o(e))
                            }
                        })
                    },
                    1539: function(e, t, n) {
                        var i = n(1694),
                            r = n(1320),
                            o = n(288);
                        i || r(Object.prototype, "toString", o, {
                            unsafe: !0
                        })
                    },
                    4916: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(2261);
                        i({
                            target: "RegExp",
                            proto: !0,
                            forced: /./.exec !== r
                        }, {
                            exec: r
                        })
                    },
                    9714: function(e, t, n) {
                        "use strict";
                        var i = n(1320),
                            r = n(9670),
                            o = n(7293),
                            a = n(7066),
                            s = "toString",
                            l = RegExp.prototype,
                            c = l.toString,
                            u = o((function() {
                                return "/a/b" != c.call({
                                    source: "a",
                                    flags: "b"
                                })
                            })),
                            d = c.name != s;
                        (u || d) && i(RegExp.prototype, s, (function() {
                            var e = r(this),
                                t = String(e.source),
                                n = e.flags;
                            return "/" + t + "/" + String(void 0 === n && e instanceof RegExp && !("flags" in l) ? a.call(e) : n)
                        }), {
                            unsafe: !0
                        })
                    },
                    8783: function(e, t, n) {
                        "use strict";
                        var i = n(8710).charAt,
                            r = n(9909),
                            o = n(654),
                            a = "String Iterator",
                            s = r.set,
                            l = r.getterFor(a);
                        o(String, "String", (function(e) {
                            s(this, {
                                type: a,
                                string: String(e),
                                index: 0
                            })
                        }), (function() {
                            var e, t = l(this),
                                n = t.string,
                                r = t.index;
                            return r >= n.length ? {
                                value: void 0,
                                done: !0
                            } : (e = i(n, r), t.index += e.length, {
                                value: e,
                                done: !1
                            })
                        }))
                    },
                    4723: function(e, t, n) {
                        "use strict";
                        var i = n(7007),
                            r = n(9670),
                            o = n(7466),
                            a = n(4488),
                            s = n(1530),
                            l = n(7651);
                        i("match", 1, (function(e, t, n) {
                            return [function(t) {
                                var n = a(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 a = r(e),
                                    c = String(this);
                                if (!a.global) return l(a, c);
                                var u = a.unicode;
                                a.lastIndex = 0;
                                for (var d, h = [], f = 0; null !== (d = l(a, c));) {
                                    var p = String(d[0]);
                                    h[f] = p, "" === p && (a.lastIndex = s(c, o(a.lastIndex), u)), f++
                                }
                                return 0 === f ? null : h
                            }]
                        }))
                    },
                    5306: function(e, t, n) {
                        "use strict";
                        var i = n(7007),
                            r = n(9670),
                            o = n(7466),
                            a = n(9958),
                            s = n(4488),
                            l = n(1530),
                            c = n(647),
                            u = n(7651),
                            d = Math.max,
                            h = Math.min;
                        i("replace", 2, (function(e, t, n, i) {
                            var f = i.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,
                                p = i.REPLACE_KEEPS_$0,
                                g = f ? "$" : "$0";
                            return [function(n, i) {
                                var r = s(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, i) {
                                if (!f && p || "string" == typeof i && -1 === i.indexOf(g)) {
                                    var s = n(t, e, this, i);
                                    if (s.done) return s.value
                                }
                                var m = r(e),
                                    v = String(this),
                                    y = "function" == typeof i;
                                y || (i = String(i));
                                var b = m.global;
                                if (b) {
                                    var w = m.unicode;
                                    m.lastIndex = 0
                                }
                                for (var x = [];;) {
                                    var _ = u(m, v);
                                    if (null === _) break;
                                    if (x.push(_), !b) break;
                                    "" === String(_[0]) && (m.lastIndex = l(v, o(m.lastIndex), w))
                                }
                                for (var C, S = "", k = 0, T = 0; T < x.length; T++) {
                                    _ = x[T];
                                    for (var A = String(_[0]), D = d(h(a(_.index), v.length), 0), E = [], O = 1; O < _.length; O++) E.push(void 0 === (C = _[O]) ? C : String(C));
                                    var M = _.groups;
                                    if (y) {
                                        var I = [A].concat(E, D, v);
                                        void 0 !== M && I.push(M);
                                        var P = String(i.apply(void 0, I))
                                    } else P = c(A, v, D, E, M, i);
                                    D >= k && (S += v.slice(k, D) + P, k = D + A.length)
                                }
                                return S + v.slice(k)
                            }]
                        }))
                    },
                    3123: function(e, t, n) {
                        "use strict";
                        var i = n(7007),
                            r = n(7850),
                            o = n(9670),
                            a = n(4488),
                            s = n(6707),
                            l = n(1530),
                            c = n(7466),
                            u = n(7651),
                            d = n(2261),
                            h = n(7293),
                            f = [].push,
                            p = Math.min,
                            g = 4294967295,
                            m = !h((function() {
                                return !RegExp(g, "y")
                            }));
                        i("split", 2, (function(e, t, n) {
                            var i;
                            return i = "c" == "abbc".split(/(b)*/)[1] || 4 != "test".split(/(?:)/, -1).length || 2 != "ab".split(/(?:ab)*/).length || 4 != ".".split(/(.?)(.?)/).length || ".".split(/()()/).length > 1 || "".split(/.?/).length ? function(e, n) {
                                var i = String(a(this)),
                                    o = void 0 === n ? g : n >>> 0;
                                if (0 === o) return [];
                                if (void 0 === e) return [i];
                                if (!r(e)) return t.call(i, e, o);
                                for (var s, l, c, u = [], h = (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.unicode ? "u" : "") + (e.sticky ? "y" : ""), p = 0, m = new RegExp(e.source, h + "g");
                                    (s = d.call(m, i)) && !((l = m.lastIndex) > p && (u.push(i.slice(p, s.index)), s.length > 1 && s.index < i.length && f.apply(u, s.slice(1)), c = s[0].length, p = l, u.length >= o));) m.lastIndex === s.index && m.lastIndex++;
                                return p === i.length ? !c && m.test("") || u.push("") : u.push(i.slice(p)), u.length > o ? u.slice(0, o) : u
                            } : "0".split(void 0, 0).length ? function(e, n) {
                                return void 0 === e && 0 === n ? [] : t.call(this, e, n)
                            } : t, [function(t, n) {
                                var r = a(this),
                                    o = null == t ? void 0 : t[e];
                                return void 0 !== o ? o.call(t, r, n) : i.call(String(r), t, n)
                            }, function(e, r) {
                                var a = n(i, e, this, r, i !== t);
                                if (a.done) return a.value;
                                var d = o(e),
                                    h = String(this),
                                    f = s(d, RegExp),
                                    v = d.unicode,
                                    y = (d.ignoreCase ? "i" : "") + (d.multiline ? "m" : "") + (d.unicode ? "u" : "") + (m ? "y" : "g"),
                                    b = new f(m ? d : "^(?:" + d.source + ")", y),
                                    w = void 0 === r ? g : r >>> 0;
                                if (0 === w) return [];
                                if (0 === h.length) return null === u(b, h) ? [h] : [];
                                for (var x = 0, _ = 0, C = []; _ < h.length;) {
                                    b.lastIndex = m ? _ : 0;
                                    var S, k = u(b, m ? h : h.slice(_));
                                    if (null === k || (S = p(c(b.lastIndex + (m ? 0 : _)), h.length)) === x) _ = l(h, _, v);
                                    else {
                                        if (C.push(h.slice(x, _)), C.length === w) return C;
                                        for (var T = 1; T <= k.length - 1; T++)
                                            if (C.push(k[T]), C.length === w) return C;
                                        _ = x = S
                                    }
                                }
                                return C.push(h.slice(x)), C
                            }]
                        }), !m)
                    },
                    3210: function(e, t, n) {
                        "use strict";
                        var i = n(2109),
                            r = n(3111).trim;
                        i({
                            target: "String",
                            proto: !0,
                            forced: n(6091)("trim")
                        }, {
                            trim: function() {
                                return r(this)
                            }
                        })
                    },
                    2990: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(1048),
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("copyWithin", (function(e, t) {
                            return r.call(o(this), e, t, arguments.length > 2 ? arguments[2] : void 0)
                        }))
                    },
                    8927: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).every,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("every", (function(e) {
                            return r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    3105: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(1285),
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("fill", (function(e) {
                            return r.apply(o(this), arguments)
                        }))
                    },
                    5035: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).filter,
                            o = n(3074),
                            a = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("filter", (function(e) {
                            var t = r(a(this), e, arguments.length > 1 ? arguments[1] : void 0);
                            return o(this, t)
                        }))
                    },
                    7174: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).findIndex,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("findIndex", (function(e) {
                            return r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    4345: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).find,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("find", (function(e) {
                            return r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    2846: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).forEach,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("forEach", (function(e) {
                            r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    4731: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(1318).includes,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("includes", (function(e) {
                            return r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    7209: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(1318).indexOf,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("indexOf", (function(e) {
                            return r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    6319: function(e, t, n) {
                        "use strict";
                        var i = n(7854),
                            r = n(260),
                            o = n(6992),
                            a = n(5112)("iterator"),
                            s = i.Uint8Array,
                            l = o.values,
                            c = o.keys,
                            u = o.entries,
                            d = r.aTypedArray,
                            h = r.exportTypedArrayMethod,
                            f = s && s.prototype[a],
                            p = !!f && ("values" == f.name || null == f.name),
                            g = function() {
                                return l.call(d(this))
                            };
                        h("entries", (function() {
                            return u.call(d(this))
                        })), h("keys", (function() {
                            return c.call(d(this))
                        })), h("values", g, !p), h(a, g, !p)
                    },
                    8867: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = i.aTypedArray,
                            o = i.exportTypedArrayMethod,
                            a = [].join;
                        o("join", (function(e) {
                            return a.apply(r(this), arguments)
                        }))
                    },
                    7789: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(6583),
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("lastIndexOf", (function(e) {
                            return r.apply(o(this), arguments)
                        }))
                    },
                    3739: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).map,
                            o = n(6707),
                            a = i.aTypedArray,
                            s = i.aTypedArrayConstructor;
                        (0, i.exportTypedArrayMethod)("map", (function(e) {
                            return r(a(this), e, arguments.length > 1 ? arguments[1] : void 0, (function(e, t) {
                                return new(s(o(e, e.constructor)))(t)
                            }))
                        }))
                    },
                    4483: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(3671).right,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("reduceRight", (function(e) {
                            return r(o(this), e, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    9368: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(3671).left,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("reduce", (function(e) {
                            return r(o(this), e, arguments.length, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    2056: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = i.aTypedArray,
                            o = i.exportTypedArrayMethod,
                            a = Math.floor;
                        o("reverse", (function() {
                            for (var e, t = this, n = r(t).length, i = a(n / 2), o = 0; o < i;) e = t[o], t[o++] = t[--n], t[n] = e;
                            return t
                        }))
                    },
                    3462: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(7466),
                            o = n(4590),
                            a = n(7908),
                            s = n(7293),
                            l = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("set", (function(e) {
                            l(this);
                            var t = o(arguments.length > 1 ? arguments[1] : void 0, 1),
                                n = this.length,
                                i = a(e),
                                s = r(i.length),
                                c = 0;
                            if (s + t > n) throw RangeError("Wrong length");
                            for (; c < s;) this[t + c] = i[c++]
                        }), s((function() {
                            new Int8Array(1).set({})
                        })))
                    },
                    678: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(6707),
                            o = n(7293),
                            a = i.aTypedArray,
                            s = i.aTypedArrayConstructor,
                            l = i.exportTypedArrayMethod,
                            c = [].slice;
                        l("slice", (function(e, t) {
                            for (var n = c.call(a(this), e, t), i = r(this, this.constructor), o = 0, l = n.length, u = new(s(i))(l); l > o;) u[o] = n[o++];
                            return u
                        }), o((function() {
                            new Int8Array(1).slice()
                        })))
                    },
                    7462: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(2092).some,
                            o = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("some", (function(e) {
                            return r(o(this), e, arguments.length > 1 ? arguments[1] : void 0)
                        }))
                    },
                    3824: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = i.aTypedArray,
                            o = i.exportTypedArrayMethod,
                            a = [].sort;
                        o("sort", (function(e) {
                            return a.call(r(this), e)
                        }))
                    },
                    5021: function(e, t, n) {
                        "use strict";
                        var i = n(260),
                            r = n(7466),
                            o = n(1400),
                            a = n(6707),
                            s = i.aTypedArray;
                        (0, i.exportTypedArrayMethod)("subarray", (function(e, t) {
                            var n = s(this),
                                i = n.length,
                                l = o(e, i);
                            return new(a(n, n.constructor))(n.buffer, n.byteOffset + l * n.BYTES_PER_ELEMENT, r((void 0 === t ? i : o(t, i)) - l))
                        }))
                    },
                    2974: function(e, t, n) {
                        "use strict";
                        var i = n(7854),
                            r = n(260),
                            o = n(7293),
                            a = i.Int8Array,
                            s = r.aTypedArray,
                            l = r.exportTypedArrayMethod,
                            c = [].toLocaleString,
                            u = [].slice,
                            d = !!a && o((function() {
                                c.call(new a(1))
                            }));
                        l("toLocaleString", (function() {
                            return c.apply(d ? u.call(s(this)) : s(this), arguments)
                        }), o((function() {
                            return [1, 2].toLocaleString() != new a([1, 2]).toLocaleString()
                        })) || !o((function() {
                            a.prototype.toLocaleString.call([1, 2])
                        })))
                    },
                    5016: function(e, t, n) {
                        "use strict";
                        var i = n(260).exportTypedArrayMethod,
                            r = n(7293),
                            o = n(7854).Uint8Array,
                            a = o && o.prototype || {},
                            s = [].toString,
                            l = [].join;
                        r((function() {
                            s.call({})
                        })) && (s = function() {
                            return l.call(this)
                        });
                        var c = a.toString != s;
                        i("toString", s, c)
                    },
                    2472: function(e, t, n) {
                        n(9843)("Uint8", (function(e) {
                            return function(t, n, i) {
                                return e(this, t, n, i)
                            }
                        }))
                    },
                    4747: function(e, t, n) {
                        var i = n(7854),
                            r = n(8324),
                            o = n(8533),
                            a = n(8880);
                        for (var s in r) {
                            var l = i[s],
                                c = l && l.prototype;
                            if (c && c.forEach !== o) try {
                                a(c, "forEach", o)
                            } catch (e) {
                                c.forEach = o
                            }
                        }
                    },
                    3948: function(e, t, n) {
                        var i = n(7854),
                            r = n(8324),
                            o = n(6992),
                            a = n(8880),
                            s = n(5112),
                            l = s("iterator"),
                            c = s("toStringTag"),
                            u = o.values;
                        for (var d in r) {
                            var h = i[d],
                                f = h && h.prototype;
                            if (f) {
                                if (f[l] !== u) try {
                                    a(f, l, u)
                                } catch (e) {
                                    f[l] = u
                                }
                                if (f[c] || a(f, c, d), r[d])
                                    for (var p in o)
                                        if (f[p] !== o[p]) try {
                                            a(f, p, o[p])
                                        } catch (e) {
                                            f[p] = o[p]
                                        }
                            }
                        }
                    },
                    1637: function(e, t, n) {
                        "use strict";
                        n(6992);
                        var i = n(2109),
                            r = n(5005),
                            o = n(590),
                            a = n(1320),
                            s = n(2248),
                            l = n(8003),
                            c = n(4994),
                            u = n(9909),
                            d = n(5787),
                            h = n(6656),
                            f = n(9974),
                            p = n(648),
                            g = n(9670),
                            m = n(111),
                            v = n(30),
                            y = n(9114),
                            b = n(8554),
                            w = n(1246),
                            x = n(5112),
                            _ = r("fetch"),
                            C = r("Headers"),
                            S = x("iterator"),
                            k = "URLSearchParams",
                            T = "URLSearchParamsIterator",
                            A = u.set,
                            D = u.getterFor(k),
                            E = u.getterFor(T),
                            O = /\+/g,
                            M = Array(4),
                            I = function(e) {
                                return M[e - 1] || (M[e - 1] = RegExp("((?:%[\\da-f]{2}){" + e + "})", "gi"))
                            },
                            P = function(e) {
                                try {
                                    return decodeURIComponent(e)
                                } catch (t) {
                                    return e
                                }
                            },
                            L = function(e) {
                                var t = e.replace(O, " "),
                                    n = 4;
                                try {
                                    return decodeURIComponent(t)
                                } catch (e) {
                                    for (; n;) t = t.replace(I(n--), P);
                                    return t
                                }
                            },
                            N = /[!'()~]|%20/g,
                            F = {
                                "!": "%21",
                                "'": "%27",
                                "(": "%28",
                                ")": "%29",
                                "~": "%7E",
                                "%20": "+"
                            },
                            R = function(e) {
                                return F[e]
                            },
                            j = function(e) {
                                return encodeURIComponent(e).replace(N, R)
                            },
                            $ = function(e, t) {
                                if (t)
                                    for (var n, i, r = t.split("&"), o = 0; o < r.length;)(n = r[o++]).length && (i = n.split("="), e.push({
                                        key: L(i.shift()),
                                        value: L(i.join("="))
                                    }))
                            },
                            z = function(e) {
                                this.entries.length = 0, $(this.entries, e)
                            },
                            H = function(e, t) {
                                if (e < t) throw TypeError("Not enough arguments")
                            },
                            B = c((function(e, t) {
                                A(this, {
                                    type: T,
                                    iterator: b(D(e).entries),
                                    kind: t
                                })
                            }), "Iterator", (function() {
                                var e = E(this),
                                    t = e.kind,
                                    n = e.iterator.next(),
                                    i = n.value;
                                return n.done || (n.value = "keys" === t ? i.key : "values" === t ? i.value : [i.key, i.value]), n
                            })),
                            q = function() {
                                d(this, q, k);
                                var e, t, n, i, r, o, a, s, l, c = arguments.length > 0 ? arguments[0] : void 0,
                                    u = this,
                                    f = [];
                                if (A(u, {
                                        type: k,
                                        entries: f,
                                        updateURL: function() {},
                                        updateSearchParams: z
                                    }), void 0 !== c)
                                    if (m(c))
                                        if ("function" == typeof(e = w(c)))
                                            for (n = (t = e.call(c)).next; !(i = n.call(t)).done;) {
                                                if ((a = (o = (r = b(g(i.value))).next).call(r)).done || (s = o.call(r)).done || !o.call(r).done) throw TypeError("Expected sequence with length 2");
                                                f.push({
                                                    key: a.value + "",
                                                    value: s.value + ""
                                                })
                                            } else
                                                for (l in c) h(c, l) && f.push({
                                                    key: l,
                                                    value: c[l] + ""
                                                });
                                        else $(f, "string" == typeof c ? "?" === c.charAt(0) ? c.slice(1) : c : c + "")
                            },
                            W = q.prototype;
                        s(W, {
                            append: function(e, t) {
                                H(arguments.length, 2);
                                var n = D(this);
                                n.entries.push({
                                    key: e + "",
                                    value: t + ""
                                }), n.updateURL()
                            },
                            delete: function(e) {
                                H(arguments.length, 1);
                                for (var t = D(this), n = t.entries, i = e + "", r = 0; r < n.length;) n[r].key === i ? n.splice(r, 1) : r++;
                                t.updateURL()
                            },
                            get: function(e) {
                                H(arguments.length, 1);
                                for (var t = D(this).entries, n = e + "", i = 0; i < t.length; i++)
                                    if (t[i].key === n) return t[i].value;
                                return null
                            },
                            getAll: function(e) {
                                H(arguments.length, 1);
                                for (var t = D(this).entries, n = e + "", i = [], r = 0; r < t.length; r++) t[r].key === n && i.push(t[r].value);
                                return i
                            },
                            has: function(e) {
                                H(arguments.length, 1);
                                for (var t = D(this).entries, n = e + "", i = 0; i < t.length;)
                                    if (t[i++].key === n) return !0;
                                return !1
                            },
                            set: function(e, t) {
                                H(arguments.length, 1);
                                for (var n, i = D(this), r = i.entries, o = !1, a = e + "", s = t + "", l = 0; l < r.length; l++)(n = r[l]).key === a && (o ? r.splice(l--, 1) : (o = !0, n.value = s));
                                o || r.push({
                                    key: a,
                                    value: s
                                }), i.updateURL()
                            },
                            sort: function() {
                                var e, t, n, i = D(this),
                                    r = i.entries,
                                    o = r.slice();
                                for (r.length = 0, n = 0; n < o.length; n++) {
                                    for (e = o[n], t = 0; t < n; t++)
                                        if (r[t].key > e.key) {
                                            r.splice(t, 0, e);
                                            break
                                        }
                                    t === n && r.push(e)
                                }
                                i.updateURL()
                            },
                            forEach: function(e) {
                                for (var t, n = D(this).entries, i = f(e, arguments.length > 1 ? arguments[1] : void 0, 3), r = 0; r < n.length;) i((t = n[r++]).value, t.key, this)
                            },
                            keys: function() {
                                return new B(this, "keys")
                            },
                            values: function() {
                                return new B(this, "values")
                            },
                            entries: function() {
                                return new B(this, "entries")
                            }
                        }, {
                            enumerable: !0
                        }), a(W, S, W.entries), a(W, "toString", (function() {
                            for (var e, t = D(this).entries, n = [], i = 0; i < t.length;) e = t[i++], n.push(j(e.key) + "=" + j(e.value));
                            return n.join("&")
                        }), {
                            enumerable: !0
                        }), l(q, k), i({
                            global: !0,
                            forced: !o
                        }, {
                            URLSearchParams: q
                        }), o || "function" != typeof _ || "function" != typeof C || i({
                            global: !0,
                            enumerable: !0,
                            forced: !0
                        }, {
                            fetch: function(e) {
                                var t, n, i, r = [e];
                                return arguments.length > 1 && (m(t = arguments[1]) && (n = t.body, p(n) === k && ((i = t.headers ? new C(t.headers) : new C).has("content-type") || i.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8"), t = v(t, {
                                    body: y(0, String(n)),
                                    headers: y(0, i)
                                }))), r.push(t)), _.apply(this, r)
                            }
                        }), e.exports = {
                            URLSearchParams: q,
                            getState: D
                        }
                    },
                    285: function(e, t, n) {
                        "use strict";
                        n(8783);
                        var i, r = n(2109),
                            o = n(9781),
                            a = n(590),
                            s = n(7854),
                            l = n(6048),
                            c = n(1320),
                            u = n(5787),
                            d = n(6656),
                            h = n(1574),
                            f = n(8457),
                            p = n(8710).codeAt,
                            g = n(3197),
                            m = n(8003),
                            v = n(1637),
                            y = n(9909),
                            b = s.URL,
                            w = v.URLSearchParams,
                            x = v.getState,
                            _ = y.set,
                            C = y.getterFor("URL"),
                            S = Math.floor,
                            k = Math.pow,
                            T = "Invalid scheme",
                            A = "Invalid host",
                            D = "Invalid port",
                            E = /[A-Za-z]/,
                            O = /[\d+-.A-Za-z]/,
                            M = /\d/,
                            I = /^(0x|0X)/,
                            P = /^[0-7]+$/,
                            L = /^\d+$/,
                            N = /^[\dA-Fa-f]+$/,
                            F = /[\u0000\t\u000A\u000D #%/:?@[\\]]/,
                            R = /[\u0000\t\u000A\u000D #/:?@[\\]]/,
                            j = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,
                            $ = /[\t\u000A\u000D]/g,
                            z = function(e, t) {
                                var n, i, r;
                                if ("[" == t.charAt(0)) {
                                    if ("]" != t.charAt(t.length - 1)) return A;
                                    if (!(n = B(t.slice(1, -1)))) return A;
                                    e.host = n
                                } else if (K(e)) {
                                    if (t = g(t), F.test(t)) return A;
                                    if (null === (n = H(t))) return A;
                                    e.host = n
                                } else {
                                    if (R.test(t)) return A;
                                    for (n = "", i = f(t), r = 0; r < i.length; r++) n += X(i[r], W);
                                    e.host = n
                                }
                            },
                            H = function(e) {
                                var t, n, i, r, o, a, s, l = e.split(".");
                                if (l.length && "" == l[l.length - 1] && l.pop(), (t = l.length) > 4) return e;
                                for (n = [], i = 0; i < t; i++) {
                                    if ("" == (r = l[i])) return e;
                                    if (o = 10, r.length > 1 && "0" == r.charAt(0) && (o = I.test(r) ? 16 : 8, r = r.slice(8 == o ? 1 : 2)), "" === r) a = 0;
                                    else {
                                        if (!(10 == o ? L : 8 == o ? P : N).test(r)) return e;
                                        a = parseInt(r, o)
                                    }
                                    n.push(a)
                                }
                                for (i = 0; i < t; i++)
                                    if (a = n[i], i == t - 1) {
                                        if (a >= k(256, 5 - t)) return null
                                    } else if (a > 255) return null;
                                for (s = n.pop(), i = 0; i < n.length; i++) s += n[i] * k(256, 3 - i);
                                return s
                            },
                            B = function(e) {
                                var t, n, i, r, o, a, s, l = [0, 0, 0, 0, 0, 0, 0, 0],
                                    c = 0,
                                    u = null,
                                    d = 0,
                                    h = function() {
                                        return e.charAt(d)
                                    };
                                if (":" == h()) {
                                    if (":" != e.charAt(1)) return;
                                    d += 2, u = ++c
                                }
                                for (; h();) {
                                    if (8 == c) return;
                                    if (":" != h()) {
                                        for (t = n = 0; n < 4 && N.test(h());) t = 16 * t + parseInt(h(), 16), d++, n++;
                                        if ("." == h()) {
                                            if (0 == n) return;
                                            if (d -= n, c > 6) return;
                                            for (i = 0; h();) {
                                                if (r = null, i > 0) {
                                                    if (!("." == h() && i < 4)) return;
                                                    d++
                                                }
                                                if (!M.test(h())) return;
                                                for (; M.test(h());) {
                                                    if (o = parseInt(h(), 10), null === r) r = o;
                                                    else {
                                                        if (0 == r) return;
                                                        r = 10 * r + o
                                                    }
                                                    if (r > 255) return;
                                                    d++
                                                }
                                                l[c] = 256 * l[c] + r, 2 != ++i && 4 != i || c++
                                            }
                                            if (4 != i) return;
                                            break
                                        }
                                        if (":" == h()) {
                                            if (d++, !h()) return
                                        } else if (h()) return;
                                        l[c++] = t
                                    } else {
                                        if (null !== u) return;
                                        d++, u = ++c
                                    }
                                }
                                if (null !== u)
                                    for (a = c - u, c = 7; 0 != c && a > 0;) s = l[c], l[c--] = l[u + a - 1], l[u + --a] = s;
                                else if (8 != c) return;
                                return l
                            },
                            q = function(e) {
                                var t, n, i, r;
                                if ("number" == typeof e) {
                                    for (t = [], n = 0; n < 4; n++) t.unshift(e % 256), e = S(e / 256);
                                    return t.join(".")
                                }
                                if ("object" == typeof e) {
                                    for (t = "", i = function(e) {
                                            for (var t = null, n = 1, i = null, r = 0, o = 0; o < 8; o++) 0 !== e[o] ? (r > n && (t = i, n = r), i = null, r = 0) : (null === i && (i = o), ++r);
                                            return r > n && (t = i, n = r), t
                                        }(e), n = 0; n < 8; n++) r && 0 === e[n] || (r && (r = !1), i === n ? (t += n ? ":" : "::", r = !0) : (t += e[n].toString(16), n < 7 && (t += ":")));
                                    return "[" + t + "]"
                                }
                                return e
                            },
                            W = {},
                            U = h({}, W, {
                                " ": 1,
                                '"': 1,
                                "<": 1,
                                ">": 1,
                                "`": 1
                            }),
                            V = h({}, U, {
                                "#": 1,
                                "?": 1,
                                "{": 1,
                                "}": 1
                            }),
                            Y = h({}, V, {
                                "/": 1,
                                ":": 1,
                                ";": 1,
                                "=": 1,
                                "@": 1,
                                "[": 1,
                                "\\": 1,
                                "]": 1,
                                "^": 1,
                                "|": 1
                            }),
                            X = function(e, t) {
                                var n = p(e, 0);
                                return n > 32 && n < 127 && !d(t, e) ? e : encodeURIComponent(e)
                            },
                            G = {
                                ftp: 21,
                                file: null,
                                http: 80,
                                https: 443,
                                ws: 80,
                                wss: 443
                            },
                            K = function(e) {
                                return d(G, e.scheme)
                            },
                            Q = function(e) {
                                return "" != e.username || "" != e.password
                            },
                            Z = function(e) {
                                return !e.host || e.cannotBeABaseURL || "file" == e.scheme
                            },
                            J = function(e, t) {
                                var n;
                                return 2 == e.length && E.test(e.charAt(0)) && (":" == (n = e.charAt(1)) || !t && "|" == n)
                            },
                            ee = function(e) {
                                var t;
                                return e.length > 1 && J(e.slice(0, 2)) && (2 == e.length || "/" === (t = e.charAt(2)) || "\\" === t || "?" === t || "#" === t)
                            },
                            te = function(e) {
                                var t = e.path,
                                    n = t.length;
                                !n || "file" == e.scheme && 1 == n && J(t[0], !0) || t.pop()
                            },
                            ne = function(e) {
                                return "." === e || "%2e" === e.toLowerCase()
                            },
                            ie = {},
                            re = {},
                            oe = {},
                            ae = {},
                            se = {},
                            le = {},
                            ce = {},
                            ue = {},
                            de = {},
                            he = {},
                            fe = {},
                            pe = {},
                            ge = {},
                            me = {},
                            ve = {},
                            ye = {},
                            be = {},
                            we = {},
                            xe = {},
                            _e = {},
                            Ce = {},
                            Se = function(e, t, n, r) {
                                var o, a, s, l, c, u = n || ie,
                                    h = 0,
                                    p = "",
                                    g = !1,
                                    m = !1,
                                    v = !1;
                                for (n || (e.scheme = "", e.username = "", e.password = "", e.host = null, e.port = null, e.path = [], e.query = null, e.fragment = null, e.cannotBeABaseURL = !1, t = t.replace(j, "")), t = t.replace($, ""), o = f(t); h <= o.length;) {
                                    switch (a = o[h], u) {
                                        case ie:
                                            if (!a || !E.test(a)) {
                                                if (n) return T;
                                                u = oe;
                                                continue
                                            }
                                            p += a.toLowerCase(), u = re;
                                            break;
                                        case re:
                                            if (a && (O.test(a) || "+" == a || "-" == a || "." == a)) p += a.toLowerCase();
                                            else {
                                                if (":" != a) {
                                                    if (n) return T;
                                                    p = "", u = oe, h = 0;
                                                    continue
                                                }
                                                if (n && (K(e) != d(G, p) || "file" == p && (Q(e) || null !== e.port) || "file" == e.scheme && !e.host)) return;
                                                if (e.scheme = p, n) return void(K(e) && G[e.scheme] == e.port && (e.port = null));
                                                p = "", "file" == e.scheme ? u = me : K(e) && r && r.scheme == e.scheme ? u = ae : K(e) ? u = ue : "/" == o[h + 1] ? (u = se, h++) : (e.cannotBeABaseURL = !0, e.path.push(""), u = xe)
                                            }
                                            break;
                                        case oe:
                                            if (!r || r.cannotBeABaseURL && "#" != a) return T;
                                            if (r.cannotBeABaseURL && "#" == a) {
                                                e.scheme = r.scheme, e.path = r.path.slice(), e.query = r.query, e.fragment = "", e.cannotBeABaseURL = !0, u = Ce;
                                                break
                                            }
                                            u = "file" == r.scheme ? me : le;
                                            continue;
                                        case ae:
                                            if ("/" != a || "/" != o[h + 1]) {
                                                u = le;
                                                continue
                                            }
                                            u = de, h++;
                                            break;
                                        case se:
                                            if ("/" == a) {
                                                u = he;
                                                break
                                            }
                                            u = we;
                                            continue;
                                        case le:
                                            if (e.scheme = r.scheme, a == i) e.username = r.username, e.password = r.password, e.host = r.host, e.port = r.port, e.path = r.path.slice(), e.query = r.query;
                                            else if ("/" == a || "\\" == a && K(e)) u = ce;
                                            else if ("?" == a) e.username = r.username, e.password = r.password, e.host = r.host, e.port = r.port, e.path = r.path.slice(), e.query = "", u = _e;
                                            else {
                                                if ("#" != a) {
                                                    e.username = r.username, e.password = r.password, e.host = r.host, e.port = r.port, e.path = r.path.slice(), e.path.pop(), u = we;
                                                    continue
                                                }
                                                e.username = r.username, e.password = r.password, e.host = r.host, e.port = r.port, e.path = r.path.slice(), e.query = r.query, e.fragment = "", u = Ce
                                            }
                                            break;
                                        case ce:
                                            if (!K(e) || "/" != a && "\\" != a) {
                                                if ("/" != a) {
                                                    e.username = r.username, e.password = r.password, e.host = r.host, e.port = r.port, u = we;
                                                    continue
                                                }
                                                u = he
                                            } else u = de;
                                            break;
                                        case ue:
                                            if (u = de, "/" != a || "/" != p.charAt(h + 1)) continue;
                                            h++;
                                            break;
                                        case de:
                                            if ("/" != a && "\\" != a) {
                                                u = he;
                                                continue
                                            }
                                            break;
                                        case he:
                                            if ("@" == a) {
                                                g && (p = "%40" + p), g = !0, s = f(p);
                                                for (var y = 0; y < s.length; y++) {
                                                    var b = s[y];
                                                    if (":" != b || v) {
                                                        var w = X(b, Y);
                                                        v ? e.password += w : e.username += w
                                                    } else v = !0
                                                }
                                                p = ""
                                            } else if (a == i || "/" == a || "?" == a || "#" == a || "\\" == a && K(e)) {
                                                if (g && "" == p) return "Invalid authority";
                                                h -= f(p).length + 1, p = "", u = fe
                                            } else p += a;
                                            break;
                                        case fe:
                                        case pe:
                                            if (n && "file" == e.scheme) {
                                                u = ye;
                                                continue
                                            }
                                            if (":" != a || m) {
                                                if (a == i || "/" == a || "?" == a || "#" == a || "\\" == a && K(e)) {
                                                    if (K(e) && "" == p) return A;
                                                    if (n && "" == p && (Q(e) || null !== e.port)) return;
                                                    if (l = z(e, p)) return l;
                                                    if (p = "", u = be, n) return;
                                                    continue
                                                }
                                                "[" == a ? m = !0 : "]" == a && (m = !1), p += a
                                            } else {
                                                if ("" == p) return A;
                                                if (l = z(e, p)) return l;
                                                if (p = "", u = ge, n == pe) return
                                            }
                                            break;
                                        case ge:
                                            if (!M.test(a)) {
                                                if (a == i || "/" == a || "?" == a || "#" == a || "\\" == a && K(e) || n) {
                                                    if ("" != p) {
                                                        var x = parseInt(p, 10);
                                                        if (x > 65535) return D;
                                                        e.port = K(e) && x === G[e.scheme] ? null : x, p = ""
                                                    }
                                                    if (n) return;
                                                    u = be;
                                                    continue
                                                }
                                                return D
                                            }
                                            p += a;
                                            break;
                                        case me:
                                            if (e.scheme = "file", "/" == a || "\\" == a) u = ve;
                                            else {
                                                if (!r || "file" != r.scheme) {
                                                    u = we;
                                                    continue
                                                }
                                                if (a == i) e.host = r.host, e.path = r.path.slice(), e.query = r.query;
                                                else if ("?" == a) e.host = r.host, e.path = r.path.slice(), e.query = "", u = _e;
                                                else {
                                                    if ("#" != a) {
                                                        ee(o.slice(h).join("")) || (e.host = r.host, e.path = r.path.slice(), te(e)), u = we;
                                                        continue
                                                    }
                                                    e.host = r.host, e.path = r.path.slice(), e.query = r.query, e.fragment = "", u = Ce
                                                }
                                            }
                                            break;
                                        case ve:
                                            if ("/" == a || "\\" == a) {
                                                u = ye;
                                                break
                                            }
                                            r && "file" == r.scheme && !ee(o.slice(h).join("")) && (J(r.path[0], !0) ? e.path.push(r.path[0]) : e.host = r.host), u = we;
                                            continue;
                                        case ye:
                                            if (a == i || "/" == a || "\\" == a || "?" == a || "#" == a) {
                                                if (!n && J(p)) u = we;
                                                else if ("" == p) {
                                                    if (e.host = "", n) return;
                                                    u = be
                                                } else {
                                                    if (l = z(e, p)) return l;
                                                    if ("localhost" == e.host && (e.host = ""), n) return;
                                                    p = "", u = be
                                                }
                                                continue
                                            }
                                            p += a;
                                            break;
                                        case be:
                                            if (K(e)) {
                                                if (u = we, "/" != a && "\\" != a) continue
                                            } else if (n || "?" != a)
                                                if (n || "#" != a) {
                                                    if (a != i && (u = we, "/" != a)) continue
                                                } else e.fragment = "", u = Ce;
                                            else e.query = "", u = _e;
                                            break;
                                        case we:
                                            if (a == i || "/" == a || "\\" == a && K(e) || !n && ("?" == a || "#" == a)) {
                                                if (".." === (c = (c = p).toLowerCase()) || "%2e." === c || ".%2e" === c || "%2e%2e" === c ? (te(e), "/" == a || "\\" == a && K(e) || e.path.push("")) : ne(p) ? "/" == a || "\\" == a && K(e) || e.path.push("") : ("file" == e.scheme && !e.path.length && J(p) && (e.host && (e.host = ""), p = p.charAt(0) + ":"), e.path.push(p)), p = "", "file" == e.scheme && (a == i || "?" == a || "#" == a))
                                                    for (; e.path.length > 1 && "" === e.path[0];) e.path.shift();
                                                "?" == a ? (e.query = "", u = _e) : "#" == a && (e.fragment = "", u = Ce)
                                            } else p += X(a, V);
                                            break;
                                        case xe:
                                            "?" == a ? (e.query = "", u = _e) : "#" == a ? (e.fragment = "", u = Ce) : a != i && (e.path[0] += X(a, W));
                                            break;
                                        case _e:
                                            n || "#" != a ? a != i && ("'" == a && K(e) ? e.query += "%27" : e.query += "#" == a ? "%23" : X(a, W)) : (e.fragment = "", u = Ce);
                                            break;
                                        case Ce:
                                            a != i && (e.fragment += X(a, U))
                                    }
                                    h++
                                }
                            },
                            ke = function(e) {
                                var t, n, i = u(this, ke, "URL"),
                                    r = arguments.length > 1 ? arguments[1] : void 0,
                                    a = String(e),
                                    s = _(i, {
                                        type: "URL"
                                    });
                                if (void 0 !== r)
                                    if (r instanceof ke) t = C(r);
                                    else if (n = Se(t = {}, String(r))) throw TypeError(n);
                                if (n = Se(s, a, null, t)) throw TypeError(n);
                                var l = s.searchParams = new w,
                                    c = x(l);
                                c.updateSearchParams(s.query), c.updateURL = function() {
                                    s.query = String(l) || null
                                }, o || (i.href = Ae.call(i), i.origin = De.call(i), i.protocol = Ee.call(i), i.username = Oe.call(i), i.password = Me.call(i), i.host = Ie.call(i), i.hostname = Pe.call(i), i.port = Le.call(i), i.pathname = Ne.call(i), i.search = Fe.call(i), i.searchParams = Re.call(i), i.hash = je.call(i))
                            },
                            Te = ke.prototype,
                            Ae = function() {
                                var e = C(this),
                                    t = e.scheme,
                                    n = e.username,
                                    i = e.password,
                                    r = e.host,
                                    o = e.port,
                                    a = e.path,
                                    s = e.query,
                                    l = e.fragment,
                                    c = t + ":";
                                return null !== r ? (c += "//", Q(e) && (c += n + (i ? ":" + i : "") + "@"), c += q(r), null !== o && (c += ":" + o)) : "file" == t && (c += "//"), c += e.cannotBeABaseURL ? a[0] : a.length ? "/" + a.join("/") : "", null !== s && (c += "?" + s), null !== l && (c += "#" + l), c
                            },
                            De = function() {
                                var e = C(this),
                                    t = e.scheme,
                                    n = e.port;
                                if ("blob" == t) try {
                                    return new URL(t.path[0]).origin
                                } catch (e) {
                                    return "null"
                                }
                                return "file" != t && K(e) ? t + "://" + q(e.host) + (null !== n ? ":" + n : "") : "null"
                            },
                            Ee = function() {
                                return C(this).scheme + ":"
                            },
                            Oe = function() {
                                return C(this).username
                            },
                            Me = function() {
                                return C(this).password
                            },
                            Ie = function() {
                                var e = C(this),
                                    t = e.host,
                                    n = e.port;
                                return null === t ? "" : null === n ? q(t) : q(t) + ":" + n
                            },
                            Pe = function() {
                                var e = C(this).host;
                                return null === e ? "" : q(e)
                            },
                            Le = function() {
                                var e = C(this).port;
                                return null === e ? "" : String(e)
                            },
                            Ne = function() {
                                var e = C(this),
                                    t = e.path;
                                return e.cannotBeABaseURL ? t[0] : t.length ? "/" + t.join("/") : ""
                            },
                            Fe = function() {
                                var e = C(this).query;
                                return e ? "?" + e : ""
                            },
                            Re = function() {
                                return C(this).searchParams
                            },
                            je = function() {
                                var e = C(this).fragment;
                                return e ? "#" + e : ""
                            },
                            $e = function(e, t) {
                                return {
                                    get: e,
                                    set: t,
                                    configurable: !0,
                                    enumerable: !0
                                }
                            };
                        if (o && l(Te, {
                                href: $e(Ae, (function(e) {
                                    var t = C(this),
                                        n = String(e),
                                        i = Se(t, n);
                                    if (i) throw TypeError(i);
                                    x(t.searchParams).updateSearchParams(t.query)
                                })),
                                origin: $e(De),
                                protocol: $e(Ee, (function(e) {
                                    var t = C(this);
                                    Se(t, String(e) + ":", ie)
                                })),
                                username: $e(Oe, (function(e) {
                                    var t = C(this),
                                        n = f(String(e));
                                    if (!Z(t)) {
                                        t.username = "";
                                        for (var i = 0; i < n.length; i++) t.username += X(n[i], Y)
                                    }
                                })),
                                password: $e(Me, (function(e) {
                                    var t = C(this),
                                        n = f(String(e));
                                    if (!Z(t)) {
                                        t.password = "";
                                        for (var i = 0; i < n.length; i++) t.password += X(n[i], Y)
                                    }
                                })),
                                host: $e(Ie, (function(e) {
                                    var t = C(this);
                                    t.cannotBeABaseURL || Se(t, String(e), fe)
                                })),
                                hostname: $e(Pe, (function(e) {
                                    var t = C(this);
                                    t.cannotBeABaseURL || Se(t, String(e), pe)
                                })),
                                port: $e(Le, (function(e) {
                                    var t = C(this);
                                    Z(t) || ("" == (e = String(e)) ? t.port = null : Se(t, e, ge))
                                })),
                                pathname: $e(Ne, (function(e) {
                                    var t = C(this);
                                    t.cannotBeABaseURL || (t.path = [], Se(t, e + "", be))
                                })),
                                search: $e(Fe, (function(e) {
                                    var t = C(this);
                                    "" == (e = String(e)) ? t.query = null: ("?" == e.charAt(0) && (e = e.slice(1)), t.query = "", Se(t, e, _e)), x(t.searchParams).updateSearchParams(t.query)
                                })),
                                searchParams: $e(Re),
                                hash: $e(je, (function(e) {
                                    var t = C(this);
                                    "" != (e = String(e)) ? ("#" == e.charAt(0) && (e = e.slice(1)), t.fragment = "", Se(t, e, Ce)) : t.fragment = null
                                }))
                            }), c(Te, "toJSON", (function() {
                                return Ae.call(this)
                            }), {
                                enumerable: !0
                            }), c(Te, "toString", (function() {
                                return Ae.call(this)
                            }), {
                                enumerable: !0
                            }), b) {
                            var ze = b.createObjectURL,
                                He = b.revokeObjectURL;
                            ze && c(ke, "createObjectURL", (function(e) {
                                return ze.apply(b, arguments)
                            })), He && c(ke, "revokeObjectURL", (function(e) {
                                return He.apply(b, arguments)
                            }))
                        }
                        m(ke, "URL"), r({
                            global: !0,
                            forced: !a,
                            sham: !o
                        }, {
                            URL: ke
                        })
                    }
                },
                t = {};

            function n(i) {
                if (t[i]) return t[i].exports;
                var r = t[i] = {
                    exports: {}
                };
                return e[i](r, r.exports, n), r.exports
            }
            n.d = function(e, t) {
                for (var i in t) n.o(t, i) && !n.o(e, i) && Object.defineProperty(e, i, {
                    enumerable: !0,
                    get: t[i]
                })
            }, n.g = function() {
                if ("object" == typeof globalThis) return globalThis;
                try {
                    return this || new Function("return this")()
                } catch (e) {
                    if ("object" == typeof window) return window
                }
            }(), n.o = function(e, t) {
                return Object.prototype.hasOwnProperty.call(e, t)
            }, n.r = function(e) {
                "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
                    value: "Module"
                }), Object.defineProperty(e, "__esModule", {
                    value: !0
                })
            };
            var i = {};
            return function() {
                "use strict";

                function e(e, n) {
                    var i;
                    if ("undefined" == typeof Symbol || null == e[Symbol.iterator]) {
                        if (Array.isArray(e) || (i = function(e, n) {
                                if (e) {
                                    if ("string" == typeof e) return t(e, n);
                                    var i = Object.prototype.toString.call(e).slice(8, -1);
                                    return "Object" === i && e.constructor && (i = e.constructor.name), "Map" === i || "Set" === i ? Array.from(e) : "Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? t(e, n) : void 0
                                }
                            }(e)) || n && e && "number" == typeof e.length) {
                            i && (e = i);
                            var r = 0,
                                o = function() {};
                            return {
                                s: o,
                                n: function() {
                                    return r >= e.length ? {
                                        done: !0
                                    } : {
                                        done: !1,
                                        value: e[r++]
                                    }
                                },
                                e: function(e) {
                                    throw e
                                },
                                f: o
                            }
                        }
                        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 a, s = !0,
                        l = !1;
                    return {
                        s: function() {
                            i = e[Symbol.iterator]()
                        },
                        n: function() {
                            var e = i.next();
                            return s = e.done, e
                        },
                        e: function(e) {
                            l = !0, a = e
                        },
                        f: function() {
                            try {
                                s || null == i.return || i.return()
                            } finally {
                                if (l) throw a
                            }
                        }
                    }
                }

                function t(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
                }
                n.r(i), n.d(i, {
                    Dropzone: function() {
                        return y
                    },
                    default: function() {
                        return C
                    }
                }), n(2222), n(7327), n(2772), n(6992), n(1249), n(7042), n(561), n(8264), n(8309), n(489), n(1539), n(4916), n(9714), n(8783), n(4723), n(5306), n(3123), n(3210), n(2472), n(2990), n(8927), n(3105), n(5035), n(4345), n(7174), n(2846), n(4731), n(7209), n(6319), n(8867), n(7789), n(3739), n(9368), n(4483), n(2056), n(3462), n(678), n(7462), n(3824), n(5021), n(2974), n(5016), n(4747), n(3948), n(285);
                var r = function() {
                    function t() {
                        ! function(e, t) {
                            if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                        }(this, t)
                    }
                    var n;
                    return (n = [{
                        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(t) {
                            this._callbacks = this._callbacks || {};
                            for (var n = this._callbacks[t], i = arguments.length, r = new Array(i > 1 ? i - 1 : 0), o = 1; o < i; o++) r[o - 1] = arguments[o];
                            if (n) {
                                var a, s = e(n, !0);
                                try {
                                    for (s.s(); !(a = s.n()).done;) {
                                        var l = a.value;
                                        l.apply(this, r)
                                    }
                                } catch (e) {
                                    s.e(e)
                                } finally {
                                    s.f()
                                }
                            }
                            return this.element && this.element.dispatchEvent(this.makeEvent("dropzone:" + t, {
                                args: r
                            })), this
                        }
                    }, {
                        key: "makeEvent",
                        value: function(e, t) {
                            var n = {
                                bubbles: !0,
                                cancelable: !0,
                                detail: t
                            };
                            if ("function" == typeof window.CustomEvent) return new CustomEvent(e, n);
                            var i = document.createEvent("CustomEvent");
                            return i.initCustomEvent(e, n.bubbles, n.cancelable, n.detail), i
                        }
                    }, {
                        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++) {
                                var r = n[i];
                                if (r === t) {
                                    n.splice(i, 1);
                                    break
                                }
                            }
                            return this
                        }
                    }]) && function(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)
                        }
                    }(t.prototype, n), t
                }();

                function o(e, t) {
                    var n;
                    if ("undefined" == typeof Symbol || null == e[Symbol.iterator]) {
                        if (Array.isArray(e) || (n = function(e, t) {
                                if (e) {
                                    if ("string" == typeof e) return a(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) ? a(e, t) : void 0
                                }
                            }(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, s = !0,
                        l = !1;
                    return {
                        s: function() {
                            n = e[Symbol.iterator]()
                        },
                        n: function() {
                            var e = n.next();
                            return s = e.done, e
                        },
                        e: function(e) {
                            l = !0, o = e
                        },
                        f: function() {
                            try {
                                s || null == n.return || n.return()
                            } finally {
                                if (l) throw o
                            }
                        }
                    }
                }

                function a(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
                }
                var s = {
                    url: null,
                    method: "post",
                    withCredentials: !1,
                    timeout: null,
                    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,
                    disablePreviews: !1,
                    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 t, n = o(this.element.getElementsByTagName("div"), !0);
                        try {
                            for (n.s(); !(t = n.n()).done;) {
                                var i = t.value;
                                if (/(^| )dz-message($| )/.test(i.className)) {
                                    e = i, i.className = "dz-message";
                                    break
                                }
                            }
                        } catch (e) {
                            n.e(e)
                        } finally {
                            n.f()
                        }
                        e || (e = y.createElement('<div class="dz-message"><span></span></div>'), this.element.appendChild(e));
                        var r = e.getElementsByTagName("span")[0];
                        return r && (null != r.textContent ? r.textContent = this.options.dictFallbackMessage : null != r.innerText && (r.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) o > a ? (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, "'"));
                                o > a ? 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"> <div class="dz-image"><img data-dz-thumbnail/></div> <div class="dz-details"> <div class="dz-size"><span data-dz-size></span></div> <div class="dz-filename"><span data-dz-name></span></div> </div> <div class="dz-progress"> <span class="dz-upload" data-dz-uploadprogress></span> </div> <div class="dz-error-message"><span data-dz-errormessage></span></div> <div class="dz-success-mark"> <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"> <title>Check</title> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <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> </g> </svg> </div> <div class="dz-error-mark"> <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"> <title>Error</title> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g stroke="#747474" stroke-opacity="0.198794158" fill="#FFFFFF" fill-opacity="0.816519475"> <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> </g> </g> </svg> </div> </div> ',
                    drop: function(e) {
                        return this.element.classList.remove("dz-drag-hover")
                    },
                    dragstart: function(e) {},
                    dragend: function(e) {
                        return this.element.classList.remove("dz-drag-hover")
                    },
                    dragenter: function(e) {
                        return this.element.classList.add("dz-drag-hover")
                    },
                    dragover: function(e) {
                        return this.element.classList.add("dz-drag-hover")
                    },
                    dragleave: function(e) {
                        return this.element.classList.remove("dz-drag-hover")
                    },
                    paste: function(e) {},
                    reset: function() {
                        return this.element.classList.remove("dz-started")
                    },
                    addedfile: function(e) {
                        var t = this;
                        if (this.element === this.previewsContainer && this.element.classList.add("dz-started"), this.previewsContainer && !this.options.disablePreviews) {
                            e.previewElement = y.createElement(this.options.previewTemplate.trim()), e.previewTemplate = e.previewElement, this.previewsContainer.appendChild(e.previewElement);
                            var n, i = o(e.previewElement.querySelectorAll("[data-dz-name]"), !0);
                            try {
                                for (i.s(); !(n = i.n()).done;) {
                                    var r = n.value;
                                    r.textContent = e.name
                                }
                            } catch (e) {
                                i.e(e)
                            } finally {
                                i.f()
                            }
                            var a, s = o(e.previewElement.querySelectorAll("[data-dz-size]"), !0);
                            try {
                                for (s.s(); !(a = s.n()).done;)(r = a.value).innerHTML = this.filesize(e.size)
                            } catch (e) {
                                s.e(e)
                            } finally {
                                s.f()
                            }
                            this.options.addRemoveLinks && (e._removeLink = y.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(n) {
                                    return n.preventDefault(), n.stopPropagation(), e.status === y.UPLOADING ? y.confirm(t.options.dictCancelUploadConfirmation, (function() {
                                        return t.removeFile(e)
                                    })) : t.options.dictRemoveFileConfirmation ? y.confirm(t.options.dictRemoveFileConfirmation, (function() {
                                        return t.removeFile(e)
                                    })) : t.removeFile(e)
                                },
                                u = o(e.previewElement.querySelectorAll("[data-dz-remove]"), !0);
                            try {
                                for (u.s(); !(l = u.n()).done;) l.value.addEventListener("click", c)
                            } catch (e) {
                                u.e(e)
                            } 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 = o(e.previewElement.querySelectorAll("[data-dz-thumbnail]"), !0);
                            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 = o(e.previewElement.querySelectorAll("[data-dz-errormessage]"), !0);
                            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, n) {
                        if (e.previewElement) {
                            var i, r = o(e.previewElement.querySelectorAll("[data-dz-uploadprogress]"), !0);
                            try {
                                for (r.s(); !(i = r.n()).done;) {
                                    var a = i.value;
                                    "PROGRESS" === a.nodeName ? a.value = t : a.style.width = "".concat(t, "%")
                                }
                            } catch (e) {
                                r.e(e)
                            } finally {
                                r.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() {}
                };

                function l(e) {
                    return (l = "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 c(e, t) {
                    var n;
                    if ("undefined" == typeof Symbol || null == e[Symbol.iterator]) {
                        if (Array.isArray(e) || (n = function(e, t) {
                                if (e) {
                                    if ("string" == typeof e) return u(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) ? u(e, t) : void 0
                                }
                            }(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 u(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 d(e, t) {
                    if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                }

                function h(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 f(e, t, n) {
                    return t && h(e.prototype, t), n && h(e, n), e
                }

                function p(e, t) {
                    return (p = Object.setPrototypeOf || function(e, t) {
                        return e.__proto__ = t, e
                    })(e, t)
                }

                function g(e, t) {
                    return !t || "object" !== l(t) && "function" != typeof t ? m(e) : t
                }

                function m(e) {
                    if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return e
                }

                function v(e) {
                    return (v = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
                        return e.__proto__ || Object.getPrototypeOf(e)
                    })(e)
                }
                var y = function(e) {
                    ! 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 && p(e, t)
                    }(o, e);
                    var t, n, i = (t = o, n = function() {
                        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() {
                        var e, i = v(t);
                        if (n) {
                            var r = v(this).constructor;
                            e = Reflect.construct(i, arguments, r)
                        } else e = i.apply(this, arguments);
                        return g(this, e)
                    });

                    function o(e, t) {
                        var n, r, a;
                        if (d(this, o), (n = i.call(this)).element = e, n.version = o.version, n.clickableElements = [], n.listeners = [], n.files = [], "string" == typeof n.element && (n.element = document.querySelector(n.element)), !n.element || null == n.element.nodeType) throw new Error("Invalid dropzone element.");
                        if (n.element.dropzone) throw new Error("Dropzone already attached.");
                        o.instances.push(m(n)), n.element.dropzone = m(n);
                        var l = null != (a = o.optionsForElement(n.element)) ? a : {};
                        if (n.options = o.extend({}, s, l, null != t ? t : {}), n.options.previewTemplate = n.options.previewTemplate.replace(/\n*/g, ""), n.options.forceFallback || !o.isBrowserSupported()) return g(n, n.options.fallback.call(m(n)));
                        if (null == n.options.url && (n.options.url = n.element.getAttribute("action")), !n.options.url) throw new Error("No URL provided.");
                        if (n.options.acceptedFiles && n.options.acceptedMimeTypes) throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");
                        if (n.options.uploadMultiple && n.options.chunking) throw new Error("You cannot set both: uploadMultiple and chunking.");
                        return n.options.acceptedMimeTypes && (n.options.acceptedFiles = n.options.acceptedMimeTypes, delete n.options.acceptedMimeTypes), null != n.options.renameFilename && (n.options.renameFile = function(e) {
                            return n.options.renameFilename.call(m(n), e.name, e)
                        }), "string" == typeof n.options.method && (n.options.method = n.options.method.toUpperCase()), (r = n.getExistingFallback()) && r.parentNode && r.parentNode.removeChild(r), !1 !== n.options.previewsContainer && (n.options.previewsContainer ? n.previewsContainer = o.getElement(n.options.previewsContainer, "previewsContainer") : n.previewsContainer = n.element), n.options.clickable && (!0 === n.options.clickable ? n.clickableElements = [n.element] : n.clickableElements = o.getElements(n.options.clickable, "clickable")), n.init(), n
                    }
                    return f(o, [{
                        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(o.QUEUED)
                        }
                    }, {
                        key: "getUploadingFiles",
                        value: function() {
                            return this.getFilesWithStatus(o.UPLOADING)
                        }
                    }, {
                        key: "getAddedFiles",
                        value: function() {
                            return this.getFilesWithStatus(o.ADDED)
                        }
                    }, {
                        key: "getActiveFiles",
                        value: function() {
                            return this.files.filter((function(e) {
                                return e.status === o.UPLOADING || e.status === o.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(o.createElement('<div class="dz-default dz-message"><button class="dz-button" type="button">'.concat(this.options.dictDefaultMessage, "</button></div>"))), this.clickableElements.length && function t() {
                                e.hiddenFileInput && e.hiddenFileInput.parentNode.removeChild(e.hiddenFileInput), e.hiddenFileInput = document.createElement("input"), e.hiddenFileInput.setAttribute("type", "file"), (null === e.options.maxFiles || e.options.maxFiles > 1) && 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.setAttribute("tabindex", "-1"), 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", o.getElement(e.options.hiddenInputContainer, "hiddenInputContainer").appendChild(e.hiddenFileInput), e.hiddenFileInput.addEventListener("change", (function() {
                                    var n = e.hiddenFileInput.files;
                                    if (n.length) {
                                        var i, r = c(n, !0);
                                        try {
                                            for (r.s(); !(i = r.n()).done;) {
                                                var o = i.value;
                                                e.addFile(o)
                                            }
                                        } catch (e) {
                                            r.e(e)
                                        } finally {
                                            r.f()
                                        }
                                    }
                                    e.emit("addedfiles", n), t()
                                }))
                            }(), this.URL = null !== window.URL ? window.URL : window.webkitURL;
                            var t, n = c(this.events, !0);
                            try {
                                for (n.s(); !(t = n.n()).done;) {
                                    var i = t.value;
                                    this.on(i, this.options[i])
                                }
                            } catch (e) {
                                n.e(e)
                            } finally {
                                n.f()
                            }
                            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)
                            }));
                            var r = function(e) {
                                if (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)) return e.stopPropagation(), e.preventDefault ? e.preventDefault() : e.returnValue = !1
                            };
                            return this.listeners = [{
                                element: this.element,
                                events: {
                                    dragstart: function(t) {
                                        return e.emit("dragstart", t)
                                    },
                                    dragenter: function(t) {
                                        return r(t), e.emit("dragenter", t)
                                    },
                                    dragover: function(t) {
                                        var n;
                                        try {
                                            n = t.dataTransfer.effectAllowed
                                        } catch (e) {}
                                        return t.dataTransfer.dropEffect = "move" === n || "linkMove" === n ? "move" : "copy", r(t), e.emit("dragover", t)
                                    },
                                    dragleave: function(t) {
                                        return e.emit("dragleave", t)
                                    },
                                    drop: function(t) {
                                        return r(t), e.drop(t)
                                    },
                                    dragend: function(t) {
                                        return e.emit("dragend", t)
                                    }
                                }
                            }], this.clickableElements.forEach((function(t) {
                                return e.listeners.push({
                                    element: t,
                                    events: {
                                        click: function(n) {
                                            return (t !== e.element || n.target === e.element || o.elementInside(n.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 : void 0) && (this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput), this.hiddenFileInput = null), delete this.element.dropzone, o.instances.splice(o.instances.indexOf(this), 1)
                        }
                    }, {
                        key: "updateTotalUploadProgress",
                        value: function() {
                            var e, t = 0,
                                n = 0;
                            if (this.getActiveFiles().length) {
                                var i, r = c(this.getActiveFiles(), !0);
                                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, t;
                            if (e = this.getExistingFallback()) return e;
                            var n = '<div class="dz-fallback">';
                            this.options.dictFallbackText && (n += "<p>".concat(this.options.dictFallbackText, "</p>")), n += '<input type="file" name="'.concat(this._getParamName(0), '" ').concat(this.options.uploadMultiple ? 'multiple="multiple"' : void 0, ' /><input type="submit" value="Upload!"></div>');
                            var i = o.createElement(n);
                            return "FORM" !== this.element.tagName ? (t = o.createElement('<form action="'.concat(this.options.url, '" enctype="multipart/form-data" method="').concat(this.options.method, '"></form>'))).appendChild(i) : (this.element.setAttribute("enctype", "multipart/form-data"), this.element.setAttribute("method", this.options.method)), null != t ? t : i
                        }
                    }, {
                        key: "getExistingFallback",
                        value: function() {
                            for (var e = function(e) {
                                    var t, n = c(e, !0);
                                    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 (e > 0) {
                                for (var i = ["tb", "gb", "mb", "kb", "b"], r = 0; r < i.length; r++) {
                                    var o = i[r];
                                    if (e >= Math.pow(this.options.filesizeBase, 4 - r) / 10) {
                                        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 != (null != (t = null != e ? e.clipboardData : void 0) ? function(e) {
                                    return e.items
                                }(t) : void 0)) {
                                var t;
                                this.emit("paste", e);
                                var n = e.clipboardData.items;
                                return n.length ? this._addFilesFromItems(n) : void 0
                            }
                        }
                    }, {
                        key: "handleFiles",
                        value: function(e) {
                            var t, n = c(e, !0);
                            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 = c(e, !0);
                                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 (e) {
                                    r.e(e)
                                } finally {
                                    r.f()
                                }
                                return i
                            }()
                        }
                    }, {
                        key: "_addFilesFromDirectory",
                        value: function(e, t) {
                            var n = this,
                                i = e.createReader(),
                                r = function(e) {
                                    return n = function(t) {
                                        return t.log(e)
                                    }, null != (t = console) && "function" == typeof t.log ? n(t) : void 0;
                                    var t, n
                                };
                            return function e() {
                                return i.readEntries((function(i) {
                                    if (i.length > 0) {
                                        var r, o = c(i, !0);
                                        try {
                                            for (o.s(); !(r = o.n()).done;) {
                                                var a = r.value;
                                                a.isFile ? a.file((function(e) {
                                                    if (!n.options.ignoreHiddenFiles || "." !== e.name.substring(0, 1)) return e.fullPath = "".concat(t, "/").concat(e.name), n.addFile(e)
                                                })) : a.isDirectory && n._addFilesFromDirectory(a, "".concat(t, "/").concat(a.name))
                                            }
                                        } catch (e) {
                                            o.e(e)
                                        } finally {
                                            o.f()
                                        }
                                        e()
                                    }
                                    return null
                                }), r)
                            }()
                        }
                    }, {
                        key: "accept",
                        value: function(e, t) {
                            this.options.maxFilesize && e.size > 1024 * this.options.maxFilesize * 1024 ? t(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(e.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)) : o.isValidFile(e, this.options.acceptedFiles) ? null != this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles ? (t(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles)), this.emit("maxfilesexceeded", e)) : this.options.accept.call(this, e, t) : t(this.options.dictInvalidFileType)
                        }
                    }, {
                        key: "addFile",
                        value: function(e) {
                            var t = this;
                            e.upload = {
                                uuid: o.uuidv4(),
                                progress: 0,
                                total: e.size,
                                bytesSent: 0,
                                filename: this._renameFile(e)
                            }, this.files.push(e), e.status = o.ADDED, this.emit("addedfile", e), this._enqueueThumbnail(e), this.accept(e, (function(n) {
                                n ? (e.accepted = !1, t._errorProcessing([e], n)) : (e.accepted = !0, t.options.autoQueue && t.enqueueFile(e)), t._updateMaxFilesReachedClass()
                            }))
                        }
                    }, {
                        key: "enqueueFiles",
                        value: function(e) {
                            var t, n = c(e, !0);
                            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 t = this;
                            if (e.status !== o.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 = o.QUEUED, this.options.autoProcessQueue) return setTimeout((function() {
                                return t.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 === o.UPLOADING && this.cancelUpload(e), this.files = b(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 t, n = c(this.files.slice(), !0);
                            try {
                                for (n.s(); !(t = n.n()).done;) {
                                    var i = t.value;
                                    (i.status !== o.UPLOADING || e) && this.removeFile(i)
                                }
                            } catch (e) {
                                n.e(e)
                            } finally {
                                n.f()
                            }
                            return null
                        }
                    }, {
                        key: "resizeImage",
                        value: function(e, t, n, i, r) {
                            var a = this;
                            return this.createThumbnail(e, t, n, i, !0, (function(t, n) {
                                if (null == n) return r(e);
                                var i = a.options.resizeMimeType;
                                null == i && (i = e.type);
                                var s = n.toDataURL(i, a.options.resizeQuality);
                                return "image/jpeg" !== i && "image/jpg" !== i || (s = _.restore(e.dataURL, s)), r(o.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) {
                            var r = this,
                                o = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4];
                            if (this.emit("addedfile", e), this.emit("complete", e), o) {
                                var a = function(t) {
                                    r.emit("thumbnail", e, t), n && n()
                                };
                                e.dataURL = t, this.createThumbnailFromUrl(e, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, a, i)
                            } else 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, r > 4 && (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)
                                    }
                                    x(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 (!(t >= e)) {
                                var i = this.getQueuedFiles();
                                if (i.length > 0) {
                                    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 t, n = c(e, !0);
                            try {
                                for (n.s(); !(t = n.n()).done;) {
                                    var i = t.value;
                                    i.processing = !0, i.status = o.UPLOADING, this.emit("processing", i)
                                }
                            } catch (e) {
                                n.e(e)
                            } finally {
                                n.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 === o.UPLOADING) {
                                var t, n = this._getFilesWithXhr(e.xhr),
                                    i = c(n, !0);
                                try {
                                    for (i.s(); !(t = i.n()).done;) t.value.status = o.CANCELED
                                } catch (e) {
                                    i.e(e)
                                } finally {
                                    i.f()
                                }
                                void 0 !== e.xhr && e.xhr.abort();
                                var r, a = c(n, !0);
                                try {
                                    for (a.s(); !(r = a.n()).done;) {
                                        var s = r.value;
                                        this.emit("canceled", s)
                                    }
                                } catch (e) {
                                    a.e(e)
                                } finally {
                                    a.f()
                                }
                                this.options.uploadMultiple && this.emit("canceledmultiple", n)
                            } else e.status !== o.ADDED && e.status !== o.QUEUED || (e.status = o.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) {
                                for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) n[i - 1] = arguments[i];
                                return e.apply(this, n)
                            }
                            return e
                        }
                    }, {
                        key: "uploadFile",
                        value: function(e) {
                            return this.uploadFiles([e])
                        }
                    }, {
                        key: "uploadFiles",
                        value: function(e) {
                            var t = this;
                            this._transformFiles(e, (function(n) {
                                if (t.options.chunking) {
                                    var i = n[0];
                                    e[0].upload.chunked = t.options.chunking && (t.options.forceChunking || i.size > t.options.chunkSize), e[0].upload.totalChunkCount = Math.ceil(i.size / t.options.chunkSize)
                                }
                                if (e[0].upload.chunked) {
                                    var r = e[0],
                                        a = n[0];
                                    r.upload.chunks = [];
                                    var s = function() {
                                        for (var n = 0; void 0 !== r.upload.chunks[n];) n++;
                                        if (!(n >= r.upload.totalChunkCount)) {
                                            var i = n * t.options.chunkSize,
                                                s = Math.min(i + t.options.chunkSize, a.size),
                                                l = {
                                                    name: t._getParamName(0),
                                                    data: a.webkitSlice ? a.webkitSlice(i, s) : a.slice(i, s),
                                                    filename: r.upload.filename,
                                                    chunkIndex: n
                                                };
                                            r.upload.chunks[n] = {
                                                file: r,
                                                index: n,
                                                dataBlock: l,
                                                status: o.UPLOADING,
                                                progress: 0,
                                                retries: 0
                                            }, t._uploadData(e, [l])
                                        }
                                    };
                                    if (r.upload.finishedChunkUpload = function(n, i) {
                                            var a = !0;
                                            n.status = o.SUCCESS, n.dataBlock = null, n.xhr = null;
                                            for (var l = 0; l < r.upload.totalChunkCount; l++) {
                                                if (void 0 === r.upload.chunks[l]) return s();
                                                r.upload.chunks[l].status !== o.SUCCESS && (a = !1)
                                            }
                                            a && t.options.chunksUploaded(r, (function() {
                                                t._finished(e, i, null)
                                            }))
                                        }, t.options.parallelChunkUploads)
                                        for (var l = 0; l < r.upload.totalChunkCount; l++) s();
                                    else s()
                                } else {
                                    for (var c = [], u = 0; u < e.length; u++) c[u] = {
                                        name: t._getParamName(u),
                                        data: n[u],
                                        filename: e[u].upload.filename
                                    };
                                    t._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, t) {
                            var n, i = this,
                                r = new XMLHttpRequest,
                                a = c(e, !0);
                            try {
                                for (a.s(); !(n = a.n()).done;) n.value.xhr = r
                            } catch (e) {
                                a.e(e)
                            } finally {
                                a.f()
                            }
                            e[0].upload.chunked && (e[0].upload.chunks[t[0].chunkIndex].xhr = r);
                            var s = this.resolveOption(this.options.method, e),
                                l = this.resolveOption(this.options.url, e);
                            r.open(s, l, !0), this.resolveOption(this.options.timeout, e) && (r.timeout = this.resolveOption(this.options.timeout, e)), r.withCredentials = !!this.options.withCredentials, r.onload = function(t) {
                                i._finishedUploading(e, r, t)
                            }, r.ontimeout = function() {
                                i._handleUploadError(e, r, "Request timedout after ".concat(i.options.timeout / 1e3, " seconds"))
                            }, r.onerror = function() {
                                i._handleUploadError(e, r)
                            }, (null != r.upload ? r.upload : r).onprogress = function(t) {
                                return i._updateFilesUploadProgress(e, r, t)
                            };
                            var u = {
                                Accept: "application/json",
                                "Cache-Control": "no-cache",
                                "X-Requested-With": "XMLHttpRequest"
                            };
                            for (var d in this.options.headers && o.extend(u, this.options.headers), u) {
                                var h = u[d];
                                h && r.setRequestHeader(d, h)
                            }
                            var f = new FormData;
                            if (this.options.params) {
                                var p = this.options.params;
                                for (var g in "function" == typeof p && (p = p.call(this, e, r, e[0].upload.chunked ? this._getChunk(e[0], r) : null)), p) {
                                    var m = p[g];
                                    if (Array.isArray(m))
                                        for (var v = 0; v < m.length; v++) f.append(g, m[v]);
                                    else f.append(g, m)
                                }
                            }
                            var y, b = c(e, !0);
                            try {
                                for (b.s(); !(y = b.n()).done;) {
                                    var w = y.value;
                                    this.emit("sending", w, r, f)
                                }
                            } catch (e) {
                                b.e(e)
                            } finally {
                                b.f()
                            }
                            this.options.uploadMultiple && this.emit("sendingmultiple", e, r, f), this._addFormElementData(f);
                            for (var x = 0; x < t.length; x++) {
                                var _ = t[x];
                                f.append(_.name, _.data, _.filename)
                            }
                            this.submitRequest(r, f, 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 = c(this.element.querySelectorAll("input, textarea, select, button"), !0);
                                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 = c(i.options, !0);
                                                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) {
                            if (e[0].upload.chunked) {
                                var i = e[0],
                                    r = this._getChunk(i, t);
                                n ? (r.progress = 100 * n.loaded / n.total, r.total = n.total, r.bytesSent = n.loaded) : (r.progress = 100, r.bytesSent = r.total), i.upload.progress = 0, i.upload.total = 0, i.upload.bytesSent = 0;
                                for (var o = 0; o < i.upload.totalChunkCount; o++) i.upload.chunks[o] && void 0 !== i.upload.chunks[o].progress && (i.upload.progress += i.upload.chunks[o].progress, i.upload.total += i.upload.chunks[o].total, i.upload.bytesSent += i.upload.chunks[o].bytesSent);
                                i.upload.progress = i.upload.progress / i.upload.totalChunkCount, this.emit("uploadprogress", i, i.upload.progress, i.upload.bytesSent)
                            } else {
                                var a, s = c(e, !0);
                                try {
                                    for (s.s(); !(a = s.n()).done;) {
                                        var l = a.value;
                                        l.upload.total && l.upload.bytesSent && l.upload.bytesSent == l.upload.total || (n ? (l.upload.progress = 100 * n.loaded / n.total, l.upload.total = n.total, l.upload.bytesSent = n.loaded) : (l.upload.progress = 100, l.upload.bytesSent = l.upload.total), this.emit("uploadprogress", l, l.upload.progress, l.upload.bytesSent))
                                    }
                                } catch (e) {
                                    s.e(e)
                                } finally {
                                    s.f()
                                }
                            }
                        }
                    }, {
                        key: "_finishedUploading",
                        value: function(e, t, n) {
                            var i;
                            if (e[0].status !== o.CANCELED && 4 === t.readyState) {
                                if ("arraybuffer" !== t.responseType && "blob" !== t.responseType && (i = t.responseText, t.getResponseHeader("content-type") && ~t.getResponseHeader("content-type").indexOf("application/json"))) try {
                                    i = JSON.parse(i)
                                } catch (e) {
                                    n = e, i = "Invalid JSON response from server."
                                }
                                this._updateFilesUploadProgress(e, t), 200 <= t.status && t.status < 300 ? e[0].upload.chunked ? e[0].upload.finishedChunkUpload(this._getChunk(e[0], t), i) : this._finished(e, i, n) : this._handleUploadError(e, t, i)
                            }
                        }
                    }, {
                        key: "_handleUploadError",
                        value: function(e, t, n) {
                            if (e[0].status !== o.CANCELED) {
                                if (e[0].upload.chunked && this.options.retryChunks) {
                                    var i = this._getChunk(e[0], t);
                                    if (i.retries++ < this.options.retryChunksLimit) return void this._uploadData(e, [i.dataBlock]);
                                    console.warn("Retried this chunk too often. Giving up.")
                                }
                                this._errorProcessing(e, n || this.options.dictResponseError.replace("{{statusCode}}", t.status), t)
                            }
                        }
                    }, {
                        key: "submitRequest",
                        value: function(e, t, n) {
                            1 == e.readyState ? e.send(t) : console.warn("Cannot send this request because the XMLHttpRequest.readyState is not OPENED.")
                        }
                    }, {
                        key: "_finished",
                        value: function(e, t, n) {
                            var i, r = c(e, !0);
                            try {
                                for (r.s(); !(i = r.n()).done;) {
                                    var a = i.value;
                                    a.status = o.SUCCESS, this.emit("success", a, t, n), this.emit("complete", a)
                                }
                            } catch (e) {
                                r.e(e)
                            } finally {
                                r.f()
                            }
                            if (this.options.uploadMultiple && (this.emit("successmultiple", e, t, n), this.emit("completemultiple", e)), this.options.autoProcessQueue) return this.processQueue()
                        }
                    }, {
                        key: "_errorProcessing",
                        value: function(e, t, n) {
                            var i, r = c(e, !0);
                            try {
                                for (r.s(); !(i = r.n()).done;) {
                                    var a = i.value;
                                    a.status = o.ERROR, this.emit("error", a, t, n), this.emit("complete", a)
                                }
                            } catch (e) {
                                r.e(e)
                            } finally {
                                r.f()
                            }
                            if (this.options.uploadMultiple && (this.emit("errormultiple", e, t, n), this.emit("completemultiple", e)), this.options.autoProcessQueue) return this.processQueue()
                        }
                    }], [{
                        key: "initClass",
                        value: function() {
                            this.prototype.Emitter = r, 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._thumbnailQueue = [], this.prototype._processingThumbnail = !1
                        }
                    }, {
                        key: "extend",
                        value: function(e) {
                            for (var t = arguments.length, n = new Array(t > 1 ? 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
                        }
                    }, {
                        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)
                            }))
                        }
                    }]), o
                }(r);
                y.initClass(), y.version = "5.9.3", y.options = {}, y.optionsForElement = function(e) {
                    return e.getAttribute("id") ? y.options[w(e.getAttribute("id"))] : void 0
                }, y.instances = [], y.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
                }, y.autoDiscover = !0, y.discover = function() {
                    var e;
                    if (document.querySelectorAll) e = document.querySelectorAll(".dropzone");
                    else {
                        e = [];
                        var t = function(t) {
                            return function() {
                                var n, i = [],
                                    r = c(t, !0);
                                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 (e) {
                                    r.e(e)
                                } finally {
                                    r.f()
                                }
                                return i
                            }()
                        };
                        t(document.getElementsByTagName("div")), t(document.getElementsByTagName("form"))
                    }
                    return function() {
                        var t, n = [],
                            i = c(e, !0);
                        try {
                            for (i.s(); !(t = i.n()).done;) {
                                var r = t.value;
                                !1 !== y.optionsForElement(r) ? n.push(new y(r)) : n.push(void 0)
                            }
                        } catch (e) {
                            i.e(e)
                        } finally {
                            i.f()
                        }
                        return n
                    }()
                }, y.blockedBrowsers = [/opera.*(Macintosh|Windows Phone).*version\/12/i], y.isBrowserSupported = function() {
                    var e = !0;
                    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector)
                        if ("classList" in document.createElement("a")) {
                            void 0 !== y.blacklistedBrowsers && (y.blockedBrowsers = y.blacklistedBrowsers);
                            var t, n = c(y.blockedBrowsers, !0);
                            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
                }, y.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 : o >= a; s ? o++ : o--) r[o] = t.charCodeAt(o);
                    return new Blob([i], {
                        type: n
                    })
                };
                var b = function(e, t) {
                        return e.filter((function(e) {
                            return e !== t
                        })).map((function(e) {
                            return e
                        }))
                    },
                    w = function(e) {
                        return e.replace(/[\-_](\w)/g, (function(e) {
                            return e.charAt(1).toUpperCase()
                        }))
                    };
                y.createElement = function(e) {
                    var t = document.createElement("div");
                    return t.innerHTML = e, t.childNodes[0]
                }, y.elementInside = function(e, t) {
                    if (e === t) return !0;
                    for (; e = e.parentNode;)
                        if (e === t) return !0;
                    return !1
                }, y.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
                }, y.getElements = function(e, t) {
                    var n, i;
                    if (e instanceof Array) {
                        i = [];
                        try {
                            var r, o = c(e, !0);
                            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 = c(document.querySelectorAll(e), !0);
                        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
                }, y.confirm = function(e, t, n) {
                    return window.confirm(e) ? t() : null != n ? n() : void 0
                }, y.isValidFile = function(e, t) {
                    if (!t) return !0;
                    t = t.split(",");
                    var n, i = e.type,
                        r = i.replace(/\/.*$/, ""),
                        o = c(t, !0);
                    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 y(this, e)
                    }))
                }), y.ADDED = "added", y.QUEUED = "queued", y.ACCEPTED = y.QUEUED, y.UPLOADING = "uploading", y.PROCESSING = y.UPLOADING, y.CANCELED = "canceled", y.ERROR = "error", y.SUCCESS = "success";
                var x = function(e, t, n, i, r, o, a, s, l, c) {
                        var u = 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; s > o;) 0 === r[4 * (s - 1) + 3] ? a = s : o = s, s = a + o >> 1;
                            var l = s / t;
                            return 0 === l ? 1 : l
                        }(t);
                        return e.drawImage(t, n, i, r, o, a, s, l, c / u)
                    },
                    _ = function() {
                        function e() {
                            d(this, e)
                        }
                        return f(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);
                                return o.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
                    }();
                _.initClass(), y._autoDiscoverFunction = function() {
                        if (y.autoDiscover) return y.discover()
                    },
                    function(e, t) {
                        var n = !1,
                            i = !0,
                            r = e.document,
                            o = r.documentElement,
                            a = r.addEventListener ? "addEventListener" : "attachEvent",
                            s = r.addEventListener ? "removeEventListener" : "detachEvent",
                            l = r.addEventListener ? "" : "on",
                            c = function i(o) {
                                if ("readystatechange" !== o.type || "complete" === r.readyState) return ("load" === o.type ? e : r)[s](l + o.type, i, !1), !n && (n = !0) ? t.call(e, o.type || o) : void 0
                            };
                        if ("complete" !== r.readyState) {
                            if (r.createEventObject && o.doScroll) {
                                try {
                                    i = !e.frameElement
                                } catch (e) {}
                                i && function e() {
                                    try {
                                        o.doScroll("left")
                                    } catch (t) {
                                        return void setTimeout(e, 50)
                                    }
                                    return c("poll")
                                }()
                            }
                            r[a](l + "DOMContentLoaded", c, !1), r[a](l + "readystatechange", c, !1), e[a](l + "load", c, !1)
                        }
                    }(window, y._autoDiscoverFunction), window.Dropzone = y;
                var C = y
            }(), i
        }()
    })),
    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">&#160;</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, S, k = []; w.valueOf() < _;) {
                        if ((C = w.getUTCDay()) === this.o.weekStart && (k.push("<tr>"), this.o.calendarWeeks)) {
                            var T = new Date(+w + (this.o.weekStart - C - 7) % 7 * 864e5),
                                A = new Date(Number(T) + (11 - T.getUTCDay()) % 7 * 864e5),
                                D = new Date(Number(D = n(A.getUTCFullYear(), 0, 1)) + (11 - D.getUTCDay()) % 7 * 864e5),
                                E = (A - D) / 864e5 / 7 + 1;
                            k.push('<td class="cw">' + E + "</td>")
                        }(S = this.getClassNames(w)).push("day");
                        var O = 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 && S.push("disabled"), o.classes && (S = S.concat(o.classes.split(/\s+/))), o.tooltip && (r = o.tooltip), o.content && (O = o.content)), S = e.isFunction(e.uniqueSort) ? e.uniqueSort(S) : e.unique(S), k.push('<td class="' + S.join(" ") + '"' + (r ? ' title="' + r + '"' : "") + ' data-date="' + w.getTime().toString() + '">' + O + "</td>"), r = null, C === this.o.weekEnd && k.push("</tr>"), w.setUTCDate(w.getUTCDate() + 1)
                    }
                    this.picker.find(".datepicker-days tbody").html(k.join(""));
                    var M = g[this.o.language].monthsTitle || g.en.monthsTitle || "Months",
                        I = this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode < 2 ? M : 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: "&#x00AB;",
                    rightArrow: "&#x00BB;"
                },
                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 S, k, T;
                        for (h = 0, S = C.length; h < S; 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]) && (k = new Date(n), _[T](k, w[T]), isNaN(k) || (n = k))
                    }
                    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 ? M($, "contents") : o.length < a.length && M($, "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 + N + t)
        }

        function a(e, t) {
            var n = d(e);
            return e.find("#" + n + F + 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) && M(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 && M("The enum key '{0}' does not exist.", n), i
            }
            if ("number" == typeof n) {
                for (var r in e)
                    if (e[r] === n) return n;
                M("Invalid enum value '{0}'.", n)
            } else M("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) {
                                k(t, i, e(this), n)
                            })), l.each((function(r) {
                                A(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) && M(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++, D(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), k(t, i, u, r), A(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 + N + o,
                    s = r + F + 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 S(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--, D(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 k(e, t, n, i) {
            var r = d(e),
                o = r + F + 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 && M("The key '{0}' does not exist in the substitute collection!", a), e = e.replace(o, n[a])
            }
            return e
        }

        function A(t, n, i, o, a) {
            var s = d(t),
                l = s + N + a,
                c = s + F + 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), O)
        }

        function D(t, n, i) {
            n.saveState && e.cookie && e.cookie(L + d(t), i.currentIndex)
        }

        function E(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 O(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) && M(j), !(t.forceMoveForward && i < n.currentIndex)) {
                        var r = n.currentIndex;
                        e.triggerHandler("stepChanging", [n.currentIndex, i]) ? (n.currentIndex = i, D(e, t, n), _(e, t, n, r), x(e, t, n), y(e, t, n), E(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 M(e) {
            throw arguments.length > 1 && (e = e.format(Array.prototype.slice.call(arguments, 1))), new Error(e)
        }

        function I(e, t) {
            null == t && M("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_",
            N = "-t-",
            F = "-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 S(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),
    function(e) {
        "function" == typeof define && define.amd ? define(["jquery"], e) : e("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto)
    }((function(e) {
        var t, n, i, r, o, a, s = "Close",
            l = "BeforeClose",
            c = "MarkupParse",
            u = "Open",
            d = "Change",
            h = "mfp",
            f = ".mfp",
            p = "mfp-ready",
            g = "mfp-removing",
            m = "mfp-prevent-close",
            v = function() {},
            y = !!window.jQuery,
            b = e(window),
            w = function(e, n) {
                t.ev.on(h + e + f, n)
            },
            x = function(t, n, i, r) {
                var o = document.createElement("div");
                return o.className = "mfp-" + t, i && (o.innerHTML = i), r ? n && n.appendChild(o) : (o = e(o), n && o.appendTo(n)), o
            },
            _ = function(n, i) {
                t.ev.triggerHandler(h + n, i), t.st.callbacks && (n = n.charAt(0).toLowerCase() + n.slice(1), t.st.callbacks[n] && t.st.callbacks[n].apply(t, e.isArray(i) ? i : [i]))
            },
            C = function(n) {
                return n === a && t.currTemplate.closeBtn || (t.currTemplate.closeBtn = e(t.st.closeMarkup.replace("%title%", t.st.tClose)), a = n), t.currTemplate.closeBtn
            },
            S = function() {
                e.magnificPopup.instance || ((t = new v).init(), e.magnificPopup.instance = t)
            };
        v.prototype = {
            constructor: v,
            init: function() {
                var n = navigator.appVersion;
                t.isLowIE = t.isIE8 = document.all && !document.addEventListener, t.isAndroid = /android/gi.test(n), t.isIOS = /iphone|ipad|ipod/gi.test(n), t.supportsTransition = function() {
                    var e = document.createElement("p").style,
                        t = ["ms", "O", "Moz", "Webkit"];
                    if (void 0 !== e.transition) return !0;
                    for (; t.length;)
                        if (t.pop() + "Transition" in e) return !0;
                    return !1
                }(), t.probablyMobile = t.isAndroid || t.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), i = e(document), t.popupsCache = {}
            },
            open: function(n) {
                var r;
                if (!1 === n.isObj) {
                    t.items = n.items.toArray(), t.index = 0;
                    var a, s = n.items;
                    for (r = 0; r < s.length; r++)
                        if ((a = s[r]).parsed && (a = a.el[0]), a === n.el[0]) {
                            t.index = r;
                            break
                        }
                } else t.items = e.isArray(n.items) ? n.items : [n.items], t.index = n.index || 0;
                if (!t.isOpen) {
                    t.types = [], o = "", n.mainEl && n.mainEl.length ? t.ev = n.mainEl.eq(0) : t.ev = i, n.key ? (t.popupsCache[n.key] || (t.popupsCache[n.key] = {}), t.currTemplate = t.popupsCache[n.key]) : t.currTemplate = {}, t.st = e.extend(!0, {}, e.magnificPopup.defaults, n), t.fixedContentPos = "auto" === t.st.fixedContentPos ? !t.probablyMobile : t.st.fixedContentPos, t.st.modal && (t.st.closeOnContentClick = !1, t.st.closeOnBgClick = !1, t.st.showCloseBtn = !1, t.st.enableEscapeKey = !1), t.bgOverlay || (t.bgOverlay = x("bg").on("click" + f, (function() {
                        t.close()
                    })), t.wrap = x("wrap").attr("tabindex", -1).on("click" + f, (function(e) {
                        t._checkIfClose(e.target) && t.close()
                    })), t.container = x("container", t.wrap)), t.contentContainer = x("content"), t.st.preloader && (t.preloader = x("preloader", t.container, t.st.tLoading));
                    var l = e.magnificPopup.modules;
                    for (r = 0; r < l.length; r++) {
                        var d = l[r];
                        d = d.charAt(0).toUpperCase() + d.slice(1), t["init" + d].call(t)
                    }
                    _("BeforeOpen"), t.st.showCloseBtn && (t.st.closeBtnInside ? (w(c, (function(e, t, n, i) {
                        n.close_replaceWith = C(i.type)
                    })), o += " mfp-close-btn-in") : t.wrap.append(C())), t.st.alignTop && (o += " mfp-align-top"), t.fixedContentPos ? t.wrap.css({
                        overflow: t.st.overflowY,
                        overflowX: "hidden",
                        overflowY: t.st.overflowY
                    }) : t.wrap.css({
                        top: b.scrollTop(),
                        position: "absolute"
                    }), (!1 === t.st.fixedBgPos || "auto" === t.st.fixedBgPos && !t.fixedContentPos) && t.bgOverlay.css({
                        height: i.height(),
                        position: "absolute"
                    }), t.st.enableEscapeKey && i.on("keyup" + f, (function(e) {
                        27 === e.keyCode && t.close()
                    })), b.on("resize" + f, (function() {
                        t.updateSize()
                    })), t.st.closeOnContentClick || (o += " mfp-auto-cursor"), o && t.wrap.addClass(o);
                    var h = t.wH = b.height(),
                        g = {};
                    if (t.fixedContentPos && t._hasScrollBar(h)) {
                        var m = t._getScrollbarSize();
                        m && (g.marginRight = m)
                    }
                    t.fixedContentPos && (t.isIE7 ? e("body, html").css("overflow", "hidden") : g.overflow = "hidden");
                    var v = t.st.mainClass;
                    return t.isIE7 && (v += " mfp-ie7"), v && t._addClassToMFP(v), t.updateItemHTML(), _("BuildControls"), e("html").css(g), t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo || e(document.body)), t._lastFocusedEl = document.activeElement, setTimeout((function() {
                        t.content ? (t._addClassToMFP(p), t._setFocus()) : t.bgOverlay.addClass(p), i.on("focusin" + f, t._onFocusIn)
                    }), 16), t.isOpen = !0, t.updateSize(h), _(u), n
                }
                t.updateItemHTML()
            },
            close: function() {
                t.isOpen && (_(l), t.isOpen = !1, t.st.removalDelay && !t.isLowIE && t.supportsTransition ? (t._addClassToMFP(g), setTimeout((function() {
                    t._close()
                }), t.st.removalDelay)) : t._close())
            },
            _close: function() {
                _(s);
                var n = g + " " + p + " ";
                if (t.bgOverlay.detach(), t.wrap.detach(), t.container.empty(), t.st.mainClass && (n += t.st.mainClass + " "), t._removeClassFromMFP(n), t.fixedContentPos) {
                    var r = {
                        marginRight: ""
                    };
                    t.isIE7 ? e("body, html").css("overflow", "") : r.overflow = "", e("html").css(r)
                }
                i.off("keyup.mfp focusin" + f), t.ev.off(f), t.wrap.attr("class", "mfp-wrap").removeAttr("style"), t.bgOverlay.attr("class", "mfp-bg"), t.container.attr("class", "mfp-container"), !t.st.showCloseBtn || t.st.closeBtnInside && !0 !== t.currTemplate[t.currItem.type] || t.currTemplate.closeBtn && t.currTemplate.closeBtn.detach(), t.st.autoFocusLast && t._lastFocusedEl && e(t._lastFocusedEl).focus(), t.currItem = null, t.content = null, t.currTemplate = null, t.prevHeight = 0, _("AfterClose")
            },
            updateSize: function(e) {
                if (t.isIOS) {
                    var n = document.documentElement.clientWidth / window.innerWidth,
                        i = window.innerHeight * n;
                    t.wrap.css("height", i), t.wH = i
                } else t.wH = e || b.height();
                t.fixedContentPos || t.wrap.css("height", t.wH), _("Resize")
            },
            updateItemHTML: function() {
                var n = t.items[t.index];
                t.contentContainer.detach(), t.content && t.content.detach(), n.parsed || (n = t.parseEl(t.index));
                var i = n.type;
                if (_("BeforeChange", [t.currItem ? t.currItem.type : "", i]), t.currItem = n, !t.currTemplate[i]) {
                    var o = !!t.st[i] && t.st[i].markup;
                    _("FirstMarkupParse", o), t.currTemplate[i] = !o || e(o)
                }
                r && r !== n.type && t.container.removeClass("mfp-" + r + "-holder");
                var a = t["get" + i.charAt(0).toUpperCase() + i.slice(1)](n, t.currTemplate[i]);
                t.appendContent(a, i), n.preloaded = !0, _(d, n), r = n.type, t.container.prepend(t.contentContainer), _("AfterChange")
            },
            appendContent: function(e, n) {
                t.content = e, e ? t.st.showCloseBtn && t.st.closeBtnInside && !0 === t.currTemplate[n] ? t.content.find(".mfp-close").length || t.content.append(C()) : t.content = e : t.content = "", _("BeforeAppend"), t.container.addClass("mfp-" + n + "-holder"), t.contentContainer.append(t.content)
            },
            parseEl: function(n) {
                var i, r = t.items[n];
                if (r.tagName ? r = {
                        el: e(r)
                    } : (i = r.type, r = {
                        data: r,
                        src: r.src
                    }), r.el) {
                    for (var o = t.types, a = 0; a < o.length; a++)
                        if (r.el.hasClass("mfp-" + o[a])) {
                            i = o[a];
                            break
                        }
                    r.src = r.el.attr("data-mfp-src"), r.src || (r.src = r.el.attr("href"))
                }
                return r.type = i || t.st.type || "inline", r.index = n, r.parsed = !0, t.items[n] = r, _("ElementParse", r), t.items[n]
            },
            addGroup: function(e, n) {
                var i = function(i) {
                    i.mfpEl = this, t._openClick(i, e, n)
                };
                n || (n = {});
                var r = "click.magnificPopup";
                n.mainEl = e, n.items ? (n.isObj = !0, e.off(r).on(r, i)) : (n.isObj = !1, n.delegate ? e.off(r).on(r, n.delegate, i) : (n.items = e, e.off(r).on(r, i)))
            },
            _openClick: function(n, i, r) {
                if ((void 0 !== r.midClick ? r.midClick : e.magnificPopup.defaults.midClick) || !(2 === n.which || n.ctrlKey || n.metaKey || n.altKey || n.shiftKey)) {
                    var o = void 0 !== r.disableOn ? r.disableOn : e.magnificPopup.defaults.disableOn;
                    if (o)
                        if (e.isFunction(o)) {
                            if (!o.call(t)) return !0
                        } else if (b.width() < o) return !0;
                    n.type && (n.preventDefault(), t.isOpen && n.stopPropagation()), r.el = e(n.mfpEl), r.delegate && (r.items = i.find(r.delegate)), t.open(r)
                }
            },
            updateStatus: function(e, i) {
                if (t.preloader) {
                    n !== e && t.container.removeClass("mfp-s-" + n), i || "loading" !== e || (i = t.st.tLoading);
                    var r = {
                        status: e,
                        text: i
                    };
                    _("UpdateStatus", r), e = r.status, i = r.text, t.preloader.html(i), t.preloader.find("a").on("click", (function(e) {
                        e.stopImmediatePropagation()
                    })), t.container.addClass("mfp-s-" + e), n = e
                }
            },
            _checkIfClose: function(n) {
                if (!e(n).hasClass(m)) {
                    var i = t.st.closeOnContentClick,
                        r = t.st.closeOnBgClick;
                    if (i && r) return !0;
                    if (!t.content || e(n).hasClass("mfp-close") || t.preloader && n === t.preloader[0]) return !0;
                    if (n === t.content[0] || e.contains(t.content[0], n)) {
                        if (i) return !0
                    } else if (r && e.contains(document, n)) return !0;
                    return !1
                }
            },
            _addClassToMFP: function(e) {
                t.bgOverlay.addClass(e), t.wrap.addClass(e)
            },
            _removeClassFromMFP: function(e) {
                this.bgOverlay.removeClass(e), t.wrap.removeClass(e)
            },
            _hasScrollBar: function(e) {
                return (t.isIE7 ? i.height() : document.body.scrollHeight) > (e || b.height())
            },
            _setFocus: function() {
                (t.st.focus ? t.content.find(t.st.focus).eq(0) : t.wrap).focus()
            },
            _onFocusIn: function(n) {
                return n.target === t.wrap[0] || e.contains(t.wrap[0], n.target) ? void 0 : (t._setFocus(), !1)
            },
            _parseMarkup: function(t, n, i) {
                var r;
                i.data && (n = e.extend(i.data, n)), _(c, [t, n, i]), e.each(n, (function(n, i) {
                    if (void 0 === i || !1 === i) return !0;
                    if ((r = n.split("_")).length > 1) {
                        var o = t.find(f + "-" + r[0]);
                        if (o.length > 0) {
                            var a = r[1];
                            "replaceWith" === a ? o[0] !== i[0] && o.replaceWith(i) : "img" === a ? o.is("img") ? o.attr("src", i) : o.replaceWith(e("<img>").attr("src", i).attr("class", o.attr("class"))) : o.attr(r[1], i)
                        }
                    } else t.find(f + "-" + n).html(i)
                }))
            },
            _getScrollbarSize: function() {
                if (void 0 === t.scrollbarSize) {
                    var e = document.createElement("div");
                    e.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(e), t.scrollbarSize = e.offsetWidth - e.clientWidth, document.body.removeChild(e)
                }
                return t.scrollbarSize
            }
        }, e.magnificPopup = {
            instance: null,
            proto: v.prototype,
            modules: [],
            open: function(t, n) {
                return S(), (t = t ? e.extend(!0, {}, t) : {}).isObj = !0, t.index = n || 0, this.instance.open(t)
            },
            close: function() {
                return e.magnificPopup.instance && e.magnificPopup.instance.close()
            },
            registerModule: function(t, n) {
                n.options && (e.magnificPopup.defaults[t] = n.options), e.extend(this.proto, n.proto), this.modules.push(t)
            },
            defaults: {
                disableOn: 0,
                key: null,
                midClick: !1,
                mainClass: "",
                preloader: !0,
                focus: "",
                closeOnContentClick: !1,
                closeOnBgClick: !0,
                closeBtnInside: !0,
                showCloseBtn: !0,
                enableEscapeKey: !0,
                modal: !1,
                alignTop: !1,
                removalDelay: 0,
                prependTo: null,
                fixedContentPos: "auto",
                fixedBgPos: "auto",
                overflowY: "auto",
                closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
                tClose: "Close (Esc)",
                tLoading: "Loading...",
                autoFocusLast: !0
            }
        }, e.fn.magnificPopup = function(n) {
            S();
            var i = e(this);
            if ("string" == typeof n)
                if ("open" === n) {
                    var r, o = y ? i.data("magnificPopup") : i[0].magnificPopup,
                        a = parseInt(arguments[1], 10) || 0;
                    o.items ? r = o.items[a] : (r = i, o.delegate && (r = r.find(o.delegate)), r = r.eq(a)), t._openClick({
                        mfpEl: r
                    }, i, o)
                } else t.isOpen && t[n].apply(t, Array.prototype.slice.call(arguments, 1));
            else n = e.extend(!0, {}, n), y ? i.data("magnificPopup", n) : i[0].magnificPopup = n, t.addGroup(i, n);
            return i
        };
        var k, T, A, D = "inline",
            E = function() {
                A && (T.after(A.addClass(k)).detach(), A = null)
            };
        e.magnificPopup.registerModule(D, {
            options: {
                hiddenClass: "hide",
                markup: "",
                tNotFound: "Content not found"
            },
            proto: {
                initInline: function() {
                    t.types.push(D), w(s + "." + D, (function() {
                        E()
                    }))
                },
                getInline: function(n, i) {
                    if (E(), n.src) {
                        var r = t.st.inline,
                            o = e(n.src);
                        if (o.length) {
                            var a = o[0].parentNode;
                            a && a.tagName && (T || (k = r.hiddenClass, T = x(k), k = "mfp-" + k), A = o.after(T).detach().removeClass(k)), t.updateStatus("ready")
                        } else t.updateStatus("error", r.tNotFound), o = e("<div>");
                        return n.inlineElement = o, o
                    }
                    return t.updateStatus("ready"), t._parseMarkup(i, {}, n), i
                }
            }
        });
        var O, M = "ajax",
            I = function() {
                O && e(document.body).removeClass(O)
            },
            P = function() {
                I(), t.req && t.req.abort()
            };
        e.magnificPopup.registerModule(M, {
            options: {
                settings: null,
                cursor: "mfp-ajax-cur",
                tError: '<a href="%url%">The content</a> could not be loaded.'
            },
            proto: {
                initAjax: function() {
                    t.types.push(M), O = t.st.ajax.cursor, w(s + "." + M, P), w("BeforeChange." + M, P)
                },
                getAjax: function(n) {
                    O && e(document.body).addClass(O), t.updateStatus("loading");
                    var i = e.extend({
                        url: n.src,
                        success: function(i, r, o) {
                            var a = {
                                data: i,
                                xhr: o
                            };
                            _("ParseAjax", a), t.appendContent(e(a.data), M), n.finished = !0, I(), t._setFocus(), setTimeout((function() {
                                t.wrap.addClass(p)
                            }), 16), t.updateStatus("ready"), _("AjaxContentAdded")
                        },
                        error: function() {
                            I(), n.finished = n.loadError = !0, t.updateStatus("error", t.st.ajax.tError.replace("%url%", n.src))
                        }
                    }, t.st.ajax.settings);
                    return t.req = e.ajax(i), ""
                }
            }
        });
        var L, N = function(n) {
            if (n.data && void 0 !== n.data.title) return n.data.title;
            var i = t.st.image.titleSrc;
            if (i) {
                if (e.isFunction(i)) return i.call(t, n);
                if (n.el) return n.el.attr(i) || ""
            }
            return ""
        };
        e.magnificPopup.registerModule("image", {
            options: {
                markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',
                cursor: "mfp-zoom-out-cur",
                titleSrc: "title",
                verticalFit: !0,
                tError: '<a href="%url%">The image</a> could not be loaded.'
            },
            proto: {
                initImage: function() {
                    var n = t.st.image,
                        i = ".image";
                    t.types.push("image"), w(u + i, (function() {
                        "image" === t.currItem.type && n.cursor && e(document.body).addClass(n.cursor)
                    })), w(s + i, (function() {
                        n.cursor && e(document.body).removeClass(n.cursor), b.off("resize" + f)
                    })), w("Resize" + i, t.resizeImage), t.isLowIE && w("AfterChange", t.resizeImage)
                },
                resizeImage: function() {
                    var e = t.currItem;
                    if (e && e.img && t.st.image.verticalFit) {
                        var n = 0;
                        t.isLowIE && (n = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)), e.img.css("max-height", t.wH - n)
                    }
                },
                _onImageHasSize: function(e) {
                    e.img && (e.hasSize = !0, L && clearInterval(L), e.isCheckingImgSize = !1, _("ImageHasSize", e), e.imgHidden && (t.content && t.content.removeClass("mfp-loading"), e.imgHidden = !1))
                },
                findImageSize: function(e) {
                    var n = 0,
                        i = e.img[0],
                        r = function(o) {
                            L && clearInterval(L), L = setInterval((function() {
                                return i.naturalWidth > 0 ? void t._onImageHasSize(e) : (n > 200 && clearInterval(L), void(3 === ++n ? r(10) : 40 === n ? r(50) : 100 === n && r(500)))
                            }), o)
                        };
                    r(1)
                },
                getImage: function(n, i) {
                    var r = 0,
                        o = function() {
                            n && (n.img[0].complete ? (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("ready")), n.hasSize = !0, n.loaded = !0, _("ImageLoadComplete")) : 200 > ++r ? setTimeout(o, 100) : a())
                        },
                        a = function() {
                            n && (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("error", s.tError.replace("%url%", n.src))), n.hasSize = !0, n.loaded = !0, n.loadError = !0)
                        },
                        s = t.st.image,
                        l = i.find(".mfp-img");
                    if (l.length) {
                        var c = document.createElement("img");
                        c.className = "mfp-img", n.el && n.el.find("img").length && (c.alt = n.el.find("img").attr("alt")), n.img = e(c).on("load.mfploader", o).on("error.mfploader", a), c.src = n.src, l.is("img") && (n.img = n.img.clone()), (c = n.img[0]).naturalWidth > 0 ? n.hasSize = !0 : c.width || (n.hasSize = !1)
                    }
                    return t._parseMarkup(i, {
                        title: N(n),
                        img_replaceWith: n.img
                    }, n), t.resizeImage(), n.hasSize ? (L && clearInterval(L), n.loadError ? (i.addClass("mfp-loading"), t.updateStatus("error", s.tError.replace("%url%", n.src))) : (i.removeClass("mfp-loading"), t.updateStatus("ready")), i) : (t.updateStatus("loading"), n.loading = !0, n.hasSize || (n.imgHidden = !0, i.addClass("mfp-loading"), t.findImageSize(n)), i)
                }
            }
        });
        var F;
        e.magnificPopup.registerModule("zoom", {
            options: {
                enabled: !1,
                easing: "ease-in-out",
                duration: 300,
                opener: function(e) {
                    return e.is("img") ? e : e.find("img")
                }
            },
            proto: {
                initZoom: function() {
                    var e, n = t.st.zoom,
                        i = ".zoom";
                    if (n.enabled && t.supportsTransition) {
                        var r, o, a = n.duration,
                            c = function(e) {
                                var t = e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
                                    i = "all " + n.duration / 1e3 + "s " + n.easing,
                                    r = {
                                        position: "fixed",
                                        zIndex: 9999,
                                        left: 0,
                                        top: 0,
                                        "-webkit-backface-visibility": "hidden"
                                    },
                                    o = "transition";
                                return r["-webkit-" + o] = r["-moz-" + o] = r["-o-" + o] = r[o] = i, t.css(r), t
                            },
                            u = function() {
                                t.content.css("visibility", "visible")
                            };
                        w("BuildControls" + i, (function() {
                            if (t._allowZoom()) {
                                if (clearTimeout(r), t.content.css("visibility", "hidden"), !(e = t._getItemToZoom())) return void u();
                                (o = c(e)).css(t._getOffset()), t.wrap.append(o), r = setTimeout((function() {
                                    o.css(t._getOffset(!0)), r = setTimeout((function() {
                                        u(), setTimeout((function() {
                                            o.remove(), e = o = null, _("ZoomAnimationEnded")
                                        }), 16)
                                    }), a)
                                }), 16)
                            }
                        })), w(l + i, (function() {
                            if (t._allowZoom()) {
                                if (clearTimeout(r), t.st.removalDelay = a, !e) {
                                    if (!(e = t._getItemToZoom())) return;
                                    o = c(e)
                                }
                                o.css(t._getOffset(!0)), t.wrap.append(o), t.content.css("visibility", "hidden"), setTimeout((function() {
                                    o.css(t._getOffset())
                                }), 16)
                            }
                        })), w(s + i, (function() {
                            t._allowZoom() && (u(), o && o.remove(), e = null)
                        }))
                    }
                },
                _allowZoom: function() {
                    return "image" === t.currItem.type
                },
                _getItemToZoom: function() {
                    return !!t.currItem.hasSize && t.currItem.img
                },
                _getOffset: function(n) {
                    var i, r = (i = n ? t.currItem.img : t.st.zoom.opener(t.currItem.el || t.currItem)).offset(),
                        o = parseInt(i.css("padding-top"), 10),
                        a = parseInt(i.css("padding-bottom"), 10);
                    r.top -= e(window).scrollTop() - o;
                    var s = {
                        width: i.width(),
                        height: (y ? i.innerHeight() : i[0].offsetHeight) - a - o
                    };
                    return void 0 === F && (F = void 0 !== document.createElement("p").style.MozTransform), F ? s["-moz-transform"] = s.transform = "translate(" + r.left + "px," + r.top + "px)" : (s.left = r.left, s.top = r.top), s
                }
            }
        });
        var R = "iframe",
            j = function(e) {
                if (t.currTemplate[R]) {
                    var n = t.currTemplate[R].find("iframe");
                    n.length && (e || (n[0].src = "//about:blank"), t.isIE8 && n.css("display", e ? "block" : "none"))
                }
            };
        e.magnificPopup.registerModule(R, {
            options: {
                markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
                srcAction: "iframe_src",
                patterns: {
                    youtube: {
                        index: "youtube.com",
                        id: "v=",
                        src: "//www.youtube.com/embed/%id%?autoplay=1"
                    },
                    vimeo: {
                        index: "vimeo.com/",
                        id: "/",
                        src: "//player.vimeo.com/video/%id%?autoplay=1"
                    },
                    gmaps: {
                        index: "//maps.google.",
                        src: "%id%&output=embed"
                    }
                }
            },
            proto: {
                initIframe: function() {
                    t.types.push(R), w("BeforeChange", (function(e, t, n) {
                        t !== n && (t === R ? j() : n === R && j(!0))
                    })), w(s + "." + R, (function() {
                        j()
                    }))
                },
                getIframe: function(n, i) {
                    var r = n.src,
                        o = t.st.iframe;
                    e.each(o.patterns, (function() {
                        return r.indexOf(this.index) > -1 ? (this.id && (r = "string" == typeof this.id ? r.substr(r.lastIndexOf(this.id) + this.id.length, r.length) : this.id.call(this, r)), r = this.src.replace("%id%", r), !1) : void 0
                    }));
                    var a = {};
                    return o.srcAction && (a[o.srcAction] = r), t._parseMarkup(i, a, n), t.updateStatus("ready"), i
                }
            }
        });
        var $ = function(e) {
                var n = t.items.length;
                return e > n - 1 ? e - n : 0 > e ? n + e : e
            },
            z = function(e, t, n) {
                return e.replace(/%curr%/gi, t + 1).replace(/%total%/gi, n)
            };
        e.magnificPopup.registerModule("gallery", {
            options: {
                enabled: !1,
                arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
                preload: [0, 2],
                navigateByImgClick: !0,
                arrows: !0,
                tPrev: "Previous (Left arrow key)",
                tNext: "Next (Right arrow key)",
                tCounter: "%curr% of %total%"
            },
            proto: {
                initGallery: function() {
                    var n = t.st.gallery,
                        r = ".mfp-gallery";
                    return t.direction = !0, !(!n || !n.enabled) && (o += " mfp-gallery", w(u + r, (function() {
                        n.navigateByImgClick && t.wrap.on("click" + r, ".mfp-img", (function() {
                            return t.items.length > 1 ? (t.next(), !1) : void 0
                        })), i.on("keydown" + r, (function(e) {
                            37 === e.keyCode ? t.prev() : 39 === e.keyCode && t.next()
                        }))
                    })), w("UpdateStatus" + r, (function(e, n) {
                        n.text && (n.text = z(n.text, t.currItem.index, t.items.length))
                    })), w(c + r, (function(e, i, r, o) {
                        var a = t.items.length;
                        r.counter = a > 1 ? z(n.tCounter, o.index, a) : ""
                    })), w("BuildControls" + r, (function() {
                        if (t.items.length > 1 && n.arrows && !t.arrowLeft) {
                            var i = n.arrowMarkup,
                                r = t.arrowLeft = e(i.replace(/%title%/gi, n.tPrev).replace(/%dir%/gi, "left")).addClass(m),
                                o = t.arrowRight = e(i.replace(/%title%/gi, n.tNext).replace(/%dir%/gi, "right")).addClass(m);
                            r.click((function() {
                                t.prev()
                            })), o.click((function() {
                                t.next()
                            })), t.container.append(r.add(o))
                        }
                    })), w(d + r, (function() {
                        t._preloadTimeout && clearTimeout(t._preloadTimeout), t._preloadTimeout = setTimeout((function() {
                            t.preloadNearbyImages(), t._preloadTimeout = null
                        }), 16)
                    })), void w(s + r, (function() {
                        i.off(r), t.wrap.off("click" + r), t.arrowRight = t.arrowLeft = null
                    })))
                },
                next: function() {
                    t.direction = !0, t.index = $(t.index + 1), t.updateItemHTML()
                },
                prev: function() {
                    t.direction = !1, t.index = $(t.index - 1), t.updateItemHTML()
                },
                goTo: function(e) {
                    t.direction = e >= t.index, t.index = e, t.updateItemHTML()
                },
                preloadNearbyImages: function() {
                    var e, n = t.st.gallery.preload,
                        i = Math.min(n[0], t.items.length),
                        r = Math.min(n[1], t.items.length);
                    for (e = 1; e <= (t.direction ? r : i); e++) t._preloadItem(t.index + e);
                    for (e = 1; e <= (t.direction ? i : r); e++) t._preloadItem(t.index - e)
                },
                _preloadItem: function(n) {
                    if (n = $(n), !t.items[n].preloaded) {
                        var i = t.items[n];
                        i.parsed || (i = t.parseEl(n)), _("LazyLoad", i), "image" === i.type && (i.img = e('<img class="mfp-img" />').on("load.mfploader", (function() {
                            i.hasSize = !0
                        })).on("error.mfploader", (function() {
                            i.hasSize = !0, i.loadError = !0, _("LazyLoadError", i)
                        })).attr("src", i.src)), i.preloaded = !0
                    }
                }
            }
        });
        var H = "retina";
        e.magnificPopup.registerModule(H, {
            options: {
                replaceSrc: function(e) {
                    return e.src.replace(/\.\w+$/, (function(e) {
                        return "@2x" + e
                    }))
                },
                ratio: 1
            },
            proto: {
                initRetina: function() {
                    if (window.devicePixelRatio > 1) {
                        var e = t.st.retina,
                            n = e.ratio;
                        (n = isNaN(n) ? n() : n) > 1 && (w("ImageHasSize." + H, (function(e, t) {
                            t.img.css({
                                "max-width": t.img[0].naturalWidth / n,
                                width: "100%"
                            })
                        })), w("ElementParse." + H, (function(t, i) {
                            i.src = e.replaceSrc(i, n)
                        })))
                    }
                }
            }
        }), S()
    }));
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"
        }
    }();